Advertisement
Guest User

Untitled

a guest
Jan 30th, 2013
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 33.57 KB | None | 0 0
  1. // This is a comment
  2. // uncomment the line below if you want to write a filterscript
  3. //#define FILTERSCRIPT
  4.  
  5. #include <a_samp>
  6. #include <zcmd>
  7. #include <sscanf2>
  8. #include <dini>
  9. #include <foreach>
  10. #undef MAX_PLAYERS
  11. #define MAX_PLAYERS 32
  12. #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  13. #define COLOR_DRED 0xFF0000AA
  14. #define COLOR_GREY 0xAFAFAFAA
  15. #define COLOR_GREEN 0x33AA33AA
  16. #define COLOR_RED 0xAA3333AA
  17. #define COLOR_YELLOW 0xFFFF00AA
  18. #define COLOR_WHITE 0xFFFFFFAA
  19. #define COLOR_BLUE 0x0000BBAA
  20. #define COLOR_LIGHTBLUE 0x33CCFFAA
  21. #define COLOR_ORANGE 0xFF9900AA
  22. #define COLOR_LIME 0x10F441AA
  23. #define COLOR_MAGENTA 0xFF00FFFF
  24. #define COLOR_NAVY 0x000080AA
  25. #define COLOR_AQUA 0xF0F8FFAA
  26. #define COLOR_CRIMSON 0xDC143CAA
  27. #define COLOR_FLBLUE 0x6495EDAA
  28. #define COLOR_BISQUE 0xFFE4C4AA
  29. #define COLOR_BLACK 0x000000AA
  30. #define COLOR_CHARTREUSE 0x7FFF00AA
  31. #define COLOR_BROWN 0XA52A2AAA
  32. #define COLOR_CORAL 0xFF7F50AA
  33. #define COLOR_GOLD 0xB8860BAA
  34. #define COLOR_GREENYELLOW 0xADFF2FAA
  35. #define COLOR_INDIGO 0x4B00B0AA
  36. #define COLOR_IVORY 0xFFFF82AA
  37. #define COLOR_LAWNGREEN 0x7CFC00AA
  38. #define COLOR_SEAGREEN 0x20B2AAAA
  39. #define COLOR_LIMEGREEN 0x32CD32AA
  40. #define COLOR_MIDNIGHTBLUE 0X191970AA
  41. #define COLOR_MAROON 0x800000AA
  42. #define COLOR_OLIVE 0x808000AA
  43. #define COLOR_ORANGERED 0xFF4500AA
  44. #define COLOR_PINK 0xFFC0CBAA
  45. #define COLOR_SPRINGGREEN 0x00FF7FAA
  46. #define COLOR_TOMATO 0xFF6347AA
  47. #define COLOR_YELLOWGREEN 0x9ACD32AA
  48. #define COLOR_MEDIUMAQUA 0x83BFBFAA
  49.  
  50. enum PlayerData
  51. {
  52.     Logged,
  53.     Regged,
  54.     Kills,
  55.     Deaths,
  56.     DamageIssued,
  57.     DamageTaken,
  58.     Level
  59. };
  60.  
  61. #if defined FILTERSCRIPT
  62.  
  63. public OnFilterScriptInit()
  64. {
  65.     print("\n--------------------------------------");
  66.     print(" Blank Filterscript by your name here");
  67.     print("--------------------------------------\n");
  68.     return 1;
  69. }
  70.  
  71. public OnFilterScriptExit()
  72. {
  73.     return 1;
  74. }
  75.  
  76. #else
  77.  
  78. main()
  79. {
  80.     print("\n----------------------------------");
  81.     print(" Blank Gamemode by your name here");
  82.     print("----------------------------------\n");
  83. }
  84.  
  85.  
  86. #endif
  87. new pInfo[MAX_PLAYERS][PlayerData];
  88. new aduty[MAX_PLAYERS];
  89. new godmode[MAX_PLAYERS];
  90.  
  91.  
  92. CMD:pm(playerid, params[])
  93. {
  94.     new str[128], str2[128], id, Name1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME];
  95.     if(sscanf(params, "ds[128]", id, str2)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE]/pm <playerid> <message>");
  96.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid,0xFF0000AA, "[ERROR]User is not connected.");
  97.     if(playerid == id) return SendClientMessage(playerid,0xFF0000AA, "[ERROR]You cannot PM yourself");
  98.     {
  99.         GetPlayerName(playerid, Name1, sizeof(Name1));
  100.         GetPlayerName(id, Name2, sizeof(Name2));
  101.         format(str, sizeof(str), ">> %s(%d): %s", Name2, id, str2);
  102.         SendClientMessage(playerid, 0xFF9900AA, str);
  103.         format(str, sizeof(str), "** %s(%d): %s", Name1, playerid, str2);
  104.         SendClientMessage(id, 0xFF9900AA, str);
  105.     }
  106.     return 1;
  107. }
  108. CMD:spectate(playerid, params[])
  109. {
  110. new pID, string[128], aname[MAX_PLAYER_NAME], aspectate[MAX_PLAYERS], pspectate[MAX_PLAYERS];
  111. new Float:x[MAX_PLAYERS], Float:y[MAX_PLAYERS], Float:z[MAX_PLAYERS], vworld[MAX_PLAYERS], interior[MAX_PLAYERS];
  112. if(pInfo[playerid][Level] < 1) return 0;
  113. if(playerid == pID) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You may not spectate yourself.");
  114. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]User is not connected.");
  115. if(aspectate[playerid] == 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are currently spectating someone.");
  116. GetPlayerPos(playerid, x[playerid], y[playerid], z[playerid]);
  117. interior[playerid] = GetPlayerInterior(playerid);
  118. vworld[playerid] = GetPlayerVirtualWorld(playerid);
  119. TogglePlayerSpectating(playerid, 1);
  120. if(IsPlayerInAnyVehicle(pID))
  121.     {
  122.         if(GetPlayerInterior(pID) > 0)
  123.         {
  124.             SetPlayerInterior(playerid,GetPlayerInterior(pID));
  125.         }
  126.         if(GetPlayerVirtualWorld(pID) > 0)
  127.         {
  128.             SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(pID));
  129.         }
  130.         PlayerSpectateVehicle(playerid,GetPlayerVehicleID(pID));
  131.     }
  132.     else
  133.     {
  134.         if(GetPlayerInterior(pID) > 0)
  135.         {
  136.             SetPlayerInterior(playerid,GetPlayerInterior(pID));
  137.         }
  138.         if(GetPlayerVirtualWorld(pID) > 0)
  139.         {
  140.             SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(pID));
  141.         }
  142.         PlayerSpectatePlayer(playerid, pID);
  143.     }
  144. GetPlayerName(pID, aname, sizeof(aname));
  145. format(string, sizeof(string), "You are now spectating %s", aname);
  146. SendClientMessage(playerid, 0xFFC0CBAA, string);
  147. aspectate[playerid] = 1;
  148. pspectate[playerid] = 1;
  149. spectatedid[playerid] = 1;
  150. return 1;
  151. }
  152. CMD:specoff(playerid, params[])
  153. {
  154. new pspectate[MAX_PLAYERS];
  155. if(pInfo[playerid][Level] < 1) return 0;
  156. if(pspectate[playerid] == 0) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not spectating anyone.");
  157. TogglePlayerSpectating(playerid, 0);
  158. return 1;
  159. }
  160. CMD:a(playerid, params[])
  161. {
  162.     new string[128], aname[MAX_PLAYER_NAME];
  163.     if(sscanf(params, "s[128]", string)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE]: /a <text>");
  164.     if(pInfo[playerid][Level] < 1) return 0;
  165.  
  166.     GetPlayerName(playerid, aname, sizeof(aname));
  167.     format(string, sizeof(string), "[Admin Chat]%s: %s", aname, string);
  168.  
  169.     for(new i; i < MAX_PLAYERS; i++)
  170.     {
  171.         if(pInfo[i][Level] > 0) SendClientMessage(i, 0xFFFF00AA, string);
  172.     }
  173.     return 1;
  174. }
  175.  
  176.  
  177. CMD:goto(playerid, params[])
  178. {
  179. new string[128], pID, pname1[MAX_PLAYER_NAME], aname[MAX_PLAYER_NAME];
  180. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  181. if(sscanf(params, "u", pID)) return SendClientMessage(playerid, 0xFF4500AA, "[USAGE]:/goto [playerid]");
  182. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF4500AA, "[ERROR]User is not connected.");
  183. GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
  184. GetPlayerName(pID, pname1, MAX_PLAYER_NAME);
  185. new Float:x;
  186. new Float:y;
  187. new Float:z;
  188. GetPlayerPos(pID, x, y, z);
  189. SetPlayerPos(playerid, x+1, y+1, z);
  190. format(string, sizeof(string), "You have been teleported to %s", pname1);
  191. SendClientMessage(playerid, 0xFFFF00AA, string);
  192. return 1;
  193. }
  194. CMD:get(playerid, params[])
  195. {
  196. new pID, Float:x, Float:y, Float:z;
  197. if(sscanf(params, "u", pID)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE]: /get [playerid]");
  198. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  199. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]User is not connected.");
  200. if(playerid == pID) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You may not teleport yourself.");
  201. else
  202.     {
  203.     GetPlayerPos(playerid, x, y, z);
  204.     SetPlayerPos(pID, x+1, y+1, z);
  205.     }
  206. return 1;
  207. }
  208. CMD:freezeall(playerid, params[])
  209. {
  210. new string[256], aname[MAX_PLAYER_NAME];
  211. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  212. for(new i = 0; i < MAX_PLAYERS; i++)
  213. {
  214.     TogglePlayerControllable(i, 0);
  215.     }
  216. GetPlayerName(playerid, aname, sizeof(aname));
  217. format(string, sizeof(string), "[Admin]%s has frozen everyone.");
  218. SendClientMessage(playerid, 0xFFFF00AA, string);
  219. return 1;
  220. }
  221. CMD:unfreezeall(playerid, params[])
  222. {
  223. new string[256], aname[MAX_PLAYER_NAME];
  224. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  225. for(new i = 0; i < MAX_PLAYERS; i++)
  226. {
  227.     TogglePlayerControllable(i, 1);
  228.     }
  229. GetPlayerName(playerid, aname, sizeof(aname));
  230. format(string, sizeof(string), "[Admin]%s has unfrozen everyone.");
  231. SendClientMessage(playerid, 0xFFFF00AA, string);
  232. return 1;
  233. }
  234.            
  235. CMD:freeze(playerid, params[])
  236. {
  237. new string[256], string2[256], pID, aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME];
  238. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  239. if(sscanf(params, "u", pID)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE]: /freeze [playerid]");
  240. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]User is not connected.");
  241. {
  242.     GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
  243.     GetPlayerName(pID, aname, MAX_PLAYER_NAME);
  244.     format(string, sizeof(string), "You have frozen %s.", aname, pID, params);
  245.     SendClientMessage(playerid, 0xB8860BAA, string);
  246.     format(string2, sizeof(string2), "You have been frozen by %s.", pname, params);
  247.     SendClientMessage(playerid, 0xB8860BAA, string);
  248.     TogglePlayerControllable(pID, 0);
  249.     }
  250. return 1;
  251. }
  252. CMD:unfreeze(playerid, params[])
  253. {
  254. new string[128], pID, aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME];
  255. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  256. if(sscanf(params, "u", pID)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE]: /unfreeze [playerid]");
  257. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]: User is not connected.");
  258. else
  259. {
  260.     GetPlayerName(playerid, pname, sizeof(pname));
  261.     GetPlayerName(pID, aname, sizeof(aname));
  262.     format(string, sizeof(string), "You have unfrozen %s.", aname, pID);
  263.     SendClientMessage(playerid, 0xFF4500AA, string);
  264.     format(string, sizeof(string), "You have been unfrozen by %s", pname);
  265.     SendClientMessage(playerid, 0xFF4500AA, string);
  266.     TogglePlayerControllable(pID, 1);
  267.     }
  268. return 1;
  269. }
  270. CMD:givecash(playerid, params[])
  271. {
  272. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  273. new string[128], pID, cash ,aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME];
  274. if(sscanf(params, "ui", pID, cash)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE]: /givecash [playerid] [cash].");
  275. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]: User is not connected.");
  276. else
  277. {
  278.     GetPlayerName(playerid, aname, sizeof(aname));
  279.     GetPlayerName(pID, pname, sizeof(pname));
  280.     format(string, sizeof(string), "You have admin given $%d to %s", cash, pname);
  281.     SendClientMessage(playerid,0xFF4500AA, string);
  282.     format(string, sizeof(string), "You have been given $%d by %s", cash, aname);
  283.     SendClientMessage(playerid, 0xFF4500AA, string);
  284.     GivePlayerMoney(pID, cash);
  285.     }
  286. return 1;
  287. }
  288.  
  289. CMD:slap(playerid, params[])
  290. {
  291. new string[128],pID, aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME];
  292. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  293. if(sscanf(params, "u", pID)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE]: /slap [playerid].");
  294. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]: User is not connected");
  295. else
  296. {
  297.     new Float:x;
  298.     new Float:y;
  299.     new Float:z;
  300.     GetPlayerName(playerid, aname, sizeof(aname));
  301.     GetPlayerName(pID, pname, sizeof(pname));
  302.     format(string, sizeof(string), "You have slapped %s", pname);
  303.     SendClientMessage(playerid, 0xFF4500AA, string);
  304.     format(string, sizeof(string), "You have been slapped by %s", aname);
  305.     SendClientMessage(playerid, 0xFF4500AA, string);
  306.     GetPlayerPos(pID, x,y,z);
  307.     SetPlayerPos(pID, x,y,z+10);
  308.     }
  309. return 1;
  310. }
  311. COMMAND:giveweapon(playerid,params[])
  312. {
  313. new pID, gID, ammo, string[128], aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME];
  314. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  315. if(sscanf(params, "udd", pID, gID, ammo)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE]: /giveweapon <playerid> <weaponid> <ammo>.");
  316. if(gID < 0 || gID  >34) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR] Invalid weapon ID.");
  317. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]User is not connected.");
  318. else
  319. {
  320.     GetPlayerName(playerid, aname, sizeof(aname));
  321.     GetPlayerName(pID, pname, sizeof(pname));
  322.     format(string, sizeof(string), "You have admin given %s weapon id: [%d] with [%d] bullets.", pname, gID, ammo);
  323.     SendClientMessage(playerid, 0xFF4500AA, string);
  324.     format(string, sizeof(string), "Administrator %s has given you weaponid [%d] with [%d] bullets.", aname, gID, ammo);
  325.     SendClientMessage(pID, 0xFF4500AA, string);
  326.     GivePlayerWeapon(pID, gID, ammo);
  327.     }
  328. return 1;
  329. }
  330. CMD:disarm(playerid, params[])
  331. {
  332. new pID, aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME], string[128];
  333. if(pInfo[playerid][Level] < 1) return 0;
  334. if(sscanf(params, "ud", pID)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE]: /disarm <playerid>");
  335. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]User is not connected.");
  336. {
  337.     GetPlayerName(playerid, aname, sizeof(aname));
  338.     format(string, sizeof(string), "You have disarmed %s", aname);
  339.     SendClientMessage(playerid, 0xFFFF00AA, string);
  340.     GetPlayerName(pID, pname, sizeof(pname));
  341.     format(string, sizeof(string), "You have been disarmed by %s", pname);
  342.     SendClientMessage(playerid, 0xFFFF00AA, string);
  343.     }
  344. return 1;
  345. }
  346.  
  347. CMD:explode(playerid, params[])
  348. {
  349. new Float:x, Float:y, Float:z, pID;
  350. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  351. if(sscanf(params, "ud", params, pID)) return SendClientMessage(playerid, 0xFF0000AA,"[USAGE]: /explode <playerid>");
  352. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]User is not connected.");
  353. if(playerid == pID) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR] You may not explode yourself.");
  354. {
  355.     GetPlayerPos(pID, x,y,z);
  356.     CreateExplosion(x,y,z, 5, 5);
  357.     }
  358. return 1;
  359. }
  360.  
  361. CMD:sethealth(playerid, params[])
  362. {
  363. new pID, pHP, string[128], aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME];
  364. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  365. if(sscanf(params, "ui",pID, pHP)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE]: /sethealth <playerid> <health>.");
  366. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]User is not connected.");
  367. if(pHP > 100 || pHP < 0) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR] You may only set valid amounts between 0 and 100.");
  368. else
  369. {
  370.     GetPlayerName(playerid, aname, sizeof(aname));
  371.     GetPlayerName(pID, pname, sizeof(pname));
  372.     format(string, sizeof(string), "You have admin set %s health to %d.", pname, pHP);
  373.     SendClientMessage(playerid,  0xFF4500AA, string);
  374.     format(string, sizeof(string), "Your health has been set to %d by %s .", pHP, aname);
  375.     SendClientMessage(pID, 0xFF4500AA, string);
  376.     SetPlayerHealth(pID, pHP);
  377.     }
  378. return 1;
  379. }
  380. CMD:setarmor(playerid, params[])
  381. {
  382. new pAR, pID, string[128], aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME];
  383. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  384. if(sscanf(params, "ui", pID, pAR)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE]: /setarmor <playerid> <armor>.");
  385. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]User is connected.");
  386. if(pAR > 100 || pAR < 0) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR] You may only set valid amounts between 0 and 100.");
  387. {
  388.     GetPlayerName(playerid, aname, sizeof(aname));
  389.     GetPlayerName(pID, pname, sizeof(pname));
  390.     format(string, sizeof(string), "You have admin set %s body armor to %d.", pname, pAR);
  391.     SendClientMessage(playerid, 0xFF4500AA, string);
  392.     format(string, sizeof(string), "Your body armor has been set to %d by %s.", pAR, aname);
  393.     SendClientMessage(pID, 0xFF4500AA, string);
  394.     SetPlayerArmour(pID, pAR);
  395.     }
  396. return 1;
  397. }
  398. CMD:aduty(playerid, params[])
  399. {
  400. new aname[MAX_PLAYER_NAME], string[128];
  401. if(aduty[playerid] == 0)
  402. {
  403.     if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  404.     aduty[playerid] = 1;
  405.     GetPlayerName(playerid, aname, sizeof(aname));
  406.     format(string, sizeof(string), "%s is now on duty as an administrator!", aname);
  407.     SetPlayerColor(playerid, 0xFF0000AA);
  408.     SendClientMessageToAll(0xFF0000AA, string);
  409.     }
  410.  
  411. else if(aduty[playerid] == 1)
  412. {
  413.     aduty[playerid] = 0;
  414.     GetPlayerName(playerid, aname, sizeof(aname));
  415.     format(string, sizeof(string), "%s is no longer on duty as an administrator!", aname);
  416.     SendClientMessageToAll(0xFF0000AA, string);
  417.     SetPlayerColor(playerid, 0xFF0000AA);
  418.     }
  419. return 1;
  420. }
  421. CMD:asay(playerid, params[])
  422. {
  423. new amsg[128], aname[MAX_PLAYER_NAME];
  424. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  425. if(sscanf(params, "s[128]", amsg)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE]: /asay <text>");
  426. GetPlayerName(playerid, aname, sizeof(aname));
  427. format(amsg, sizeof(amsg), "Admin %s: To All: %s",aname, amsg);
  428. SendClientMessageToAll(0xFF0000AA, amsg);
  429. return 1;
  430. }
  431. CMD:god(playerid, params[])
  432. {
  433. new aname[MAX_PLAYER_NAME], string[128];
  434. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  435. if(godmode[playerid] == 0)
  436. {
  437.     godmode[playerid] = 1;
  438.     GetPlayerName(playerid, aname, sizeof(aname));
  439.     format(string, sizeof(string), "You have enabled god mode.", aname);
  440.     SendClientMessage(playerid, 0xFF7F50AA, string);
  441.     SetPlayerHealth(playerid, 999999999999.0);
  442.     }
  443.    
  444. else if(godmode[playerid] == 1)
  445. {
  446.     godmode[playerid] = 0;
  447.     GetPlayerName(playerid, aname, sizeof(aname));
  448.     format(string, sizeof(string), "You have deactivated god mode.", aname);
  449.     SendClientMessage(playerid, 0xFF7F50AA, string);
  450.     SetPlayerHealth(playerid, 100.0);
  451.     }
  452. return 1;
  453. }
  454.  
  455. CMD:setworld(playerid, params[])
  456. {
  457. new pID, pW, string[128], aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME];
  458. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  459. if(sscanf(params, "ui", pID, pW)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE]: /setworld <playerid> <virtual world id>.");
  460. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]User is not connected.");
  461. else
  462. {
  463.     GetPlayerName(playerid, aname, sizeof(aname));
  464.     GetPlayerName(pID, pname, sizeof(pname));
  465.     format(string, sizeof(string), "You have set %s virtual world to %d.", pname, pW);
  466.     SendClientMessage(playerid, 0x33CCFFAA, string);
  467.     format(string, sizeof(string), "%s has set your virtual world to %d.", aname, pW);
  468.     SendClientMessage(pID,0x33CCFFAA, string);
  469.     SetPlayerVirtualWorld(pID, pW);
  470.     }
  471. return 1;
  472. }
  473. CMD:akill(playerid, params[])
  474. {
  475. new pID, aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME], string[128];
  476. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  477. if(sscanf(params, "ui", pID)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE]: /akill <playerid>.");
  478. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR] User is not connected.");
  479. else
  480. {
  481.     GetPlayerName(playerid, aname, sizeof(aname));
  482.     GetPlayerName(pID, pname, sizeof(pname));
  483.     format(string, sizeof(string), "You have been killed by %s", aname);
  484.     SendClientMessage(pID, 0xFFFF00AA, string);
  485.     format(string, sizeof(string), "You have admin killed %s", pname);
  486.     SendClientMessage(playerid, 0xFFFF00AA, string);
  487.     SetPlayerHealth(pID, 0);
  488.     }
  489. return 1;
  490. }
  491.  
  492. CMD:setinterior(playerid, params[])
  493. {
  494. new pID, pIN, string[128], aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME];
  495. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR] You are not authorized to use this command.");
  496. if(sscanf(params,"ui", pID, pIN)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE]: /setinterior <playerid> <interior ID>.");
  497. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]User is not connected.");
  498. else
  499. {
  500.     GetPlayerName(playerid, aname, sizeof(aname));
  501.     GetPlayerName(pID, pname, sizeof(pname));
  502.     format(string, sizeof(string), "You have set %s interior to %d.", pname, pIN);
  503.     SendClientMessage(playerid, 0x33CCFFAA, string);
  504.     format(string, sizeof(string), "Your interior has been set to %d by %s.", pIN, aname);
  505.     SendClientMessage(pID, 0x33CCFFAA, string);
  506.     SetPlayerInterior(pID, pIN);
  507.     }
  508. return 1;
  509. }
  510. CMD:settime(playerid, params[])
  511. {
  512. new pID, pTI, string[128];
  513. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  514. if(sscanf(params, "ud", pID, pTI)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE]: /settime <time>.");
  515. if(pTI > 23 || pTI < 0) return SendClientMessage(playerid, 0xFF0000AA, "You may only set valid hours between 0 and 23");
  516. for(new i = 0; i < MAX_PLAYERS; i++)
  517. {
  518. SetPlayerTime(pID, pTI, 0);
  519. }
  520. format(string, sizeof(string), "World time has been set to %d", pTI);
  521. SendClientMessageToAll(0x10F441AA, string);
  522. return 1;
  523. }
  524.    
  525.  
  526. CMD:setplayertime(playerid, params[])
  527. {
  528. new pID, pTI, string[128], aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME];
  529. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You are not authorized to use this command.");
  530. if(sscanf(params, "ud", pID, pTI)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE] /setplayertime <playerid> <hour> <minutes>.");
  531. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]User is not connected.");
  532. if(pTI > 23 || pTI < 0) return SendClientMessage(playerid, 0xFF0000AA, "You may only set valid hours between 0 and 23");
  533. else
  534. {
  535.     GetPlayerName(playerid, aname, sizeof(aname));
  536.     GetPlayerName(pID, pname, sizeof(pname));
  537.     format(string, sizeof(string), "You have set %s virtual time to %d hours.", pname, pTI );
  538.     SendClientMessage(playerid,  0x10F441AA, string);
  539.     format(string, sizeof(string), "Your virtual time has been set to %d by admin %s.", pTI, aname);
  540.     SendClientMessage(pID,  0x10F441AA, string);
  541.     SetPlayerTime(pID, pTI, 0);
  542.     }
  543. return 1;
  544. }
  545. CMD:healall(playerid, params[])
  546. {
  547. new aname[MAX_PLAYER_NAME], string[128];
  548. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR] You are not authorized to use this command.");
  549. for(new i = 0; i < MAX_PLAYERS; i++)
  550. {
  551.     SetPlayerHealth(i, 100.0);
  552.     }
  553. GetPlayerName(playerid, aname, sizeof(aname));
  554. format(string, sizeof(string), "[ADMIN] %s has healed everyone.", aname);
  555. SendClientMessageToAll(0xFFFF00AA, string);
  556. return 1;
  557. }
  558. CMD:armorall(playerid, params[])
  559. {
  560. new aname[MAX_PLAYER_NAME], string[128];
  561. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR] You are not authorized to use this command.");
  562. for(new i = 0; i < MAX_PLAYERS; i++)
  563. {
  564.     SetPlayerArmour(i, 100.0);
  565.     }
  566. GetPlayerName(playerid, aname, sizeof(aname));
  567. format(string, sizeof(string), "[ADMIN] %s has re-armoured everyone.", aname);
  568. SendClientMessageToAll(0xFFFF00AA, string);
  569. return 1;
  570. }
  571.  
  572. CMD:getall(playerid, params[])
  573. {
  574. new Float:x, Float:y, Float:z;
  575. new aname[MAX_PLAYER_NAME], string[128];
  576. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR] You are not authorized to use this command.");
  577. for(new i = 0; i < MAX_PLAYERS; i++)
  578. {
  579.     GetPlayerPos(playerid, x, y, z);
  580.     SetPlayerPos(i, x, y, z);
  581.     }
  582. GetPlayerName(playerid, aname, sizeof(aname));
  583. format(string, sizeof(string), "[ADMIN] %s has teleported everyone to their location.", aname);
  584. SendClientMessageToAll(0xFFFF00AA, string);
  585. return 1;
  586. }
  587. CMD:clearchat(playerid, params[])
  588. {
  589. new string[128], aname[MAX_PLAYER_NAME];
  590. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR] You are not authorized to use this command.");
  591. for(new i = 0; i < 90; i++)
  592. {
  593.     SendClientMessageToAll(0xFFFFFFAA, "  ");
  594.     }
  595. GetPlayerName(playerid, aname, sizeof(aname));
  596. format(string, sizeof(string), "[Admin]%s has cleared the chat.", aname);
  597. SendClientMessageToAll(0xFFFF00AA, string);
  598. return 1;
  599. }
  600. CMD:announce(playerid, params[])
  601. {
  602. new string[128], text;
  603. if(pInfo[playerid][Level] < 1) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR] You are not authorized to use this command.");
  604. if(sscanf(params, "s[128]", text)) return SendClientMessage(playerid, 0xFF0000AA, "[USAGE]: /announce <text>");
  605. else
  606. {
  607.     format(string, sizeof(string), "%s", string);
  608.     GameTextForAll(string, 7500, 3);
  609.     }
  610. return 1;
  611. }
  612.  
  613.  
  614. CMD:register(playerid, params[])
  615. {
  616.         new file[256],pname[MAX_PLAYER_NAME], pass[128];
  617.         GetPlayerName(playerid,pname,MAX_PLAYER_NAME);
  618.         format(file,sizeof(file),"Admin/Users/%s.txt",pname);
  619.         if(dini_Exists(file)) return SendClientMessage(playerid,0xFF4500AA,"You are already registered!");
  620.         if(pInfo[playerid][Regged] == 1) return SendClientMessage(playerid,0xFF4500AA,"You are already registered!");
  621.         if(pInfo[playerid][Logged] == 1) return SendClientMessage(playerid,0xFF4500AA,"You are already registered, and logged in!");
  622.         if(sscanf(params, "s[128]", pass)) return SendClientMessage(playerid, 0xFF4500AA, "Usage: /register <password>");
  623.         {
  624.             if(!dini_Exists(file))
  625.             {
  626.             dini_Create(file);
  627.             dini_Set(file,"Password", pass);
  628.             dini_IntSet(file,"Regged",1);
  629.             dini_IntSet(file,"Logged",0);
  630.             dini_IntSet(file,"Level",0);
  631.             dini_IntSet(file,"Kills",0);
  632.             dini_IntSet(file,"Deaths",0);
  633.             dini_IntSet(file,"Damage Issued",0);
  634.             dini_IntSet(file,"Damage Taken", 0);
  635.             SendClientMessage(playerid, 0x32CD32AA, "Your account has been registered, your status will be saved, remember to use /login.");
  636.             }
  637.         }
  638.         return 1;
  639.         }
  640.        
  641.  
  642. CMD:login(playerid, params[])
  643. {
  644.     new file[256], pname[MAX_PLAYER_NAME], pass[256];
  645.     GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
  646.     format(file, sizeof(file), "Admin/Users/%s.txt", pname);
  647.     if(!dini_Exists(file)) return SendClientMessage(playerid,0xFF0000AA,"You are not registered! Please /register");
  648.     if(pInfo[playerid][Logged] == 1) return SendClientMessage(playerid,0xFF0000AA, "You are already logged in.");
  649.     if(pInfo[playerid][Regged] == 0) return SendClientMessage(playerid,0xFF0000AA,"You are not registered! Please /register");
  650.     if(sscanf(params, "s[128]", pass))return SendClientMessage(playerid,0xFF0000AA,"Usage: /login <password>");
  651.  
  652.  
  653.     pass = dini_Get(file,"Password");
  654.     if(dini_Exists(file))
  655.     {
  656.         if(strcmp(params,pass,false) != 0)
  657.             return SendClientMessage(playerid,0xFF4500AA,"Wrong Password!");
  658.  
  659.         dini_IntSet(file,"Logged",1);
  660.         pInfo[playerid][Logged] = 1;
  661.         pInfo[playerid][Level] = dini_Int(file,"Level");
  662.         SendClientMessage(playerid,0xFF4500AA,"You have now logged in!");
  663.     }
  664.     return 1;
  665. }
  666. CMD:setlevel(playerid, params[])
  667. {
  668. new pname[MAX_PLAYER_NAME], aname[MAX_PLAYER_NAME], pID, level, string[256], file[256];
  669. if(sscanf(params, "ui", pID, level)) return SendClientMessage(playerid, 0xFF0000AA, "Usage: /setlevel <playerid> <level>.");
  670. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]User is not connected.");
  671. if(level >5 || level < 0) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR] You may only set valid amounts between 0 and 5.");
  672. if(pInfo[playerid][Level] < 5) return SendClientMessage(playerid, 0xFF0000AA, "[ERROR]You must be a GwE leader to be able to set admin levels.");
  673. else
  674. {
  675.     GetPlayerName(playerid, aname, sizeof(aname));
  676.     GetPlayerName(pID, pname, sizeof(pname));
  677.     format(string, sizeof(string), "You have set %s admin level to %d.", pname, level);
  678.     SendClientMessage(playerid, 0xFFFF00AA, string);
  679.     format(string, sizeof(string), "Your admin level has been set to %d by GwE Leader %s.", level, aname);
  680.     SendClientMessage(pID, 0xFFFF00AA, string);
  681.     dini_IntSet(file,"Level", level);
  682.     }
  683. return 1;
  684. }
  685. CMD:stats(playerid, params[])
  686. {
  687.     new string1[128], string2[128];
  688.     format(string1, sizeof(string1), "=== [Gang War Elites | Account Status] ===");
  689.     SendClientMessage(playerid, 0xFF9900AA, string1);
  690.     format(string2, sizeof(string2), "Admin Level: %d | Kills: %d | Deaths %d | Damage Done %d | Damage Taken %d", pInfo[playerid][Level], pInfo[playerid][Kills], pInfo[playerid][Deaths], pInfo[playerid][DamageIssued], pInfo[playerid][DamageTaken]);
  691.     SendClientMessage(playerid, 0xFF9900AA, string2);
  692.     return 1;
  693. }
  694.  
  695. public OnGameModeInit()
  696. {
  697.     // Don't use these lines if it's a filterscript
  698.     SetGameModeText("Blank Script");
  699.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  700.     AddStaticVehicle(568,2038.4763,1328.4716,10.5372,359.3387,33,0); // bandito
  701.     AddStaticVehicle(605,2038.4757,1352.5282,10.4930,359.3003,11,11); // pickup truck
  702.     AddStaticVehicle(556,2053.3088,1343.4310,11.0996,180.6123,1,1); // monster truck
  703.     AddStaticVehicle(406,2039.9880,1295.3998,12.1971,180.1216,1,1); // Dumper
  704.     return 1;
  705. }
  706.  
  707. public OnGameModeExit()
  708. {
  709.     return 1;
  710. }
  711.  
  712. public OnPlayerRequestClass(playerid, classid)
  713. {
  714.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  715.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  716.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  717.     return 1;
  718. }
  719.  
  720. public OnPlayerConnect(playerid)
  721. {
  722.     new pname[MAX_PLAYER_NAME], file[256];
  723.     aduty[playerid] = 0;
  724.     pInfo[playerid][Logged] = 0;
  725.     pInfo[playerid][Regged] = 0;
  726.     pInfo[playerid][Level] = 0;
  727.     GetPlayerName(playerid, pname, sizeof(pname));
  728.     format(file, sizeof(file), "Admin/Users/%s.txt", pname);
  729.     if(dini_Exists(file))
  730.     {
  731.         SendClientMessage(playerid, 0x33AA33AA, "You are registered, please use /login and save your stats.");
  732.         pInfo[playerid][Logged] = 0;
  733.         pInfo[playerid][Regged] = 1;
  734.         return 1;
  735.     }
  736.     if(!dini_Exists(file))
  737.     {
  738.         SendClientMessage(playerid, 0xFF9900AA, "You are not registered, please use /register to register your account.");
  739.         pInfo[playerid][Logged] = 0;
  740.         pInfo[playerid][Regged] = 0;
  741.         return 1;
  742.     }
  743.     return 1;
  744.  
  745. }
  746.  
  747. public OnPlayerDisconnect(playerid, reason)
  748. {
  749.     if(pspectate[playerid] == 1)
  750.     {
  751.         foreach(Player, i)
  752.         {
  753.             if(spectatedid[i] == playerid)
  754.             {
  755.                 TogglePlayerSpectating(i, 0);
  756.             }
  757.         }
  758.     }
  759.     return 1;
  760. }
  761.     aduty[playerid] = 0;
  762.     new pname[MAX_PLAYER_NAME], file[256];
  763.     GetPlayerName(playerid, pname, sizeof(pname));
  764.     format(file, sizeof(file),"Admin/Users/%s.txt", pname);
  765.     pInfo[playerid][Logged] = 0;
  766.     dini_IntSet(file, "Logged", 0);
  767.     dini_IntSet(file, "Kills", pInfo[playerid][Kills]);
  768.     dini_IntSet(file, "Deaths",pInfo[playerid][Deaths]);
  769.     return 1;
  770. }
  771.  
  772. public OnPlayerSpawn(playerid)
  773. {
  774.     return 1;
  775. }
  776.  
  777. public OnPlayerDeath(playerid, killerid, reason)
  778. {
  779.     new spectatedid[MAX_PLAYERS];
  780.     if(pspectate[playerid] == 1)
  781.     {
  782.         foreach(Player, i)
  783.         {
  784.             if(spectatedid[playerid] == 1)
  785.             {
  786.                 TogglePlayerSpectating(i, 0);
  787.             }
  788.         }
  789.     }
  790.     return 1;
  791. }
  792.     pInfo[killerid][Kills]++;
  793.     pInfo[playerid][Deaths]++;
  794.  
  795.     return 1;
  796. }
  797.  
  798. public OnVehicleSpawn(vehicleid)
  799. {
  800.     return 1;
  801. }
  802.  
  803. public OnVehicleDeath(vehicleid, killerid)
  804. {
  805.     return 1;
  806. }
  807.  
  808. public OnPlayerText(playerid, text[])
  809. {
  810.     return 1;
  811. }
  812.  
  813. public OnPlayerCommandText(playerid, cmdtext[])
  814. {
  815. return 1;
  816. }
  817.  
  818. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  819. {
  820.     return 1;
  821. }
  822.  
  823. public OnPlayerExitVehicle(playerid, vehicleid)
  824. {
  825.     return 1;
  826. }
  827.  
  828. public OnPlayerStateChange(playerid, newstate, oldstate)
  829. {
  830.     return 1;
  831. }
  832.  
  833. public OnPlayerEnterCheckpoint(playerid)
  834. {
  835.     return 1;
  836. }
  837.  
  838. public OnPlayerLeaveCheckpoint(playerid)
  839. {
  840.     return 1;
  841. }
  842.  
  843. public OnPlayerEnterRaceCheckpoint(playerid)
  844. {
  845.     return 1;
  846. }
  847.  
  848. public OnPlayerLeaveRaceCheckpoint(playerid)
  849. {
  850.     return 1;
  851. }
  852.  
  853. public OnRconCommand(cmd[])
  854. {
  855.     return 1;
  856. }
  857.  
  858. public OnPlayerRequestSpawn(playerid)
  859. {
  860.     return 1;
  861. }
  862.  
  863. public OnObjectMoved(objectid)
  864. {
  865.     return 1;
  866. }
  867.  
  868. public OnPlayerObjectMoved(playerid, objectid)
  869. {
  870.     return 1;
  871. }
  872.  
  873. public OnPlayerPickUpPickup(playerid, pickupid)
  874. {
  875.     return 1;
  876. }
  877.  
  878. public OnVehicleMod(playerid, vehicleid, componentid)
  879. {
  880.     return 1;
  881. }
  882.  
  883. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  884. {
  885.     return 1;
  886. }
  887.  
  888. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  889. {
  890.     return 1;
  891. }
  892.  
  893. public OnPlayerSelectedMenuRow(playerid, row)
  894. {
  895.     return 1;
  896. }
  897.  
  898. public OnPlayerExitedMenu(playerid)
  899. {
  900.     return 1;
  901. }
  902.  
  903. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  904. {
  905.     return 1;
  906. }
  907.  
  908. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  909. {
  910.     return 1;
  911. }
  912.  
  913. public OnRconLoginAttempt(ip[], password[], success)
  914. {
  915.     return 1;
  916. }
  917.  
  918. public OnPlayerUpdate(playerid)
  919. {
  920.     return 1;
  921. }
  922.  
  923. public OnPlayerStreamIn(playerid, forplayerid)
  924. {
  925.     return 1;
  926. }
  927.  
  928. public OnPlayerStreamOut(playerid, forplayerid)
  929. {
  930.     return 1;
  931. }
  932.  
  933. public OnVehicleStreamIn(vehicleid, forplayerid)
  934. {
  935.     return 1;
  936. }
  937.  
  938. public OnVehicleStreamOut(vehicleid, forplayerid)
  939. {
  940.     return 1;
  941. }
  942.  
  943. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  944. {
  945.     return 1;
  946. }
  947.    
  948.  
  949. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  950. {
  951.     return 1;
  952. }
  953. stock SendAdminMessage(message[])
  954. {
  955.     foreach(Player, i)
  956.     {
  957.         if(GetPVarInt(i,"Level" ) >= 1)
  958.         {
  959.             SendClientMessage(i,0xFFFF00AA,message);
  960.         }
  961.     }
  962.     return 1;
  963. }
  964.  
  965.  
  966. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
  967. {
  968.     new string[128];
  969.     format(string,sizeof(string),"-%.0f hp",amount);
  970.     amount = pInfo[issuerid][DamageIssued]++;
  971.     amount = pInfo[playerid][DamageTaken]++;
  972.     SetPlayerChatBubble(playerid,string,0x660000AA,150.0,2500);
  973.    
  974.     return 1;
  975. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement