pawn Код:
#include <a_samp>
#include <YSI\y_ini>
#include <sscanf2>
#include <ranks>
#include <superman>
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
#define DIALOG_SUCCESS_1 3
#define DIALOG_SUCCESS_2 4
#define PATH "/Users/%s.ini"
#define COL_WHITE "{FFFFFF}"
#define COL_RED "{F81414}"
#define COL_GREEN "{00FF22}"
#define COL_LIGHTBLUE "{00CED1}"
#define GROVE_STREET 1
#define POLICE 2
#define ARMY 3
#define Fbi 4
#define GROVE_STREET_COLOUR 0x00820FAA
#define POLICE_COLOUR 0x003DF5AA
#define COLOR_RED 0xFF0000AA
#define Fbi_COLOUR 0xAFAFAFAA
#define ARMY_COLOUR 0x33AA33AA
enum TeamCars
{
GroveStreet,
Police,
fbi,
army,
army1,
army2,
army3,
army4,
army5,
army6,
}
new Cars[TeamCars];
new gTeam[MAX_PLAYERS];
new Text:screentext;
enum pInfo
{
pPass,
pCash,
pAdmin,
pKills,
pDeaths
}
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("Cash",PlayerInfo[playerid][pCash]);
INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
INI_Int("Kills",PlayerInfo[playerid][pKills]);
INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
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;
}
/*Credits to Dracoblue*/
stock udb_hash(buf[]) {
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;
}
main()
{
print("\n----------------------------------");
print("GTA and Colchester By Alex Harvey");
print("----------------------------------\n");
}
public OnGameModeInit()
{
SetGameModeText("Blank Script");
AddPlayerClass(106,207.0750,-138.5691,1003.5078,269.9999,0,0,0,0,0,0);
AddPlayerClass(282,1607.0870,1815.6981,10.8203,193.8336,3,0,24,200,29,200);
AddPlayerClass(287,1607.0870,1815.6981,10.8203,193.8336,31,200,0,0,0,0);
AddPlayerClass(286,-1722.3170,1018.0255,17.5859,88.8758,3,1,22,50,29,500); // fbi
AddPlayerClass(61,1607.0870,1815.6981,10.8203,193.8336,31,200,0,0,0,0); //navy
AddPlayerClass(249,2193.7366,2007.4865,12.2894,358.2378,15,1,15,500,28,500); //Pimp skin
AddPlayerClass(137,2193.5884,2007.4149,12.2894,355.9373,0,0,0,0,0,0); // Box on head Hobo guy
Cars[Police] = AddStaticVehicle(597,396.8186,2545.9746,16.3004,324.9353,0,1); // SpawnCOPCAR
AddStaticVehicle(401,394.4543,2437.2505,16.2806,3.0255,0,0); // carspawn Bruvaura
AddStaticVehicle(401,397.1897,2437.3953,16.2809,1.4208,0,50); // carspawn Bruvaura
AddStaticVehicle(401,399.7729,2437.3606,16.2793,0.6210,0,0); // carspawn Bruvaura
AddStaticVehicle(401,391.8264,2437.0684,16.2795,2.6242,0,0); // carspawn Bruvaura
AddStaticVehicle(476,325.6848,2538.4536,17.5205,178.8570,7,6); // SpawnPlaneww2
AddStaticVehicle(593,289.7745,2539.5269,17.2783,180.0343,58,8); // SpawnPlanedodo
Cars[army1] = AddStaticVehicle(548,364.8880,2537.6274,18.3325,195.9212,1,1); // SpawnCargobob
Cars[army2] = AddStaticVehicle(433,357.7811,2553.2898,16.9148,269.2940,43,0); // Spawnarmytruck
Cars[army3] = AddStaticVehicle(433,367.2657,2553.0474,16.9053,269.0898,43,0); // Spawnarmytruck
Cars[army4] = AddStaticVehicle(470,404.5092,2527.4897,16.5424,89.2533,43,0); // Spawnarmyhummer
Cars[army5] = AddStaticVehicle(470,378.7224,2527.3914,16.6021,91.0272,43,0); // Spawnarmyhummer
Cars[army6] = AddStaticVehicle(470,373.4854,2527.3884,16.5965,90.3360,43,0); // Spawnarmyhummer
AddStaticVehicle(416,384.2811,2551.5471,16.5833,87.1797,1,3); // SpawnMedic
AddStaticVehicle(416,376.8029,2551.9158,16.5917,88.3846,1,3); // SpawnMedic
Cars[fbi] = AddStaticVehicle(490,339.2541,2539.2632,16.9213,179.9669,0,0); // SpawnFBI
AddStaticVehicle(519,404.5300,2457.5430,17.4219,358.4160,1,1); // SpawnLearjet
AddStaticVehicle(522,424.1198,2460.3652,16.0705,87.1464,3,8); // Spawnracebike
AddStaticVehicle(522,423.8329,2458.9072,16.0680,88.1236,7,79); // Spawnracebike
AddStaticVehicle(522,423.9775,2459.6089,16.0701,88.5518,6,25); // Spawnracebike
AddStaticVehicle(409,424.2143,2442.5706,16.2999,358.5166,1,1); // spawnlimo
AddStaticVehicle(520,-1400.5963,510.1976,18.9502,271.5123,0,0); // Airforce Hydra
AddStaticVehicle(548,-1419.6694,495.2425,19.8004,269.0417,1,1); // Airforce Cargobob
AddStaticVehicle(520,-1432.3453,510.7588,18.9592,272.4252,0,0); // Airforce Hydra
AddStaticVehicle(593,-1295.1147,495.4142,18.6936,271.4355,68,8); // Airforce Trainer
AddStaticVehicle(425,-1311.0289,495.6122,18.7982,314.7953,43,0); // Airforce Hunter
AddStaticVehicle(497,-1411.2788,518.8583,18.4201,91.2497,0,1); // Airforce Maverick
AddStaticVehicle(476,-1269.9635,493.0234,18.9462,306.9293,1,6); // Airforce WW2
screentext = TextDrawCreate(479.000000, 267.000000, "By Alex Harvey");
TextDrawBackgroundColor(screentext, 255);
TextDrawFont(screentext, 3);
TextDrawLetterSize(screentext, 0.500000, 1.700000);
TextDrawColor(screentext, -65281);
TextDrawSetOutline(screentext, 0);
TextDrawSetProportional(screentext, 1);
TextDrawSetShadow(screentext, 1);
return 1;
}
public OnGameModeExit()
{
TextDrawHideForAll(screentext);
return 1;
}
SetupPlayerForClassSelection(playerid)
{
SetPlayerInterior(playerid,14);
SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
SetPlayerFacingAngle(playerid, 270.0);
SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
}
public OnPlayerRequestClass(playerid, classid)
{
SetupPlayerForClassSelection(playerid);
SetPlayerTeamFromClass(playerid, classid);
return 1;
}
public OnPlayerConnect(playerid)
{
if(fexist(UserPath(playerid)))
{
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_WHITE"Type your password below to login.","Login","Quit");
}
else
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registering...",""COL_WHITE"Type your password below to register a new account.","Register","Quit");
TextDrawShowForPlayer(playerid, screentext);
}
InitFly(playerid);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
INI_Close(File);
return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid,383.0134,2538.8259,16.5391);
SetPlayerFacingAngle(playerid,96.1577);
SetPlayerToTeamColour(playerid);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
PlayerInfo[killerid][pKills]++;
PlayerInfo[playerid][pDeaths]++;
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!IsPlayerAdmin(playerid)) return 0;
if (strcmp("/music bloodsugar", cmdtext, true, 10) == 0)
for(new i = 0; i < MAX_PLAYERS; i++)
{
PlayAudioStreamForPlayer(i, "http://dl.dropbox.com/u/60570065/01%20Blood%20Sugar.ogg");
}
if(!IsPlayerAdmin(playerid)) return 0;
if (strcmp("/music greyhound", cmdtext, true, 10) == 0)
for(new i = 0; i < MAX_PLAYERS; i++)
{
PlayAudioStreamForPlayer(i, "http://dl.dropbox.com/u/60570065/20%20Swedish%20House%20Mafia%20-%20Greyhound.mp3");
}
if(!IsPlayerAdmin(playerid)) return 0;
if (strcmp("/muisc willthe", cmdtext, true, 10) == 0)
for(new i = 0; i < MAX_PLAYERS; i++)
{
PlayAudioStreamForPlayer(i, "http://dl.dropbox.com/u/60570065/01%20T.H.E%20%28The%20Hardest%20Ever%29%20%5Bfeat.%20M.mp3");
}
if(!IsPlayerAdmin(playerid)) return 0;
if (strcmp("/music saviour", cmdtext, true, 10) == 0)
for(new i = 0; i < MAX_PLAYERS; i++)
{
PlayAudioStreamForPlayer(i, "http://dl.dropbox.com/u/60570065/Savior.MP3");
}
if(!IsPlayerAdmin(playerid)) return 0;
if (strcmp("/music stop", cmdtext, true, 10) == 0)
for(new i = 0; i < MAX_PLAYERS; i++)
{
StopAudioStreamForPlayer(i);
}
if(!IsPlayerAdmin(playerid)) return 0;
if (strcmp("/fly", cmdtext, true, 10) == 0)
{
StartFly(playerid);
}
if(!IsPlayerAdmin(playerid)) return 0;
if (strcmp("/stopfly", cmdtext, true, 10) == 0)
{
StopFly(playerid);
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch( dialogid )
{
case DIALOG_REGISTER:
{
if (!response) return Kick(playerid);
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Registering...",""COL_RED"You have entered an invalid password.\n"COL_WHITE"Type your password below to register a new account.","Register","Quit");
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File,"Password",udb_hash(inputtext));
INI_WriteInt(File,"Cash",0);
INI_WriteInt(File,"Admin",0);
INI_WriteInt(File,"Kills",0);
INI_WriteInt(File,"Deaths",0);
INI_Close(File);
SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"Great! Your Y_INI system works perfectly. Relog to save your stats!","Ok","");
}
}
case DIALOG_LOGIN:
{
if ( !response ) return Kick ( playerid );
if( response )
{
if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
{
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"You have successfully logged in!","Ok","");
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_RED"You have entered an incorrect password.\n"COL_WHITE"Type your password below to login.","Login","Quit");
}
return 1;
}
}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
SetPlayerTeamFromClass(playerid, classid)
{
if(classid == 0)
{
gTeam[playerid] = GROVE_STREET;
}
if(classid == 1)
{
gTeam[playerid] = POLICE;
}
if(classid == 2)
{
gTeam[playerid] = ARMY;
}
if(classid == 3)
{
gTeam[playerid] = Fbi;
}
}
SetPlayerToTeamColour(playerid)
{
if(gTeam[playerid] == GROVE_STREET)
{
SetPlayerColor(playerid,GROVE_STREET_COLOUR); //Green
}
if(gTeam[playerid] == POLICE)
{
SetPlayerColor(playerid,POLICE_COLOUR); // Blue
}
if(gTeam[playerid] == Fbi)
{
SetPlayerColor(playerid,Fbi_COLOUR); // grey
}
if(gTeam[playerid] == ARMY)
{
SetPlayerColor(playerid,ARMY_COLOUR); // Light Green
}
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == 2)
{
new CarCheck = GetPlayerVehicleID(playerid);
if(CarCheck == Cars[GroveStreet] )
{
if(gTeam[playerid] != 1)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_RED, "You Don't have the keys for this car!");
return 1;
}
}
if(CarCheck == Cars[fbi] )
{
if(gTeam[playerid] != 4)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_RED, "Your not part of the FBI!");
return 1;
}
}
if(CarCheck == Cars[army] )
{
if(gTeam[playerid] != 3)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_RED, "Your not part of the army!");
return 1;
}
}
if(CarCheck == Cars[army1] )
{
if(gTeam[playerid] != 3)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_RED, "Your not part of the army!");
return 1;
}
}
if(CarCheck == Cars[army2] )
{
if(gTeam[playerid] != 3)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_RED, "Your not part of the army!");
return 1;
}
}
if(CarCheck == Cars[army3] )
{
if(gTeam[playerid] != 3)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_RED, "Your not part of the army!");
return 1;
}
}
if(CarCheck == Cars[army4] )
{
if(gTeam[playerid] != 3)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_RED, "Your not part of the army!");
return 1;
}
}
if(CarCheck == Cars[army5] )
{
if(gTeam[playerid] != 3)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_RED, "Your not part of the army!");
return 1;
}
}
if(CarCheck == Cars[army6] )
{
if(gTeam[playerid] != 3)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_RED, "Your not part of the army!");
return 1;
}
}
if(CarCheck == Cars[Police] )
{
if(gTeam[playerid] != 2)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_RED, "You are not part of the Police force! Run before they catch you!");
return 1;
}
}
return 1;
}
return 1;
}