/******************************************** * Xtreme Administration Filterscript * * Programmers: Xtreme * * Creation Date: 04/12/2007 * * Compatibility: SA:MP 0.2 * * Version: 2.1 || Release: 1 * *******************************************/ #include #include "xadmin/XtremeAdmin.inc" #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 #define GetStringArg(%1,%2) for(new x = 0; getarg(%1,x) != '\0'; x++) %2[x] = getarg(%1,x) #define yellow 0xFFFF00AA #define green 0x33FF33AA #define red 0xFF0000AA #define white 0xFFFFFFAA #define pink 0xCCFF00FFAA #define blue 0x00FFFFAA #define grey 0xC0C0C0AA static VehicleLockData[MAX_VEHICLES] = false, Menu:GiveMe, Menu:GiveCar; forward PingKick(); //============================================================================== public OnFilterScriptInit() { print("g"); print("Checking / creating server configuration..."); //Check if all configuration files are present. if(!dini_Exists("/xadmin/Configuration/Configuration.ini")) { dini_Create("/xadmin/Configuration/Configuration.ini"); dini_Set("/xadmin/Configuration/Configuration.ini","ServerMessage","None"); } print("Creating user file variables configuration..."); // Create the variables to be stored in each user's file. CreateLevelConfig( "IP","Registered","Level","Cash","Kills","Deaths","Password","Wired", "WiredWarnings","Jailed" ); // Create Level Config in pattern 'command name, level, command name, level (case is not sensitive): print("Creating command level configuration..."); CreateCommandConfig( // Miscellaneous Commands "goto",5,"gethere",8,"announce",3,"say",1,"flip",1,"slap",6,"wire",8,"unwire",5,"kick",6, "ban",9,"eject",6,"freeze",8,"unfreeze",6,"healall",5,"setsm",3,"givehealth",6,"giveallweapon",7, "givecash",7,"giveallcash","ejectall",8,"freezeall",10,"unfreezeall",10,"giveweapon",4,"setlevel",10,7,"givearmour",5,"armourall",5, "explode",5,"setname",10,"setgravity",4 ); CreateCommandConfigEx( "carcolor",1,"gmx",10,"giveme",6,"givecar",7,"xspec",4,"vr",0 ); print("Creating main configuration files..."); UpdateConfigurationVariables(); print("Initializing Menus..."); // Giveme Menu GiveMe = CreateMenu("~g~Giveme ~w~Administration",2, 200.0, 100.0, 150.0, 150.0); if(IsValidMenu(GiveMe)) { SetMenuColumnHeader(GiveMe, 0, "Select a car to give yourself:"); AddMenuItem(GiveMe,0,"Infernus"); AddMenuItem(GiveMe,0,"NRG500"); AddMenuItem(GiveMe,0,"Monster Truck"); AddMenuItem(GiveMe,0,"Packer"); AddMenuItem(GiveMe,0,"Mountain Bike"); AddMenuItem(GiveMe,0,"FBI Rancher"); AddMenuItem(GiveMe,0,"Cheetah"); AddMenuItem(GiveMe,1,"Premier"); AddMenuItem(GiveMe,1,"Hotring"); AddMenuItem(GiveMe,1,"Seasparrow"); AddMenuItem(GiveMe,1,"Vortex"); AddMenuItem(GiveMe,1,"Hydra"); AddMenuItem(GiveMe,1,"Hunter"); AddMenuItem(GiveMe,1,"Quad"); } GiveCar = CreateMenu("~b~Givecar ~w~Administration",1,125,150,300); if(IsValidMenu(GiveCar)) { SetMenuColumnHeader(GiveCar , 0, "Select a car component to add:"); AddMenuItem(GiveCar ,0,"Nitrous x10"); AddMenuItem(GiveCar ,0,"Hydraulics"); AddMenuItem(GiveCar ,0,"Twist Wheels"); } if(IsValidMenu(GiveCar)) { SetMenuColumnHeader(GiveCar , 0, "pimpen rotjong:"); } print("Complete."); SetTimer("PingKick",Config[PingSecondUpdate]*1000,true); for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) OnPlayerConnect(i); return 1; } //============================================================================== public OnPlayerConnect(playerid) { new string[256],PlayerName[24],file[256]; file = GetPlayerFile(playerid); GetPlayerName(playerid,PlayerName,24); if(!dini_Exists(file)) CreateUserConfigFile(playerid); for(new i = 0; i < 100; i++) { if(strfind(PlayerName,ForbidNames[i],true)!=-1 && Config[ForbidData]) { switch(Config[ForbidData]) { case 1: Kick(playerid); case 2: Ban(playerid); } return 1; } } if(Config[DisplayServerMessage]) { format(string,sizeof(string),"Server Message: %s",dini_Get("/xadmin/Configuration/Configuration.ini","ServerMessage")); SendClientMessage(playerid,green,string); } Variables[playerid][Registered] = GetPlayerFileVar(playerid,"Registered"), Variables[playerid][Level] = GetPlayerFileVar(playerid,"Level"); Variables[playerid][Wired] = GetPlayerFileVar(playerid,"Wired"); Variables[playerid][Jailed] = GetPlayerFileVar(playerid,"Jailed"); if(Variables[playerid][Wired]) SetUserInt(playerid,"WiredWarnings",Config[WiredWarnings]); if(Variables[playerid][Level] > Config[MaxLevel]) { Variables[playerid][Level] = Config[MaxLevel]; SetUserInt(playerid,"Level",Config[MaxLevel]); } if(!Variables[playerid][Registered]) format(string,256,"Welcome, %s. ik zal het je uitleggen: typ \"/REGISTER \".",PlayerName); else { new tmp[50],tmp2[256]; GetPlayerIp(playerid,tmp,50); tmp2 = dini_Get(file,"IP"); if(!strcmp(tmp,tmp2,true)) { format(string,256,"Welkom terug, %s. autologin scheelt typen harrie;;.",PlayerName); Variables[playerid][LoggedIn] = true; } else { format(string,256,"Welkom terug, %s. log zo opnieuw in, type \"/LOGIN \".",PlayerName); Variables[playerid][LoggedIn] = false; } } SendClientMessage(playerid,yellow,string); for(new i = 0; i < MAX_VEHICLES; i++) if(VehicleLockData[i]) SetVehicleParamsForPlayer(i,playerid,false,true); if(Config[DisplayConnectMessages]) { format(string,256,"*** %s has entered julianland.",PlayerName); for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && playerid != i) SendClientMessage(i,grey,string); } return 1; } //============================================================================== public OnPlayerSpawn(playerid) { if(Variables[playerid][Jailed]) { SetPlayerInterior(playerid,3); SetPlayerPos(playerid,197.6661,173.8179,1003.0234); SetPlayerFacingAngle(playerid,0); } return 1; } //============================================================================== public OnPlayerDisconnect(playerid,reason) { new Reason[256],string[256],name[24]; GetPlayerName(playerid,name,24); switch(reason) { case 0: Reason = "ERRORSKI"; case 1: Reason = "peert em"; case 2: Reason = "Kick/Ban"; } format(string,256,"*** %s nokt ermee. (%s)",name,Reason); for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && i != playerid) SendClientMessage(i,grey,string); for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && Spec[i][SpectateID] == playerid && Spec[i][Spectating]) { TogglePlayerSpectating(i,false); Spec[i][Spectating] = false, Spec[i][SpectateID] = INVALID_PLAYER_ID; } return 1; } //============================================================================== public OnPlayerDeath(playerid,killerid,reason) { #pragma unused killerid #pragma unused reason for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && Spec[i][SpectateID] == playerid && Spec[i][Spectating]) { TogglePlayerSpectating(i,false); Spec[i][Spectating] = false, Spec[i][SpectateID] = INVALID_PLAYER_ID; } return 1; } //============================================================================== public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && Spec[i][SpectateID] == playerid && Spec[i][Spectating]) SetPlayerInterior(i,newinteriorid); return 1; } //============================================================================== public OnPlayerCommandText(playerid,cmdtext[]) { if(!IsPlayerConnected(playerid)) return 0; if(Variables[playerid][Jailed] && Config[DisableJailCommands]) return SendClientMessage(playerid,red,"You can NOT use any commands whilst you are jailed."); dcmd(register,8,cmdtext); dcmd(login,5,cmdtext); dcmd(logout,6,cmdtext); dcmd(goto,4,cmdtext); dcmd(gethere,7,cmdtext); dcmd(announce,8,cmdtext); dcmd(say,3,cmdtext); dcmd(flip,4,cmdtext); dcmd(slap,4,cmdtext); dcmd(wire,4,cmdtext); dcmd(unwire,6,cmdtext); dcmd(kick,4,cmdtext); dcmd(ban,3,cmdtext); dcmd(eject,5,cmdtext); dcmd(freeze,6,cmdtext); dcmd(unfreeze,8,cmdtext); dcmd(healall,7,cmdtext); dcmd(givehealth,10,cmdtext); dcmd(giveallweapon,13,cmdtext); dcmd(ejectall,8,cmdtext); dcmd(freezeall,9,cmdtext); dcmd(unfreezeall,11,cmdtext); dcmd(giveweapon,10,cmdtext); dcmd(setlevel,8,cmdtext); dcmd(setsm,5,cmdtext); dcmd(givecash,8,cmdtext); dcmd(giveallcash,11,cmdtext); dcmd(givearmour,10,cmdtext); dcmd(armourall,9,cmdtext); dcmd(explode,7,cmdtext); dcmd(setgravity,10,cmdtext); dcmd(carcolor,8,cmdtext); dcmd(gmx,3,cmdtext); dcmd(giveme,6,cmdtext); dcmd(givecar,7,cmdtext); dcmd(xspec,5,cmdtext); dcmd(setname,7,cmdtext); dcmd(xcommands,9,cmdtext); dcmd(vr,2,cmdtext); return 0; } //========================[REGISTRATION SYSTEM v2.1]============================ dcmd_register(playerid,params[]) { if(!strlen(params)) { new string[256]; format(string,256,"Syntax Error: \"/REGISTER \" [Password must be %d+].",Config[MinimumPasswordLength]); return SendClientMessage(playerid,red,string); } new index = 0,Password[256],string[256],PlayerFile[256]; Password = strtok(params,index); PlayerFile = GetPlayerFile(playerid); if(!(Variables[playerid][Registered] && Variables[playerid][LoggedIn])) { if(strlen(Password) >= Config[MinimumPasswordLength]) { format(string,sizeof(string),"You have registered your account with the password \"%s\" and automatically been logged in.",Password); SetUserInt(playerid,"Password",udb_hash(Password)); SetUserInt(playerid,"Registered",1); SetUserInt(playerid,"LoggedIn",1); Variables[playerid][LoggedIn] = true, Variables[playerid][Registered] = true; SendClientMessage(playerid,blue,string); new tmp3[100]; GetPlayerIp(playerid,tmp3,100); SetUserString(playerid,"IP",tmp3); OnPlayerRegister(playerid); } else SendClientMessage(playerid,red,"Syntax Error: \"/REGISTER \" [Password must be 3+]."); } else SendClientMessage(playerid,red,"Error: Make sure that you have not registered and are logged out."); return 1; } dcmd_login(playerid,params[]) { if(!strlen(params)) { SendClientMessage(playerid,red,"Syntax Error: \"/LOGIN \"."); return 1; } new index = 0; new Password[256], string[256]; Password = strtok(params,index); new PlayerFile[256]; PlayerFile = GetPlayerFile(playerid); if(Variables[playerid][Registered] && !Variables[playerid][LoggedIn]) { if(udb_hash(Password) == dini_Int(PlayerFile,"Password")) { switch(Variables[playerid][Level]) { case 0: format(string,sizeof(string),"You have logged into your account. [Status Level: Member]"); default: format(string,sizeof(string),"You have logged into your account. [Status Level: Administrator Lv. %d]",Variables[playerid][Level]); } SendClientMessage(playerid,blue,string); SetUserInt(playerid,"LoggedIn",1); Variables[playerid][LoggedIn] = true; new tmp3[100]; GetPlayerIp(playerid,tmp3,100); SetUserString(playerid,"IP",tmp3); OnPlayerLogin(playerid,true); } else { OnPlayerLogin(playerid,false); SendClientMessage(playerid,red,"Syntax Error: \"/LOGIN \"."); } } else SendClientMessage(playerid,red,"Error: You must be registered to log in; if you have make sure you haven't already logged in."); return 1; } dcmd_logout(playerid,params[]) { #pragma unused params new PlayerFile[256]; PlayerFile = GetPlayerFile(playerid); if(Variables[playerid][Registered] && Variables[playerid][LoggedIn]) { SendClientMessage(playerid,blue,"You have logged out of your account. You may log back in later by typing \"/LOGIN \"."); SetUserInt(playerid,"LoggedIn",0); Variables[playerid][LoggedIn] = false; OnPlayerLogout(playerid); } else SendClientMessage(playerid,red,"Error: You must be registered and logged into your account first."); return 1; } //======================[ADMINISTRATION SYSTEM v2.1]============================ dcmd_goto(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"goto")) { if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/GOTO \"."); new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) { SendCommandMessageToAdmins(playerid,"GOTO"); new string[256],PlayerName[24],ActionName[24],Float:X,Float:Y,Float:Z; GetPlayerName(playerid,PlayerName,24); GetPlayerName(id,ActionName,24); new Interior = GetPlayerInterior(id); SetPlayerInterior(playerid,Interior); SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(id)); GetPlayerPos(id,X,Y,Z); if(IsPlayerInAnyVehicle(playerid)) { SetVehiclePos(GetPlayerVehicleID(playerid),X+Config[TeleportXOffset],Y+Config[TeleportYOffset],Z+Config[TeleportZOffset]); LinkVehicleToInterior(GetPlayerVehicleID(playerid),Interior); } else SetPlayerPos(playerid,X+Config[TeleportXOffset],Y+Config[TeleportYOffset],Z+Config[TeleportZOffset]); format(string,256,"\"%s\" has teleported to your location.",PlayerName); SendClientMessage(id,yellow,string); format(string,256,"You have teleported to \"%s's\" location.",ActionName); return SendClientMessage(playerid,yellow,string); } else return SendClientMessage(playerid,red,"ERROR: You can not teleport to yourself or disconnected players."); } else return SendLevelErrorMessage(playerid,"goto"); } dcmd_gethere(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"gethere")) { if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/GETHERE \"."); new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) { SendCommandMessageToAdmins(playerid,"GETHERE"); new string[256],PlayerName[24],ActionName[24],Float:X,Float:Y,Float:Z; GetPlayerName(playerid,PlayerName,24); GetPlayerName(id,ActionName,24); new Interior = GetPlayerInterior(playerid); SetPlayerInterior(id,Interior); SetPlayerVirtualWorld(id,GetPlayerVirtualWorld(playerid)); GetPlayerPos(playerid,X,Y,Z); if(IsPlayerInAnyVehicle(id)) { SetVehiclePos(GetPlayerVehicleID(id),X+Config[TeleportXOffset],Y+Config[TeleportYOffset],Z+Config[TeleportZOffset]); LinkVehicleToInterior(GetPlayerVehicleID(id),Interior); } else SetPlayerPos(id,X+Config[TeleportXOffset],Y+Config[TeleportYOffset],Z+Config[TeleportZOffset]); format(string,256,"You have teleported \"%s\" to your location.",ActionName); SendClientMessage(playerid,yellow,string); format(string,256,"You have been teleported to \"%s's\" location.",PlayerName); return SendClientMessage(id,yellow,string); } else return SendClientMessage(playerid,red,"ERROR: You can not teleport yourself or a disconnected player."); } else return SendLevelErrorMessage(playerid,"gethere"); } dcmd_announce(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"announce")) { SendCommandMessageToAdmins(playerid,"ANNOUNCE"); if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/ANNOUNCE \"."); return GameTextForAll(params,4000,3); } else return SendLevelErrorMessage(playerid,"announce"); } dcmd_say(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"say")) { SendCommandMessageToAdmins(playerid,"SAY"); if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/SAY \"."); new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"** Admin %s: %s",name,params); return SendClientMessageToAll(pink,string); } else return SendLevelErrorMessage(playerid,"say"); } dcmd_flip(playerid,params[]) { #pragma unused params if(IsPlayerCommandLevel(playerid,"flip")) { if(IsPlayerInAnyVehicle(playerid)) { SendCommandMessageToAdmins(playerid,"FLIP"); new Float:X,Float:Y,Float:Z,Float:Angle,string[256],name[24]; GetPlayerName(playerid,name,24); GetVehiclePos(GetPlayerVehicleID(playerid),X,Y,Z); GetVehicleZAngle(GetPlayerVehicleID(playerid),Angle); SetVehiclePos(GetPlayerVehicleID(playerid),X,Y,Z+2); SetVehicleZAngle(GetPlayerVehicleID(playerid),Angle); format(string,256,"Admin Chat: Administrator \"%s\" has flipped their vehicle.",name); return SendMessageToAdmins(string); } else return SendClientMessage(playerid,red,"ERROR: You must be in a vehicle."); } else return SendLevelErrorMessage(playerid,"flip"); } dcmd_slap(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"slap")) { if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/SLAP \"."); new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) { SendCommandMessageToAdmins(playerid,"SLAP"); new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24); format(string,256,"Administrator \"%s\" has bitch-slapped \"%s\".",name,ActionName); SendClientMessageToAll(yellow,string); new Float:Health; GetPlayerHealth(id,Health); return SetPlayerHealth(id,Health-Config[SlapDecrement]); } else return SendClientMessage(playerid,red,"ERROR: You can not slap yourself or a disconnected player."); } else return SendLevelErrorMessage(playerid,"slap"); } dcmd_wire(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"wire")) { if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/WIRE ()\"."); new tmp[256],Index; tmp = strtok(params,Index); new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) { if(!Variables[id][Wired]) { SendCommandMessageToAdmins(playerid,"WIRE"); new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24); if(!strlen(params[strlen(tmp)+1])) format(string,256,"\"%s\" has been wired by Administrator \"%s\".",ActionName,name); else format(string,256,"\"%s\" has been wired by Administrator \"%s\". (Reason: %s)",ActionName,name,params[strlen(tmp)+1]); Variables[id][Wired] = true, Variables[id][WiredWarnings] = Config[WiredWarnings]; return SendClientMessageToAll(yellow,string); } else return SendClientMessage(playerid,red,"ERROR: This player has already been wired."); } else return SendClientMessage(playerid,red,"ERROR: You can not wire yourself or a disconnected player."); } else return SendLevelErrorMessage(playerid,"wire"); } dcmd_unwire(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"unwire")) { if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/UNWIRE \"."); new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) { if(Variables[id][Wired]) { SendCommandMessageToAdmins(playerid,"UNWIRE"); new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24); Variables[id][Wired] = false, Variables[id][WiredWarnings] = Config[WiredWarnings]; if(id != playerid) { format(string,256,"\"%s\" has been unwired by Administrator \"%s\".",ActionName,name); return SendClientMessageToAll(yellow,string); } else return SendClientMessage(playerid,yellow,"You have successfully unwired yourself."); } else return SendClientMessage(playerid,red,"ERROR: This player is not wired."); } else return SendClientMessage(playerid,red,"ERROR: You can not unwire a disconnected player."); } else return SendLevelErrorMessage(playerid,"unwire"); } dcmd_kick(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"kick")) { if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/KICK ()\"."); new tmp[256],Index; tmp = strtok(params,Index); new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) { SendCommandMessageToAdmins(playerid,"KICK"); new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24); if(!strlen(params[strlen(tmp)+1])) format(string,256,"\"%s\" has been Kicked from the game by Administrator \"%s\".",ActionName,name); else format(string,256,"\"%s\" has been Kicked from the game by Administrator \"%s\". (Reason: %s)",ActionName,name,params[strlen(tmp)+1]); SendClientMessageToAll(yellow,string); return Kick(id); } else return SendClientMessage(playerid,red,"ERROR: You can not kick yourself or a disconnected player."); } else return SendLevelErrorMessage(playerid,"kick"); } dcmd_ban(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"ban")) { if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/BAN ()\"."); new tmp[256],Index; tmp = strtok(params,Index); new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) { SendCommandMessageToAdmins(playerid,"BAN"); new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24); if(!strlen(params[strlen(tmp)+1])) format(string,256,"\"%s\" has been Banned by Administrator \"%s\".",ActionName,name); else format(string,256,"\"%s\" has been Banned by Administrator \"%s\". (Reason: %s)",ActionName,name,params[strlen(tmp)+1]); SendClientMessageToAll(yellow,string); return Ban(id); } else return SendClientMessage(playerid,red,"ERROR: You can not ban yourself or a disconnected player."); } else return SendLevelErrorMessage(playerid,"ban"); } dcmd_eject(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"eject")) { if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/EJECT \"."); new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) { if(IsPlayerInAnyVehicle(id)) { SendCommandMessageToAdmins(playerid,"EJECT"); new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24); RemovePlayerFromVehicle(id); if(id != playerid) { format(string,256,"You have been ejected from your vehicle by Administrator \"%s\".",name); SendClientMessage(id,yellow,string); format(string,256,"You have ejected Player \"%s\".",ActionName); return SendClientMessage(playerid,yellow,string); } else return SendClientMessage(playerid,yellow,"You have ejected yourself from your vehicle."); } else return SendClientMessage(playerid,red,"ERROR: This player must be in a vehicle."); } else return SendClientMessage(playerid,red,"ERROR: You can not eject a disconnected player."); } else return SendLevelErrorMessage(playerid,"eject"); } dcmd_freeze(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"freeze")) { if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/FREEZE \"."); new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) { SendCommandMessageToAdmins(playerid,"FREEZE"); new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24); TogglePlayerControllable(id,false); format(string,256,"Admin Chat: Admnistrator \"%s\" has frozen \"%s\".",name,ActionName); return SendMessageToAdmins(string); } else return SendClientMessage(playerid,red,"ERROR: You can not freeze yourself or a disconnected player."); } else return SendLevelErrorMessage(playerid,"freeze"); } dcmd_unfreeze(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"unfreeze")) { if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/UNFREEZE \"."); new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) { SendCommandMessageToAdmins(playerid,"UNFREEZE"); new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24); TogglePlayerControllable(id,true); format(string,256,"Admin Chat: Admnistrator \"%s\" has unfrozen \"%s\".",name,ActionName); if(id != playerid) return SendMessageToAdmins(string); else return SendClientMessage(playerid,yellow,"You have unfrozen yourself."); } else return SendClientMessage(playerid,red,"ERROR: You can not unfreeze a disconnected player."); } else return SendLevelErrorMessage(playerid,"unfreeze"); } dcmd_healall(playerid,params[]) { #pragma unused params if(IsPlayerCommandLevel(playerid,"healall")) { SendCommandMessageToAdmins(playerid,"HEALALL"); for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerHealth(i,100.0); new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Everyone has been healed by Administrator \"%s\".",name); return SendClientMessageToAll(yellow,string); } else return SendLevelErrorMessage(playerid,"healall"); } dcmd_setsm(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"setsm")) { SendCommandMessageToAdmins(playerid,"SETSM"); if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETSM \"."); dini_Set("/xadmin/Configuration/Configuration.ini","ServerMessage",params); new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Admin Chat: New Server Message: %s",params); SendMessageToAdmins(string); return 1; } else return SendLevelErrorMessage(playerid,"setsm"); } dcmd_givehealth(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"givehealth")) { new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) >= 1 && strval(tmp2) <= 100)) return SendClientMessage(playerid,red,"Syntax Error: \"/GIVEHEALTH <1-100>\"."); new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) { SendCommandMessageToAdmins(playerid,"GIVEHEALTH"); new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24); if(id != playerid) { format(string,256,"Administrator \"%s\" has given you %d percent health.",name,strval(tmp2)); SendClientMessage(id,yellow,string); format(string,256,"You have given \"%s\" %d percent health.",ActionName,strval(tmp2)); SendClientMessage(playerid,yellow,string); } else { format(string,256,"You have given yourself %d percent health.",strval(tmp2)); SendClientMessage(playerid,yellow,string); } new Float:Health; GetPlayerHealth(id,Health); return SetPlayerHealth(id,Health+strval(tmp2)); } return SendClientMessage(playerid,red,"ERROR: You can not give a disconnected player health."); } else return SendLevelErrorMessage(playerid,"givehealth"); } dcmd_giveallweapon(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"giveallweapon")) { new tmp[256], tmp2[256], Index; tmp = strtok(params,Index); tmp2 = strtok(params,Index); if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) <= 0 || strval(tmp2) <= 10000)) return SendClientMessage(playerid,red,"Syntax Error: \"/GIVEALLWEAPON <1-10,000>\"."); new id; if(!IsNumeric(tmp)) id = ReturnWeaponID(tmp); else id = strval(tmp); if(id == -1||id==19||id==20||id==21||id==0||id==44||id==45) return SendClientMessage(playerid,red,"ERROR: You have selected an invalid weapon ID."); SendCommandMessageToAdmins(playerid,"GIVEALLWEAPON"); new string[256],name[24],WeaponName[24]; GetWeaponName(id,WeaponName,24); if(id == 18) WeaponName = "Molotov"; GetPlayerName(playerid,name,24); for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) GivePlayerWeapon(i,id,strval(tmp2)); format(string,256,"Everyone has been given %d \'%s\' by Administrator \"%s\".",strval(tmp2),WeaponName,name); return SendClientMessageToAll(yellow,string); } else return SendLevelErrorMessage(playerid,"giveallweapon"); } dcmd_givecash(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"givecash")) { new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) >= 1 && strval(tmp2) <= 1000000)) return SendClientMessage(playerid,red,"Syntax Error: \"/GIVECASH <1 - 1,000,000>\"."); new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) { SendCommandMessageToAdmins(playerid,"GIVECASH"); new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24); if(id != playerid) { format(string,256,"Administrator \"%s\" has given you $%d.",name,strval(tmp2)); SendClientMessage(id,yellow,string); format(string,256,"You have given \"%s\" $%d.",ActionName,strval(tmp2)); SendClientMessage(playerid,yellow,string); } else { format(string,256,"You have given yourself $%d.",strval(tmp2)); SendClientMessage(playerid,yellow,string); } return GivePlayerMoney(id,strval(tmp2)); } return SendClientMessage(playerid,red,"ERROR: You can not give a disconnected player cash."); } else return SendLevelErrorMessage(playerid,"givecash"); } dcmd_giveallcash(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"giveallcash")) { if(!strlen(params)||!IsNumeric(params)||!(strval(params)>=0&&strval(params)<=1000000)) return SendClientMessage(playerid,red,"Syntax Error: \"/GIVEALLCASH <1 - 1,000,000>\"."); SendCommandMessageToAdmins(playerid,"GIVEALLCASH"); for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) GivePlayerMoney(i,strval(params)); new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Administrator \"%s\" has given every player $%d.",name,strval(params)); return SendClientMessage(playerid,yellow,string); } else return SendLevelErrorMessage(playerid,"giveallcash"); } dcmd_ejectall(playerid,params[]) { #pragma unused params if(IsPlayerCommandLevel(playerid,"ejectall")) { SendCommandMessageToAdmins(playerid,"EJECTALL"); for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) RemovePlayerFromVehicle(i); new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Administrator \"%s\" reseted ejected everyone from their vehicle.",name); return SendClientMessage(playerid,yellow,string); } else return SendLevelErrorMessage(playerid,"ejectall"); } dcmd_freezeall(playerid,params[]) { #pragma unused params if(IsPlayerCommandLevel(playerid,"freezeall")) { SendCommandMessageToAdmins(playerid,"FREEZEALL"); for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) TogglePlayerControllable(i,false); new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Administrator \"%s\" frozen everyone.",name); return SendClientMessage(playerid,yellow,string); } else return SendLevelErrorMessage(playerid,"freezeall"); } dcmd_unfreezeall(playerid,params[]) { #pragma unused params if(IsPlayerCommandLevel(playerid,"unfreezeall")) { SendCommandMessageToAdmins(playerid,"UNFREEZEALL"); for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) TogglePlayerControllable(i,true); new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Administrator \"%s\" unfrozen everyone.",name); return SendClientMessage(playerid,yellow,string); } else return SendLevelErrorMessage(playerid,"unfreezeall"); } dcmd_giveweapon(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"giveweapon")) { new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index),tmp2 = strtok(params,Index),tmp3 = strtok(params,Index); if(!strlen(tmp)||!strlen(tmp2)||!strlen(tmp3)||!IsNumeric(tmp3)||!(strval(tmp3) <= 0 || strval(tmp3) <= 10000)) return SendClientMessage(playerid,red,"Syntax Error: \"/GIVEWEAPON <1-10,000>\"."); new id,id2; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp); if(!IsNumeric(tmp2)) id2 = ReturnWeaponID(tmp2); else id2 = strval(tmp2); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) { if(id2==-1||id2==19||id2==20||id2==21||id2==0||id2==44||id2==45) return SendClientMessage(playerid,red,"ERROR: You have selected an invalid weapon ID."); SendCommandMessageToAdmins(playerid,"GIVEWEAPON"); new string[256],name[24],ActionName[24],WeaponName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24); GetWeaponName(id2,WeaponName,24); if(id2 == 18) WeaponName = "Molotov"; if(id != playerid) { format(string,256,"Administrator \"%s\" has given you %d %s.",name,strval(tmp3),WeaponName); SendClientMessage(id,yellow,string); format(string,256,"You have given \"%s\" %d %s.",ActionName,strval(tmp3),WeaponName); SendClientMessage(playerid,yellow,string); } else { format(string,256,"You have given yourself %d %s.",strval(tmp3),WeaponName); SendClientMessage(playerid,yellow,string); } return GivePlayerWeapon(id,id2,strval(tmp3)); } else return SendClientMessage(playerid,red,"ERROR: You can not give a disconnected player a weapon."); } else return SendLevelErrorMessage(playerid,"giveweapon"); } dcmd_setlevel(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"setlevel")) { new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) >= 0 && strval(tmp2) <= Config[MaxLevel])) { new string[256]; format(string,256,"Syntax Error: \"SETLEVEL <0 - %d>\".",Config[MaxLevel]); return SendClientMessage(playerid,red,string); } new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) { if(Variables[id][Level] == strval(tmp2)) return SendClientMessage(playerid,red,"ERROR: That player is already that level."); new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24); SendCommandMessageToAdmins(playerid,"SETLEVEL"); format(string,256,"Administrator \"%s\" has %s you to %s [%d].",name,((strval(tmp2) >= Variables[id][Level])?("promoted"):("demoted")),((strval(tmp2))?("Administrator"):("Member Status")),strval(tmp2)); SendClientMessage(id,yellow,string); format(string,256,"You have %s \"%s\" to %s [%d].",((strval(tmp2) >= Variables[id][Level])?("promoted"):("demoted")),ActionName,((strval(tmp2))?("Administrator"):("Member Status")),strval(tmp2)); SendClientMessage(playerid,yellow,string); Variables[id][Level] = strval(tmp2); return SetUserInt(id,"Level",strval(tmp2)); } return SendClientMessage(playerid,red,"ERROR: You can not set set your or a disconnected player's level."); } else return SendLevelErrorMessage(playerid,"setlevel"); } dcmd_givearmour(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"givearmour")) { new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) >= 1 && strval(tmp2) <= 100)) return SendClientMessage(playerid,red,"Syntax Error: \"/GIVEARMOUR <1-100>\"."); new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) { SendCommandMessageToAdmins(playerid,"GIVEARMOUR"); new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24); if(id != playerid) { format(string,256,"Administrator \"%s\" has given you %d armour.",name,strval(tmp2)); SendClientMessage(id,yellow,string); format(string,256,"You have given \"%s\" %d armour.",ActionName,strval(tmp2)); SendClientMessage(playerid,yellow,string); } else { format(string,256,"You have given yourself %d armour.",strval(tmp2)); SendClientMessage(playerid,yellow,string); } new Float:Armour; GetPlayerArmour(id,Armour); return SetPlayerArmour(id,Armour+strval(tmp2)); } return SendClientMessage(playerid,red,"ERROR: You can not give a disconnected player armour."); } else return SendLevelErrorMessage(playerid,"givearmour"); } dcmd_armourall(playerid,params[]) { #pragma unused params if(IsPlayerCommandLevel(playerid,"armourall")) { SendCommandMessageToAdmins(playerid,"ARMOURALL"); for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerArmour(i,100.0); new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Everyone's armour has been restored by Administrator \"%s\".",name); return SendClientMessageToAll(yellow,string); } else return SendLevelErrorMessage(playerid,"armourall"); } dcmd_explode(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"explode")) { if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/EXPLODE \"."); new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) { SendCommandMessageToAdmins(playerid,"EXPLODE"); new string[256],name[24],ActionName[24],Float:X,Float:Y,Float:Z; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24); if(!IsPlayerInAnyVehicle(id)) GetPlayerPos(id,X,Y,Z); else GetVehiclePos(GetPlayerVehicleID(id),X,Y,Z); for(new i = 1; i <= 5; i++) CreateExplosion(X,Y,Z,10,0); if(id != playerid) { format(string,256,"You have been exploded by Administrator \"%s\".",name); SendClientMessage(id,yellow,string); format(string,256,"You have exploded Player \"%s\".",ActionName); return SendClientMessage(playerid,yellow,string); } else return SendClientMessage(playerid,yellow,"You have exploded yourself."); } else return SendClientMessage(playerid,red,"ERROR: You can not explode a disconnected player."); } else return SendLevelErrorMessage(playerid,"explode"); } dcmd_setgravity(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"setgravity")) { if(!strlen(params)||!(strval(params)<=50&&strval(params)>=-50)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETGRAVITY <-50.0 - 50.0>\"."); SendCommandMessageToAdmins(playerid,"SETGRAVITY"); new string[256],name[24]; GetPlayerName(playerid,name,24); new Float:Gravity = floatstr(params);format(string,256,"Admnistrator \"%s\" has set the gravity to: \'%f\'.",name,Gravity); SetGravity(Gravity); return SendClientMessageToAll(yellow,string); } else return SendLevelErrorMessage(playerid,"setgravity"); } dcmd_carcolor(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"carcolor")) { new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); if(!strlen(tmp)||!(strval(tmp) >= 0 && strval(tmp) <= 126)||!IsNumeric(tmp)||!IsNumeric(tmp2)) return SendClientMessage(playerid,red,"Syntax Error: \"/CARCOLOR ()\"."); if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,red,"ERROR: You must be in a vehicle."); SendCommandMessageToAdmins(playerid,"CARCOLOR"); if(!strlen(tmp2)) tmp2 = tmp; new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"You have set your color data to: [Color 1: %d || Color 2: %d]",strval(tmp),strval(tmp2)); return ChangeVehicleColor(GetPlayerVehicleID(playerid),strval(tmp),strval(tmp2)); } else return SendLevelErrorMessage(playerid,"carcolor"); } dcmd_gmx(playerid,params[]) { #pragma unused params if(IsPlayerCommandLevel(playerid,"gmx")) { SendCommandMessageToAdmins(playerid,"GMX"); new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Administrator \"%s\" has restarted the game mode.",name); SendClientMessageToAll(yellow,string); return GameModeExit(); } else return SendLevelErrorMessage(playerid,"gmx"); } dcmd_giveme(playerid,params[]) { #pragma unused params if(IsPlayerCommandLevel(playerid,"giveme")) { if(Spec[playerid][Spectating]) return SendClientMessage(playerid,red,"ERROR: You must not be spectating."); if(!IsPlayerInAnyVehicle(playerid)) { TogglePlayerControllable(playerid,false); SetCameraBehindPlayer(playerid); return ShowMenuForPlayer(GiveMe,playerid); } else return SendClientMessage(playerid,red,"ERROR: You can not be in a vehicle."); } else return SendLevelErrorMessage(playerid,"giveme"); } dcmd_givecar(playerid,params[]) { #pragma unused params if(IsPlayerCommandLevel(playerid,"givecar")) { if(Spec[playerid][Spectating]) return SendClientMessage(playerid,red,"ERROR: You must not be spectating."); if(IsPlayerInAnyVehicle(playerid)) { new Car = GetPlayerVehicleID(playerid), Model = GetVehicleModel(Car); switch(Model) { case 448,461,462,463,468,471,509,510,521,522,523,581,586: return SendClientMessage(playerid,red,"ERROR: You can not add components to bikes!"); } TogglePlayerControllable(playerid,false); SetCameraBehindPlayer(playerid); return ShowMenuForPlayer(GiveCar,playerid); } else return SendClientMessage(playerid,red,"ERROR: You must be in a vehicle."); } else return SendLevelErrorMessage(playerid,"givecar"); } dcmd_xspec(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"xspec")) { if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/XSPEC \"."); new id; if(!IsNumeric(params)) { if(!strcmp(params,"off",true)) { if(!Spec[playerid][Spectating]) return SendClientMessage(playerid,red,"ERROR: You must be spectating."); SendCommandMessageToAdmins(playerid,"XSPEC"); TogglePlayerSpectating(playerid,false); Spec[playerid][Spectating] = false; return SendClientMessage(playerid,yellow,"You have turned your spectator mode off."); } id = ReturnPlayerID(params); } else id = strval(params); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) { SendCommandMessageToAdmins(playerid,"SPEC"); new string[256],name[24]; GetPlayerName(id,name,24); if(Spec[id][Spectating]) return SendClientMessage(playerid,red,"Error: You can not spectate a player already spectating."); if(Spec[playerid][Spectating] && Spec[playerid][SpectateID] == id) return SendClientMessage(playerid,red,"ERROR: You are already spectating this player."); Spec[playerid][Spectating] = true, Spec[playerid][SpectateID] = id; SetPlayerInterior(playerid,GetPlayerInterior(id)); TogglePlayerSpectating(playerid,true); if(!IsPlayerInAnyVehicle(id)) PlayerSpectatePlayer(playerid,id); else PlayerSpectateVehicle(playerid,GetPlayerVehicleID(id)); format(string,256,"You are now spectating player \"%s\".",name); return SendClientMessage(playerid,yellow,string); } else return SendClientMessage(playerid,red,"ERROR: You can not spectate yourself or a disconnected player."); } else return SendLevelErrorMessage(playerid,"spec"); } dcmd_setname(playerid,params[]) { if(IsPlayerCommandLevel(playerid,"setname")) { new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); if(!strlen(tmp)||!strlen(tmp2)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETNAME \"."); new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp); if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) { SendCommandMessageToAdmins(playerid,"SETNAME"); new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24); if(id != playerid) { format(string,256,"Administrator \"%s\" has set your name to %s.",name,tmp2); SendClientMessage(id,yellow,string); format(string,256,"You have set \"%s's\" name to %s.",ActionName,tmp2); SendClientMessage(playerid,yellow,string); } else { format(string,256,"You've set your name to %s.",tmp2); SendClientMessage(playerid,yellow,string); } OnPlayerConnect(id); return SetPlayerName(id,tmp2); } return SendClientMessage(playerid,red,"ERROR: You can not set a disconnected player's name."); } else return SendLevelErrorMessage(playerid,"setname"); } dcmd_xcommands(playerid,params[]) { #pragma unused params if(!IsPlayerXAdmin(playerid)) return SendClientMessage(playerid,red,"ERROR: You must be an administrator to view these commands."); SendClientMessage(playerid,yellow,"morning,afternoon,evening,midnight,settime,goto,gethere,announce,say,flip,slap,(un)wire,kick,ban"); SendClientMessage(playerid,yellow,"akill,eject(all),(un)freeze(all),outside,healall,uconfig,setsm,givehealth,sethealth,skinall,armourall"); SendClientMessage(playerid,yellow,"resetallweapons,set/give/rem/reset(all)cash,god,resetscores,setlevel,setskin,givearmour,setarmour"); SendClientMessage(playerid,yellow,"setammo,setscore,ip,ping,explode,setname,setalltime,force,set(all)world,setgravity,set(all)wanted"); return SendClientMessage(playerid,yellow,"carcolor,give(all)weapon,x(unlock),gmx,carhealth,setping,giveme,givecar,xspec,xcommands"); } dcmd_vr(playerid,params[]) { #pragma unused params if(IsPlayerCommandLevel(playerid,"vr")) { if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,red,"GZM no in voertuig harrie."); SetVehicleHealth(GetPlayerVehicleID(playerid),1000.0); return SendClientMessage(playerid,yellow,"gerepareerd harremans!"); } else return SendLevelErrorMessage(playerid,"vr"); } //========================[WIRE Text Event]===================================== public OnPlayerText(playerid,text[]) { if(text[0] == '#' && IsPlayerXAdmin(playerid)) { new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Admin %s: %s",name,text[1]); SendMessageToAdmins(string); return 0; } if(Variables[playerid][Wired]) { Variables[playerid][WiredWarnings]--; new string[256],Name[24]; if(Variables[playerid][WiredWarnings]) { format(string,256,"You have been wired thus preventing you from talking. [Warnings: %d/%d]",Variables[playerid][WiredWarnings],Config[WiredWarnings]); SendClientMessage(playerid,white,string); return 0; } else { GetPlayerName(playerid,Name,24); format(string,256,"%s has been kicked from the server. [REASON: Wired]",Name); SendClientMessageToAll(yellow,string); SetUserInt(playerid,"Wired",0); Kick(playerid); return 0; } } return 1; } //============================================================================== public OnPlayerExitVehicle(playerid, vehicleid) { if(VehicleLockData[vehicleid]) { VehicleLockData[vehicleid] = false; for(new i = 0; i < MAX_PLAYERS; i++) SetVehicleParamsForPlayer(vehicleid,i,false,false); } for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && Spec[i][SpectateID] == playerid && Spec[i][Spectating]) { TogglePlayerSpectating(i,false); SetPlayerInterior(i,GetPlayerInterior(playerid)); TogglePlayerSpectating(i,true); PlayerSpectatePlayer(i,playerid); } return 1; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger){ #pragma unused ispassenger for(new i = 0; i < MAX_PLAYERS; i++) if(Spec[i][SpectateID] == playerid && Spec[i][Spectating]) { TogglePlayerSpectating(i,false); SetPlayerInterior(i,GetPlayerInterior(playerid)); TogglePlayerSpectating(i,true); PlayerSpectateVehicle(i,vehicleid); } return 1; } //============================================================================== public OnPlayerSelectedMenuRow(playerid, row) { new Menu:Current = GetPlayerMenu(playerid); if(Current == GiveMe) { new car[20],Float:X,Float:Y,Float:Z,Float:Angle,id,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle); switch(row) { case 0: car = "Infernus", id = 411; case 1: car = "NRG500", id = 522; case 2: car = "Monster Truck", id = 444; case 3: car = "Packer", id = 443; case 4: car = "Mountain Bike", id = 510; case 5: car = "FBI Rancher", id = 490; case 6: car = "Cheetah", id = 415; case 7: car = "Premier", id = 426; case 8: car = "Hotring", id = 494; case 9: car = "Seasparrow", id = 447; case 10: car = "Vortex", id = 539; case 11: car = "Hydra", id = 520; case 12: car = "Hunter", id = 425; case 13: car = "Quad", id = 471; } SendCommandMessageToAdmins(playerid,"GIVEME"); new string[256]; format(string,sizeof(string),"You have selected \'%s\'.",car); SendClientMessage(playerid,yellow,string); carid = CreateVehicle(id,X,Y,Z,Angle,-1,-1,50000); PutPlayerInVehicle(playerid,carid,0); TogglePlayerControllable(playerid,true); if(GetPlayerInterior(playerid)) LinkVehicleToInterior(carid,GetPlayerInterior(playerid)); SetVehicleVirtualWorld(carid,GetPlayerVirtualWorld(playerid)); } if(Current == GiveCar) { new Component[20],id,carid; switch(row) { case 0: Component = "Nitrous x10", id = 1010; case 1: Component = "Hydraulics", id = 1087; case 2: Component = "Grove Wheels", id = 1081; case 3: Component = "Twist Wheels", id = 1078; case 4: Component = "Wire Wheels", id = 1076; } SendCommandMessageToAdmins(playerid,"GIVECAR"); new string[256]; format(string,sizeof(string),"You have selected \'%s\'.",Component); SendClientMessage(playerid,yellow,string); TogglePlayerControllable(playerid,true); carid = GetPlayerVehicleID(playerid); AddVehicleComponent(carid,id); } return 1; } //============================================================================== public OnPlayerExitedMenu(playerid) { new Menu:Current = GetPlayerMenu(playerid); HideMenuForPlayer(Current,playerid); return TogglePlayerControllable(playerid,true); } //============================================================================== public PingKick() { if(Config[MaxPing]) { for(new i = 0,string[256],name[24]; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && (GetPlayerPing(i) > Config[MaxPing])) { if(!IsPlayerXAdmin(i) || (IsPlayerXAdmin(i) && !Config[AdminImmunity])) { GetPlayerName(i,name,24); format(string,256,"\"%s\" has been kicked from the server. (Reason: High Ping || Max Allowed: %d)",name,Config[MaxPing]); SendClientMessageToAll(yellow,string); Kick(i); } } } }