Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Include
- #include <a_samp>
- #include <zcmd>
- #include <sscanf2>
- #include <foreach>
- #include <fly>
- #include <YSI/y_ini>
- //Define
- #define SCM SendClientMessage
- #define COLOR_JOBINFO 0xF6FF00FF
- #define COLOR_ERROR 0xFF0000FF
- #define COLOR_PLAYERINFO 0xF6FF00FF
- #define JOB_NAME1 "Busdriver"
- #define JOB_VEH1 431
- #define DIALOG_TP 1
- #define Register 2
- #define Login 3
- #define Sfolder "/Utilizatori/%s.ini"
- main() {
- }
- enum pINF
- {
- pPass, pCash,
- pAdmin, pKills,
- pDeaths
- }
- new PlayerInfo[MAX_PLAYERS][pINF];
- //Server
- new playerAdmin[MAX_PLAYERS];
- new
- PlayerJob[MAX_PLAYERS],
- Checkpoint[MAX_PLAYERS],
- JobVehicle[MAX_PLAYERS],
- JobWorking[MAX_PLAYERS];
- new
- VehSpawn[MAX_PLAYERS];
- //Publics
- public OnGameModeInit()
- {
- new string[256];
- format(string, sizeof(string), "Job %s\n{0xFF0000FF}[/getjob]", JOB_NAME1);
- Create3DTextLabel(string, -1, 1629.2684,972.1755,10.8203, 10.0, 0, 0);
- CreatePickup(1239, 23,1629.2684,972.1755,10.8203, 0);
- SetGameModeText("v0.0.1");
- AddPlayerClass(0,2127.5479,2362.7981,10.8203,181.6954,0,0,0,0,0,0);
- return 1;
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(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,"Login","Scrie parola mai jos pentru a te loga.","Login","Quit");
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Registering...","Scrie parola mai jos pentru a creea un cont nou !!","Register","Quit");
- }
- PlayerJob[playerid] = 0;
- Checkpoint[playerid] = 0;
- JobVehicle[playerid] = 0;
- JobWorking[playerid] = 0;
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new INI:File = INI_Open(UserPath(playerid));//Functia care deschide salvarea
- INI_SetTag(File,"data");Functia care scrie tagul
- INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));Functia ce salveaza statsticile
- INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);Functia ce salveaza statsticile
- INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);Functia ce salveaza statsticile
- INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);Functia ce salveaza statsticile
- INI_Close(File);Functia ce inchide salvarea
- if(JobWorking[playerid] == 1) FailJob(playerid, "Deconecatre!");
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- if(JobWorking[playerid] == 1) FailJob(playerid, "Ai fost respawnat!");
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- PlayerInfo[killerid][pKills]++;
- PlayerInfo[playerid][pDeaths]++;
- if(JobWorking[playerid] == 1) FailJob(playerid, "Ai murit!");
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- if(newstate == PLAYER_STATE_ONFOOT) {
- FailJob(playerid, "Ai murit!");
- }
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- new string[256];
- switch(Checkpoint[playerid]) {
- case 1: {
- DisablePlayerCheckpoint(playerid);
- Checkpoint[playerid] = 0;
- SCM(playerid, COLOR_JOBINFO, "Foloseste comanda /work");
- }
- case 2: SetPlayerCheckpoint(playerid, 1603.5635,1126.4496,10.8203, 5.0), Checkpoint[playerid] ++;
- case 3: SetPlayerCheckpoint(playerid, 2081.9727,2458.6226,10.8203, 5.0), Checkpoint[playerid] ++;
- case 4: SetPlayerCheckpoint(playerid, 1653.6163,915.3739,10.6653, 5.0), Checkpoint[playerid] ++;
- case 5: {
- DisablePlayerCheckpoint(playerid);
- Checkpoint[playerid] = 0;
- new money = 50000 + random(50000);
- format(string, sizeof(string), "Ai terminat de muncit la jobul %s si ai primit suma de $%d", JOB_NAME1, money); <----- Eroarea pe care o am!
- SCM(playerid, COLOR_JOBINFO, string);
- GivePlayerMoney(playerid, money);
- FinishJob(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_TP: {
- if(!response) return SCM(playerid, COLOR_PLAYERINFO, "Ai inchis acest meniu!");
- switch(listitem) {
- case 0: SetPlayerPos(playerid, 1726.4785, -1912.1207, 13.5481);
- case 1: SetPlayerPos(playerid, 1719.7839, 1454.2864, 10.8036);
- case 2: SetPlayerPos(playerid, -1982.9357, 138.9342, 27.6555);
- }
- }
- }
- return 1;
- }
- switch( dialogid )
- {
- case Register:
- {
- if (!response)
- return Kick(playerid);
- if(response)
- {
- if(!strlen(inputtext)) return ShowPlayerDialog(playerid, Register, DIALOG_STYLE_INPUT, "Inregistrare","Tu nu ai introdus nici o parola in casuta.\nScrie parola mai jos pentru a crea un cont nou!.","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,"Adminl",0);
- INI_WriteInt(File,"Kills",0);
- INI_WriteInt(File,"Deaths",0);
- INI_Close(File);
- SpawnPlayer(playerid);
- }
- }
- case DIALOG_LOGIN:
- {
- if ( !response ) return Kick ( playerid );
- if( response )Aceasta functie il va lasa pe jucator sa intre pe server si ii va da statisticile inapoi!
- {
- if(udb_hash(inputtext) == PlayerInfo[playerid][parola])
- {
- INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
- GivePlayerMoney(playerid, PlayerInfo[playerid][money]);
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Login","Tu ai introdus o parola gresita!.\nScrie parola in casuta de mai jos!!.","Login","Quit");
- }
- return 1;
- }
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- //CMD
- CMD:makeadmin(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid))
- return SendClientMessage(playerid, -1, "Doar adminii RCON pot folosi aceasta comanda.");
- new pID, adminLevel, str[128];
- if(sscanf(params,"ui", pID, adminLevel))
- return SendClientMessage(playerid, -1, "FOLOSIRE: /makeadmin [PlayerID] [Level]");
- if(!IsPlayerConnected(pID))
- return SendClientMessage(playerid, -1, "Player-ul selectat nu este conectat.");
- if(adminLevel < 0 || adminLevel > 6)
- return SendClientMessage(playerid, -1, "Admin level este gresit. Foloseste valori intre 0 si 6");
- new name[MAX_PLAYER_NAME], pName[MAX_PLAYER_NAME];
- GetPlayerName(pID, name, sizeof name);
- GetPlayerName(playerid, pName, sizeof pName);
- playerAdmin[pID] = adminLevel;
- format(str, sizeof str, "Admin %s ti-a setat admin level la %i.", pName, playerAdmin[pID]);
- SendClientMessage(pID, -1, str);
- format(str, sizeof str, "Ai setat lui %s admin level la %i.", name, playerAdmin[pID]);
- SendClientMessage(playerid, -1, str);
- format(str, sizeof str, "Admin %s l-a facut pe %s admin level %i.", pName, name, playerAdmin[pID]);
- SendClientMessageToAll(-1, str);
- return 1;
- }
- CMD:fly(playerid, params[]) {
- if(playerAdmin[playerid] < 1) return SCM(playerid, COLOR_ERROR, "Nu ai gradul necesar pentru aceasta comanda!");
- InitFly(playerid);
- StartFly(playerid);
- SetPlayerHealth(playerid, 10000000);
- SCM(playerid, COLOR_PLAYERINFO, "Flymode ON.");
- return 1;
- }
- CMD:stopfly(playerid, params[]) {
- if(playerAdmin[playerid] < 1) return SCM(playerid, COLOR_ERROR, "Nu ai gradul necesar pentru aceasta comanda!");
- StopFly(playerid);
- SetPlayerHealth(playerid, 100);
- SCM(playerid, COLOR_PLAYERINFO, "Flymode OFF.");
- return 1;
- }
- CMD:heal(playerid, params[]) {
- if(playerAdmin[playerid] < 1) return SCM(playerid, COLOR_ERROR, "Nu ai gradul necesar pentru aceasta comanda!");
- SetPlayerHealth(playerid, 100);
- SCM(playerid, COLOR_PLAYERINFO, "Ti-ai setat viata la 100HP");
- return 1;
- }
- CMD:getjob(playerid, params[]) {
- if(PlayerJob[playerid] != 0) return SCM(playerid, COLOR_JOBINFO, "Ai deja un job!");
- new string[256];
- if(IsPlayerInRangeOfPoint(playerid, 2.0, 1629.2684,972.1755,10.8203)) {
- PlayerJob[playerid] = 1;
- format(string, sizeof(string), "Ai luat cu succes jobul %s", JOB_NAME1);
- SCM(playerid, COLOR_JOBINFO, string);
- }
- else {
- SCM(playerid, COLOR_JOBINFO, "Nu te aflii in jurul unui job!");
- }
- return 1;
- }
- CMD:quitjob(playerid, params[]) {
- if(PlayerJob[playerid] == 0) return SCM(playerid, COLOR_JOBINFO, "Nu ai niciun job!");
- if(JobWorking[playerid] == 1) FailJob(playerid, "Ai renuntat la job!");
- PlayerJob[playerid] = 0;
- SCM(playerid, COLOR_JOBINFO, "Ai demisionat cu succes!");
- return 1;
- }
- CMD:work(playerid, params[]) {
- if(PlayerJob[playerid] == 0) return SCM(playerid, COLOR_JOBINFO, "Nu ai niciun job!");
- switch(PlayerJob[playerid]) {
- case 1: {
- if(!IsPlayerInRangeOfPoint(playerid, 5.0, 1652.0060,989.0849,10.8203)) {
- SCM(playerid, COLOR_JOBINFO, "Nu te aflii in zona unde poti folosi aceasta comanda!");
- SetPlayerCheckpoint(playerid, 1652.0060,989.0849,10.8203, 5.0);
- }
- JobVehicle[playerid] = CreateVehicle(JOB_VEH1, 1652.0060,989.0849,10.8203, 90, 205, 128, 100);
- PutPlayerInVehicle(playerid, JobVehicle[playerid], 0);
- JobWorking[playerid] = 1;
- Checkpoint[playerid] = 2;
- SetPlayerCheckpoint(playerid, 1664.7562,941.8705,10.6719, 5.0);
- }
- }
- return 1;
- }
- CMD:tp(playerid, params[]) {
- if(playerAdmin[playerid] < 1) return SCM(playerid, COLOR_ERROR, "Nu ai gradul necesar pentru aceasta comanda!");
- new zones[256];
- zones = "LosSantos\nLasVenturas\nSanFiero";
- ShowPlayerDialog(playerid, DIALOG_TP, DIALOG_STYLE_LIST, "Teleport List", zones, "Ok", "Cancel");
- return 1;
- }
- CMD:spawncar(playerid, params[]) {
- if(playerAdmin[playerid] < 1) return SCM(playerid, COLOR_ERROR, "Nu ai gradul necesar pentru aceasta comanda!");
- new model, color1, color2;
- if(sscanf(params, "iii", model, color1, color2)) return SCM(playerid, COLOR_ERROR, "Foloseste: /spawncar <model> <color1> <color2>");
- new Float: Pos[3];
- GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
- new carid = CreateVehicle(model, Pos[0], Pos[1], Pos[2], 90, color1, color2, 300);
- VehSpawn[carid] = 1;
- SetVehicleNumberPlate(carid, "AdmCar:1501");
- PutPlayerInVehicle(playerid, carid, 0);
- return 1;
- }
- CMD:despawncar(playerid, params[]) {
- if(playerAdmin[playerid] < 1) return SCM(playerid, COLOR_ERROR, "Nu ai gradul necesar pentru aceasta comanda!");
- if(IsPlayerInAnyVehicle(playerid) && VehSpawn[GetPlayerVehicleID(playerid)] == 1) {
- VehSpawn[GetPlayerVehicleID(playerid)] = 0;
- DestroyVehicle(GetPlayerVehicleID(playerid));
- }
- else {
- new vehid;
- if(sscanf(params, "i", vehid)) return SCM(playerid, COLOR_ERROR, "Foloseste: /despawncar <carID>");
- if(VehSpawn[vehid] == 0) return SCM(playerid, COLOR_ERROR, "Id Invalid");
- VehSpawn[vehid] = 0;
- DestroyVehicle(vehid);
- }
- return 1;
- }
- //Forward
- forward FailJob(playerid, reason[]);
- public FailJob(playerid, reason[]) {
- new string[256];
- format(string, sizeof(string), "Munca ta a esuat! Motiv: %s", reason);
- SCM(playerid, COLOR_JOBINFO, string);
- DestroyVehicle(JobVehicle[playerid]);
- JobVehicle[playerid] = 0;
- JobWorking[playerid] = 0;
- DisablePlayerCheckpoint(playerid);
- Checkpoint[playerid] = 0;
- return 1;
- }
- forward FinishJob(playerid);
- public FinishJob(playerid) {
- DestroyVehicle(JobVehicle[playerid]);
- JobVehicle[playerid] = 0;
- JobWorking[playerid] = 0;
- DisablePlayerCheckpoint(playerid);
- Checkpoint[playerid] = 0;
- return 1;
- }
- 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 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;
- }
- stock UserPath(playerid)
- {
- new string[128],playername[MAX_PLAYER_NAME];
- GetPlayerName(playerid,playername,sizeof(playername));
- format(string,sizeof(string),Sfolder,playername);
- return string;
- }
Advertisement
Add Comment
Please, Sign In to add comment