Вот base.inc c 100 ливлам для 0.6.0 //
// Created: 05.09.06
// Aurthor: Iain Gilbert
//
#if defined _base_included
#endinput
#endif
#define _base_included
#pragma library base
#include <a_samp>
#include <core>
#include <float>
#include "utils\dini"
#define VERSION "v0.6.0"
#define debug 0
#define MAX_STRING 255
#define MAX_NAME 40 // number of char's a name/password/misc_word can be
#define INACTIVE_PLAYER_ID 255
#define INVALID_QUEST_ID 0
#define MAX_QUESTS 255
#define MAX_WIN 900000 // Maximum gambling win
#define MAX_SPAWNPOINTS 50
#define MAX_COUNTDOWN 5
#define MAX_PING 500
#define TimerTick 1000 // used for how often timer function is called
#define COLOUR_GREY 0xAFAFAFAA // grey
#define COLOUR_GREEN 0x33AA33AA // green
#define COLOUR_LIGHTGREEN 0x9ACD32AA //lightgreen
#define COLOUR_RED 0xAA3333AA // red
#define COLOUR_LIGHTRED 0xFF6347AA // lightred
#define COLOUR_YELLOW 0xFFFF00AA // yellow
#define COLOUR_WHITE 0xFFFFFFAA // white
#define COLOUR_BLUE 0x33AAFFAA // blue
#define COLOUR_LIGHTBLUE 0x33CCFFAA // LightBlue
#define COLOUR_ORANGE 0xFF9900AA //orange
#define COLOUR_PURPLE 0xC2A2DAAA //purple
#define COLOUR_CRIMSON 0xDC143CAA
#define COLOUR_LIMEGREEN 0x32CD32AA
#define COLOUR_AQUA 0x00FFFFAA
#define COLOUR_FLBLUE 0x6495EDAA
#define COLOUR_MAGENTA 0xFF00FFFF
#define COLOUR_GOLD 0xB8860BAA
#define COLOUR_PINK 0xFFC0CBAA
// TODO: more colours
#define COLOUR_MISC 0xAFAFAFAA // Grey - Misc
#define COLOUR_CHAT 0xFFFFFFAA // White - Chat
#define COLOUR_PLAYER 0xAAAAAAAA // White - Player
#define COLOUR_XP_GOOD 0x00C7FFAA // Blue - XP
#define COLOUR_XP_BAD 0x00008BAA // Blue - XP
#define COLOUR_COMBAT_GOOD 0xAA3333AA // Red - Combat
#define COLOUR_COMBAT_BAD 0xBB3333AA // Red - Combat
#define COLOUR_MONEY_GOOD 0xFFFF00AA // Yellow - Money
#define COLOUR_MONEY_BAD 0xDAA520AA // Yellow - Money
#define COLOUR_RACE 0x005407AA // green - dark
#define COLOUR_RACE_BAD 0x545407AA // yellow-green-dark
#define COLOUR_GANG 0xFF8C00AA // orange
#define COLOUR_GANG_CHAT 0xFFA500AA // orange
#define COLOUR_DM 0xFF0066AA // red - purple
#define COLOUR_DM_BAD 0xFF0066AA // red - purple
#define MIN_HEALTH 20
#define MAX_HEALTH 100
#define NUMVALUES 4
#define SOUND_MUSIC_CLASSSELECT 1185
#define SOUND_MUSIC_RACEFINISH 1183
#define SOUND_MUSIC_RACERECORD 1097
#define SOUND_MUSIC_MISSIONCOMPLETE 1185
#define SOUND_OFF 1184
#define SOUND_BLIP1 1056
#define SOUND_BLIP2 1057
#define SOUND_EXPLOSION 1159
#define SOUND_PURCHASE 1149
#define SOUND_CHECKPOINT 1058
#define SOUND_DEATH 1057
#define SOUND_DMKILL 1056
#define SOUND_DMDEATH 1057
#define OUTPUTLEVEL 0 // Amount of imformation outputted to console
// 0 - off, no output
// 1 - + Minimal output
// 2 - + DB saves, etc
// 3 - + XP/Level/Money changes output
#define DBTYPE 0 // Database type (olny flat file ATM)
// 0 - dini - flat file
// 1 - TODO: SQL
new ConfigDB[MAX_STRING] = "GTO/Config/GTO.Config.Base.txt";
new LevelDB[MAX_STRING] = "GTO/Config/GTO.Config.Levels.txt";
new VerboseSave=-1; // do we save extra un-needed db info like weapons, races, vehicels, deathmatches, etc
new RealTime=0;
new ForceOverwrite = 0;
// xyz coord info
enum CoordInfo {
Float:Coord_X,
Float:Coord_Y,
Float:Coord_Z
}
new KickList[MAX_PLAYERS];
new WorldTime;
new DBSeperator= 124; // seperate db fields.atm for db writing im just sending a string, which is written to a file.
new nullstr[MAX_STRING];
enum LevelInfo {
level_xp,
level_name[MAX_NAME]
}
#define MAX_LEVEL 100
#define MAX_XP 50000000
#define MAX_LVLXP 50000000
// level rank names by Baby Face / Cool
new LevelList[MAX_LEVEL+1][LevelInfo] = { // experience required for each level
{0, "Wannabe" },
{500, "Just Balla" },
{2200, "Foot Criminal" },
{7000, "Foot Soldier" },
{16000, "Foot Lieutenant" },
{30000, "Foot Captain" },
{50000, "Street Criminal" },
{76000, "Street Soldier" },
{110000, "Street Lieutenant" },
{151000, "Street Captain" },
{200000, "HardCore Soldier" },
{258000, "Maniac" },
{324000, "1st Star General" },
{399000, "2nd Star General" },
{484000, "3rd Star General" },
{579000, "4th Star General" },
{683000, "5th Star General" },
{797000, "Set Leader" },
{921000, "Body Guard" },
{1055000, "Left Hand Man" },
{1200000, "Right Hand Man" },
{1355000, "GodFather" },
{1521000, "The Los-Santos City Manager" },
{1698000, "The San-Fierro City Manager" },
{1885000, "The Las-Venturas City Manager" },
{2083000, "President of San Andreas" },
{2293000, "Leader of Parlament" },
{2513000, "The Owner of Africa" },
{2740000, "The Owner of Asia" },
{2986000, "The Owner of America" },
{3240000, "The Owner of Europa" },
{3505000, "The Leader of SA-men" },
{3781000, "Minister of The Planet" },
{4068000, "The Savior of The World" },
{4367000, "Cool Fan GTA" },
{4670000, "The Subjugator of Ladies Hearts" },
{4990000, "Warrior" }, // 36
{5332000, "Captain" }, // 37
{5676000, "Komandor" }, // 38
{6032000, "Chieftain" }, // 39
{6400000, "Admin" }, // 40
{6779000, "lvl 41" },
{7170000, "lvl 42" },
{7572000, "lvl 43" },
{7986000, "lvl 44" },
{8412000, "lvl 45" },
{8849000, "lvl 46" },
{9298000, "lvl 47" },
{9758000, "lvl 48" },
{10230000, "lvl 49" },
{10714000, "lvl 50" },
{11210000, "lvl 51" },
{11717000, "lvl 52" },
{12236000, "lvl 53" },
{12767000, "lvl 54" },
{13310000, "lvl 55" },
{13864000, "lvl 56" },
{14431000, "lvl 57" },
{15009000, "lvl 58" },
{15598000, "lvl 59" },
{16200000, "lvl 60" },
{16813000, "lvl 61" },
{17439000, "lvl 62" },
{18076000, "lvl 63" },
{18725000, "lvl 64" },
{19385000, "lvl 65" },
{20058000, "lvl 66" },
{20742000, "lvl 67" },
{21439000, "lvl 68" },
{22147000, "lvl 69" },
{22867000, "lvl 70" },
{23599000, "lvl 71" },
{24342000, "lvl 72" },
{25098000, "lvl 73" },
{25865000, "lvl 74" },
{26645000, "lvl 75" },
{27436000, "lvl 76" },
{28239000, "lvl 77" },
{29054000, "lvl 78" },
{29881000, "lvl 79" },
{30720000, "lvl 80" },
{31571000, "lvl 81" },
{32433000, "lvl 82" },
{33308000, "lvl 83" },
{34194000, "lvl 84" },
{35093000, "lvl 85" },
{36000000, "lvl 86" },
{36925000, "lvl 87" },
{37860000, "lvl 88" },
{38806000, "lvl 89" },
{38806000, "lvl 90" },
{39764000, "lvl 91" },
{40734000, "lvl 92" },
{41715000, "lvl 93" },
{42715000, "lvl 94" },
{43733000, "lvl 95" },
{45762000, "lvl 96" },
{45762000, "lvl 97" },
{46804000, "lvl 98" },
{47857000, "lvl 99" },
{50000000, "lvl 100"}
};
BaseLoadConfig()
{
if (ForceOverwrite) return;
new temp[MAX_STRING];
if (!dini_Exists(ConfigDB))
{
dini_Create(ConfigDB);
}
set(temp,dini_Get(ConfigDB,"Level_DB"));
if (strlen(temp) > 0) set(LevelDB,temp);
set(temp,dini_Get(ConfigDB,"Verbose_Save"));
if (strlen(temp) > 0) VerboseSave = strval(temp);
set(temp,dini_Get(ConfigDB,"Real_Time"));
if (strlen(temp) > 0) RealTime = strval(temp);
if (!dini_Exists(LevelDB))
{
BaseSaveConfig();
}
for (new i=0;i<=MAX_LEVEL;i++)
{
new tempname[MAX_STRING];
format(tempname,sizeof(tempname),"Level%d_Rankname",i);
set(temp,dini_Get(LevelDB,tempname));
if (strlen(temp) > 0) set(LevelList[i][level_name],temp);
format(tempname,sizeof(tempname),"Level%d_Experience",i);
set(temp,dini_Get(LevelDB,tempname));
if (strlen(temp) > 0) LevelList[i][level_xp] = strval(temp);
}
return;
}
BaseSaveConfig()
{
new temp[MAX_STRING];
if (dini_Exists(ConfigDB))
{
dini_Set(ConfigDB,"Level_DB",LevelDB);
valstr(temp,VerboseSave);
dini_Set(ConfigDB,"Verbose_Save",temp);
valstr(temp,RealTime);
dini_Set(ConfigDB,"Real_Time",temp);
}
if (!dini_Exists(LevelDB))
{
dini_Create(LevelDB);
}
for (new i=0;i<=MAX_LEVEL;i++)
{
new tempname[MAX_STRING];
format(tempname,sizeof(tempname),"Level%d_Rankname",i);
dini_Set(LevelDB,tempname,LevelList[i][level_name]);
format(tempname,sizeof(tempname),"Level%d_Experience",i);
valstr(temp,LevelList[i][level_xp]);
dini_Set(LevelDB,tempname,temp);
}
return;
}
GetLevelName(level)
{
new name[MAX_NAME];
if ((level < 0) || (level > MAX_LEVEL+1)) return name;
set(name,LevelList[level][level_name]);
return name;
}