All pastes #1051903 Raw Edit

samp gm (test) 1

public cpp v1 · immutable
#1051903 ·published 2008-06-20 13:16 UTC
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);}