rendered paste body#include <a_samp>#include <dutils>#include <dudb>#include <dini>/* DCMD */#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1/* COLORS */#define COLOR_BLUE 0x0000FFAA#define COLOR_GREY 0xAFAFAFAA#define COLOR_GREEN 0x33AA33AA#define COLOR_RED 0xAA3333AA#define COLOR_YELLOW 0xFFFF00AA#define COLOR_WHITE 0xFFFFFFAA#define COLOR_PURPLE 0x9900FFAA#define COLOR_BROWN 0x993300AA#define COLOR_ORANGE 0xFF9933AA#define COLOR_CYAN 0x99FFFFAA#define COLOR_PINK 0xFF66FFAA#define COLOR_LIME 0x99FF00AA#define COLOR_BLACK 0x000000AA#define COLOR_TURQ 0x00A3C0AA#define SLOTS 8enum playerdata { Registered, LoggedIn, Level, Muted, Jailed, JailTime, Frozen, FreezeTime, Kills, Deaths, God, Warnings, Spawned, TimesSpawned, Spam};enum ServerData { MaxPing, ReadPMs, ReadCmds, MaxAdminLevel, AdminOnlySkins, AdminSkin, NameKick, AntiBot, AntiSpam, AntiSwear, NoCaps, Locked};new playerinfo[MAX_PLAYERS][playerdata];new ServerInfo[ServerData];new InDuel[MAX_PLAYERS];new cdt=-1; new CountTimer;main(){ print("\n----------------------------------"); print(" Paul Gm 0.1 "); print("----------------------------------\n");}public OnGameModeInit(){ SetGameModeText("Blank Script"); AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); return 1;}public OnGameModeExit(){ print("\n----------------------------------"); print(" Exiting Paul Gm 0.1 "); print("----------------------------------\n"); return 1;}public OnPlayerRequestClass(playerid, classid){ SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746); return 1;}public OnPlayerRequestSpawn(playerid){ return 1;}public OnPlayerConnect(playerid){ new enters [47]; new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); format(enters, sizeof(enters), "%s e' entrato nel server", name); SendClientMessageToAll(COLOR_YELLOW, enters); playerinfo[playerid][Deaths] = 0; playerinfo[playerid][Kills] = 0; playerinfo[playerid][Jailed] = 0; playerinfo[playerid][Level] = 0; playerinfo[playerid][LoggedIn] = 0; playerinfo[playerid][Registered] = 0; playerinfo[playerid][TimesSpawned] = 0; playerinfo[playerid][Muted] = 0; playerinfo[playerid][God] = 0; if (udb_Exists(name)) { new file[MAX_PLAYER_NAME], tmp [50], tmp2[256]; format(file, sizeof(file), "users/%s.sav", udb_encode(name)); GetPlayerIp(playerid, tmp, sizeof(tmp)); tmp2 = dini_Get(file,"ip"); if(!strcmp(tmp,tmp2,true)) { SendClientMessage(playerid, COLOR_ORANGE,"ACCOUNT: Bentornato!"); SendClientMessage(playerid,COLOR_ORANGE, "ACCOUNT: Automaticamente loggato!"); ResetPlayerMoney(playerid); GivePlayerMoney(playerid,dUserINT(name).("money")); playerinfo[playerid][Deaths] = (dUserINT(name).("deaths")); playerinfo[playerid][Kills] = (dUserINT(name).("kills")); playerinfo[playerid][Level] = (dUserINT(name).("level")); playerinfo[playerid][Frozen] = (dUserINT(name).("frozen")); playerinfo[playerid][Jailed] = (dUserINT(name).("jailed")); playerinfo[playerid][JailTime] = (dUserINT(name).("jailtime")); playerinfo[playerid][FreezeTime] = (dUserINT(name).("freezetime")); playerinfo[playerid][Registered] = 1; playerinfo[playerid][LoggedIn] = 1; } else { SendClientMessage(playerid,COLOR_ORANGE, "ACCOUNT: questo player e' gia' registrato! Usa /login [password]"); } } else if (!udb_Exists(name)) { new msg[256]; format(msg,sizeof(msg),"ACCOUNT: Ciao %s! Scrivi /register [password] per registrarti!",name); SendClientMessage(playerid,COLOR_ORANGE, msg); } return 1;}public OnPlayerDisconnect(playerid, reason){ new exits [57]; new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); switch(reason) { case 0: format(exits, sizeof(exits), "%s e' uscito dal server. (Timeout)", name); case 1: format(exits, sizeof(exits), "%s e' uscito dal server. (Leaving)", name); case 2: format(exits, sizeof(exits), "%s e' uscito dal server. (Kicked)", name); } SendClientMessageToAll(COLOR_YELLOW, exits); if (playerinfo[playerid][LoggedIn] == 1) { dUserSetINT(name).("money",GetPlayerMoney(playerid)); dUserSetINT(name).("kills",playerinfo[playerid][Kills]); dUserSetINT(name).("deaths",playerinfo[playerid][Deaths]); dUserSetINT(name).("jailtime",playerinfo[playerid][JailTime]); dUserSetINT(name).("freezetime",playerinfo[playerid][FreezeTime]); new Float:health; GetPlayerHealth(playerid, Float:health); new Float:armour; GetPlayerArmour(playerid, Float:armour); new year,month,day; getdate(year, month, day); new strdate[20]; format(strdate, sizeof(strdate), "%d.%d.%d",day,month,year); new file[256]; format(file,sizeof(file),"users/%s.sav",udb_encode(name)); dUserSetINT(name).("health",floatround(health)); dUserSetINT(name).("armour",floatround(armour)); dini_Set(file,"LastOn",strdate); } playerinfo[playerid][LoggedIn] = 0; playerinfo[playerid][Level] = 0; playerinfo[playerid][God] = 0; return 1;}public OnPlayerSpawn(playerid){ playerinfo[playerid][Spawned] = 1; if(playerinfo[playerid][Frozen] == 1) { TogglePlayerControllable(playerid,false); SendClientMessage(playerid,COLOR_GREY,"Sei ancora freezato!"); } return 1;}public OnPlayerDeath(playerid, killerid, reason){ if(playerinfo[playerid][LoggedIn]==1) { playerinfo[playerid][Deaths]++; } SendDeathMessage(killerid, playerid,reason); return 1;}public OnVehicleSpawn(vehicleid){ return 1;}public OnVehicleDeath(vehicleid, killerid){ return 1;}public OnPlayerText(playerid, text[]){/* CHAT LOGS */ new File:ftw=fopen("logs/chatlog.txt", io_append); new year,month,day; getdate(year,month,day); new hour,minute,second; gettime(hour, minute, second); new ip[16]; GetPlayerIp(playerid,ip,sizeof(ip)); new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid,pname,sizeof(pname)); new fstring[256]; format(fstring, sizeof(fstring), "[%d/%d/%d][%d.%d.%d][%s]%s:%s\r\n",day,month,year,hour,minute,second,ip,pname,text); fwrite(ftw, fstring); fclose(ftw); return 1;}public OnPlayerPrivmsg(playerid, recieverid, text[]){ return 1;}public OnPlayerCommandText(playerid, cmdtext[]){/* DCMD */ dcmd(kill, 4, cmdtext); dcmd(register, 8,cmdtext); dcmd(login,5,cmdtext); dcmd(jail, 4, cmdtext); dcmd(logout, 6, cmdtext); dcmd(asay, 4, cmdtext); dcmd(clearchat, 9, cmdtext); dcmd(clearallchat, 12, cmdtext); dcmd(getid, 5, cmdtext); dcmd(report, 6, cmdtext); dcmd(teleplayer, 10, cmdtext); dcmd(warn, 5, cmdtext); dcmd(duel,4,cmdtext); dcmd(countdown, 9, cmdtext); dcmd(fix, 3, cmdtext); dcmd(resetstats, 10, cmdtext); dcmd(changepass, 10, cmdtext); dcmd(stats, 5, cmdtext); dcmd(god, 3, cmdtext); return 0;}/* COMMANDS */dcmd_kill(playerid, params[]){ #pragma unused params new money = GetPlayerMoney(playerid); SetPlayerHealth(playerid, 0); ResetPlayerMoney(playerid); GivePlayerMoney(playerid, money-1000); return 1;}dcmd_register(playerid, params[]){ new name[MAX_PLAYER_NAME]; new exists [256]; GetPlayerName(playerid, name, sizeof(name)); if (playerinfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,COLOR_ORANGE,"ACCOUNT: Gia' loggato!"); if (strlen(params)==0) return SendClientMessage(playerid, COLOR_ORANGE,"ACCOUNT /register [password]"); if (strlen(params)<4) return SendClientMessage(playerid, COLOR_ORANGE,"ACCOUNT: La password deve contenere piu' di 3 caratteri"); if(udb_Exists(name)){ format(exists,sizeof(exists),"ACCOUNT: Il player con nome %s esiste gia'! Cambia nome!",name); SendClientMessage(playerid,COLOR_ORANGE,exists); } if (udb_Create(name,params)) { new file[256], tmp3[100]; new strdate[20], year,month,day; getdate(year, month, day); GetPlayerName(playerid,name,24); format(file,256,"users/%s.sav",udb_encode(name)); GetPlayerIp(playerid,tmp3,sizeof(tmp3)); dUserSet(name).("ip",tmp3); dUserSet(name).("password",params); dUserSetINT(name).("registered",1); format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year); dUserSet(name).("RegisteredDate",strdate); dUserSetINT(name).("level",0); dUserSetINT(name).("frozen",0); dUserSetINT(name).("freezetime",0); dUserSetINT(name).("jailed",0); dUserSetINT(name).("jailtime",0); dUserSetINT(name).("kills",0); dUserSetINT(name).("deaths",0); dUserSetINT(name).("money",0); dUserSetINT(name).("exp",0); dUserSet(name).("LastOn",strdate); playerinfo[playerid][LoggedIn] = 1; playerinfo[playerid][Registered] = 1; SendClientMessage(playerid, COLOR_ORANGE, "ACCOUNT: Registrato e automaticamente loggato!"); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); if(playerinfo[playerid][Spawned] == 1) TogglePlayerControllable(playerid,true); return 1; } return 1;}dcmd_login(playerid,params[]){ new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); if (playerinfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,COLOR_ORANGE,"ACCOUNT: Gia loggato!"); if (!udb_Exists(name)) return SendClientMessage(playerid,COLOR_ORANGE,"ACCOUNT: L'account non esiste, usa /register [password]."); if (strlen(params)==0) return SendClientMessage(playerid,COLOR_ORANGE,"ACCOUNT: USO:: /login [password]"); if (!udb_CheckLogin(name,params)) { return SendClientMessage(playerid,COLOR_ORANGE,"ACCOUNT: Login fallito! Password sbagliata!"); } else { new money; money = (dUserINT(name).("money")); ResetPlayerMoney(playerid); GivePlayerMoney(playerid, money); playerinfo[playerid][Deaths] = (dUserINT(name).("deaths")); playerinfo[playerid][Kills] = (dUserINT(name).("kills")); playerinfo[playerid][Level] = (dUserINT(name).("level")); playerinfo[playerid][Frozen] = (dUserINT(name).("frozen")); playerinfo[playerid][Jailed] = (dUserINT(name).("jailed")); playerinfo[playerid][LoggedIn] = 1; playerinfo[playerid][Registered] = 1; new file[256]; GetPlayerName(playerid,name,24); format(file,256,"users/%s.sav",udb_encode(name)); new tmp3[100]; GetPlayerIp(playerid,tmp3,100); dini_Set(file,"ip",tmp3); if(playerinfo[playerid][Spawned] == 1) TogglePlayerControllable(playerid,true); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); SendClientMessage(playerid,COLOR_ORANGE,"ACCOUNT: Loggato!"); SendClientMessage(playerid,COLOR_ORANGE,"ACCOUNT: Bentornato!"); return 1; }}dcmd_jail(playerid,params[]){ new name[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[256], time, reason[256]; GetPlayerName(playerid, name, sizeof(name)); GetPlayerName(playerid, adminname, sizeof(adminname)); if(playerinfo[playerid][Level] >= 3) { new player1; if (sscanf(params, "ddz", player1, time, reason))return SendClientMessage(playerid, COLOR_PURPLE, "USO: /jail [playerid] [time] [reason]"); if(!IsPlayerConnected(player1) || playerid == INVALID_PLAYER_ID) { SendClientMessage(playerid,COLOR_RED,"ERRORE: Il player non e' connesso o sei tu!"); return 1; } if(time < 10 ) { SendClientMessage(playerid,COLOR_RED,"ERRORE: Tempo sbagliato (deve essere maggiore di 10 secondi)"); return 1; } CMDMessageToAdmins(playerid,"LJail"); GetPlayerName(player1, name, sizeof(name)); GetPlayerName(playerid, adminname, sizeof(adminname)); format(string,sizeof(string),"L'amministratore %s ti ha messo in cella per %d secondi[reason: %s]",adminname,time,reason); SendClientMessage(player1,COLOR_TURQ,string); format(string,sizeof(string),"L'amministratore %s ha messo in cella %s per %d secondi [reason: %s]",adminname, name, time, reason); SendClientMessageToAll(COLOR_TURQ,string); playerinfo[player1][JailTime] = time; SetTimerEx("JailPlayer",5000,0,"d",player1); SetTimerEx("Jail1",1000,0,"d",player1); playerinfo[player1][Jailed] = 1; playerinfo[player1][JailTime] = time; } else { SendClientMessage(playerid,COLOR_RED,"ERRORE: Non hai un livello abbastanza alto per usare questo comando!"); } return 1;}dcmd_logout(playerid,params[]){ #pragma unused params if (playerinfo[playerid][LoggedIn] == 1) { new name[MAX_PLAYER_NAME]; dUserSetINT(name).("money",GetPlayerMoney(playerid)); dUserSetINT(name).("kills",playerinfo[playerid][Kills]); dUserSetINT(name).("deaths",playerinfo[playerid][Deaths]); dUserSetINT(name).("jailtime",playerinfo[playerid][JailTime]); dUserSetINT(name).("freezetime",playerinfo[playerid][FreezeTime]); new Float:health; GetPlayerHealth(playerid, Float:health); new Float:armour; GetPlayerArmour(playerid, Float:armour); new year,month,day; getdate(year, month, day); new strdate[20]; format(strdate, sizeof(strdate), "%d.%d.%d",day,month,year); new file[256]; format(file,sizeof(file),"users/%s.sav",udb_encode(name)); dUserSetINT(name).("health",floatround(health)); dUserSetINT(name).("armour",floatround(armour)); dini_Set(file,"LastOn",strdate); playerinfo[playerid][LoggedIn] = 0; playerinfo[playerid][Level] = 0; } else { SendClientMessage(playerid, COLOR_ORANGE, "ACCOUNT: Non sei piu' loggato!"); }}dcmd_asay(playerid,params[]){ if(playerinfo[playerid][Level] >= 2) { new adminname[MAX_PLAYER_NAME], string[256]; if(strlen(params)==0) return SendClientMessage(playerid, COLOR_PURPLE, "USO: /asay [text]"); GetPlayerName(playerid, adminname, sizeof(adminname)); format(string, sizeof(string), "**Admin %s: %s",adminname,params); SendClientMessageToAll(COLOR_PINK,string); } else { SendClientMessage(playerid,COLOR_RED,"ERRORE: Devi essere almeno di livello 2 per usare questo comando"); } return 1;}dcmd_clearchat(playerid,params[]){ #pragma unused params if(playerinfo[playerid][Level] >= 2) { CMDMessageToAdmins(playerid,"CLEARCHAT"); for(new i = 0; i < 11; i++) SendClientMessageToAll(COLOR_GREEN," "); } else { SendClientMessage(playerid,COLOR_RED,"ERRORE: Devi essere almeno di livello 2 per usare questo comando"); } return 1;}dcmd_clearallchat(playerid,params[]){ #pragma unused params if(playerinfo[playerid][Level] >= 4) { CMDMessageToAdmins(playerid,"CLEARALLCHAT"); for(new i = 0; i < 50; i++) SendClientMessageToAll(COLOR_GREEN," "); } else { SendClientMessage(playerid,COLOR_RED,"ERRORE: Devi essere almeno di livello 4 per usare questo comando"); } return 1;}dcmd_getid(playerid,params[]){ new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); new string[256]; if(!strlen(params)) return SendClientMessage(playerid,COLOR_PURPLE,"USO: /getid [parte del nick]"); format(string,sizeof(string),"Ricerca di: \"%s\": ",params); SendClientMessage(playerid,COLOR_LIME,string); new found; for(new i=0; i <= MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { GetPlayerName(i, name, MAX_PLAYER_NAME); new namelen = strlen(name); new bool:searched=false; for(new pos=0; pos <= namelen; pos++) { if(searched != true) { if(strfind(name,params,true) == pos) { found++; format(string,sizeof(string),"%d. %s (ID %d)",found,name,i); SendClientMessage(playerid, COLOR_LIME ,string); searched = true; } } } } } return 1;}dcmd_report(playerid, params[]){ new reported; new reason[256]; if (sscanf(params, "ds", playerid, reason)) return SendClientMessage(playerid, COLOR_PURPLE, "USO: /report [playerid] [reason]"); if(!IsPlayerConnected(reported) || reported == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"ERRORE: Il player non e' connesso!"); if(playerinfo[reported][Level] == ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,COLOR_RED,"ERRORE: Non puoi farlo con l'amministratore"); if(playerid == reported) return SendClientMessage(playerid,COLOR_RED,"ERRORE: Non puoi farlo a te stesso!"); new reportedname[MAX_PLAYER_NAME], reporter[MAX_PLAYER_NAME], str[100]; GetPlayerName(reported, reportedname, sizeof(reportedname)); GetPlayerName(playerid, reporter, sizeof(reporter)); format(str, sizeof(str), "||NewReport|| %s(ID %d) reported %s(ID %d) reason = %s", reporter,playerid, reportedname, reported, reason); MessageToAdmins(COLOR_WHITE,str); new File:ftw=fopen("reports/report.txt", io_append); format(str, sizeof(str), "||NewReport|| %s(ID %d) reported %s(ID %d) reason = %s", reporter,playerid, reportedname, reported, reason); fwrite(ftw, str); fclose(ftw); SendClientMessage(playerid,COLOR_CYAN, "Report inviato."); return 1;}dcmd_teleplayer(playerid,params[]){ if(playerinfo[playerid][Level] >= 3) { new player1,player2; if (sscanf(params, "dd", player1, player2)) return SendClientMessage(playerid, COLOR_PURPLE, "USO: /report [playerid] [reason]"); if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID) { SendClientMessage(playerid,COLOR_RED,"ERRORE: Il player non e' connesso!"); return 1; } if(!IsPlayerConnected(player1) || player2 == INVALID_PLAYER_ID) { SendClientMessage(playerid,COLOR_RED,"ERRORE: Il player non e' connesso!"); return 1; } new Float:plocx,Float:plocy,Float:plocz; GetPlayerPos(player2, plocx, plocy, plocz); new intid = GetPlayerInterior(player2); SetPlayerInterior(player1,intid); SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(player2)); CMDMessageToAdmins(playerid,"TELEPLAYER"); if (GetPlayerState(player1) == 2) { new VehicleID = GetPlayerVehicleID(player1); SetVehiclePos(VehicleID, plocx, plocy+4, plocz); LinkVehicleToInterior(VehicleID,intid); SetVehicleVirtualWorld(VehicleID, GetPlayerVirtualWorld(player2) ); } else { SetPlayerPos(player1,plocx,plocy+2, plocz); } } else { SendClientMessage(playerid,COLOR_RED,"ERRORE: Devi essere almeno di livello 3 per usare questo comando"); } return 1;}dcmd_warn(playerid,params[]){ if(playerinfo[playerid][Level] >= 2) { new reason[256]; new warned; new pname[256]; new aname[256]; new str[256]; if (sscanf(params, "dz", warned, reason))return SendClientMessage(playerid, COLOR_PURPLE, "USO: /warn [PlayerID] [Reason]"); if(!IsPlayerConnected(warned) || warned == INVALID_PLAYER_ID || (playerinfo[warned][Level] == ServerInfo[MaxAdminLevel]) || (warned == playerid)) { SendClientMessage(playerid,COLOR_RED,"ERRORE: Player is not connected or is yourself"); return 1; } CMDMessageToAdmins(playerid,"WARN"); if(playerinfo[warned][Warnings] == 0) { playerinfo[warned][Warnings]+=1; GetPlayerName(warned, pname, sizeof (str)); GetPlayerName(playerid, aname, sizeof (str)); format(str, sizeof (str), "***L'amministratore %s ha fatto a %s un avvertimento [Reason: %s] [1/3 Warnings]***", aname, pname, reason); SendClientMessageToAll(COLOR_LIME, str); return 1; } else if(playerinfo[warned][Warnings] == 1) { GetPlayerName(warned, pname, sizeof (str)); GetPlayerName(playerid, aname, sizeof (str)); format(str, sizeof (str), "***L'amministratore %s ha fatto a %s un avvertimento [Reason: %s] [2/3 Warnings]***", aname, pname, reason); SendClientMessageToAll(COLOR_LIME, str); playerinfo[warned][Warnings]+=1; return 1; } else if(playerinfo[warned][Warnings] == 2) { GetPlayerName(warned, pname, sizeof (str)); GetPlayerName(playerid, aname, sizeof (str)); format(str, sizeof (str), "***L'amministratore %s ha kickato %s [Reason: %s] [3/3 Warnings]***", aname, pname, reason); SendClientMessageToAll(COLOR_LIME, str); new File:ftw=fopen("reports/report.txt", io_append); format(str, sizeof (str), "***L'amministratore %s ha kickato %s [Reason: %s] [3/3 Warnings]***", aname, pname, reason); fwrite(ftw, str); fclose(ftw); return 1; } } else { SendClientMessage(playerid,COLOR_RED,"ERROR: Devi essere almeno di livello 2 per usare questo comando"); } return 1;}dcmd_duel(playerid,params[]){ if(playerinfo[playerid][Level] >= 3) { new player1; new player2; new location; if (sscanf(params, "ddz", player1, player2, location)) { SendClientMessage(playerid, COLOR_PURPLE, "USO: /duel [player1 id] [player2 id] [location (1) or (2) or (3)]"); SendClientMessage(playerid, COLOR_PURPLE, "Se il posto non e' specificato il duello sara' fatto dove si trovano i giocatori!"); return 1; } if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID) { SendClientMessage(playerid,COLOR_RED,"ERRORE: Il player non e' connesso!"); return 1; } if(!IsPlayerConnected(player1) || player2 == INVALID_PLAYER_ID) { SendClientMessage(playerid,COLOR_RED,"ERROR: Il player non e' connesso!"); return 1; } if(location == 1) { SetPlayerInterior(player1,16); SetPlayerPos(player1,-1404.067, 1270.3706, 1042.8672); SetPlayerHealth(player1,100.0); SetPlayerArmour(player1,100.0); GivePlayerWeapon(player1,26,400); GivePlayerWeapon(player1,24,300); GivePlayerWeapon(player1,28,500); SetPlayerInterior(player2,16); SetPlayerPos(player2,-1395.067, 1261.3706, 1042.8672); SetPlayerHealth(player2,100.0); SetPlayerArmour(player2,100.0); GivePlayerWeapon(player2,26,400); GivePlayerWeapon(player2,24,300); GivePlayerWeapon(player2,28,500); InDuel[player1] = 1; InDuel[player2] = 1; CMDMessageToAdmins(playerid,"DUEL"); cdt=6; CountTimer=SetTimer("duel",1000,1); } else if(location == 2) { SetPlayerInterior(player1,0); SetPlayerPos(player1,1353.407,2188.155,11.02344); SetPlayerHealth(player1,100.0); SetPlayerArmour(player1,100.0); GivePlayerWeapon(player1,26,400); GivePlayerWeapon(player1,24,300); GivePlayerWeapon(player1,28,500); SetPlayerInterior(player2,0); SetPlayerPos(player2,1346.255,2142.843,11.01563); SetPlayerHealth(player2,100.0); SetPlayerArmour(player2,100.0); GivePlayerWeapon(player2,26,400); GivePlayerWeapon(player2,24,300); GivePlayerWeapon(player2,28,500); InDuel[player1] = 1; InDuel[player2] = 1; CMDMessageToAdmins(playerid,"DUEL"); cdt=6; CountTimer=SetTimer("duel",1000,1); } else if(location == 3) { SetPlayerInterior(player1,10); SetPlayerPos(player1,-1041.037,1078.729,1347.678); SetPlayerFacingAngle(player1,135); SetPlayerHealth(player1,100.0); SetPlayerArmour(player1,100.0); GivePlayerWeapon(player1,26,400); GivePlayerWeapon(player1,24,300); GivePlayerWeapon(player1,28,500); SetPlayerInterior(player2,10); SetPlayerPos(player2,-1018.061,1052.502,1346.327); SetPlayerFacingAngle(player2,45); SetPlayerHealth(player2,100.0); SetPlayerArmour(player2,100.0); GivePlayerWeapon(player2,26,400); GivePlayerWeapon(player2,24,300); GivePlayerWeapon(player2,28,500); InDuel[player1] = 1; InDuel[player2] = 1; CMDMessageToAdmins(playerid,"DUEL"); cdt=6; CountTimer=SetTimer("duel",1000,1); } else { InDuel[player1] = 1; InDuel[player2] = 1; CMDMessageToAdmins(playerid,"DUEL"); cdt=6; CountTimer=SetTimer("duel",1000,1); } } else { SendClientMessage(playerid,COLOR_RED,"ERROR: Devi essere almeno di livello 3 per usare questo comando"); } return 1;}dcmd_countdown(playerid,params[]){ #pragma unused params if(playerinfo[playerid][Level] >= 1) { CMDMessageToAdmins(playerid,"COUNTDOWN"); cdt=6; CountTimer=SetTimer("countdown",1000,1); } else { SendClientMessage(playerid,COLOR_RED,"ERROR: Devi essere almeno di livello 1 per usare questo comando"); } return 1;}dcmd_fix(playerid,params[]){ #pragma unused params if(playerinfo[playerid][Level] >= 1) { if (IsPlayerInAnyVehicle(playerid)) { new VehicleID = GetPlayerVehicleID(playerid); SetVehicleHealth(VehicleID,1250.0); SendClientMessage(playerid,COLOR_LIME,"Vehicle Fixed"); } else { SendClientMessage(playerid,COLOR_RED,"ERRORE: Non sei in un veicolo"); } } else { SendClientMessage(playerid,COLOR_RED,"ERRORE: Devi essere almeno di livello 1 per usare questo comando"); } return 1;}dcmd_resetstats(playerid,params[]){ #pragma unused params new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); if(playerinfo[playerid][LoggedIn] == 1) { // save as backup dUserSetINT(name).("oldkills",playerinfo[playerid][Kills]); dUserSetINT(name).("olddeaths",playerinfo[playerid][Deaths]); // stats reset playerinfo[playerid][Kills] = 0; playerinfo[playerid][Deaths] = 0; dUserSetINT(name).("kills",playerinfo[playerid][Kills]); dUserSetINT(name).("deaths",playerinfo[playerid][Deaths]); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); SendClientMessage(playerid,COLOR_ORANGE,"ACCOUNT: Stats resettate. Le tue deaths e i tuoi kill ora sono: 0"); } else { SendClientMessage(playerid,COLOR_RED, "ERRORE: Devi avere un account per usare questo comando"); } return 1;}dcmd_changepass(playerid, params[]){ new name[MAX_PLAYER_NAME], string[256]; GetPlayerName(playerid, name, sizeof(name)); if(playerinfo[playerid][LoggedIn] ==1) { if(!strlen(params)) { SendClientMessage(playerid, COLOR_PURPLE, "USO: /changepass [password]"); return 1; } if(strlen(params) < 3) { SendClientMessage(playerid,COLOR_ORANGE,"ACCOUNT: Password troppo corta!"); return 1; } dUserSetINT(name).("password_hash",udb_hash(params) ); dUserSet(name).("Password",params); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); format(string, sizeof(string),"ACCOUNT: Hai cambiato la password in [ %s ]",params); SendClientMessage(playerid,COLOR_ORANGE,string); } else { SendClientMessage(playerid,COLOR_RED, "ERRORE: Devi avere un account per usare questo comando"); } return 1;}dcmd_stats(playerid, params[]){ new player1; new name[MAX_PLAYER_NAME], string[256]; GetPlayerName(playerid, name, sizeof(name)); if(!strlen(params)) { ShowScore(playerid); return 1; } if(IsPlayerConnected(player1)) { GetPlayerName(player1, name, sizeof(name)); format(string, sizeof(string), "<> %s's Stats: Kills: %d | Deaths: %d | Ratio: %0.2f | Money: $%d ",name, playerinfo[player1][Kills], playerinfo[player1][Deaths],Float:playerinfo[player1][Deaths]/Float:playerinfo[player1][Deaths],GetPlayerMoney(player1)); SendClientMessage(playerid, COLOR_YELLOW, string); return 1; } else { SendClientMessage(playerid, COLOR_RED, "ERRORE: Player non connesso!"); return 1; }}dcmd_god(playerid,params[]){ #pragma unused params if(playerinfo[playerid][Level] >= 3) { if(playerinfo[playerid][God] == 0) { playerinfo[playerid][God] = 1; SetPlayerHealth(playerid,100000); GivePlayerWeapon(playerid,38,50000); GivePlayerWeapon(playerid,15,50000); GivePlayerWeapon(playerid,26,50000); SendClientMessage(playerid,COLOR_TURQ,"GODMODE ON"); } else { playerinfo[playerid][God] = 0; SendClientMessage(playerid,COLOR_TURQ,"GODMODE OFF"); SetPlayerHealth(playerid, 100); ResetPlayerWeapons(playerid); } } else { SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 3 to use this command"); } return 1; }/* END COMMANDS */public OnPlayerInfoChange(playerid){ return 1;}public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger){ return 1;}public OnPlayerExitVehicle(playerid, vehicleid){ return 1;}public OnPlayerStateChange(playerid, newstate, oldstate){ 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 OnObjectMoved(objectid){ return 1;}public OnPlayerObjectMoved(playerid, objectid){ return 1;}public OnPlayerPickUpPickup(playerid, pickupid){ return 1;}public OnPlayerSelectedMenuRow(playerid, row){ return 1;}public OnPlayerExitedMenu(playerid){ return 1;}/* STOCK & OTHER */stock CMDMessageToAdmins(playerid,command[]) { new string[200],name[30]; GetPlayerName(playerid,name,30); format(string,200,"[Admin]: %s ha usato il comando %s",name,command); return MessageToAdmins(COLOR_WHITE,string); }forward MessageToAdmins(color,const string[]);public MessageToAdmins(color,const string[]){ for(new i = 0; i <= MAX_PLAYERS; i++) { if(IsPlayerConnected(i) == 1) { if (playerinfo[i][Level] >= 1) { SendClientMessage(i, color, string); } } } return 1;}stock sscanf(string[], format[], {Float,_}:...){ new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(); while (paramPos < paramCount && string[stringPos]) { switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': { new neg = 1, num = 0, ch = string[stringPos]; if (ch == '-') { neg = -1; ch = string[++stringPos]; } do { stringPos++; if (ch >= '0' && ch <= '9') { num = (num * 10) + (ch - '0'); } else { return 1; } } while ((ch = string[stringPos]) && ch != ' '); setarg(paramPos, 0, num * neg); } case 'h', 'x': { new ch, num = 0; while ((ch = string[stringPos++])) { switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } case ' ': { break; } default: { return 1; } } } setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { new tmp[25]; strmid(tmp, string, stringPos, stringPos+sizeof(tmp)-2); setarg(paramPos, 0, _:floatstr(tmp)); } case 's', 'z': { new i = 0, ch; if (format[formatPos]) { while ((ch = string[stringPos++]) && ch != ' ') { setarg(paramPos, i++, ch); } if (!i) return 1; } else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } } stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } } while (string[stringPos] && string[stringPos] != ' ') { stringPos++; } while (string[stringPos] == ' ') { stringPos++; } paramPos++; } while (format[formatPos] == 'z') formatPos++; return format[formatPos];}forward countdown();public countdown(){ if(cdt==6) { GameTextForAll("~p~Starting...",1000,6); } cdt--; new text[20]; format(text,sizeof(text),"~w~%d",cdt); for(new i = 0; i < MAX_PLAYERS; i++) { PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0); TogglePlayerControllable(i,0); } GameTextForAll(text,1000,6); if (cdt==0) { GameTextForAll("~g~GO~ r~!",1000,6); KillTimer(CountTimer); for(new i = 0; i < MAX_PLAYERS; i++) { TogglePlayerControllable(i,1); PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0); } }}//------------------------------------------forward duel();public duel(){ if(cdt==6) { for(new i = 0; i < MAX_PLAYERS; i++) { if(InDuel[i] == 1) { GameTextForPlayer(i,"~p~Duel Starting...",1000,6); } } } cdt--; new text[20]; format(text,sizeof(text),"~w~%d",cdt); for(new i = 0; i < MAX_PLAYERS; i++) { if(InDuel[i] == 1) { PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0); TogglePlayerControllable(i,0); GameTextForPlayer(i,text,1000,6); } } if (cdt==0) { KillTimer(CountTimer); for(new i = 0; i < MAX_PLAYERS; i++) { if(InDuel[i] == 1) { TogglePlayerControllable(i,1); PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0); GameTextForPlayer(i,"~g~GO~ r~!",1000,6); } } }}ShowScore(playerid){ new string[256], playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); format(string, sizeof(string), "<> %s's Stats: Kills: %d | Deaths: %d | Ratio: %0.2f | Money: $%d",playername,playerinfo[playerid][Kills],playerinfo[playerid][Deaths], (Float:playerinfo[playerid][Kills]/Float:playerinfo[playerid][Deaths]),GetPlayerMoney(playerid)); SendClientMessage(playerid,COLOR_YELLOW, string);}