12.01.2013, 08:29
pawn Code:
#include <a_samp>
#include <sscanf2>
#include <YSI\y_ini>
#include <zcmd>
#include <foreach>
#define PATH "/Users/%s.ini"
#define NOTADMIN "Sorry, but you don't have access to that command !"
#define COL_WHITE "{FFFFFF}"
#define COL_YELLOW "{F3FF02}"
#define COL_RED "{F81414}"
#undef MAX_PLAYERS
#define MAX_PLAYERS 100
#define MAX_DVEHICLES 250
#define MAX_DEALERSHIPS 50
#define MAX_FUEL_STATIONS 50
#define VEHICLE_File_PATH "DSHIP/Vehicles/"
#define DEALERSHIP_File_PATH "DSHIP/Dealerships/"
#define FUEL_STATION_File_PATH "DSHIP/FuelStations/"
#define MAX_PLAYER_VEHICLES 6
#define FUEL_PRICE 5
#define GAS_CAN_PRICE 50
#define ALARM_TIME 10000 // alarm duration in milliseconds (1 second = 1000 milliseconds)
#define DEFAULT_NUMBER_PLATE "BMRP"
#define VEHICLE_DEALERSHIP 1
#define VEHICLE_PLAYER 2
#define DIALOG_NONE 12345
#define DIALOG_ERROR 12346
#define DIALOG_VEHICLE 500
#define DIALOG_VEHICLE_BUY 501
#define DIALOG_VEHICLE_SELL 502
#define DIALOG_FINDVEHICLE 503
#define DIALOG_TRUNK 504
#define DIALOG_TRUNK_ACTION 505
#define DIALOG_VEHICLE_PLATE 507
#define DIALOG_FUEL 510
#define DIALOG_EDITVEHICLE 606
#define strcpy(%0,%1,%2) %0="",strcat(%0,%2,%1)
#define ShowErrorDialog(%1,%2) ShowPlayerDialog(%1, DIALOG_ERROR, DIALOG_STYLE_MSGBOX, "ERROR", %2, "OK", "")
#define COLOR_BITEM 0xE1B0B0FF
#define COLOR_GRAD1 0xB4B5B7FF
#define COLOR_GRAD2 0xBFC0C2FF
#define COLOR_GRAD3 0xCBCCCEFF
#define COLOR_GRAD4 0xD8D8D8FF
#define COLOR_GRAD5 0xE3E3E3FF
#define COLOR_GRAD6 0xF0F0F0FF
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_BLACK 0x000001FF
#define COLOR_BLUE 0x007BD0FF
#define COLOR_LIGHTORANGE 0xFFA100FF
#define COLOR_FLASH 0xFF000080
#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_LIGHTGREEN 0x9ACD32AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_LIGHTYELLOW 0xFFFF91FF
#define COLOR_YELLOW2 0xF5DEB3AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_FADE1 0xE6E6E6E6
#define COLOR_FADE2 0xC8C8C8C8
#define COLOR_FADE3 0xAAAAAAAA
#define COLOR_FADE4 0x8C8C8C8C
#define COLOR_FADE5 0x6E6E6E6E
#define COLOR_PURPLE 0xC2A2DAAA
#define COLOR_DBLUE 0x2641FEAA
#define COLOR_DOC 0xFF8282AA
#define COLOR_DCHAT 0xF0CC00FF
#define COLOR_NEWS 0xFFA500AA
#define COLOR_OOC 0xE0FFFFAA
#define TEAM_BLUE_COLOR 0x8D8DFF00
#define TEAM_GROVE_COLOR 0x00AA00FF
#define TEAM_AZTECAS_COLOR 0x01FCFFC8
#define NEWBIE_COLOR 0x7DAEFFFF
#define SAMP_COLOR 0xAAC4E5FF
//=====================================[FORWARDS]===============================
forward SetPlayerSpawn(playerid);
forward ShowStats(playerid,targetid);
forward Payday();
forward SyncTime();
forward SetPlayerUnMute();
forward ScoreUpdate();
forward FixHour(hour);
forward newbietimer();
forward Unfreeze(playerid);
forward SendAdminMessage(color, string[]);
forward ABroadCast(color,const string[],level);
forward TBroadCast(color,const string[], level);
forward SendTesterMessage(color, string[]);
forward RACtime(playerid);
forward ClearChatboxToAll(playerid, lines);
forward ClearChatboxToAll2(playerid, lines);
forward OOCOff(color,const string[]);
forward ProxDetectorS(Float:radi, playerid, targetid);
forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
forward split(const strsrc[], strdest[][], delimiter);
forward SetOriginalColor(playerid);
OnePlayAnim(playerid,animlib[],animname[], Float:Speed, looping, lockx, locky, lockz, lp)
{
ApplyAnimation(playerid, animlib, animname, Speed, looping, lockx, locky, lockz, lp);
}
LoopingAnim(playerid,animlib[],animname[], Float:Speed, looping, lockx, locky, lockz, lp)
{
ApplyAnimation(playerid, animlib, animname, Speed, looping, lockx, locky, lockz, lp)
}
//==================================DEALERSHIP==================================
forward MainTimer();
forward SaveTimer();
forward StopAlarm(vehicleid);
//===================================ENGINE=====================================
forward StartEngine(playerid);
forward DamagedEngine(playerid);
new reg1[ ] = "This is a RolePlay Server.\n{FFFFFF}DeathMatch {F81414}isn't accepted {FFFFFF}only if you have a good RP reason!.\n",
reg2[ ] = "When you start to play you must know the basic rules.\nFor that is the next {F81414}tutorial.\n\n",
reg3[ ] = "•Cheats or Bug Abuse is forbidden, you will end up with {F81414}Ban PERMANENT.\n",
reg4[ ] = "•Keep a decent {F81414}language {FFFFFF}on the server.\n",
reg5[ ] = "•Spamming will lead you to {F81414}mute/kick.\n",
reg6[ ] = "•DriveBy isn't allowed, only with a {F81414}good {FFFFFF}RP reason.\n",
reg7[ ] = "•Remember, ALWAYS RolePlay.\n",
reg8[ ] = "\n\n{F81414}Bulgarian Mafia RP {F3FF02}wishes you good luck!";
//==================================[ENUMS]=====================================
enum pInfo
{
pPass,
pLevel,
pSex,
pAge,
pOrigin,
pPlace,
pCash,
pExp,
pAdmin,
pNumber,
pTester,
pWarns,
pSelected,
pMuted,
pMuteTime,
pFirstJoined,
pModel,
pVip,
pSpawn,
pLocked,
pDriveLic,
};
new PlayerInfo[MAX_PLAYERS][pInfo];
forward LoadUser_data(playerid,name[],value[]);
public LoadUser_data(playerid,name[],value[])
{
INI_Int("Password",PlayerInfo[playerid][pPass]);
INI_Int("Level",PlayerInfo[playerid][pLevel]);
INI_Int("Cash",PlayerInfo[playerid][pCash]);
INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
INI_Int("Age",PlayerInfo[playerid][pAge]);
INI_Int("Origin",PlayerInfo[playerid][pOrigin]);
INI_Int("Sex",PlayerInfo[playerid][pSex]);
INI_Int("Model",PlayerInfo[playerid][pModel]);
INI_Int("DriveLic",PlayerInfo[playerid][pDriveLic]);
INI_Int("Place",PlayerInfo[playerid][pPlace]);
INI_Int("Exp",PlayerInfo[playerid][pExp]);
INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
INI_Int("Number",PlayerInfo[playerid][pNumber]);
INI_Int("Tester",PlayerInfo[playerid][pTester]);
INI_Int("Warns",PlayerInfo[playerid][pWarns]);
INI_Int("Selected",PlayerInfo[playerid][pSelected]);
INI_Int("Muted",PlayerInfo[playerid][pMuted]);
INI_Int("MuteTime",PlayerInfo[playerid][pMuteTime]);
INI_Int("FirstJoined",PlayerInfo[playerid][pFirstJoined]);
INI_Int("Vip",PlayerInfo[playerid][pVip]);
INI_Int("Spawn",PlayerInfo[playerid][pSpawn]);
INI_Int("Locked",PlayerInfo[playerid][pLocked]);
return 1;
}
stock UserPath(playerid)
{
new string[128],playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,sizeof(playername));
format(string,sizeof(string),PATH,playername);
return string;
}
stock udb_hash(buf[]) { // Credits to DracoBlue
new length=strlen(buf);
new s1 = 1;
new s2 = 0;
new n;
for (n=0; n<length; n++)
{
s1 = (s1 + buf[n]) % 65521;
s2 = (s2 + s1) % 65521;
}
return (s2 << 16) + s1;
}