Guest User

Untitled

a guest
Nov 21st, 2011
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 90.74 KB | None | 0 0
  1. /********************************************
  2. * Xtreme Administration Filterscript *
  3. * Programmers: Xtreme *
  4. * Creation Date: 07/13/2007 *
  5. * Compatibility: SA:MP 0.2.2 r2 *
  6. * Version: 2.2 || Release: 0 *
  7. *******************************************/
  8.  
  9. #include <a_samp>
  10. #include "xadmin/XtremeAdmin.inc"
  11.  
  12. #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
  13. #define GetStringArg(%1,%2) for(new x = 0; getarg(%1,x) != '\0'; x++) %2[x] = getarg(%1,x)
  14.  
  15. #define yellow 0xFFFF00AA
  16. #define green 0x33FF33AA
  17. #define red 0xFF0000AA
  18. #define white 0xFFFFFFAA
  19. #define pink 0xCCFF00FFAA
  20. #define blue 0x00FFFFAA
  21. #define grey 0xC0C0C0AA
  22.  
  23. static VehicleLockData[MAX_VEHICLES] = false, Menu:GiveMe, Menu:GiveCar, Menu:Weather,ServerWeather = 0; forward PingKick();
  24. //==============================================================================
  25. public OnFilterScriptInit() {
  26. print("Welcome to the Xtreme Administration Filterscript v2.1");
  27. print("Checking / creating server configuration...");
  28. //Check if all configuration files are present.
  29. if(!dini_Exists("/xadmin/Configuration/Configuration.ini")) {
  30. dini_Create("/xadmin/Configuration/Configuration.ini");
  31. dini_Set("/xadmin/Configuration/Configuration.ini","ServerMessage","None");
  32. }
  33. print("Creating user file variables configuration...");
  34. // Create the variables to be stored in each user's file.
  35. CreateLevelConfig(
  36. "IP","Registered","Level","Cash","Kills","Deaths","Password","Wired",
  37. "WiredWarnings","Jailed"
  38. );
  39. // Create Level Config in pattern 'command name, level, command name, level (case is not sensitive):
  40. print("Creating command level configuration...");
  41. CreateCommandConfig(
  42. // Time Commands
  43. "morning",1,"afternoon",1,"evening",1,"midnight",1,"settime",1,
  44. // Miscellaneous Commands
  45. "goto",5,"gethere",8,"announce",3,"say",1,"flip",1,"slap",6,"wire",8,"unwire",5,"kick",6,
  46. "ban",9,"akill",7,"eject",6,"freeze",8,"unfreeze",6,"outside",8,"healall",5,"uconfig",1,
  47. "setsm",3,"givehealth",6,"sethealth",6,"skinall",9,"giveallweapon",7,"resetallweapons",10,
  48. "setcash",7,"givecash",7,"remcash",7,"resetcash",7,"setallcash",10,"giveallcash",10,"remallcash",
  49. 10,"resetallcash",10,"ejectall",8,"freezeall",10,"unfreezeall",10,"giveweapon",4,"god",10,
  50. "resetscores",7,"setlevel",10,"setskin",7,"givearmour",5,"setarmour",5,"armourall",5,
  51. "setammo",5,"setscore",8,"ip",1,"ping",1,"explode",5,"setname",10,"setalltime",10,
  52. "force",4,"setallworld",5,"setworld",2,"setgravity",4,"setwanted",6,"setallwanted",7
  53. );
  54. CreateCommandConfigEx(
  55. "xlock",1,"xunlock",1,"carcolor",1,"gmx",10,"carhealth",5,"setping",5,
  56. "giveme",6,"givecar",7,"xspec",4,"xjail",7,"xunjail",3,"vr",0,"weather",5
  57. );
  58. print("Creating Forbidden Names...");
  59. // Add the names to prevent from connecting to your server in the following format:
  60. CreateForbiddenNames("shit","fuck","crap","hax","hacker"
  61. );
  62. print("Creating main configuration files...");
  63. UpdateConfigurationVariables();
  64. print("Initializing Menus...");
  65. // Giveme Menu
  66. GiveMe = CreateMenu("~g~Giveme ~w~Administration",1,125,150,300);
  67. if(IsValidMenu(GiveMe)) {
  68. SetMenuColumnHeader(GiveMe, 0, "Select a car to give yourself:");
  69. AddMenuItem(GiveMe,0,"Infernus");
  70. AddMenuItem(GiveMe,0,"NRG500");
  71. AddMenuItem(GiveMe,0,"Monster Truck");
  72. AddMenuItem(GiveMe,0,"Packer");
  73. AddMenuItem(GiveMe,0,"RC Car");
  74. AddMenuItem(GiveMe,0,"Rancher");
  75. AddMenuItem(GiveMe,0,"Roadtrain");
  76. AddMenuItem(GiveMe,0,"Dumper");
  77. AddMenuItem(GiveMe,0,"Sultan");
  78. AddMenuItem(GiveMe,0,"Maverick");
  79. AddMenuItem(GiveMe,0,"Vortex");
  80. AddMenuItem(GiveMe,0,"Hydra");
  81. }
  82.  
  83. GiveCar = CreateMenu("~b~Givecar ~w~Administration",1,125,150,300);
  84. if(IsValidMenu(GiveCar)) {
  85. SetMenuColumnHeader(GiveCar , 0, "Select a car component to add:");
  86. AddMenuItem(GiveCar ,0,"Nitrous x10");
  87. AddMenuItem(GiveCar ,0,"Hydraulics");
  88. AddMenuItem(GiveCar ,0,"Offroad Wheel");
  89. AddMenuItem(GiveCar ,0,"Wire Wheels");
  90. }
  91.  
  92. Weather = CreateMenu("~r~Weather ~w~Administration",1,125,150,300);
  93. if(IsValidMenu(GiveCar)) {
  94. SetMenuColumnHeader(GiveCar , 0, "Select a car component to add:");
  95. AddMenuItem(Weather,0,"Sunny");
  96. AddMenuItem(Weather,0,"Cloudy");
  97. AddMenuItem(Weather,0,"Thunderstorm");
  98. AddMenuItem(Weather,0,"Foggy");
  99. AddMenuItem(Weather,0,"Scorching Hot");
  100. AddMenuItem(Weather,0,"Sandstorm");
  101. AddMenuItem(Weather,0,"Polluted");
  102. }
  103. print("Complete.");
  104. SetTimer("PingKick",Config[PingSecondUpdate]*1000,true);
  105. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) OnPlayerConnect(i);
  106. return 1;
  107. }
  108. //==============================================================================
  109. public OnPlayerConnect(playerid) {
  110. new string[256],PlayerName[24],file[256]; file = GetPlayerFile(playerid);
  111. GetPlayerName(playerid,PlayerName,24); if(!dini_Exists(file)) CreateUserConfigFile(playerid);
  112. for(new i = 0; i < 100; i++) {
  113. if(strfind(PlayerName,ForbidNames[i],true)!=-1 && Config[ForbidData]) {
  114. switch(Config[ForbidData]) { case 1: Kick(playerid); case 2: Ban(playerid); }
  115. return 1;
  116. }
  117. }
  118. if(Config[DisplayServerMessage]) { format(string,sizeof(string),"Server Message: %s",dini_Get("/xadmin/Configuration/Configuration.ini","ServerMessage")); SendClientMessage(playerid,green,string); }
  119. Variables[playerid][Registered] = GetPlayerFileVar(playerid,"Registered"),
  120. Variables[playerid][Level] = GetPlayerFileVar(playerid,"Level");
  121. Variables[playerid][Wired] = GetPlayerFileVar(playerid,"Wired");
  122. Variables[playerid][Jailed] = GetPlayerFileVar(playerid,"Jailed");
  123. if(Variables[playerid][Wired]) SetUserInt(playerid,"WiredWarnings",Config[WiredWarnings]);
  124. if(Variables[playerid][Level] > Config[MaxLevel]) { Variables[playerid][Level] = Config[MaxLevel]; SetUserInt(playerid,"Level",Config[MaxLevel]); }
  125. if(!Variables[playerid][Registered]) format(string,256,"Welcome, %s. To register an account to this server, type \"/REGISTER <PASSWORD>\".",PlayerName);
  126. else {
  127. new tmp[50],tmp2[256]; GetPlayerIp(playerid,tmp,50); tmp2 = dini_Get(file,"IP");
  128. if(!strcmp(tmp,tmp2,true)) {
  129. format(string,256,"Welcome back, %s. You have automatically been logged in.",PlayerName);
  130. Variables[playerid][LoggedIn] = true;
  131. }
  132. else {
  133. format(string,256,"Welcome back, %s. To log back into your account, type \"/LOGIN <PASSWORD>\".",PlayerName);
  134. Variables[playerid][LoggedIn] = false;
  135. }
  136. }
  137. SendClientMessage(playerid,yellow,string);
  138. for(new i = 0; i < MAX_VEHICLES; i++) if(VehicleLockData[i]) SetVehicleParamsForPlayer(i,playerid,false,true);
  139. if(Config[DisplayConnectMessages]) { format(string,256,"*** %s has joined the server.",PlayerName); for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && playerid != i) SendClientMessage(i,grey,string); }
  140. return 1;
  141. }
  142. //==============================================================================
  143. public OnPlayerSpawn(playerid) {
  144. if(Variables[playerid][Jailed]) { SetPlayerInterior(playerid,3); SetPlayerPos(playerid,197.6661,173.8179,1003.0234); SetPlayerFacingAngle(playerid,0); }
  145. return 1;
  146. }
  147. //==============================================================================
  148. public OnPlayerDisconnect(playerid,reason) {
  149. new Reason[256],string[256],name[24]; GetPlayerName(playerid,name,24);
  150. switch(reason) { case 0: Reason = "Timed Out"; case 1: Reason = "Leaving"; case 2: Reason = "Kick/Ban"; }
  151. format(string,256,"*** %s has left the server. (%s)",name,Reason);
  152. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && i != playerid) SendClientMessage(i,grey,string);
  153. 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; }
  154. return 1;
  155. }
  156. //==============================================================================
  157. public OnPlayerDeath(playerid,killerid,reason) {
  158. #pragma unused killerid
  159. #pragma unused reason
  160. 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; }
  161. return 1;
  162. }
  163. //==============================================================================
  164. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) {
  165. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && Spec[i][SpectateID] == playerid && Spec[i][Spectating]) SetPlayerInterior(i,newinteriorid);
  166. return 1;
  167. }
  168. //==============================================================================
  169. public OnPlayerCommandText(playerid,cmdtext[]) {
  170. if(!IsPlayerConnected(playerid)) return 0;
  171. if(Variables[playerid][Jailed] && Config[DisableJailCommands]) return SendClientMessage(playerid,red,"You can NOT use any commands whilst you are jailed.");
  172. dcmd(register,8,cmdtext);
  173. dcmd(login,5,cmdtext);
  174. dcmd(logout,6,cmdtext);
  175. dcmd(goto,4,cmdtext);
  176. dcmd(gethere,7,cmdtext);
  177. dcmd(announce,8,cmdtext);
  178. dcmd(say,3,cmdtext);
  179. dcmd(flip,4,cmdtext);
  180. dcmd(serverinfo,10,cmdtext);
  181. dcmd(slap,4,cmdtext);
  182. dcmd(wire,4,cmdtext);
  183. dcmd(unwire,6,cmdtext);
  184. dcmd(kick,4,cmdtext);
  185. dcmd(ban,3,cmdtext);
  186. dcmd(akill,5,cmdtext);
  187. dcmd(eject,5,cmdtext);
  188. dcmd(freeze,6,cmdtext);
  189. dcmd(unfreeze,8,cmdtext);
  190. dcmd(outside,7,cmdtext);
  191. dcmd(healall,7,cmdtext);
  192. dcmd(givehealth,10,cmdtext);
  193. dcmd(sethealth,9,cmdtext);
  194. dcmd(skinall,7,cmdtext);
  195. dcmd(giveallweapon,13,cmdtext);
  196. dcmd(resetallweapons,15,cmdtext);
  197. dcmd(ejectall,8,cmdtext);
  198. dcmd(freezeall,9,cmdtext);
  199. dcmd(unfreezeall,11,cmdtext);
  200. dcmd(giveweapon,10,cmdtext);
  201. dcmd(god,3,cmdtext);
  202. dcmd(resetscores,11,cmdtext);
  203. dcmd(setlevel,8,cmdtext);
  204. dcmd(setskin,7,cmdtext);
  205. dcmd(midnight,8,cmdtext);
  206. dcmd(morning,7,cmdtext);
  207. dcmd(noon,4,cmdtext);
  208. dcmd(evening,7,cmdtext);
  209. dcmd(uconfig,7,cmdtext);
  210. dcmd(sm,2,cmdtext);
  211. dcmd(setsm,5,cmdtext);
  212. dcmd(setcash,7,cmdtext);
  213. dcmd(givecash,8,cmdtext);
  214. dcmd(remcash,7,cmdtext);
  215. dcmd(resetcash,9,cmdtext);
  216. dcmd(setallcash,10,cmdtext);
  217. dcmd(giveallcash,11,cmdtext);
  218. dcmd(remallcash,10,cmdtext);
  219. dcmd(resetallcash,12,cmdtext);
  220. dcmd(givearmour,10,cmdtext);
  221. dcmd(setarmour,9,cmdtext);
  222. dcmd(armourall,9,cmdtext);
  223. dcmd(setammo,7,cmdtext);
  224. dcmd(setscore,8,cmdtext);
  225. dcmd(ip,2,cmdtext);
  226. dcmd(ping,4,cmdtext);
  227. dcmd(explode,7,cmdtext);
  228. dcmd(settime,7,cmdtext);
  229. dcmd(setalltime,10,cmdtext);
  230. dcmd(force,5,cmdtext);
  231. dcmd(setwanted,9,cmdtext);
  232. dcmd(setallwanted,12,cmdtext);
  233. dcmd(setworld,8,cmdtext);
  234. dcmd(setallworld,11,cmdtext);
  235. dcmd(setgravity,10,cmdtext);
  236. dcmd(xlock,5,cmdtext);
  237. dcmd(xunlock,7,cmdtext);
  238. dcmd(carcolor,8,cmdtext);
  239. dcmd(gmx,3,cmdtext);
  240. dcmd(carhealth,9,cmdtext);
  241. dcmd(xinfo,5,cmdtext);
  242. dcmd(setping,7,cmdtext);
  243. dcmd(giveme,6,cmdtext);
  244. dcmd(givecar,7,cmdtext);
  245. dcmd(xspec,5,cmdtext);
  246. dcmd(xjail,5,cmdtext);
  247. dcmd(xunjail,7,cmdtext);
  248. dcmd(setname,7,cmdtext);
  249. dcmd(admins,6,cmdtext);
  250. dcmd(xcommands,9,cmdtext);
  251. dcmd(vr,2,cmdtext);
  252. dcmd(weather,7,cmdtext);
  253. return 0;
  254. }
  255. //========================[REGISTRATION SYSTEM v2.1]============================
  256. dcmd_register(playerid,params[]) {
  257. if(!strlen(params)) { new string[256]; format(string,256,"Syntax Error: \"/REGISTER <PASSWORD>\" [Password must be %d+].",Config[MinimumPasswordLength]); return SendClientMessage(playerid,red,string); }
  258. new index = 0,Password[256],string[256],PlayerFile[256]; Password = strtok(params,index); PlayerFile = GetPlayerFile(playerid);
  259. new filename[256];
  260. new pname[256];
  261. GetPlayerName(playerid, pname, 24);
  262. format(filename, 256, "/xadmin/Users/%s.ini", udb_encode(pname));
  263. //This is the name check-up
  264. if(dini_Int(filename, "Registered") == 1)return SendClientMessage(playerid, red, "Error: That playername is already registered. Try another one");
  265. if(!(Variables[playerid][Registered] && Variables[playerid][LoggedIn])) {
  266. if(strlen(Password) >= Config[MinimumPasswordLength]) {
  267. format(string,sizeof(string),"You have registered your account with the password \"%s\" and automatically been logged in.",Password);
  268. SetUserInt(playerid,"Password",udb_hash(Password));
  269. SetUserInt(playerid,"Registered",1);
  270. SetUserInt(playerid,"LoggedIn",1);
  271. Variables[playerid][LoggedIn] = true, Variables[playerid][Registered] = true;
  272. SendClientMessage(playerid,blue,string);
  273. SetUserInt(playerid,"Level", 0);
  274. GivePlayerMoney(playerid, 10000);
  275. new tmp3[100]; GetPlayerIp(playerid,tmp3,100); SetUserString(playerid,"IP",tmp3); OnPlayerRegister(playerid);
  276. } else SendClientMessage(playerid,red,"Syntax Error: \"/REGISTER <PASSWORD>\" [Password must be 3+].");
  277. } else SendClientMessage(playerid,red,"Error: Make sure that you have not registered and are logged out.");
  278. return 1;
  279. }
  280. dcmd_login(playerid,params[]) {
  281. if(!strlen(params)) { SendClientMessage(playerid,red,"Syntax Error: \"/LOGIN <PASSWORD>\"."); return 1; }
  282. new index = 0;
  283. new Password[256], string[256]; Password = strtok(params,index);
  284. new PlayerFile[256]; PlayerFile = GetPlayerFile(playerid);
  285. if(Variables[playerid][Registered] && !Variables[playerid][LoggedIn]) {
  286. if(udb_hash(Password) == dini_Int(PlayerFile,"Password")) {
  287. switch(Variables[playerid][Level]) {
  288. case 0: format(string,sizeof(string),"You have logged into your account. [Status Level: Member]");
  289. default: format(string,sizeof(string),"You have logged into your account. [Status Level: Administrator Lv. %d]",Variables[playerid][Level]);
  290. }
  291. SendClientMessage(playerid,blue,string);
  292. SetUserInt(playerid,"LoggedIn",1); Variables[playerid][LoggedIn] = true;
  293. new tmp3[100]; GetPlayerIp(playerid,tmp3,100); SetUserString(playerid,"IP",tmp3);
  294. OnPlayerLogin(playerid,true);
  295. } else { OnPlayerLogin(playerid,false); SendClientMessage(playerid,red,"Syntax Error: \"/LOGIN <PASSWORD>\"."); }
  296. } else SendClientMessage(playerid,red,"Error: You must be registered to log in; if you have make sure you haven't already logged in.");
  297. return 1;
  298. }
  299. dcmd_logout(playerid,params[]) {
  300. #pragma unused params
  301. new PlayerFile[256]; PlayerFile = GetPlayerFile(playerid);
  302. if(Variables[playerid][Registered] && Variables[playerid][LoggedIn]) {
  303. SendClientMessage(playerid,blue,"You have logged out of your account. You may log back in later by typing \"/LOGIN <PASSWORD>\".");
  304. SetUserInt(playerid,"LoggedIn",0); Variables[playerid][LoggedIn] = false; OnPlayerLogout(playerid);
  305. } else SendClientMessage(playerid,red,"Error: You must be registered and logged into your account first.");
  306. return 1;
  307. }
  308. //======================[ADMINISTRATION SYSTEM v2.1]============================
  309. dcmd_goto(playerid,params[]) {
  310. if(IsPlayerCommandLevel(playerid,"goto")) {
  311. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/GOTO <NICK OR ID>\".");
  312. new id;
  313. if(!IsNumeric(params)) id = ReturnPlayerID(params);
  314. else id = strval(params);
  315. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) {
  316. SendCommandMessageToAdmins(playerid,"GOTO");
  317. new string[256],PlayerName[24],ActionName[24],Float:X,Float:Y,Float:Z; GetPlayerName(playerid,PlayerName,24); GetPlayerName(id,ActionName,24);
  318. 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]);
  319. format(string,256,"\"%s\" has teleported to your location.",PlayerName); SendClientMessage(id,yellow,string);
  320. format(string,256,"You have teleported to \"%s's\" location.",ActionName); return SendClientMessage(playerid,yellow,string);
  321. } else return SendClientMessage(playerid,red,"ERROR: You can not teleport to yourself or disconnected players.");
  322. } else return SendLevelErrorMessage(playerid,"goto");
  323. }
  324. dcmd_gethere(playerid,params[]) {
  325. if(IsPlayerCommandLevel(playerid,"gethere")) {
  326. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/GETHERE <NICK OR ID>\".");
  327. new id;
  328. if(!IsNumeric(params)) id = ReturnPlayerID(params);
  329. else id = strval(params);
  330. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) {
  331. SendCommandMessageToAdmins(playerid,"GETHERE");
  332. new string[256],PlayerName[24],ActionName[24],Float:X,Float:Y,Float:Z; GetPlayerName(playerid,PlayerName,24); GetPlayerName(id,ActionName,24);
  333. 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]);
  334. format(string,256,"You have teleported \"%s\" to your location.",ActionName); SendClientMessage(playerid,yellow,string);
  335. format(string,256,"You have been teleported to \"%s's\" location.",PlayerName); return SendClientMessage(id,yellow,string);
  336. } else return SendClientMessage(playerid,red,"ERROR: You can not teleport yourself or a disconnected player.");
  337. } else return SendLevelErrorMessage(playerid,"gethere");
  338. }
  339. dcmd_announce(playerid,params[]) {
  340. if(IsPlayerCommandLevel(playerid,"announce")) {
  341. SendCommandMessageToAdmins(playerid,"ANNOUNCE");
  342. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/ANNOUNCE <TEXT>\".");
  343. return GameTextForAll(params,4000,3);
  344. } else return SendLevelErrorMessage(playerid,"announce");
  345. }
  346. dcmd_say(playerid,params[]) {
  347. if(IsPlayerCommandLevel(playerid,"say")) {
  348. SendCommandMessageToAdmins(playerid,"SAY");
  349. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/SAY <TEXT>\".");
  350. new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"** Admin %s: %s",name,params);
  351. return SendClientMessageToAll(pink,string);
  352. } else return SendLevelErrorMessage(playerid,"say");
  353. }
  354. dcmd_flip(playerid,params[]) {
  355. #pragma unused params
  356. if(IsPlayerCommandLevel(playerid,"flip")) {
  357. if(IsPlayerInAnyVehicle(playerid)) {
  358. SendCommandMessageToAdmins(playerid,"FLIP");
  359. 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);
  360. SetVehiclePos(GetPlayerVehicleID(playerid),X,Y,Z+2); SetVehicleZAngle(GetPlayerVehicleID(playerid),Angle);
  361. format(string,256,"Admin Chat: Administrator \"%s\" has flipped their vehicle.",name); return SendMessageToAdmins(string);
  362. } else return SendClientMessage(playerid,red,"ERROR: You must be in a vehicle.");
  363. } else return SendLevelErrorMessage(playerid,"flip");
  364. }
  365. dcmd_morning(playerid,params[]) {
  366. #pragma unused params
  367. if(IsPlayerCommandLevel(playerid,"morning")) {
  368. SendCommandMessageToAdmins(playerid,"MORNING");
  369. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerTime(playerid,7,0); return SendClientMessageToAll(yellow,"The world time has been changed to 7:00.");
  370. } else return SendLevelErrorMessage(playerid,"morning");
  371. }
  372. dcmd_noon(playerid,params[]) {
  373. #pragma unused params
  374. if(IsPlayerCommandLevel(playerid,"noon")) {
  375. SendCommandMessageToAdmins(playerid,"NOON");
  376. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerTime(playerid,12,0); return SendClientMessageToAll(yellow,"The world time has been changed to 12:00.");
  377. } else return SendLevelErrorMessage(playerid,"noon");
  378. }
  379. dcmd_evening(playerid,params[]) {
  380. #pragma unused params
  381. if(IsPlayerCommandLevel(playerid,"evening")) {
  382. SendCommandMessageToAdmins(playerid,"EVENING");
  383. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerTime(playerid,18,0); return SendClientMessageToAll(yellow,"The world time has been changed to 18:00.");
  384. } else return SendLevelErrorMessage(playerid,"evening");
  385. }
  386. dcmd_midnight(playerid,params[]) {
  387. #pragma unused params
  388. if(IsPlayerCommandLevel(playerid,"midnight")) {
  389. SendCommandMessageToAdmins(playerid,"MIDNIGHT");
  390. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerTime(playerid,0,0); return SendClientMessageToAll(yellow,"The world time has been changed to 0:00.");
  391. } else return SendLevelErrorMessage(playerid,"midnight");
  392. }
  393. dcmd_serverinfo(playerid,params[]) {
  394. #pragma unused params
  395. new string[256]; format(string,256,"Server Information: [Players Connected: %d || Maximum Players: %d || Ratio: %.2f]",GetConnectedPlayers(),GetMaxPlayers(),floatdiv(GetConnectedPlayers(),GetMaxPlayers()));
  396. return SendClientMessage(playerid,green,string);
  397. }
  398. dcmd_slap(playerid,params[]) {
  399. if(IsPlayerCommandLevel(playerid,"slap")) {
  400. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/SLAP <NICK OR ID>\".");
  401. new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params);
  402. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) {
  403. SendCommandMessageToAdmins(playerid,"SLAP");
  404. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  405. format(string,256,"Administrator \"%s\" has bitch-slapped \"%s\".",name,ActionName); SendClientMessageToAll(yellow,string);
  406. new Float:Health; GetPlayerHealth(id,Health); return SetPlayerHealth(id,Health-Config[SlapDecrement]);
  407. } else return SendClientMessage(playerid,red,"ERROR: You can not slap yourself or a disconnected player.");
  408. } else return SendLevelErrorMessage(playerid,"slap");
  409. }
  410. dcmd_wire(playerid,params[]) {
  411. if(IsPlayerCommandLevel(playerid,"wire")) {
  412. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/WIRE <NICK OR ID> (<REASON>)\".");
  413. new tmp[256],Index; tmp = strtok(params,Index);
  414. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  415. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) {
  416. if(!Variables[id][Wired]) {
  417. SendCommandMessageToAdmins(playerid,"WIRE");
  418. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  419. if(!strlen(params[strlen(tmp)+1])) format(string,256,"\"%s\" has been wired by Administrator \"%s\".",ActionName,name);
  420. else format(string,256,"\"%s\" has been wired by Administrator \"%s\". (Reason: %s)",ActionName,name,params[strlen(tmp)+1]);
  421. Variables[id][Wired] = true, Variables[id][WiredWarnings] = Config[WiredWarnings];
  422. return SendClientMessageToAll(yellow,string);
  423. } else return SendClientMessage(playerid,red,"ERROR: This player has already been wired.");
  424. } else return SendClientMessage(playerid,red,"ERROR: You can not wire yourself or a disconnected player.");
  425. } else return SendLevelErrorMessage(playerid,"wire");
  426. }
  427. dcmd_unwire(playerid,params[]) {
  428. if(IsPlayerCommandLevel(playerid,"unwire")) {
  429. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/UNWIRE <NICK OR ID>\".");
  430. new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params);
  431. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  432. if(Variables[id][Wired]) {
  433. SendCommandMessageToAdmins(playerid,"UNWIRE");
  434. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  435. Variables[id][Wired] = false, Variables[id][WiredWarnings] = Config[WiredWarnings];
  436. if(id != playerid) { format(string,256,"\"%s\" has been unwired by Administrator \"%s\".",ActionName,name); return SendClientMessageToAll(yellow,string); }
  437. else return SendClientMessage(playerid,yellow,"You have successfully unwired yourself.");
  438. } else return SendClientMessage(playerid,red,"ERROR: This player is not wired.");
  439. } else return SendClientMessage(playerid,red,"ERROR: You can not unwire a disconnected player.");
  440. } else return SendLevelErrorMessage(playerid,"unwire");
  441. }
  442. dcmd_kick(playerid,params[]) {
  443. if(IsPlayerCommandLevel(playerid,"kick")) {
  444. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/KICK <NICK OR ID> (<REASON>)\".");
  445. new tmp[256],Index; tmp = strtok(params,Index);
  446. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  447. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) {
  448. SendCommandMessageToAdmins(playerid,"KICK");
  449. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  450. if(!strlen(params[strlen(tmp)+1])) format(string,256,"\"%s\" has been Kicked from the game by Administrator \"%s\".",ActionName,name);
  451. else format(string,256,"\"%s\" has been Kicked from the game by Administrator \"%s\". (Reason: %s)",ActionName,name,params[strlen(tmp)+1]);
  452. SendClientMessageToAll(yellow,string); return Kick(id);
  453. } else return SendClientMessage(playerid,red,"ERROR: You can not kick yourself or a disconnected player.");
  454. } else return SendLevelErrorMessage(playerid,"kick");
  455. }
  456. dcmd_ban(playerid,params[]) {
  457. if(IsPlayerCommandLevel(playerid,"ban")) {
  458. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/BAN <NICK OR ID> (<REASON>)\".");
  459. new tmp[256],Index; tmp = strtok(params,Index);
  460. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  461. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) {
  462. SendCommandMessageToAdmins(playerid,"BAN");
  463. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  464. if(!strlen(params[strlen(tmp)+1])) format(string,256,"\"%s\" has been Banned by Administrator \"%s\".",ActionName,name);
  465. else format(string,256,"\"%s\" has been Banned by Administrator \"%s\". (Reason: %s)",ActionName,name,params[strlen(tmp)+1]);
  466. SendClientMessageToAll(yellow,string); return Ban(id);
  467. } else return SendClientMessage(playerid,red,"ERROR: You can not ban yourself or a disconnected player.");
  468. } else return SendLevelErrorMessage(playerid,"ban");
  469. }
  470. dcmd_akill(playerid,params[]) {
  471. if(IsPlayerCommandLevel(playerid,"akill")) {
  472. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/AKILL <NICK OR ID>\".");
  473. new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params);
  474. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) {
  475. SendCommandMessageToAdmins(playerid,"AKILL");
  476. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  477. format(string,256,"You have been killed by Administrator \"%s\".",name); SendClientMessage(id,yellow,string);
  478. format(string,256,"You have killed Player \"%s\".",ActionName); SendClientMessage(playerid,yellow,string); return SetPlayerHealth(id,0.0);
  479. } else return SendClientMessage(playerid,red,"ERROR: You can not auto-kill yourself or a disconnected player.");
  480. } else return SendLevelErrorMessage(playerid,"akill");
  481. }
  482. dcmd_eject(playerid,params[]) {
  483. if(IsPlayerCommandLevel(playerid,"eject")) {
  484. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/EJECT <NICK OR ID>\".");
  485. new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params);
  486. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  487. if(IsPlayerInAnyVehicle(id)) {
  488. SendCommandMessageToAdmins(playerid,"EJECT");
  489. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24); RemovePlayerFromVehicle(id);
  490. if(id != playerid) {
  491. format(string,256,"You have been ejected from your vehicle by Administrator \"%s\".",name); SendClientMessage(id,yellow,string);
  492. format(string,256,"You have ejected Player \"%s\".",ActionName); return SendClientMessage(playerid,yellow,string);
  493. } else return SendClientMessage(playerid,yellow,"You have ejected yourself from your vehicle.");
  494. } else return SendClientMessage(playerid,red,"ERROR: This player must be in a vehicle.");
  495. } else return SendClientMessage(playerid,red,"ERROR: You can not eject a disconnected player.");
  496. } else return SendLevelErrorMessage(playerid,"eject");
  497. }
  498. dcmd_freeze(playerid,params[]) {
  499. if(IsPlayerCommandLevel(playerid,"freeze")) {
  500. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/FREEZE <NICK OR ID>\".");
  501. new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params);
  502. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) {
  503. SendCommandMessageToAdmins(playerid,"FREEZE");
  504. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  505. TogglePlayerControllable(id,false); format(string,256,"Admin Chat: Admnistrator \"%s\" has frozen \"%s\".",name,ActionName); return SendMessageToAdmins(string);
  506. } else return SendClientMessage(playerid,red,"ERROR: You can not freeze yourself or a disconnected player.");
  507. } else return SendLevelErrorMessage(playerid,"freeze");
  508. }
  509. dcmd_unfreeze(playerid,params[]) {
  510. if(IsPlayerCommandLevel(playerid,"unfreeze")) {
  511. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/UNFREEZE <NICK OR ID>\".");
  512. new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params);
  513. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  514. SendCommandMessageToAdmins(playerid,"UNFREEZE");
  515. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  516. TogglePlayerControllable(id,true); format(string,256,"Admin Chat: Admnistrator \"%s\" has unfrozen \"%s\".",name,ActionName);
  517. if(id != playerid) return SendMessageToAdmins(string); else return SendClientMessage(playerid,yellow,"You have unfrozen yourself.");
  518. } else return SendClientMessage(playerid,red,"ERROR: You can not unfreeze a disconnected player.");
  519. } else return SendLevelErrorMessage(playerid,"unfreeze");
  520. }
  521. dcmd_outside(playerid,params[]) {
  522. #pragma unused params
  523. if(IsPlayerCommandLevel(playerid,"outside")) {
  524. SendCommandMessageToAdmins(playerid,"OUTSIDE");
  525. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerInterior(i,0);
  526. new string[256],name[24]; GetPlayerName(playerid,name,24);
  527. format(string,256,"Admnistrator \"%s\" has transfered everyone outside.",name); return SendClientMessageToAll(yellow,string);
  528. } else return SendLevelErrorMessage(playerid,"outside");
  529. }
  530. dcmd_healall(playerid,params[]) {
  531. #pragma unused params
  532. if(IsPlayerCommandLevel(playerid,"healall")) {
  533. SendCommandMessageToAdmins(playerid,"HEALALL");
  534. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerHealth(i,100.0);
  535. new string[256],name[24]; GetPlayerName(playerid,name,24);
  536. format(string,256,"Everyone has been healed by Administrator \"%s\".",name); return SendClientMessageToAll(yellow,string);
  537. } else return SendLevelErrorMessage(playerid,"healall");
  538. }
  539. dcmd_sm(playerid,params[]) {
  540. #pragma unused params
  541. if(Config[DisplayServerMessage]) { new string[256]; format(string,sizeof(string),"Server Message: %s",dini_Get("/xadmin/Configuration/Configuration.ini","ServerMessage")); return SendClientMessage(playerid,green,string); }
  542. else return SendClientMessage(playerid,red,"ERROR: The server message has been disabled.");
  543. }
  544. dcmd_setsm(playerid,params[]) {
  545. if(IsPlayerCommandLevel(playerid,"setsm")) {
  546. SendCommandMessageToAdmins(playerid,"SETSM");
  547. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETSM <TEXT>\".");
  548. dini_Set("/xadmin/Configuration/Configuration.ini","ServerMessage",params);
  549. new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Admin Chat: New Server Message: %s",params); SendMessageToAdmins(string); return 1;
  550. } else return SendLevelErrorMessage(playerid,"setsm");
  551. }
  552. dcmd_uconfig(playerid,params[]) {
  553. #pragma unused params
  554. if(IsPlayerCommandLevel(playerid,"uconfig")) {
  555. SendCommandMessageToAdmins(playerid,"UCONFIG"); UpdateConfigurationVariables();
  556. new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Admin Chat: Administrator \"%s\" has updated the configuration variables.",name); SendMessageToAdmins(string);
  557. return 1;
  558. } else return SendLevelErrorMessage(playerid,"uconfig");
  559. }
  560. dcmd_givehealth(playerid,params[]) {
  561. if(IsPlayerCommandLevel(playerid,"givehealth")) {
  562. new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  563. if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) >= 1 && strval(tmp2) <= 100)) return SendClientMessage(playerid,red,"Syntax Error: \"/GIVEHEALTH <NICK OR ID> <1-100>\".");
  564. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  565. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  566. SendCommandMessageToAdmins(playerid,"GIVEHEALTH");
  567. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  568. 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); }
  569. else { format(string,256,"You have given yourself %d percent health.",strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  570. new Float:Health; GetPlayerHealth(id,Health); return SetPlayerHealth(id,Health+strval(tmp2));
  571. } return SendClientMessage(playerid,red,"ERROR: You can not give a disconnected player health.");
  572. } else return SendLevelErrorMessage(playerid,"givehealth");
  573. }
  574. dcmd_sethealth(playerid,params[]) {
  575. if(IsPlayerCommandLevel(playerid,"sethealth")) {
  576. new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  577. if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) >= 0 && strval(tmp2) <= 100)) return SendClientMessage(playerid,red,"Syntax Error: \"/SET <NICK OR ID> <0-100>\".");
  578. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  579. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  580. SendCommandMessageToAdmins(playerid,"SETHEALTH");
  581. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  582. if(id != playerid) { format(string,256,"Administrator \"%s\" has set your health to %d percent.",name,strval(tmp2)); SendClientMessage(id,yellow,string); format(string,256,"You have set \"%s's\" health to %d percent.",ActionName,strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  583. else { format(string,256,"You've set your health to %d percent.",strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  584. return SetPlayerHealth(id,strval(tmp2));
  585. } return SendClientMessage(playerid,red,"ERROR: You can not set a disconnected player's health.");
  586. } else return SendLevelErrorMessage(playerid,"sethealth");
  587. }
  588. dcmd_skinall(playerid,params[]) {
  589. if(IsPlayerCommandLevel(playerid,"skinall")) {
  590. if(!strlen(params)||!IsNumeric(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/SKINALL <SKINID>\".");
  591. if(IsSkinValid(strval(params))) {
  592. SendCommandMessageToAdmins(playerid,"SKINALL");
  593. new string[256],name[24]; GetPlayerName(playerid,name,24); for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerSkin(i,strval(params));
  594. format(string,256,"Everyone's skin has been changed to ID %d.",strval(params)); return SendClientMessageToAll(yellow,string);
  595. } else return SendClientMessage(playerid,red,"ERROR: Invalid skin ID.");
  596. } else return SendLevelErrorMessage(playerid,"skinall");
  597. }
  598. dcmd_giveallweapon(playerid,params[]) {
  599. if(IsPlayerCommandLevel(playerid,"giveallweapon")) {
  600. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index); tmp2 = strtok(params,Index);
  601. if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) <= 0 || strval(tmp2) <= 10000)) return SendClientMessage(playerid,red,"Syntax Error: \"/GIVEALLWEAPON <WEAPON NAME | ID> <1-10,000>\".");
  602. new id; if(!IsNumeric(tmp)) id = ReturnWeaponID(tmp); else id = strval(tmp);
  603. 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.");
  604. SendCommandMessageToAdmins(playerid,"GIVEALLWEAPON");
  605. 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));
  606. format(string,256,"Everyone has been given %d \'%s\' by Administrator \"%s\".",strval(tmp2),WeaponName,name); return SendClientMessageToAll(yellow,string);
  607. } else return SendLevelErrorMessage(playerid,"giveallweapon");
  608. }
  609. dcmd_resetallweapons(playerid,params[]) {
  610. #pragma unused params
  611. if(IsPlayerCommandLevel(playerid,"resetallweapons")) {
  612. SendCommandMessageToAdmins(playerid,"RESETALLWEAPONS");
  613. new string[256],name[24]; GetPlayerName(playerid,name,24); for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) ResetPlayerWeapons(i);
  614. format(string,256,"Administrator \"%s\" has reseted everyone's weapons.",name); return SendClientMessageToAll(yellow,string);
  615. } else return SendLevelErrorMessage(playerid,"resetallweapons");
  616. }
  617. dcmd_setcash(playerid,params[]) {
  618. if(IsPlayerCommandLevel(playerid,"setcash")) {
  619. new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  620. if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) >= 1 && strval(tmp2) <= 1000000)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETCASH <NICK OR ID> <1 - 1,000,000>\".");
  621. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  622. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  623. SendCommandMessageToAdmins(playerid,"SETCASH");
  624. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  625. if(id != playerid) { format(string,256,"Administrator \"%s\" has set your cash to $%d.",name,strval(tmp2)); SendClientMessage(id,yellow,string); format(string,256,"You have set \"%s's\" cash to $%d.",ActionName,strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  626. else { format(string,256,"You have set your cash to $%d.",strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  627. ResetPlayerMoney(id); return GivePlayerMoney(id,strval(tmp2));
  628. } return SendClientMessage(playerid,red,"ERROR: You can not set a disconnected player's cash.");
  629. } else return SendLevelErrorMessage(playerid,"setcash");
  630. }
  631. dcmd_givecash(playerid,params[]) {
  632. if(IsPlayerCommandLevel(playerid,"givecash")) {
  633. new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  634. if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) >= 1 && strval(tmp2) <= 1000000)) return SendClientMessage(playerid,red,"Syntax Error: \"/GIVECASH <NICK OR ID> <1 - 1,000,000>\".");
  635. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  636. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  637. SendCommandMessageToAdmins(playerid,"GIVECASH");
  638. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  639. 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); }
  640. else { format(string,256,"You have given yourself $%d.",strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  641. return GivePlayerMoney(id,strval(tmp2));
  642. } return SendClientMessage(playerid,red,"ERROR: You can not give a disconnected player cash.");
  643. } else return SendLevelErrorMessage(playerid,"givecash");
  644. }
  645. dcmd_remcash(playerid,params[]) {
  646. if(IsPlayerCommandLevel(playerid,"remcash")) {
  647. new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  648. if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) >= 1 && strval(tmp2) <= 1000000)) return SendClientMessage(playerid,red,"Syntax Error: \"/REMCASH <NICK OR ID> <1 - 1,000,000>\".");
  649. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  650. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  651. SendCommandMessageToAdmins(playerid,"REMCASH");
  652. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  653. if(id != playerid) { format(string,256,"Administrator \"%s\" has removed $%d from your cash.",name,strval(tmp2)); SendClientMessage(id,yellow,string); format(string,256,"You have removed $%d from \"%s's\" cash.",strval(tmp2),ActionName); SendClientMessage(playerid,yellow,string); }
  654. else { format(string,256,"You have removed $%d from your cash.",strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  655. return GivePlayerMoney(id,-strval(tmp2));
  656. } return SendClientMessage(playerid,red,"ERROR: You can not remove a disconnected player's cash.");
  657. } else return SendLevelErrorMessage(playerid,"remcash");
  658. }
  659. dcmd_resetcash(playerid,params[]) {
  660. if(IsPlayerCommandLevel(playerid,"resetcash")) {
  661. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/RESETCASH <NICK OR ID>\".");
  662. new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params);
  663. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  664. SendCommandMessageToAdmins(playerid,"RESETCASH");
  665. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  666. if(id != playerid) { format(string,256,"Administrator \"%s\" has reseted your cash.",name); SendClientMessage(id,yellow,string); format(string,256,"You have reseted \"%s's\" cash.",ActionName); SendClientMessage(playerid,yellow,string); }
  667. else SendClientMessage(playerid,yellow,"You have reseted your cash.");
  668. return ResetPlayerMoney(id);
  669. } return SendClientMessage(playerid,red,"ERROR: You can not reset a disconnected player's cash.");
  670. } else return SendLevelErrorMessage(playerid,"resetcash");
  671. }
  672. dcmd_setallcash(playerid,params[]) {
  673. if(IsPlayerCommandLevel(playerid,"setallcash")) {
  674. if(!strlen(params)||!IsNumeric(params)||!(strval(params)>=0&&strval(params)<=1000000)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETALLCASH <1 - 1,000,000>\".");
  675. SendCommandMessageToAdmins(playerid,"SETALLCASH");
  676. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) { ResetPlayerMoney(i); GivePlayerMoney(i,strval(params)); }
  677. new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Administrator \"%s\" has set every player's cash to $%d.",name,strval(params)); return SendClientMessage(playerid,yellow,string);
  678. } else return SendLevelErrorMessage(playerid,"setallcash");
  679. }
  680. dcmd_giveallcash(playerid,params[]) {
  681. if(IsPlayerCommandLevel(playerid,"giveallcash")) {
  682. if(!strlen(params)||!IsNumeric(params)||!(strval(params)>=0&&strval(params)<=1000000)) return SendClientMessage(playerid,red,"Syntax Error: \"/GIVEALLCASH <1 - 1,000,000>\".");
  683. SendCommandMessageToAdmins(playerid,"GIVEALLCASH");
  684. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) GivePlayerMoney(i,strval(params));
  685. 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);
  686. } else return SendLevelErrorMessage(playerid,"giveallcash");
  687. }
  688. dcmd_remallcash(playerid,params[]) {
  689. if(IsPlayerCommandLevel(playerid,"remallcash")) {
  690. if(!strlen(params)||!(strval(params)>=0&&strval(params)<=1000000)) return SendClientMessage(playerid,red,"Syntax Error: \"/REMALLCASH <1 - 1,000,000>\".");
  691. SendCommandMessageToAdmins(playerid,"REMALLCASH");
  692. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) GivePlayerMoney(i,-strval(params));
  693. new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Administrator \"%s\" has removed $%d from everyone's cash.",name,strval(params)); return SendClientMessage(playerid,yellow,string);
  694. } else return SendLevelErrorMessage(playerid,"remallcash");
  695. }
  696. dcmd_resetallcash(playerid,params[]) {
  697. #pragma unused params
  698. if(IsPlayerCommandLevel(playerid,"resetallcash")) {
  699. SendCommandMessageToAdmins(playerid,"RESETALLCASH");
  700. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) ResetPlayerMoney(i);
  701. new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Administrator \"%s\" resetted everyone's cash.",name); return SendClientMessage(playerid,yellow,string);
  702. } else return SendLevelErrorMessage(playerid,"resetallcash");
  703. }
  704. dcmd_ejectall(playerid,params[]) {
  705. #pragma unused params
  706. if(IsPlayerCommandLevel(playerid,"ejectall")) {
  707. SendCommandMessageToAdmins(playerid,"EJECTALL");
  708. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) RemovePlayerFromVehicle(i);
  709. 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);
  710. } else return SendLevelErrorMessage(playerid,"ejectall");
  711. }
  712. dcmd_freezeall(playerid,params[]) {
  713. #pragma unused params
  714. if(IsPlayerCommandLevel(playerid,"freezeall")) {
  715. SendCommandMessageToAdmins(playerid,"FREEZEALL");
  716. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) TogglePlayerControllable(i,false);
  717. new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Administrator \"%s\" frozen everyone.",name); return SendClientMessage(playerid,yellow,string);
  718. } else return SendLevelErrorMessage(playerid,"freezeall");
  719. }
  720. dcmd_unfreezeall(playerid,params[]) {
  721. #pragma unused params
  722. if(IsPlayerCommandLevel(playerid,"unfreezeall")) {
  723. SendCommandMessageToAdmins(playerid,"UNFREEZEALL");
  724. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) TogglePlayerControllable(i,true);
  725. new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Administrator \"%s\" unfrozen everyone.",name); return SendClientMessage(playerid,yellow,string);
  726. } else return SendLevelErrorMessage(playerid,"unfreezeall");
  727. }
  728. dcmd_giveweapon(playerid,params[]) {
  729. if(IsPlayerCommandLevel(playerid,"giveweapon")) {
  730. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index),tmp2 = strtok(params,Index),tmp3 = strtok(params,Index);
  731. if(!strlen(tmp)||!strlen(tmp2)||!strlen(tmp3)||!IsNumeric(tmp3)||!(strval(tmp3) <= 0 || strval(tmp3) <= 10000)) return SendClientMessage(playerid,red,"Syntax Error: \"/GIVEWEAPON <NICK OR ID> <WEAPON NAME | ID> <1-10,000>\".");
  732. new id,id2; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp); if(!IsNumeric(tmp2)) id2 = ReturnWeaponID(tmp2); else id2 = strval(tmp2);
  733. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  734. 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.");
  735. SendCommandMessageToAdmins(playerid,"GIVEWEAPON");
  736. 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";
  737. 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); }
  738. else { format(string,256,"You have given yourself %d %s.",strval(tmp3),WeaponName); SendClientMessage(playerid,yellow,string); }
  739. return GivePlayerWeapon(id,id2,strval(tmp3));
  740. } else return SendClientMessage(playerid,red,"ERROR: You can not give a disconnected player a weapon.");
  741. } else return SendLevelErrorMessage(playerid,"giveweapon");
  742. }
  743. dcmd_god(playerid,params[]) {
  744. #pragma unused params
  745. if(IsPlayerCommandLevel(playerid,"god")) {
  746. SendCommandMessageToAdmins(playerid,"GOD");
  747. if(!Config[GodWeapons]) { SetPlayerHealth(playerid,100000); return SendClientMessage(playerid,yellow,"You have given yourself infinite health."); }
  748. else { SetPlayerHealth(playerid,100000); GivePlayerWeapon(playerid,38,50000); GivePlayerWeapon(playerid,WEAPON_GRENADE,50000); return SendClientMessage(playerid,yellow,"You have given yourself infinite health, minigun,grenades."); }
  749. } else return SendLevelErrorMessage(playerid,"god");
  750. }
  751. dcmd_resetscores(playerid,params[]) {
  752. #pragma unused params
  753. if(IsPlayerCommandLevel(playerid,"resetscores")) {
  754. SendCommandMessageToAdmins(playerid,"RESETSCORES");
  755. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerScore(i,0);
  756. new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Administrator \"%s\" resetted everyone's score.",name); return SendClientMessage(playerid,yellow,string);
  757. } else return SendLevelErrorMessage(playerid,"resetscores");
  758. }
  759. dcmd_setlevel(playerid,params[]) {
  760. if(IsPlayerCommandLevel(playerid,"setlevel")) {
  761. new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  762. if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) >= 0 && strval(tmp2) <= Config[MaxLevel])) { new string[256]; format(string,256,"Syntax Error: \"SETLEVEL <NICK OR ID> <0 - %d>\".",Config[MaxLevel]); return SendClientMessage(playerid,red,string); }
  763. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  764. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) {
  765. if(Variables[id][Level] == strval(tmp2)) return SendClientMessage(playerid,red,"ERROR: That player is already that level.");
  766. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  767. SendCommandMessageToAdmins(playerid,"SETLEVEL");
  768. 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);
  769. 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);
  770. Variables[id][Level] = strval(tmp2); return SetUserInt(id,"Level",strval(tmp2));
  771. } return SendClientMessage(playerid,red,"ERROR: You can not set set your or a disconnected player's level.");
  772. } else return SendLevelErrorMessage(playerid,"setlevel");
  773. }
  774. dcmd_setskin(playerid,params[]) {
  775. if(IsPlayerCommandLevel(playerid,"setskin")) {
  776. new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  777. if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETSKIN <NICK OR ID> <SKINID>\".");
  778. if(!IsSkinValid(strval(tmp2))) return SendClientMessage(playerid,red,"ERROR: Invalid skin ID.");
  779. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  780. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  781. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  782. SendCommandMessageToAdmins(playerid,"SETSKIN");
  783. if(id != playerid) { format(string,256,"Administrator \"%s\" has set your skin to ID %d.",name,strval(tmp2)); SendClientMessage(id,yellow,string); format(string,256,"You have set \"%s's\" skin ID to %d.",ActionName,strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  784. else { format(string,256,"You have set your skin ID to %d.",strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  785. return SetPlayerSkin(id,strval(tmp2));
  786. } return SendClientMessage(playerid,red,"ERROR: You can not set a disconnected player's skin.");
  787. } else return SendLevelErrorMessage(playerid,"setskin");
  788. }
  789. dcmd_givearmour(playerid,params[]) {
  790. if(IsPlayerCommandLevel(playerid,"givearmour")) {
  791. new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  792. if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) >= 1 && strval(tmp2) <= 100)) return SendClientMessage(playerid,red,"Syntax Error: \"/GIVEARMOUR <NICK OR ID> <1-100>\".");
  793. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  794. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  795. SendCommandMessageToAdmins(playerid,"GIVEARMOUR");
  796. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  797. 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); }
  798. else { format(string,256,"You have given yourself %d armour.",strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  799. new Float:Armour; GetPlayerArmour(id,Armour); return SetPlayerArmour(id,Armour+strval(tmp2));
  800. } return SendClientMessage(playerid,red,"ERROR: You can not give a disconnected player armour.");
  801. } else return SendLevelErrorMessage(playerid,"givearmour");
  802. }
  803. dcmd_setarmour(playerid,params[]) {
  804. if(IsPlayerCommandLevel(playerid,"setarmour")) {
  805. new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  806. if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) >= 1 && strval(tmp2) <= 100)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETARMOUR <NICK OR ID> <1-100>\".");
  807. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  808. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  809. SendCommandMessageToAdmins(playerid,"SETARMOUR");
  810. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  811. if(id != playerid) { format(string,256,"Administrator \"%s\" has set your armour to %d.",name,strval(tmp2)); SendClientMessage(id,yellow,string); format(string,256,"You set \"%s\'s\" armour to %d.",ActionName,strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  812. else { format(string,256,"You have set your armour to %d.",strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  813. return SetPlayerArmour(id,strval(tmp2));
  814. } return SendClientMessage(playerid,red,"ERROR: You can not set a disconnected player's armour.");
  815. } else return SendLevelErrorMessage(playerid,"setarmour");
  816. }
  817. dcmd_armourall(playerid,params[]) {
  818. #pragma unused params
  819. if(IsPlayerCommandLevel(playerid,"armourall")) {
  820. SendCommandMessageToAdmins(playerid,"ARMOURALL");
  821. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerArmour(i,100.0);
  822. new string[256],name[24]; GetPlayerName(playerid,name,24);
  823. format(string,256,"Everyone's armour has been restored by Administrator \"%s\".",name); return SendClientMessageToAll(yellow,string);
  824. } else return SendLevelErrorMessage(playerid,"armourall");
  825. }
  826. dcmd_setammo(playerid,params[]) {
  827. if(IsPlayerCommandLevel(playerid,"setammo")) {
  828. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index),tmp2 = strtok(params,Index),tmp3 = strtok(params,Index);
  829. if(!strlen(tmp)||!strlen(tmp2)||!strlen(tmp3)||!IsNumeric(tmp3)||!IsNumeric(tmp2)||!(strval(tmp3) <= 0 || strval(tmp3) <= 10000)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETAMMO <NICK OR ID> <WEAPON SLOT> <1-10,000>\".");
  830. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  831. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  832. if(!(strval(tmp2) >= 0 && strval(tmp) <= 12)) return SendClientMessage(playerid,red,"ERROR: Invalid weapon slot! Range: 0 - 12");
  833. SendCommandMessageToAdmins(playerid,"SETAMMO");
  834. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  835. if(id != playerid) { format(string,256,"Administrator \"%s\" has set your ammunition in slot \'%d\' to %d.",name,strval(tmp2),strval(tmp3)); SendClientMessage(id,yellow,string); format(string,256,"You have set \"%s\'s\" ammunition in slot %d to %d.",ActionName,strval(tmp2),strval(tmp3)); SendClientMessage(playerid,yellow,string); }
  836. else { format(string,256,"You have set your ammunition in slot \'%d\' to %d.",strval(tmp2),strval(tmp3)); SendClientMessage(playerid,yellow,string); }
  837. return SetPlayerAmmo(id,strval(tmp2),strval(tmp3));
  838. } else return SendClientMessage(playerid,red,"ERROR: You can not set a disconnected player's ammunition.");
  839. } else return SendLevelErrorMessage(playerid,"setammo");
  840. }
  841. dcmd_setscore(playerid,params[]) {
  842. if(IsPlayerCommandLevel(playerid,"setscore")) {
  843. new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  844. if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) >= 1 && strval(tmp2) <= 100000)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETSCORE <NICK OR ID> <1-100,000>\".");
  845. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  846. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  847. SendCommandMessageToAdmins(playerid,"SETSCORE");
  848. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  849. if(id != playerid) { format(string,256,"Administrator \"%s\" has set your score to %d.",name,strval(tmp2)); SendClientMessage(id,yellow,string); format(string,256,"You set \"%s\'s\" score to %d.",ActionName,strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  850. else { format(string,256,"You have set your score to %d.",strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  851. return SetPlayerScore(id,strval(tmp2));
  852. } return SendClientMessage(playerid,red,"ERROR: You can not set a disconnected player's score.");
  853. } else return SendLevelErrorMessage(playerid,"setscore");
  854. }
  855. dcmd_ip(playerid,params[]) {
  856. if(IsPlayerCommandLevel(playerid,"ip")) {
  857. SendCommandMessageToAdmins(playerid,"IP");
  858. if(!strlen(params)) { new IP[256],string[256]; GetPlayerIp(playerid,IP,256); format(string,256,"Your IP: \'%s\'",IP); return SendClientMessage(playerid,yellow,string); }
  859. new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params);
  860. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  861. new string[256],ActionName[24],IP[256]; GetPlayerName(id,ActionName,24); GetPlayerIp(id,IP,256);
  862. format(string,256,"\"%s\'s\" IP: \'%s\'",ActionName,IP); return SendClientMessage(playerid,yellow,string);
  863. } else return SendClientMessage(playerid,red,"ERROR: You can not get the ip of a disconnected player.");
  864. } else return SendLevelErrorMessage(playerid,"ip");
  865. }
  866. dcmd_ping(playerid,params[]) {
  867. if(IsPlayerCommandLevel(playerid,"ping")) {
  868. SendCommandMessageToAdmins(playerid,"PING");
  869. if(!strlen(params)) { new string[256]; format(string,256,"Your Ping: \'%d\'",GetPlayerPing(playerid)); return SendClientMessage(playerid,yellow,string); }
  870. new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params);
  871. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  872. new string[256],ActionName[24],IP[256]; GetPlayerName(id,ActionName,24); GetPlayerIp(id,IP,256);
  873. format(string,256,"\"%s\'s\" Ping: \'%d\'",ActionName,GetPlayerPing(id)); return SendClientMessage(playerid,yellow,string);
  874. } else return SendClientMessage(playerid,red,"ERROR: You can not get the ping of a disconnected player.");
  875. } else return SendLevelErrorMessage(playerid,"ping");
  876. }
  877. dcmd_explode(playerid,params[]) {
  878. if(IsPlayerCommandLevel(playerid,"explode")) {
  879. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/EXPLODE <NICK OR ID>\".");
  880. new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params);
  881. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  882. SendCommandMessageToAdmins(playerid,"EXPLODE");
  883. new string[256],name[24],ActionName[24],Float:X,Float:Y,Float:Z; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  884. 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);
  885. if(id != playerid) {
  886. format(string,256,"You have been exploded by Administrator \"%s\".",name); SendClientMessage(id,yellow,string);
  887. format(string,256,"You have exploded Player \"%s\".",ActionName); return SendClientMessage(playerid,yellow,string);
  888. } else return SendClientMessage(playerid,yellow,"You have exploded yourself.");
  889. } else return SendClientMessage(playerid,red,"ERROR: You can not explode a disconnected player.");
  890. } else return SendLevelErrorMessage(playerid,"explode");
  891. }
  892. dcmd_settime(playerid,params[]) {
  893. if(IsPlayerCommandLevel(playerid,"settime")) {
  894. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index),tmp2 = strtok(params,Index),tmp3 = strtok(params,Index);
  895. if(!strlen(tmp)||!strlen(tmp2)||!strlen(tmp3)||!IsNumeric(tmp2)||!IsNumeric(tmp3)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETTIME <NICK OR ID> <HOUR> <MINUTE>\".");
  896. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  897. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  898. SendCommandMessageToAdmins(playerid,"SETTIME");
  899. new name[24],string[256],Hour[5],Minute[5],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  900. format(Hour,5,"%s%d",((strval(tmp2)<10)?("0"):("")),strval(tmp2)); format(Minute,5,"%s%d",((strval(tmp3)<10)?("0"):("")),strval(tmp3));
  901. if(id != playerid) { format(string,256,"Administrator \"%s\" has set your time to \'%s:%s\'.",name,Hour,Minute); SendClientMessage(id,yellow,string); format(string,256,"You have set \"%s's\" time to \'%s:%s\'.",ActionName,Hour,Minute); SendClientMessage(playerid,yellow,string); }
  902. else { format(string,256,"You have set your time to \'%s:%s\'.",Hour,Minute); SendClientMessage(playerid,yellow,string); }
  903. return SetPlayerTime(id,strval(tmp2),strval(tmp3));
  904. } else return SendClientMessage(playerid,red,"ERROR: You can not set a disconnected player's time.");
  905. } else return SendLevelErrorMessage(playerid,"settime");
  906. }
  907. dcmd_setalltime(playerid,params[]) {
  908. if(IsPlayerCommandLevel(playerid,"setalltime")) {
  909. new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  910. if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp)||!IsNumeric(tmp2)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETALLTIME <HOUR> <MINUTE>\".");
  911. SendCommandMessageToAdmins(playerid,"SETALLTIME");
  912. new name[24],string[256],Hour[5],Minute[5]; GetPlayerName(playerid,name,24);
  913. format(Hour,5,"%s%d",((strval(tmp)<10)?("0"):("")),strval(tmp)); format(Minute,5,"%s%d",((strval(tmp2)<10)?("0"):("")),strval(tmp2));
  914. format(string,256,"Administrator \"%s\" has set everyone's time to \'%s:%s\'.",name,Hour,Minute);
  915. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerTime(i,strval(tmp),strval(tmp2)); return SendClientMessageToAll(yellow,string);
  916. } else return SendLevelErrorMessage(playerid,"setalltime");
  917. }
  918. dcmd_force(playerid,params[]) {
  919. if(IsPlayerCommandLevel(playerid,"force")) {
  920. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/FORCE <NICK OR ID>\".");
  921. new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params);
  922. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) {
  923. SendCommandMessageToAdmins(playerid,"FORCE");
  924. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  925. ForceClassSelection(id); SetPlayerHealth(id,0); format(string,256,"Admnistrator \"%s\" has forced you to the spawn selection screen.",name); SendClientMessage(id,yellow,string);
  926. format(string,256,"You have forced Player \"%s\" to the spawn selection screen.",ActionName); return SendClientMessage(playerid,yellow,string);
  927. } else return SendClientMessage(playerid,red,"ERROR: You can not force yourself or a disconnected player to the spawn selection screen.");
  928. } else return SendLevelErrorMessage(playerid,"force");
  929. }
  930. dcmd_setwanted(playerid,params[]) {
  931. if(IsPlayerCommandLevel(playerid,"setwanted")) {
  932. new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  933. if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) >= 0 && strval(tmp2) <= 6)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETWANTED <NICK OR ID> <0-6>\".");
  934. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  935. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  936. SendCommandMessageToAdmins(playerid,"SETWANTED");
  937. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  938. if(id != playerid) { format(string,256,"Administrator \"%s\" has set your wanted level to %d.",name,strval(tmp2)); SendClientMessage(id,yellow,string); format(string,256,"You set \"%s\'s\" wanted level to %d.",ActionName,strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  939. else { format(string,256,"You have set your wanted level to %d.",strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  940. return SetPlayerWantedLevel(id,strval(tmp2));
  941. } return SendClientMessage(playerid,red,"ERROR: You can not set a disconnected player's wanted level.");
  942. } else return SendLevelErrorMessage(playerid,"setwanted");
  943. }
  944. dcmd_setallwanted(playerid,params[]) {
  945. if(IsPlayerCommandLevel(playerid,"setallwanted")) {
  946. if(!strlen(params)||!IsNumeric(params)||!(strval(params) >= 0 && strval(params) <= 6)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETALLWANTED <0-6>\".");
  947. new name[24],string[256]; GetPlayerName(playerid,name,24);
  948. SendCommandMessageToAdmins(playerid,"SETALLWANTED");
  949. format(string,256,"Administrator \"%s\" has set everyone's wanted level to %d.",name,strval(params));
  950. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerWantedLevel(i,strval(params)); return SendClientMessageToAll(yellow,string);
  951. } else return SendLevelErrorMessage(playerid,"setallwanted");
  952. }
  953. dcmd_setworld(playerid,params[]) {
  954. if(IsPlayerCommandLevel(playerid,"setworld")) {
  955. new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  956. if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) >= 0 && strval(tmp2) <= 255)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETWORLD <NICK OR ID> <VIRT. WORLD ID>\".");
  957. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  958. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  959. SendCommandMessageToAdmins(playerid,"SETWORLD");
  960. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  961. if(id != playerid) { format(string,256,"Administrator \"%s\" has set your virtual world to %d.",name,strval(tmp2)); SendClientMessage(id,yellow,string); format(string,256,"You set \"%s\'s\" virtual world to %d.",ActionName,strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  962. else { format(string,256,"You have set your virtual world to %d.",strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  963. return SetPlayerVirtualWorld(id,strval(tmp2));
  964. } return SendClientMessage(playerid,red,"ERROR: You can not set a disconnected player's virtual world.");
  965. } else return SendLevelErrorMessage(playerid,"setworld");
  966. }
  967. dcmd_setallworld(playerid,params[]) {
  968. if(IsPlayerCommandLevel(playerid,"setallworld")) {
  969. if(!strlen(params)||!IsNumeric(params)||!(strval(params) >= 0 && strval(params) <= 255)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETALLWORLD <VIRT. WORLD ID>\".");
  970. new name[24],string[256]; GetPlayerName(playerid,name,24);
  971. SendCommandMessageToAdmins(playerid,"SETALLWORLD");
  972. format(string,256,"Administrator \"%s\" has set everyone's virtual world to %d.",name,strval(params));
  973. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerVirtualWorld(i,strval(params)); return SendClientMessageToAll(yellow,string);
  974. } else return SendLevelErrorMessage(playerid,"setallworld");
  975. }
  976. dcmd_setgravity(playerid,params[]) {
  977. if(IsPlayerCommandLevel(playerid,"setgravity")) {
  978. if(!strlen(params)||!(strval(params)<=50&&strval(params)>=-50)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETGRAVITY <-50.0 - 50.0>\".");
  979. SendCommandMessageToAdmins(playerid,"SETGRAVITY");
  980. 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);
  981. SetGravity(Gravity); return SendClientMessageToAll(yellow,string);
  982. } else return SendLevelErrorMessage(playerid,"setgravity");
  983. }
  984. dcmd_xlock(playerid,params[]) {
  985. #pragma unused params
  986. if(IsPlayerCommandLevel(playerid,"xlock")) {
  987. if(IsPlayerInAnyVehicle(playerid)) {
  988. SendCommandMessageToAdmins(playerid,"XLOCK");
  989. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,false,true);
  990. new string[256],name[24]; VehicleLockData[GetPlayerVehicleID(playerid)] = true; GetPlayerName(playerid,name,24); format(string,256,"Administrator \"%s\" has locked their vehicle.",name); return SendClientMessageToAll(yellow,string);
  991. } else return SendClientMessage(playerid,red,"ERROR: You must be in a vehicle to lock.");
  992. } else return SendLevelErrorMessage(playerid,"xlock");
  993. }
  994. dcmd_xunlock(playerid,params[]) {
  995. #pragma unused params
  996. if(IsPlayerCommandLevel(playerid,"xunlock")) {
  997. if(IsPlayerInAnyVehicle(playerid)) {
  998. SendCommandMessageToAdmins(playerid,"XUNLOCK");
  999. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,false,false);
  1000. new string[256],name[24]; VehicleLockData[GetPlayerVehicleID(playerid)] = false; GetPlayerName(playerid,name,24); format(string,256,"Administrator \"%s\" has unlocked their vehicle.",name); return SendClientMessageToAll(yellow,string);
  1001. } else return SendClientMessage(playerid,red,"ERROR: You must be in a vehicle to unlock.");
  1002. } else return SendLevelErrorMessage(playerid,"xunlock");
  1003. }
  1004. dcmd_carcolor(playerid,params[]) {
  1005. if(IsPlayerCommandLevel(playerid,"carcolor")) {
  1006. new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1007. if(!strlen(tmp)||!(strval(tmp) >= 0 && strval(tmp) <= 126)||!IsNumeric(tmp)||!IsNumeric(tmp2)) return SendClientMessage(playerid,red,"Syntax Error: \"/CARCOLOR <COLOR 1> (<COLOR 2>)\".");
  1008. if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,red,"ERROR: You must be in a vehicle.");
  1009. SendCommandMessageToAdmins(playerid,"CARCOLOR");
  1010. if(!strlen(tmp2)) tmp2 = tmp;
  1011. new string[256],name[24]; GetPlayerName(playerid,name,24);
  1012. format(string,256,"You have set your color data to: [Color 1: %d || Color 2: %d]",strval(tmp),strval(tmp2));
  1013. return ChangeVehicleColor(GetPlayerVehicleID(playerid),strval(tmp),strval(tmp2));
  1014. } else return SendLevelErrorMessage(playerid,"carcolor");
  1015. }
  1016. dcmd_gmx(playerid,params[]) {
  1017. #pragma unused params
  1018. if(IsPlayerCommandLevel(playerid,"gmx")) {
  1019. SendCommandMessageToAdmins(playerid,"GMX");
  1020. 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();
  1021. } else return SendLevelErrorMessage(playerid,"gmx");
  1022. }
  1023. dcmd_carhealth(playerid,params[]) {
  1024. if(IsPlayerCommandLevel(playerid,"carhealth")) {
  1025. new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1026. if(!strlen(tmp)||!strlen(tmp2)||!IsNumeric(tmp2)||!(strval(tmp2) >= 0 && strval(tmp2) <= 1000)) return SendClientMessage(playerid,red,"Syntax Error: \"/CARHEALTH <NICK OR ID> <0-1000>\".");
  1027. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  1028. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  1029. if(!IsPlayerInAnyVehicle(id)) return SendClientMessage(playerid,red,"ERROR: This player must be in a vehicle.");
  1030. SendCommandMessageToAdmins(playerid,"CARHEALTH");
  1031. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  1032. if(id != playerid) { format(string,256,"Administrator \"%s\" has set your car's health to %.f percent.",name,floatdiv(strval(tmp2),10)); SendClientMessage(id,yellow,string); format(string,256,"You have set \"%s's\" car's health to %d percent.",ActionName,strval(tmp2)); SendClientMessage(playerid,yellow,string); }
  1033. else { format(string,256,"You've set your car's health to %.f percent.",floatdiv(strval(tmp2),10)); SendClientMessage(playerid,yellow,string); }
  1034. return SetVehicleHealth(GetPlayerVehicleID(id),strval(tmp2));
  1035. } return SendClientMessage(playerid,red,"ERROR: You can not set a disconnected player's car health.");
  1036. } else return SendLevelErrorMessage(playerid,"carhealth");
  1037. }
  1038. dcmd_xinfo(playerid,params[]) {
  1039. #pragma unused params
  1040. return SendClientMessage(playerid,green,"X-Treme Administration Info: [Creator: Xtreme || Version: 2.2 || Release: 1 || Rel. Date: Sept. 13, 2007]");
  1041. }
  1042. dcmd_setping(playerid,params[]) {
  1043. if(IsPlayerCommandLevel(playerid,"setping")) {
  1044. if(!strlen(params)||!(strval(params) >= 0 && strval(params) <= 10000)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETPING <[0 / OFF] - 10,000>\".");
  1045. if(!IsNumeric(params)) {
  1046. if(!strcmp(params,"off",true)) { Config[MaxPing] = 0; SetConfigInt("MaxPing",0); }
  1047. else return SendClientMessage(playerid,red,"Syntax Error: \"/SETPING <[0 / OFF] - 10,000>\".");
  1048. }
  1049. Config[MaxPing] = strval(params); SetConfigInt("MaxPing",strval(params));
  1050. SendCommandMessageToAdmins(playerid,"SETPING");
  1051. new string[256],name[24],Fo[30]; GetPlayerName(playerid,name,24); format(Fo,30,"to %d",Config[MaxPing]); if(!Config[MaxPing]) Fo = "off";
  1052. format(string,256,"Administrator \"%s\" has set the Maximum Ping %s.",name,Fo); return SendClientMessageToAll(yellow,string);
  1053. } else return SendLevelErrorMessage(playerid,"setping");
  1054. }
  1055. dcmd_giveme(playerid,params[]) {
  1056. #pragma unused params
  1057. if(IsPlayerCommandLevel(playerid,"giveme")) {
  1058. if(Spec[playerid][Spectating]) return SendClientMessage(playerid,red,"ERROR: You must not be spectating.");
  1059. if(!IsPlayerInAnyVehicle(playerid)) {
  1060. TogglePlayerControllable(playerid,false);
  1061. SetCameraBehindPlayer(playerid);
  1062. return ShowMenuForPlayer(GiveMe,playerid);
  1063. } else return SendClientMessage(playerid,red,"ERROR: You can not be in a vehicle.");
  1064. } else return SendLevelErrorMessage(playerid,"giveme");
  1065. }
  1066. dcmd_givecar(playerid,params[]) {
  1067. #pragma unused params
  1068. if(IsPlayerCommandLevel(playerid,"givecar")) {
  1069. if(Spec[playerid][Spectating]) return SendClientMessage(playerid,red,"ERROR: You must not be spectating.");
  1070. if(IsPlayerInAnyVehicle(playerid)) {
  1071. new Car = GetPlayerVehicleID(playerid), Model = GetVehicleModel(Car);
  1072. 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!"); }
  1073. TogglePlayerControllable(playerid,false);
  1074. SetCameraBehindPlayer(playerid);
  1075. return ShowMenuForPlayer(GiveCar,playerid);
  1076. } else return SendClientMessage(playerid,red,"ERROR: You must be in a vehicle.");
  1077. } else return SendLevelErrorMessage(playerid,"givecar");
  1078. }
  1079. dcmd_xspec(playerid,params[]) {
  1080. if(IsPlayerCommandLevel(playerid,"xspec")) {
  1081. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/XSPEC <NICK OR ID | OFF>\".");
  1082. new id;
  1083. if(!IsNumeric(params)) {
  1084. if(!strcmp(params,"off",true)) {
  1085. if(!Spec[playerid][Spectating]) return SendClientMessage(playerid,red,"ERROR: You must be spectating.");
  1086. SendCommandMessageToAdmins(playerid,"XSPEC");
  1087. TogglePlayerSpectating(playerid,false);
  1088. Spec[playerid][Spectating] = false;
  1089. return SendClientMessage(playerid,yellow,"You have turned your spectator mode off.");
  1090. }
  1091. id = ReturnPlayerID(params);
  1092. }
  1093. else id = strval(params);
  1094. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) {
  1095. SendCommandMessageToAdmins(playerid,"SPEC");
  1096. new string[256],name[24]; GetPlayerName(id,name,24);
  1097. if(Spec[id][Spectating]) return SendClientMessage(playerid,red,"Error: You can not spectate a player already spectating.");
  1098. if(Spec[playerid][Spectating] && Spec[playerid][SpectateID] == id) return SendClientMessage(playerid,red,"ERROR: You are already spectating this player.");
  1099. Spec[playerid][Spectating] = true, Spec[playerid][SpectateID] = id;
  1100. SetPlayerInterior(playerid,GetPlayerInterior(id));
  1101. TogglePlayerSpectating(playerid,true);
  1102. if(!IsPlayerInAnyVehicle(id)) PlayerSpectatePlayer(playerid,id);
  1103. else PlayerSpectateVehicle(playerid,GetPlayerVehicleID(id));
  1104. format(string,256,"You are now spectating player \"%s\".",name); return SendClientMessage(playerid,yellow,string);
  1105. } else return SendClientMessage(playerid,red,"ERROR: You can not spectate yourself or a disconnected player.");
  1106. } else return SendLevelErrorMessage(playerid,"spec");
  1107. }
  1108. dcmd_xjail(playerid,params[]) {
  1109. if(IsPlayerCommandLevel(playerid,"xjail")) {
  1110. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/XJAIL <NICK OR ID>\".");
  1111. new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params);
  1112. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) {
  1113. if(Variables[id][Jailed]) return SendClientMessage(playerid,red,"ERROR: This player has already been jailed.");
  1114. SendCommandMessageToAdmins(playerid,"XJAIL");
  1115. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  1116. format(string,256,"Administrator \"%s\" has jailed you.",name); SendClientMessage(id,yellow,string); format(string,256,"You have jailed \"%s\".",ActionName); SendClientMessage(playerid,yellow,string);
  1117. SetUserInt(id,"Jailed",1); Variables[id][Jailed] = true; SetPlayerInterior(id,3); SetPlayerPos(id,197.6661,173.8179,1003.0234); return SetPlayerFacingAngle(id,0);
  1118. } return SendClientMessage(playerid,red,"ERROR: You can not jail yourself or a disconnected player.");
  1119. } else return SendLevelErrorMessage(playerid,"xjail");
  1120. }
  1121. dcmd_xunjail(playerid,params[]) {
  1122. if(IsPlayerCommandLevel(playerid,"xunjail")) {
  1123. if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/XUNJAIL <NICK OR ID>\".");
  1124. new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params);
  1125. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) {
  1126. if(!Variables[id][Jailed]) return SendClientMessage(playerid,red,"ERROR: This player has already been unjailed.");
  1127. SendCommandMessageToAdmins(playerid,"XUNJAIL");
  1128. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  1129. if(id != playerid) { format(string,256,"Administrator \"%s\" has unjailed you.",name); SendClientMessage(id,yellow,string); format(string,256,"You have unjailed \"%s\".",ActionName); SendClientMessage(playerid,yellow,string); }
  1130. else SendClientMessage(playerid,yellow,"You have unjailed yourself.");
  1131. SetUserInt(id,"Jailed",0); Variables[id][Jailed] = false; return SpawnPlayer(id);
  1132. } return SendClientMessage(playerid,red,"ERROR: You can not unjail a disconnected player.");
  1133. } else return SendLevelErrorMessage(playerid,"xunjail");
  1134. }
  1135. dcmd_setname(playerid,params[]) {
  1136. if(IsPlayerCommandLevel(playerid,"setname")) {
  1137. new tmp[256],tmp2[256],Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1138. if(!strlen(tmp)||!strlen(tmp2)) return SendClientMessage(playerid,red,"Syntax Error: \"/SETNAME <NICK OR ID> <NEW NAME>\".");
  1139. new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
  1140. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  1141. SendCommandMessageToAdmins(playerid,"SETNAME");
  1142. new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
  1143. 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); }
  1144. else { format(string,256,"You've set your name to %s.",tmp2); SendClientMessage(playerid,yellow,string); }
  1145. OnPlayerConnect(id); return SetPlayerName(id,tmp2);
  1146. } return SendClientMessage(playerid,red,"ERROR: You can not set a disconnected player's name.");
  1147. } else return SendLevelErrorMessage(playerid,"setname");
  1148. }
  1149. dcmd_admins(playerid,params[]) {
  1150. #pragma unused params
  1151. new Count,i,name[24],string[256];
  1152. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerXAdmin(i)) Count++;
  1153. if(!Count) return SendClientMessage(playerid,green,"Admins Online: None");
  1154. if(Count == 1) {
  1155. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerXAdmin(i)) break;
  1156. GetPlayerName(i,name,24); format(string,256,"Admins Online: %s (%d)",name,Variables[i][Level]);
  1157. return SendClientMessage(playerid,green,string);
  1158. }
  1159. if(Count >= 1) {
  1160. new bool:First = false;
  1161. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerXAdmin(i)) {
  1162. GetPlayerName(i,name,24);
  1163. if(!First) { format(string,256,"Admins Online: %s (%d),",name,Variables[i][Level]); First = true; }
  1164. else format(string,256,"%s %s (%d)",string,name,Variables[i][Level]);
  1165. }
  1166. return SendClientMessage(playerid,green,string);
  1167. }
  1168. return 1;
  1169. }
  1170. dcmd_xcommands(playerid,params[]) {
  1171. #pragma unused params
  1172. if(!IsPlayerXAdmin(playerid)) return SendClientMessage(playerid,red,"ERROR: You must be an administrator to view these commands.");
  1173. SendClientMessage(playerid,yellow,"morning,afternoon,evening,midnight,settime,goto,gethere,announce,say,flip,slap,(un)wire,kick,ban");
  1174. SendClientMessage(playerid,yellow,"akill,eject(all),(un)freeze(all),outside,healall,uconfig,setsm,givehealth,sethealth,skinall,armourall");
  1175. SendClientMessage(playerid,yellow,"resetallweapons,set/give/rem/reset(all)cash,god,resetscores,setlevel,setskin,givearmour,setarmour");
  1176. SendClientMessage(playerid,yellow,"setammo,setscore,ip,ping,explode,setname,setalltime,force,set(all)world,setgravity,set(all)wanted");
  1177. return SendClientMessage(playerid,yellow,"carcolor,give(all)weapon,x(unlock),gmx,carhealth,setping,giveme,givecar,xspec,xcommands,weather");
  1178. }
  1179. dcmd_vr(playerid,params[]) {
  1180. #pragma unused params
  1181. if(IsPlayerCommandLevel(playerid,"vr")) {
  1182. if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,red,"ERROR: You must be in a vehicle to repair.");
  1183. SetVehicleHealth(GetPlayerVehicleID(playerid),1000.0);
  1184. return SendClientMessage(playerid,yellow,"You have successfully repaired your vehicle!");
  1185. } else return SendLevelErrorMessage(playerid,"vr");
  1186. }
  1187. dcmd_weather(playerid,params[]) {
  1188. #pragma unused params
  1189. if(IsPlayerCommandLevel(playerid,"weather")) {
  1190. TogglePlayerControllable(playerid,false);
  1191. SetCameraBehindPlayer(playerid);
  1192. return ShowMenuForPlayer(Weather,playerid);
  1193. } else return SendLevelErrorMessage(playerid,"weather");
  1194. }
  1195. //========================[WIRE Text Event]=====================================
  1196. public OnPlayerText(playerid,text[]) {
  1197. if(text[0] == '#' && IsPlayerXAdmin(playerid)) {
  1198. new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Admin %s: %s",name,text[1]); SendMessageToAdmins(string);
  1199. return 0;
  1200. }
  1201. if(Variables[playerid][Wired]) {
  1202. Variables[playerid][WiredWarnings]--;
  1203. new string[256],Name[24];
  1204. if(Variables[playerid][WiredWarnings]) {
  1205. format(string,256,"You have been wired thus preventing you from talking or PMing. [Warnings: %d/%d]",Variables[playerid][WiredWarnings],Config[WiredWarnings]);
  1206. SendClientMessage(playerid,white,string); return 0;
  1207. }
  1208. else {
  1209. GetPlayerName(playerid,Name,24); format(string,256,"%s has been kicked from the server. [REASON: Wired]",Name);
  1210. SendClientMessageToAll(yellow,string); SetUserInt(playerid,"Wired",0);
  1211. Kick(playerid); return 0;
  1212. }
  1213. }
  1214. return 1;
  1215. }
  1216. //==============================================================================
  1217. public OnPlayerPrivmsg(playerid, recieverid, text[]) {
  1218. if(!IsPlayerConnected(playerid)||!IsPlayerConnected(recieverid)) return 1;
  1219. new string[256], ToName[24], Name[24]; GetPlayerName(playerid,Name,24);
  1220. if(Config[ExposePMS]) {
  1221. GetPlayerName(recieverid,ToName,24);
  1222. format(string,256,"PM: %s [%d] -> %s [%d]: %s",Name,playerid,ToName,recieverid,text);
  1223. SendMessageToAdmins(string);
  1224. }
  1225. if(Config[WireWithPM] && Variables[playerid][Wired]) {
  1226. Variables[playerid][WiredWarnings]--;
  1227. if(Variables[playerid][WiredWarnings]) {
  1228. format(string,256,"You have been wired thus preventing you from talking and PMing. [Warnings: %d/%d]",Variables[playerid][WiredWarnings],Config[WiredWarnings]);
  1229. SendClientMessage(playerid,white,string); return 0;
  1230. }
  1231. else {
  1232. format(string,256,"%s has been kicked from the server. [REASON: Wired]",Name);
  1233. SendClientMessageToAll(yellow,string); SetUserInt(playerid,"Wired",0);
  1234. Kick(playerid); return 0;
  1235. }
  1236. }
  1237. return 1;
  1238. }
  1239. //==============================================================================
  1240. public OnPlayerExitVehicle(playerid, vehicleid) {
  1241. if(VehicleLockData[vehicleid]) { VehicleLockData[vehicleid] = false; for(new i = 0; i < MAX_PLAYERS; i++) SetVehicleParamsForPlayer(vehicleid,i,false,false); }
  1242. 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); }
  1243. return 1;
  1244. }
  1245. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger){
  1246. #pragma unused ispassenger
  1247. 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); }
  1248. return 1;
  1249. }
  1250.  
  1251. //==============================================================================
  1252. public OnPlayerSelectedMenuRow(playerid, row) {
  1253. new Menu:Current = GetPlayerMenu(playerid);
  1254. if(Current == GiveMe) {
  1255. new car[20],Float:X,Float:Y,Float:Z,Float:Angle,id,carid;
  1256. GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  1257. switch(row) {
  1258. case 0: car = "Infernus", id = 411;
  1259. case 1: car = "NRG500", id = 522;
  1260. case 2: car = "Monster Truck", id = 444;
  1261. case 3: car = "Packer", id = 443;
  1262. case 4: car = "RC Car", id = 441;
  1263. case 5: car = "Rancher", id = 489;
  1264. case 6: car = "Roadtrain", id = 515;
  1265. case 7: car = "Dumper", id = 406;
  1266. case 8: car = "Sultan", id = 560;
  1267. case 9: car = "Maverick", id = 487;
  1268. case 10: car = "Vortex", id = 539;
  1269. case 11: car = "Hydra", id = 520;
  1270. }
  1271. SendCommandMessageToAdmins(playerid,"GIVEME");
  1272. new string[256]; format(string,sizeof(string),"You have selected \'%s\'.",car); SendClientMessage(playerid,yellow,string);
  1273. carid = CreateVehicle(id,X,Y,Z,Angle,-1,-1,50000);
  1274. PutPlayerInVehicle(playerid,carid,0);
  1275. TogglePlayerControllable(playerid,true);
  1276. if(GetPlayerInterior(playerid)) LinkVehicleToInterior(carid,GetPlayerInterior(playerid));
  1277. SetVehicleVirtualWorld(carid,GetPlayerVirtualWorld(playerid));
  1278. }
  1279. if(Current == GiveCar) {
  1280. new Component[20],id,carid;
  1281. switch(row) {
  1282. case 0: Component = "Nitrous x10", id = 1010;
  1283. case 1: Component = "Hydraulics", id = 1087;
  1284. case 2: Component = "Offroad Wheels", id = 1025;
  1285. case 3: Component = "Wire Wheels", id = 1081;
  1286. }
  1287. SendCommandMessageToAdmins(playerid,"GIVECAR");
  1288. new string[256]; format(string,sizeof(string),"You have selected \'%s\'.",Component); SendClientMessage(playerid,yellow,string);
  1289. TogglePlayerControllable(playerid,true);
  1290. carid = GetPlayerVehicleID(playerid); AddVehicleComponent(carid,id);
  1291. }
  1292. if(Current == Weather) {
  1293. new id, Part[20];
  1294. switch(row) {
  1295. case 0: Part = "Sunny", id = 15;
  1296. case 1: Part = "Cloudy", id = 7;
  1297. case 2: Part = "Thunderstorm", id = 16;
  1298. case 3: Part = "Foggy", id = 9;
  1299. case 4: Part = "Scorching Hot", id = 17;
  1300. case 5: Part = "Sandstorm", id = 19;
  1301. case 6: Part = "Polluted", id = 35;
  1302. }
  1303. if(id == ServerWeather) return SendClientMessage(playerid,red,"ERROR: The server weather is already the one you have selected.");
  1304. SendCommandMessageToAdmins(playerid,"WEATHER");
  1305. new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Administrator \"%s\" has changed the weather to \'%s\'.",name,Part); SendClientMessageToAll(yellow,string);
  1306. TogglePlayerControllable(playerid,true); ServerWeather = id, SetWeather(id);
  1307. }
  1308. return 1;
  1309. }
  1310. //==============================================================================
  1311. public OnPlayerExitedMenu(playerid) {
  1312. new Menu:Current = GetPlayerMenu(playerid);
  1313. HideMenuForPlayer(Current,playerid);
  1314. return TogglePlayerControllable(playerid,true);
  1315. }
  1316. //==============================================================================
  1317. public PingKick() {
  1318. if(Config[MaxPing]) {
  1319. for(new i = 0,string[256],name[24]; i < MAX_PLAYERS; i++)
  1320. if(IsPlayerConnected(i) && (GetPlayerPing(i) > Config[MaxPing])) {
  1321. if(!IsPlayerXAdmin(i) || (IsPlayerXAdmin(i) && !Config[AdminImmunity])) {
  1322. GetPlayerName(i,name,24); format(string,256,"\"%s\" has been kicked from the server. (Reason: High Ping || Max Allowed: %d)",name,Config[MaxPing]);
  1323. SendClientMessageToAll(yellow,string); Kick(i);
  1324. }
  1325. }
  1326. }
  1327. }
  1328.  
Advertisement
Add Comment
Please, Sign In to add comment