Guest User

CJ101

a guest
Jan 8th, 2010
502
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 41.52 KB | None | 0 0
  1. #include <a_samp>
  2. #include <dudb>
  3. #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
  4.  
  5. /// CJAdmin 1.0 By CJ101
  6.  
  7. #define COLOR_GREY 0xAFAFAFAA
  8. #define COLOR_GREEN 0x009700AA
  9. #define COLOR_RED 0xFF0000AA
  10. #define COLOR_LIGHTRED 0xFF0000AA
  11. #define COLOR_YELLOW 0xFFFF00AA
  12. #define COLOR_PINK 0xFF66FFAA
  13. #define COLOR_WHITE 0xFFFFFFAA
  14. #define COLOR_BLUE 0x0000BBAA
  15. #define COLOR_LIGHTBLUE 0x33CCFFAA
  16. #define COLOR_DARKRED 0x660000AA
  17. #define COLOR_ORANGE 0xFF9900AA
  18.  
  19.  
  20. enum Account
  21. {
  22. Password[128],LoggedIn,Cash,AdminLvl,
  23. Kills,Deaths,Color,IP[16],God,DrunkLvl,FS
  24. }
  25.  
  26. new Stats[MAX_PLAYERS][Account];
  27. new cd;
  28.  
  29. #define ADMIN_SPEC_TYPE_NONE 0
  30. #define ADMIN_SPEC_TYPE_PLAYER 1
  31. #define ADMIN_SPEC_TYPE_VEHICLE 2
  32.  
  33. new gSpectateID[MAX_PLAYERS];
  34. new gSpectateType[MAX_PLAYERS];
  35. new GodTimer;
  36. new Failed[MAX_PLAYERS];
  37. new bool:Muted[MAX_PLAYERS];
  38.  
  39. forward GodUpdate();
  40. forward IsPlayerAdminLevel(playerid,ALevel);
  41. forward SendMessageToAdmins(string[]);
  42. forward countdown();
  43. forward ACUpdate(playerid);
  44. forward OnPlayerDeath(playerid,killerid, reason);
  45.  
  46. public ACUpdate(playerid)
  47. {
  48. new string[128],pName[90];
  49. for(new i = 0; i < MAX_PLAYERS; i++)
  50. {
  51. new wpn = GetPlayerWeapon(i);
  52. new Float:health;
  53. GetPlayerHealth(i,health);
  54. GetPlayerName(i, pName, sizeof pName);
  55. if(wpn == 38 || wpn == 36)
  56. {
  57. if(Stats[playerid][AdminLvl] > 0) return 0;
  58. if(IsPlayerNPC(playerid)) return 0;
  59. format(string, sizeof(string), "%s has been banned for weapon hacking.",pName);
  60. SendClientMessage(i,COLOR_RED,"You have been banned. (Reason: Weapon Hacking)");
  61. SendClientMessageToAll(COLOR_RED,string);
  62. BanEx(i,"Weapon Hacking");
  63. }
  64.  
  65. if(health > 100)
  66. {
  67. if(Stats[playerid][AdminLvl] > 0) return 0;
  68. if(IsPlayerNPC(playerid)) return 0;
  69. format(string, sizeof(string), "%s has been banned for godmode.",pName);
  70. SendClientMessage(i,COLOR_RED,"You have been banned. (Reason: GodMode)");
  71. print(string); //send the message to consule
  72. SendClientMessageToAll(COLOR_RED,string);
  73. BanEx(i,"GodMode");
  74. }
  75. }
  76. return 1;
  77. }
  78.  
  79. public countdown()
  80. {
  81. if(cd==4) GameTextForAll("~g~Starting",1000,4);
  82. cd--;
  83. if(cd==0)
  84. {
  85. GameTextForAll("~b~GO~ r~!",1000,4);
  86. cd = -1;
  87. for(new i = 0; i < MAX_PLAYERS; i++) {
  88. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  89. }
  90. return 0;
  91. }
  92. else
  93. {
  94. new text[7]; format(text,sizeof(text),"~g~ %d",cd);
  95. for(new i = 0; i < MAX_PLAYERS; i++) {
  96. PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
  97. }
  98. GameTextForAll(text,1000,4);
  99. }
  100.  
  101. SetTimer("countdown",1000,0);
  102. return 0;
  103. }
  104.  
  105. public SendMessageToAdmins(string[])
  106. {
  107. for(new i = 0; i < MAX_VEHICLES; i++)
  108. {
  109. if(Stats[i][AdminLvl] > 0)
  110. {
  111. new string2[256];
  112. format(string2, sizeof(string2), "[AdminMsg] %s ",string);
  113. if(IsPlayerConnected(i)) SendClientMessage(i,COLOR_YELLOW,string2);
  114. }
  115. }
  116. }
  117.  
  118. public IsPlayerAdminLevel(playerid,ALevel)
  119. {
  120. if(Stats[playerid][AdminLvl] >= ALevel) { return true; }
  121. else { return false; }
  122. }
  123.  
  124. public GodUpdate()
  125. {
  126. for(new i = 0; i < MAX_PLAYERS; i++)
  127. {
  128. if(IsPlayerConnected(i) && Stats[i][God] == 1)
  129. {
  130. if(IsPlayerInAnyVehicle(i)) SetVehicleHealth(GetPlayerVehicleID(i),10000);
  131. SetPlayerHealth(i,1000);
  132. }
  133. }
  134. }
  135.  
  136. public OnFilterScriptInit()
  137. {
  138. print("<===> CJAdmin by CJ101 Loaded <===>");
  139. GodTimer = SetTimer("GodUpdate",2000,1);
  140. SetTimer("ACUpdate",1000,true);
  141. return 1;
  142. }
  143.  
  144. public OnFilterScriptExit()
  145. {
  146. KillTimer(GodTimer);
  147. return 1;
  148. }
  149.  
  150.  
  151. public OnPlayerConnect(playerid)
  152. {
  153. Stats[playerid][Kills] = 0; Stats[playerid][Deaths] = 0;
  154. Stats[playerid][LoggedIn] = 0; Stats[playerid][AdminLvl] = 0;
  155.  
  156. new name[120], str[180],tmpip[16];
  157. GetPlayerIp(playerid,tmpip,sizeof(tmpip));
  158. GetPlayerName(playerid, name, sizeof name);
  159.  
  160. format(str,sizeof(str),"%s has joined the server.",name);
  161. SendClientMessageToAll(COLOR_GREY,str);
  162.  
  163. format(str, sizeof str, "%s.dudb.sav", name);
  164. if(fexist(str))
  165. {
  166. new tmp2[256]; tmp2 = dini_Get(str,"ip");
  167. if(!strcmp(tmpip,tmp2,true))
  168. {
  169. Login(playerid);
  170. SendClientMessage(playerid,COLOR_GREEN,"Automatically Logged In.");
  171. }
  172. else
  173. {
  174. SendClientMessage(playerid,COLOR_GREEN,"Please use login - we could not automatially log you in.");
  175. }
  176. }
  177. else
  178. {
  179. SendClientMessage(playerid,COLOR_RED,"You are not registered, please register.");
  180. }
  181. return 1;
  182. }
  183.  
  184. public OnPlayerDisconnect(playerid, reason)
  185. {
  186. new pName[90],string[256];
  187. GetPlayerName(playerid,pName,sizeof(pName));
  188. switch(reason)
  189. {
  190. case 0: format(string, sizeof(string), "%s has left the server. (Crashed)", pName);
  191. case 1: format(string, sizeof(string), "%s has left the server. (Leaving)", pName);
  192. case 2: format(string, sizeof(string), "%s has left the server. (Kicked)", pName);
  193. }
  194. SendClientMessageToAll(COLOR_GREY,string);
  195. Save(playerid);
  196. return 1;
  197. }
  198.  
  199. dcmd_register(playerid,params[])
  200. {
  201. new name[90];
  202. GetPlayerName(playerid,name,sizeof(name));
  203. if (Stats[playerid][LoggedIn] == 1) return SendClientMessage(playerid,COLOR_RED,"You are logged in!");
  204. if (udb_Exists(name)) return SendClientMessage(playerid,COLOR_RED,"This account already exists, please login.");
  205. if (strlen(params) == 0) return SendClientMessage(playerid,COLOR_RED,"USAGE: /register <password>");
  206. if (udb_Create(name,params))
  207. {
  208. new file[256],ip[100],tmp[260];
  209. GetPlayerName(playerid,name,sizeof(name)); format(file,sizeof(file),"%s.ini",udb_encode(name));
  210. GetPlayerIp(playerid,ip,100);
  211. dini_Set(file,"ip",tmp);
  212. dUserSetINT(name).("AdminLvl",0);
  213. dUserSetINT(name).("Money",0);
  214. dUserSetINT(name).("Kills",0);
  215. dUserSetINT(name).("Deaths",0);
  216. Stats[playerid][LoggedIn] = 1;
  217. SendClientMessage(playerid,COLOR_GREEN, "You have been registered and logged in.");
  218. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  219. return 1;
  220. }
  221. return 1;
  222. }
  223.  
  224. dcmd_login(playerid,params[])
  225. {
  226. new name[90];
  227. GetPlayerName(playerid,name,sizeof(name));
  228. if (Stats[playerid][LoggedIn] == 1) return SendClientMessage(playerid,COLOR_RED,"You are already logged in.");
  229. if (!udb_Exists(name)) return SendClientMessage(playerid,COLOR_RED,"Account doesn't exist, please use '/register [password]'.");
  230. if (strlen(params)==0) return SendClientMessage(playerid,COLOR_RED,"Usage: login <password>");
  231. if (udb_CheckLogin(name,params))
  232. {
  233. new file[256], tmp3[100];
  234. format(file,sizeof(file),"%s.ini",udb_encode(name));
  235. GetPlayerIp(playerid,tmp3,100);
  236. dini_Set(file,"ip",tmp3);
  237. Login(playerid);
  238. SendClientMessage(playerid,COLOR_GREEN,"ACCOUNT: Successfully Logged In");
  239. }
  240. else
  241. {
  242. Failed[playerid]++;
  243. if(Failed[playerid] == 5)
  244. {
  245. new string[128];
  246. format(string, sizeof(string), "%s has been kicked for bad login attempts.",name);
  247. SendClientMessageToAll(COLOR_RED, string);
  248. Kick(playerid);
  249. }
  250. return SendClientMessage(playerid,COLOR_RED,"Login failed! Incorrect Password.");
  251. }
  252. return 1;
  253. }
  254.  
  255.  
  256.  
  257. dcmd_announce(playerid,params[]) {
  258. if(IsPlayerAdminLevel(playerid,3))
  259. {
  260. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /announce <text>");
  261. return GameTextForAll(params,4000,3);
  262. }
  263. else
  264. {
  265. SendClientMessage(playerid,COLOR_RED,"You must be admin level 3 to do this.");
  266. }
  267. return 1;
  268. }
  269.  
  270. dcmd_kick(playerid,params[])
  271. {
  272. new tmp2[300],tmp[300], Index;
  273. tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  274. new id = strval(tmp);
  275. if(IsPlayerAdminLevel(playerid,1))
  276. {
  277. if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_RED,"That Player Is Not Connected");
  278. if(Stats[id][AdminLvl] >= Stats[playerid][AdminLvl]) return SendClientMessage(playerid,COLOR_RED,"You cant kick this admin.");
  279. new string2[156], pname[24], pname2[24];
  280. GetPlayerName(playerid, pname, 24);
  281. GetPlayerName(id, pname2, 24);
  282. format(string2, sizeof(string2), "%s Has Been Kicked By Admin %s (Reason: %s)",pname2,pname,tmp2);
  283. SendClientMessageToAll(COLOR_RED,string2);
  284. Kick(id);
  285. }
  286. else
  287. {
  288. SendClientMessage(playerid,COLOR_RED,"You must be admin to do this.");
  289. }
  290. return 1;
  291. }
  292.  
  293. dcmd_level(playerid,params[])
  294. {
  295. new tmp2[300],tmp[300], Index;
  296. tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  297. new id = strval(tmp), level = strval(tmp2);
  298. if(IsPlayerAdminLevel(playerid,5))
  299. {
  300. if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_RED,"That Player Is Not Connected");
  301. new str[256],aname[128];
  302. GetPlayerName(playerid,aname,sizeof(aname));
  303. format(str,sizeof(str),"Admin %s has made you admin level %d.",aname);
  304. SendClientMessage(id,COLOR_YELLOW,str);
  305. Stats[id][AdminLvl] = level;
  306. }
  307. else
  308. {
  309. SendClientMessage(playerid,COLOR_RED,"You must be admin level 5 to do this.");
  310. }
  311.  
  312. return 1;
  313. }
  314.  
  315. dcmd_ban(playerid,params[]) {
  316. if(Stats[playerid][AdminLvl] >= 1)
  317. {
  318. new tmp[256], tmp2[256], Index;
  319. tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  320. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED, "USAGE: /ban <playerid> <reason>");
  321. if(!strlen(tmp2)) return SendClientMessage(playerid,COLOR_RED, "ERROR: No Reason Specified.");
  322. new id, pn[120], aname[120], string[128];
  323. id = strval(tmp);
  324. if(Stats[id][AdminLvl] >= Stats[playerid][AdminLvl]) return SendClientMessage(playerid,COLOR_RED,"You cant ban this admin.");
  325. GetPlayerName(id, pn, sizeof(pn));
  326. GetPlayerName(playerid, aname, sizeof(aname));
  327. format(string,sizeof(string),"%s has been banned by Admin %s <Reason: %s>",pn,aname,params[2]);
  328. SendClientMessageToAll(COLOR_RED,string);
  329. BanEx(id, string);
  330. }
  331. else return SendClientMessage(playerid,COLOR_RED,"You must be admin to do this.");
  332. return 1;
  333. }
  334.  
  335. dcmd_info(playerid,params[])
  336. {
  337. new tmp[300], Index;
  338. tmp = strtok(params,Index);
  339. new id = strval(tmp);
  340. if(IsPlayerAdminLevel(playerid,1))
  341. {
  342. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED, "USAGE: /info <playerid>");
  343. if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_RED,"That Player Is Not Connected");
  344. new str[256],name[128],Float:health,Float:armor;
  345. GetPlayerName(id,name,sizeof(name));
  346. GetPlayerHealth(id,health);
  347. format(str,sizeof(str),"(%s)(ID:%d) Health: %f - Armour: %f - Vehicle: %d - Model: %d - Drunk: %d",name,id,floatround(health),floatround(armor),GetPlayerVehicleID(id),GetVehicleModel(GetPlayerVehicleID(id)),GetPlayerDrunkLevel(id));
  348. SendClientMessage(playerid,COLOR_YELLOW,str);
  349. }
  350. else
  351. {
  352. SendClientMessage(playerid,COLOR_RED,"You must be admin to do this.");
  353. }
  354. return 1;
  355. }
  356.  
  357. dcmd_settime(playerid,params[])
  358. {
  359. new Index, tmp[300];
  360. tmp = strtok(params,Index);
  361. new time = strval(tmp);
  362. if(IsPlayerAdminLevel(playerid,2))
  363. {
  364. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Usage: /settime <time>");
  365. if(time > 24) return SendClientMessage(playerid,COLOR_RED,"Invalid time. Maximum time is 24.");
  366. for(new i = 0; i < MAX_PLAYERS; i++)
  367. {
  368. if(IsPlayerConnected(i)) SetPlayerTime(i,time,0);
  369. }
  370. }
  371. else
  372. {
  373. SendClientMessage(playerid,COLOR_RED,"You must be admin level 2 to do this.");
  374. }
  375.  
  376. return 1;
  377. }
  378.  
  379. dcmd_goto(playerid,params[])
  380. {
  381. new Index, tmp[300];
  382. tmp = strtok(params,Index);
  383. new id = strval(tmp);
  384. if(IsPlayerAdminLevel(playerid,2))
  385. {
  386. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Usage: /goto <playerid>");
  387. if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_RED,"That player is not connected.");
  388. new Float:X,Float:Y,Float:Z;
  389. GetPlayerPos(id,X,Y,Z);
  390. SetPlayerPos(playerid,X,Y,Z);
  391. SetPlayerInterior(playerid,GetPlayerInterior(id));
  392. }
  393. else
  394. {
  395. SendClientMessage(playerid,COLOR_RED,"You must be admin level 2 to do this.");
  396. }
  397.  
  398. return 1;
  399. }
  400.  
  401. dcmd_gethere(playerid,params[])
  402. {
  403. new Index, tmp[300];
  404. tmp = strtok(params,Index);
  405. new id = strval(tmp);
  406. if(IsPlayerAdminLevel(playerid,2))
  407. {
  408. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Usage: /gethere <id>");
  409. if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_RED,"That player is not connected.");
  410. new Float:X,Float:Y,Float:Z;
  411. GetPlayerPos(playerid,X,Y,Z);
  412. SetPlayerPos(id,X,Y,Z);
  413. }
  414. else
  415. {
  416. SendClientMessage(playerid,COLOR_RED,"You must be admin level 2 to do this.");
  417. }
  418.  
  419. return 1;
  420. }
  421.  
  422. dcmd_setcash(playerid,params[])
  423. {
  424. new tmp2[300],tmp[300], Index;
  425. tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  426. new id = strval(tmp);
  427. new pcash = strval(tmp2);
  428. if(IsPlayerAdminLevel(playerid,3))
  429. {
  430. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Usage: /setcash <playerid> <amount>");
  431. if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_RED,"That Player Is Not Connected");
  432. new string[456],pname[24], pname2[24];
  433. GetPlayerName(playerid, pname, 24);
  434. GetPlayerName(id, pname2, 24);
  435. format(string, sizeof(string), "Your Cash Has Been Set To $%d by Admin %s",pcash,pname);
  436. SendClientMessage(id,COLOR_YELLOW,string);
  437. format(string, sizeof(string), "You Set %s's Cash to $%d",pname2,pcash);
  438. SendClientMessage(playerid,COLOR_YELLOW,string);
  439. ResetPlayerMoney(id);
  440. GivePlayerMoney(id,pcash);
  441. }
  442. else
  443. {
  444. SendClientMessage(playerid,COLOR_RED,"You must be level 3 to do this.");
  445. }
  446. return 1;
  447. }
  448.  
  449. dcmd_giveallcash(playerid,params[])
  450. {
  451. new tmp[300], Index;
  452. tmp = strtok(params,Index);
  453. new pcash = strval(tmp);
  454. if(IsPlayerAdminLevel(playerid,3))
  455. {
  456. new string[456],string2[456], pname[24];
  457. GetPlayerName(playerid, pname, 24);
  458. format(string, sizeof(string), "You were given $%d by Admin %s",pcash,pname);
  459. format(string2, sizeof(string2), "You Gave All Players $%d",pcash);
  460. SendClientMessage(playerid,COLOR_YELLOW,string2);
  461. for(new i = 0; i < MAX_PLAYERS; i++)
  462. {
  463. if(IsPlayerConnected(i) && i != playerid)
  464. {
  465. SendClientMessage(i,COLOR_YELLOW,string);
  466. GivePlayerMoney(i,pcash);
  467. }
  468. }
  469. }
  470. else
  471. {
  472. SendClientMessage(playerid,COLOR_RED,"You must be level 3 to do this.");
  473. }
  474. return 1;
  475. }
  476.  
  477. dcmd_freezeall(playerid,params[])
  478. {
  479. #pragma unused params
  480. if(IsPlayerAdminLevel(playerid,3))
  481. {
  482. new string[456],pname[24];
  483. GetPlayerName(playerid, pname, 24);
  484. format(string, sizeof(string), "Admin %s has frozen all players.",pname);
  485. SendClientMessage(playerid,COLOR_YELLOW,string);
  486. for(new i = 0; i < MAX_PLAYERS; i++)
  487. {
  488. if(IsPlayerConnected(i))
  489. {
  490. TogglePlayerControllable(i,false);
  491. }
  492. }
  493. }
  494. else
  495. {
  496. SendClientMessage(playerid,COLOR_RED,"You must be level 3 to do this.");
  497. }
  498. return 1;
  499. }
  500.  
  501. dcmd_unfreezeall(playerid,params[])
  502. {
  503. #pragma unused params
  504. if(IsPlayerAdminLevel(playerid,3))
  505. {
  506. new string[456],pname[24];
  507. GetPlayerName(playerid, pname, 24);
  508. format(string, sizeof(string), "Admin %s has unfrozen all players.",pname);
  509. SendClientMessage(playerid,COLOR_YELLOW,string);
  510. for(new i = 0; i < MAX_PLAYERS; i++)
  511. {
  512. if(IsPlayerConnected(i))
  513. {
  514. TogglePlayerControllable(i,true);
  515. }
  516. }
  517. }
  518. else
  519. {
  520. SendClientMessage(playerid,COLOR_RED,"You must be level 3 to do this.");
  521. }
  522. return 1;
  523. }
  524.  
  525. dcmd_setscore(playerid,params[])
  526. {
  527. new tmp2[300],tmp[300], Index;
  528. tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  529. new id = strval(tmp);
  530. new score = strval(tmp2);
  531. if(IsPlayerAdminLevel(playerid,3))
  532. {
  533. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Usage: /setscore <id> <score>");
  534. if(id == playerid) return SendClientMessage(playerid,COLOR_RED,"You cannot set your own score.");
  535. if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_RED,"That Player Is Not Connected");
  536. new string[456],pname[24], pname2[24];
  537. GetPlayerName(playerid, pname, 24);
  538. GetPlayerName(id, pname2, 24);
  539. format(string, sizeof(string), "Your Score Has Been Set To %d by Admin %s",score,pname);
  540. SendClientMessage(id,COLOR_YELLOW,string);
  541. format(string, sizeof(string), "You Set %s's Score to %d",pname2,score);
  542. SendClientMessage(playerid,COLOR_YELLOW,string);
  543. SetPlayerScore(id,score);
  544. }
  545. else
  546. {
  547. SendClientMessage(playerid,COLOR_RED,"You must be level 3 to do this.");
  548. }
  549. return 1;
  550. }
  551.  
  552. dcmd_setwantedlevel(playerid,params[])
  553. {
  554. new tmp2[300],tmp[300], Index;
  555. tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  556. new id = strval(tmp);
  557. new level = strval(tmp2);
  558. if(IsPlayerAdminLevel(playerid,3))
  559. {
  560. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Usage: /setwantedlevel <id> <cash>");
  561. if(id == playerid) return SendClientMessage(playerid,COLOR_RED,"You cannot set your own score.");
  562. if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_RED,"That Player Is Not Connected");
  563. if(level > 50000) return SendClientMessage(playerid,COLOR_RED,"Invalid Wanted Level.");
  564. new string[456],pname[24], pname2[24];
  565. GetPlayerName(playerid, pname, 24);
  566. GetPlayerName(id, pname2, 24);
  567. format(string, sizeof(string), "Your Wanted Level Has Been Set To %d by Admin %s",level,pname);
  568. SendClientMessage(id,COLOR_YELLOW,string);
  569. format(string, sizeof(string), "You Set %s's Wanted Level to %d",pname2,level);
  570. SendClientMessage(playerid,COLOR_YELLOW,string);
  571. SetPlayerWantedLevel(playerid,level);
  572. }
  573. else
  574. {
  575. SendClientMessage(playerid,COLOR_RED,"You must be level 3 to do this.");
  576. }
  577. return 1;
  578. }
  579.  
  580. dcmd_freeze(playerid,params[])
  581. {
  582. new tmp2[300],tmp[300], Index;
  583. tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  584. new id = strval(tmp);
  585. if(IsPlayerAdminLevel(playerid,1))
  586. {
  587. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Usage: /freeze <id>");
  588. if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_RED,"That Player Is Not Connected");
  589. if(Stats[id][AdminLvl] >= Stats[playerid][AdminLvl]) return SendClientMessage(playerid,COLOR_RED,"You cant freeze this admin.");
  590. new string[256], pname[24], pname2[24];
  591. GetPlayerName(playerid, pname, 24);
  592. GetPlayerName(id, pname2, 24);
  593. format(string, sizeof(string), "%s Has Been Frozen by Admin %s (Reason: %s)",pname2,pname,tmp2);
  594. SendClientMessageToAll(COLOR_RED,string);
  595. TogglePlayerControllable(id,false);
  596. }
  597. else
  598. {
  599. SendClientMessage(playerid,COLOR_RED,"You must be admin to do this.");
  600. }
  601.  
  602.  
  603. return 1;
  604. }
  605.  
  606.  
  607.  
  608. dcmd_unfreeze(playerid,params[])
  609. {
  610. new tmp2[300],tmp[300], Index;
  611. tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  612. new id = strval(tmp);
  613. if(IsPlayerAdminLevel(playerid,1))
  614. {
  615. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Usage: /unfreeze <id>");
  616. if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_RED,"That Player Is Not Connected");
  617. new string[256], pname[24], pname2[24];
  618. GetPlayerName(playerid, pname, 24);
  619. GetPlayerName(id, pname2, 24);
  620. format(string, sizeof(string), "%s Has Been UnFrozen by Admin %s",pname2,pname);
  621. SendClientMessageToAll(COLOR_YELLOW,string);
  622. TogglePlayerControllable(id,true);
  623. }
  624. else
  625. {
  626. SendClientMessage(playerid,COLOR_RED,"You must be admin to do this.");
  627. }
  628.  
  629.  
  630. return 1;
  631. }
  632.  
  633. dcmd_cb(playerid,params[])
  634. {
  635. new tmp[300], Index;
  636. tmp = strtok(params,Index);
  637. new string[256];
  638. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Usage: /cb <text>");
  639. format(string, sizeof(string), "Chat Bubble Set To %s",tmp);
  640. SendClientMessage(playerid,COLOR_YELLOW,string);
  641. SetPlayerChatBubble(playerid,tmp,COLOR_YELLOW,100,50000);
  642. return 1;
  643. }
  644.  
  645. dcmd_countdown(playerid,params[]) {
  646. #pragma unused params
  647. if(IsPlayerAdminLevel(playerid,1))
  648. {
  649. if(cd == -1)
  650. {
  651. cd = 4;
  652. new string[256],pname[90];
  653. GetPlayerName(playerid, pname, 24);
  654. format(string, sizeof(string), "Admin %s has started a countdown.",pname);
  655. SendClientMessageToAll(COLOR_YELLOW,string);
  656. SetTimer("countdown",1000,0);
  657. }
  658. else
  659. {
  660. SendClientMessage(playerid,COLOR_RED,"Countdown already in progress..");
  661. }
  662. }
  663. else
  664. {
  665. SendClientMessage(playerid,COLOR_RED,"You must be admin to do this.");
  666. }
  667. return 1;
  668. }
  669.  
  670. dcmd_sethealth(playerid,params[])
  671. {
  672. new tmp2[300],tmp[300], Index;
  673. tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  674. new id = strval(tmp);
  675. new health = strval(tmp2);
  676. if(IsPlayerAdminLevel(playerid,4))
  677. {
  678. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Usage: /sethealth <id> <health>");
  679. if(!IsPlayerConnected(id)) SendClientMessage(playerid,COLOR_RED,"That Player Not Connected!");
  680. if(health > 100) return SendClientMessage(playerid,COLOR_RED,"Cant be higher than 100!");
  681. new string[256],pname[24], pname2[24];
  682. GetPlayerName(playerid, pname, 24);
  683. GetPlayerName(id, pname2, 24);
  684. format(string, sizeof(string), "You Set %s's Health To %d",pname2,health);
  685. SendClientMessage(playerid,COLOR_YELLOW,string);
  686. format(string, sizeof(string), "Your Health Has Been Set To %d by Admin %s",health,pname);
  687. SendClientMessage(id,COLOR_YELLOW,string);
  688. SetPlayerHealth(id,health);
  689. }
  690. else
  691. {
  692. SendClientMessage(playerid,COLOR_RED,"You must be level 3 admin to do this.");
  693. }
  694. return 1;
  695. }
  696.  
  697. dcmd_setdrunklevel(playerid,params[])
  698. {
  699. new tmp2[300],tmp[300], Index;
  700. tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  701. new id = strval(tmp);
  702. new lvl = strval(tmp2);
  703. if(IsPlayerAdminLevel(playerid,2))
  704. {
  705. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Usage: /setdrunklevel <id> <drunk>");
  706. if(!IsPlayerConnected(id)) SendClientMessage(playerid,COLOR_RED,"That Player Not Connected!");
  707. new string[256],pname[24], pname2[24];
  708. GetPlayerName(playerid, pname, 24);
  709. GetPlayerName(id, pname2, 24);
  710. format(string, sizeof(string), "You Set %s's Drunk Level To %d",pname2,lvl);
  711. SendClientMessage(playerid,COLOR_YELLOW,string);
  712. format(string, sizeof(string), "Your Drunk Level Was Set To %d by Admin %s",lvl,pname);
  713. SendClientMessage(id,COLOR_YELLOW,string);
  714. SetPlayerDrunkLevel(playerid,lvl);
  715. }
  716. else
  717. {
  718. SendClientMessage(playerid,COLOR_RED,"You must be level 2 admin to do this.");
  719. }
  720. return 1;
  721. }
  722.  
  723. dcmd_setinterior(playerid,params[])
  724. {
  725. new tmp2[300],tmp[300], Index;
  726. tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  727. new id = strval(tmp);
  728. new intr = strval(tmp2);
  729. if(IsPlayerAdminLevel(playerid,2))
  730. {
  731. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Usage: /setinterior <id> <interior>");
  732. if(!IsPlayerConnected(id)) SendClientMessage(playerid,COLOR_RED,"That Player Not Connected!");
  733. new string[256],pname[24], pname2[24];
  734. GetPlayerName(playerid, pname, 24);
  735. GetPlayerName(id, pname2, 24);
  736. format(string, sizeof(string), "You Set %s's Interior To %d",pname2,intr);
  737. SendClientMessage(playerid,COLOR_YELLOW,string);
  738. format(string, sizeof(string), "Your Interior Has Been Set To %d by Admin %s",intr,pname);
  739. SendClientMessage(id,COLOR_YELLOW,string);
  740. SetPlayerInterior(playerid,intr);
  741. }
  742. else
  743. {
  744. SendClientMessage(playerid,COLOR_RED,"You must be level 2 admin to do this.");
  745. }
  746. return 1;
  747. }
  748.  
  749. dcmd_giveweapon(playerid,params[])
  750. {
  751. if(Stats[playerid][AdminLvl] >= 3)
  752. {
  753. new tmp[256], tmp2[256], tmp3[256],Index;
  754. tmp = strtok(params,Index);
  755. tmp2 = strtok(params,Index);
  756. tmp3 = strtok(params,Index);
  757. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid,COLOR_RED, "USAGE: /giveweapon [playerid] [weapon id/name] [ammo]");
  758. new id = strval(tmp), weap, ammo1, WeapName[32], string[128];
  759. if(!strlen(tmp3) || !IsNumeric(tmp3) || strval(tmp3) <= 0 || strval(tmp3) > 99999) ammo1 = 500; else ammo1 = strval(tmp3);
  760. if(!IsNumeric(tmp2)) weap = GetWeaponIDFromName(tmp2); else weap = strval(tmp2);
  761. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID)
  762. {
  763. if(!IsValidWeapon(weap)) return SendClientMessage(playerid,COLOR_RED,"ERROR: Invalid weapon ID");
  764. GetWeaponName(weap,WeapName,32);
  765. new admin[90];
  766. GetPlayerName(playerid,admin,sizeof(admin));
  767. format(string, sizeof(string), "You gave that player a %s [ %d Ammo ]", WeapName,ammo1);
  768. SendClientMessage(playerid,COLOR_GREEN,string);
  769. if(id != playerid)
  770. {
  771. format(string,sizeof(string),"Admin %s has given you a %s.", admin, WeapName);
  772. SendClientMessage(id,COLOR_GREEN,string);
  773. }
  774. return GivePlayerWeapon(id, weap, ammo1);
  775. }
  776. else
  777. {
  778. SendClientMessage(playerid,COLOR_RED,"That player is not connected.");
  779. }
  780. }
  781. else
  782. {
  783. SendClientMessage(playerid,COLOR_RED,"You must be admin level 2 to do this.");
  784. }
  785. return 1;
  786. }
  787.  
  788. dcmd_giveallweapon(playerid,params[])
  789. {
  790. new tmp2[300],tmp[300], Index;
  791. tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  792. new id = strval(tmp);
  793. if(Stats[playerid][AdminLvl] >= 3)
  794. {
  795. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Usage: /giveallweapon <weapon name/id>");
  796. if(!IsNumeric(tmp)) id = GetWeaponIDFromName(tmp); else id = strval(tmp);
  797. if(!IsValidWeapon(id)) return SendClientMessage(playerid,COLOR_RED,"ERROR: Invalid Weapon.");
  798. if(id == 36 || id == 38) return SendClientMessage(playerid,COLOR_RED,"You cannot give players miniguns/heatseekers.");
  799. new string[256],string2[256], pname[24], pname2[24],wpnname[90];
  800. GetWeaponName(id,wpnname,90);
  801. GetPlayerName(playerid, pname, 24);
  802. GetPlayerName(id, pname2, 24);
  803. format(string, sizeof(string), "You Gave All Players The Weapon.");
  804. format(string2, sizeof(string2), "~y~%s",wpnname);
  805. SendClientMessage(playerid,COLOR_YELLOW,string);
  806. GameTextForAll(string2,700,3);
  807. for(new i = 0; i < MAX_PLAYERS; i++)
  808. {
  809. if(IsPlayerConnected(i))
  810. {
  811. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  812. GivePlayerWeapon(i,id,400);
  813. }
  814. }
  815. }
  816. else
  817. {
  818. SendClientMessage(playerid,COLOR_RED,"You must be admin level 2 to do this.");
  819. }
  820. return 1;
  821. }
  822.  
  823. dcmd_unmute(playerid,params[])
  824. {
  825. new tmp2[300],tmp[300], Index;
  826. tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  827. new id = strval(tmp);
  828. if(IsPlayerAdminLevel(playerid,1))
  829. {
  830. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Usage: /unmute <id>");
  831. if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_RED,"That Player Is Not Connected");
  832. new string[256],pname[24], pname2[24];
  833. GetPlayerName(playerid, pname, 24);
  834. GetPlayerName(id, pname2, 24);
  835. format(string, sizeof(string), "%s Has Been UnMuted by Admin %s.",pname2,pname);
  836. SendClientMessageToAll(COLOR_YELLOW,string);
  837. Muted[id] = false;
  838. }
  839. else
  840. {
  841. SendClientMessage(playerid,COLOR_RED,"You must be admin to do this.");
  842. }
  843.  
  844.  
  845. return 1;
  846. }
  847.  
  848. dcmd_mute(playerid,params[])
  849. {
  850. new tmp2[300],tmp[300], Index;
  851. tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  852. new id = strval(tmp);
  853. if(IsPlayerAdminLevel(playerid,1))
  854. {
  855. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Usage: /mute <id>");
  856. if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_RED,"That Player Is Not Connected");
  857. if(Stats[id][AdminLvl] >= Stats[playerid][AdminLvl]) return SendClientMessage(playerid,COLOR_RED,"You cant mute this admin.");
  858. new string[256],pname[24], pname2[24];
  859. GetPlayerName(playerid, pname, 24);
  860. GetPlayerName(id, pname2, 24);
  861. format(string, sizeof(string), "%s Has Been Muted by Admin %s.",pname2,pname);
  862. SendClientMessageToAll(COLOR_RED,string);
  863. Muted[id] = true;
  864. }
  865. else
  866. {
  867. SendClientMessage(playerid,COLOR_RED,"You must be admin to do this.");
  868. }
  869.  
  870.  
  871. return 1;
  872. }
  873.  
  874. dcmd_explode(playerid,params[])
  875. {
  876. new tmp2[300],tmp[300], Index;
  877. tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  878. new id = strval(tmp);
  879. if(IsPlayerAdminLevel(playerid,3))
  880. {
  881. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Usage: /explode <id>");
  882. if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_RED,"That Player Is Not Connected");
  883. if(Stats[id][AdminLvl] >= Stats[playerid][AdminLvl]) return SendClientMessage(playerid,COLOR_RED,"You cant explode this admin.");
  884. new string[256],pname[24], pname2[24];
  885. GetPlayerName(playerid, pname, 24);
  886. GetPlayerName(id, pname2, 24);
  887. format(string, sizeof(string), "%s Has Been Exploded by Admin %s.",pname2,pname);
  888. SendClientMessageToAll(COLOR_RED,string);
  889. new Float:x,Float:y,Float:z;
  890. GetPlayerPos(playerid,x,y,z);
  891. CreateExplosion(x,y,z,5,5);
  892. }
  893. else
  894. {
  895. SendClientMessage(playerid,COLOR_RED,"You must be admin level 3 to do this.");
  896. }
  897.  
  898.  
  899. return 1;
  900. }
  901.  
  902. dcmd_gmx(playerid,params[])
  903. {
  904. #pragma unused params
  905. if(IsPlayerAdminLevel(playerid,5))
  906. {
  907. new string2[256], pname[24];
  908. GetPlayerName(playerid, pname, 24);
  909. format(string2, sizeof(string2), "Admin %s Is Reloading The Server...",pname);
  910. SendClientMessageToAll(COLOR_YELLOW,string2);
  911. SendRconCommand("gmx");
  912. }
  913. else
  914. {
  915. SendClientMessage(playerid,COLOR_RED,"You must be level 5 admin to do this.");
  916. }
  917. return 1;
  918. }
  919.  
  920. dcmd_reloadbans(playerid,params[])
  921. {
  922. #pragma unused params
  923. if(IsPlayerAdminLevel(playerid,4))
  924. {
  925. SendClientMessage(playerid,COLOR_YELLOW,"Ban List Reloaded.");
  926. SendRconCommand("reloadbans");
  927. }
  928. else
  929. {
  930. SendClientMessage(playerid,COLOR_RED,"You must be level 4 admin to do this.");
  931. }
  932. return 1;
  933. }
  934.  
  935. dcmd_report(playerid,params[])
  936. {
  937. new reported, tmp[256], tmp2[256], Index;
  938. tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  939. if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED, "USAGE: /report [playerid] [reason]");
  940. reported = strval(tmp);
  941. if(IsPlayerConnected(reported) && reported != INVALID_PLAYER_ID) {
  942. if(IsPlayerAdminLevel(reported,1)) return SendClientMessage(playerid,COLOR_RED,"You can't report an admin.");
  943. if(playerid == reported) return SendClientMessage(playerid,COLOR_RED,"Why Would You Report Yourself??");
  944. if(strlen(params) > 7)
  945. {
  946. new reportedname[MAX_PLAYER_NAME], reporter[MAX_PLAYER_NAME], str[128];
  947. GetPlayerName(reported, reportedname, sizeof(reportedname)); GetPlayerName(playerid, reporter, sizeof(reporter));
  948. format(str, sizeof(str), "%s(%d) Reported %s(%d) : %s",reporter,playerid, reportedname, reported, params[strlen(tmp)+1]);
  949. for(new i = 0; i < MAX_PLAYERS; i++)
  950. {
  951. if(IsPlayerAdminLevel(reported,1))
  952. {
  953. GameTextForPlayer(i,"New Report",400,6);
  954. SendClientMessage(i,COLOR_GREEN,str);
  955. PlayerPlaySound(i,1057,0,0,0);
  956. }
  957. }
  958. return SendClientMessage(playerid,COLOR_YELLOW, "Report Sent. Admin's Will Review It And Get Back To You.");
  959. } else return SendClientMessage(playerid,COLOR_RED,"Not A Valid Reason.");
  960. } else return SendClientMessage(playerid,COLOR_RED, "That Player Is Not Connected.");
  961. }
  962.  
  963. public OnPlayerCommandText(playerid, cmdtext[])
  964. {
  965. new cmd[300],idx,tmp[300];
  966. cmd = strtok(cmdtext, idx);
  967. new specp;
  968.  
  969. dcmd(ban,3,cmdtext);
  970. dcmd(kick,4,cmdtext);
  971. dcmd(level,5,cmdtext);
  972. dcmd(announce,8,cmdtext);
  973. dcmd(info,4,cmdtext);
  974. dcmd(settime,7,cmdtext);
  975. dcmd(goto,4,cmdtext);
  976. dcmd(gethere,7,cmdtext);
  977. dcmd(setcash,7,cmdtext);
  978. dcmd(giveallcash,11,cmdtext);
  979. dcmd(freezeall,9,cmdtext);
  980. dcmd(unfreezeall,11,cmdtext);
  981. dcmd(setscore,8,cmdtext);
  982. dcmd(setwantedlevel,14,cmdtext);
  983. dcmd(freeze,6,cmdtext);
  984. dcmd(unfreeze,8,cmdtext);
  985. dcmd(sethealth,9,cmdtext);
  986. dcmd(giveweapon,10,cmdtext);
  987. dcmd(giveallweapon,13,cmdtext);
  988. dcmd(mute,4,cmdtext);
  989. dcmd(unmute,6,cmdtext);
  990. dcmd(gmx,3,cmdtext);
  991. dcmd(reloadbans,10,cmdtext);
  992. dcmd(setinterior,11,cmdtext);
  993. dcmd(explode,7,cmdtext);
  994. dcmd(login,5,cmdtext);
  995. dcmd(countdown,9,cmdtext);
  996. dcmd(register,8,cmdtext);
  997. dcmd(report,6,cmdtext);
  998. dcmd(setdrunklevel,13,cmdtext);
  999. dcmd(cb,2,cmdtext);
  1000.  
  1001. if(strcmp(cmd, "/cmds", true) == 0)
  1002. {
  1003. SendClientMessage(playerid,COLOR_WHITE,"CMDS: /report, /sober, /stats, /fstyles, /admins, /cb");
  1004. return 1;
  1005. }
  1006.  
  1007. if(strcmp(cmd, "/acmds", true) == 0)
  1008. {
  1009. if(Stats[playerid][AdminLvl] == 1)
  1010. {
  1011. SendClientMessage(playerid,COLOR_YELLOW,"Level 1: /mute, /unmute, /countdown, /freeze, /unfreeze, /info, /ban, /kick");
  1012. }
  1013. if(Stats[playerid][AdminLvl] == 2)
  1014. {
  1015. SendClientMessage(playerid,COLOR_YELLOW,"Level 2: /mute, /unmute, /countdown, /freeze, /unfreeze, /info, /ban, /kick, /settime, /goto, /gethere, /setinterior, /setdrunklevel");
  1016. }
  1017. if(Stats[playerid][AdminLvl] == 3)
  1018. {
  1019. SendClientMessage(playerid,COLOR_YELLOW,"Level 3: /mute, /unmute, /countdown, /freeze, /unfreeze, /info, /ban, /kick, /settime, /goto, /gethere, /explode");
  1020. SendClientMessage(playerid,COLOR_YELLOW,"Level 3: /announce, /setscore, /setwantedlevel, /setcash, /giveallcash, /giveweapon, /giveallweapon, /setinterior, /setdrunklevel");
  1021. }
  1022. if(Stats[playerid][AdminLvl] == 4)
  1023. {
  1024. SendClientMessage(playerid,COLOR_YELLOW,"Level 4: /mute, /unmute, /countdown, /freeze, /unfreeze, /info, /ban, /kick, /settime, /goto, /gethere, /setinterior, /explode");
  1025. SendClientMessage(playerid,COLOR_YELLOW,"Level 4: /announce, /setscore, /setwantedlevel, /setcash, /giveallcash, /giveweapon, /giveallweapon, /sethealth, /reloadbans, /setdrunklevel");
  1026. }
  1027. if(Stats[playerid][AdminLvl] == 5)
  1028. {
  1029. SendClientMessage(playerid,COLOR_YELLOW,"Level 5: /mute, /unmute, /countdown, /freeze, /unfreeze, /info, /ban, /kick, /settime, /goto, /gethere, /level, /gmx, /setinterior, /setdrunklevel");
  1030. SendClientMessage(playerid,COLOR_YELLOW,"Level 5: /announce, /setscore, /setwantedlevel, /setcash, /giveallcash, /giveweapon, /giveallweapon, /sethealth, /reloadbans, /explode");
  1031. }
  1032. return 0;
  1033. }
  1034.  
  1035. if(strcmp(cmd, "/spec", true) == 0)
  1036. {
  1037. tmp = adminspec_strtok(cmdtext, idx);
  1038. if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /spec [playerid]");
  1039. specp = strval(tmp);
  1040. if(!IsPlayerConnected(specp)) return SendClientMessage(playerid, COLOR_RED, "That player is not connected!");
  1041. new sn[70];
  1042. GetPlayerName(specp,sn,sizeof(sn));
  1043. TogglePlayerSpectating(playerid, 1);
  1044. PlayerSpectatePlayer(playerid, specp);
  1045. SetPlayerInterior(playerid,GetPlayerInterior(specp));
  1046. gSpectateID[playerid] = specp;
  1047. gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
  1048. new st[75];
  1049. format(st,sizeof(st),"Specing %s. Type /specoff to stop.",sn);
  1050. SendClientMessage(playerid,COLOR_WHITE,st);
  1051. return 1;
  1052. }
  1053.  
  1054. if(strcmp(cmd, "/specoff", true) == 0)
  1055. {
  1056. TogglePlayerSpectating(playerid, 0);
  1057. gSpectateID[playerid] = INVALID_PLAYER_ID;
  1058. gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
  1059. return 1;
  1060. }
  1061.  
  1062. if(strcmp(cmd, "/normalfs", true) == 0)
  1063. {
  1064. SetPlayerFightingStyle(playerid,FIGHT_STYLE_NORMAL);
  1065. Stats[playerid][FS] = 4;
  1066. GameTextForPlayer(playerid,"~g~ Normal~n~ Fighting",900,3);
  1067. return 1;
  1068. }
  1069.  
  1070. if(strcmp(cmd, "/boxingfs", true) == 0)
  1071. {
  1072. SetPlayerFightingStyle(playerid,FIGHT_STYLE_BOXING);
  1073. Stats[playerid][FS] = 5;
  1074. GameTextForPlayer(playerid,"~g~ Boxing~n~ Fighting",900,3);
  1075. return 1;
  1076. }
  1077.  
  1078. if(strcmp(cmd, "/kungfufs", true) == 0)
  1079. {
  1080. SetPlayerFightingStyle(playerid,FIGHT_STYLE_KUNGFU);
  1081. Stats[playerid][FS] = 6;
  1082. GameTextForPlayer(playerid,"~g~ KungFu ~n~ Fighting",900,3);
  1083. return 1;
  1084. }
  1085.  
  1086. if(strcmp(cmd, "/kneeheadfs", true) == 0)
  1087. {
  1088. SetPlayerFightingStyle(playerid,FIGHT_STYLE_KNEEHEAD);
  1089. Stats[playerid][FS] = 7;
  1090. GameTextForPlayer(playerid,"~g~ KneeHead ~n~ Fighting",900,3);
  1091. return 1;
  1092. }
  1093.  
  1094. if(strcmp(cmd, "/grabkickfs", true) == 0)
  1095. {
  1096. SetPlayerFightingStyle(playerid,FIGHT_STYLE_GRABKICK);
  1097. Stats[playerid][FS] = 15;
  1098. GameTextForPlayer(playerid,"~g~ GrabKick ~n~ Fighting",900,3);
  1099. return 1;
  1100. }
  1101.  
  1102. if(strcmp(cmd, "/elbowfs", true) == 0)
  1103. {
  1104. SetPlayerFightingStyle(playerid,FIGHT_STYLE_ELBOW);
  1105. Stats[playerid][FS] = 26;
  1106. GameTextForPlayer(playerid,"~g~ Elbow ~n~ Fighting",900,3);
  1107. return 1;
  1108. }
  1109.  
  1110. if(strcmp(cmd, "/sober", true) == 0)
  1111. {
  1112. SetPlayerDrunkLevel(playerid,0);
  1113. GameTextForPlayer(playerid,"Sober!",900,3);
  1114. return 1;
  1115. }
  1116.  
  1117. if(strcmp(cmd, "/fstyles", true) == 0)
  1118. {
  1119. SendClientMessage(playerid,COLOR_YELLOW,"FS: /grabkickfs, /elbowfs, /kneeheadfs, /kungfufs, /boxingfs, /normalfs");
  1120. return 1;
  1121. }
  1122.  
  1123. if(strcmp(cmd, "/stats", true) == 0)
  1124. {
  1125. new str[128];
  1126. format(str,sizeof(str),"Kills: %d - Deaths: %d - Admin Level: %d - Cash: $%d",Stats[playerid][Kills],Stats[playerid][Deaths],Stats[playerid][AdminLvl],GetPlayerMoney(playerid));
  1127. SendClientMessage(playerid,COLOR_WHITE,str);
  1128. return 1;
  1129. }
  1130.  
  1131. if(strcmp(cmd, "/stats", true) == 0)
  1132. {
  1133. new str[128];
  1134. format(str,sizeof(str),"Kills: %d - Deaths: %d - Admin Level: %d - Cash: $%d",Stats[playerid][Kills],Stats[playerid][Deaths],Stats[playerid][AdminLvl],GetPlayerMoney(playerid));
  1135. SendClientMessage(playerid,COLOR_WHITE,str);
  1136. return 1;
  1137. }
  1138.  
  1139. if(strcmp(cmd, "/admininfo", true) == 0)
  1140. {
  1141. SendClientMessage(playerid,COLOR_YELLOW,"Admin Script Written by CJ101");
  1142. return 1;
  1143. }
  1144.  
  1145. if(strcmp(cmd, "/admins", true) == 0)
  1146. {
  1147. new str[128];
  1148. for(new i = 0; i < MAX_PLAYERS; i++)
  1149. {
  1150. if(Stats[i][AdminLvl] > 0 && IsPlayerConnected(i))
  1151. {
  1152. new name[90];
  1153. GetPlayerName(i,name,sizeof(name));
  1154. format(str,sizeof(str),"%s(id:%d) is Online.",name,i);
  1155. SendClientMessage(i,COLOR_YELLOW,str);
  1156. }
  1157. }
  1158. return 1;
  1159. }
  1160.  
  1161. if (strcmp("/rconadmin", cmdtext, true, 10) == 0)
  1162. {
  1163. if(!IsPlayerAdmin(playerid)) return 1;
  1164. Stats[playerid][AdminLvl] = 5;
  1165. SendClientMessage(playerid,COLOR_WHITE,"You have been made admin by the rcon consule.");
  1166. return 1;
  1167. }
  1168.  
  1169.  
  1170. return 0;
  1171. }
  1172.  
  1173. public OnPlayerText(playerid, text[])
  1174. {
  1175. if(Muted[playerid] == true) { SendClientMessage(playerid,COLOR_RED,"You are not allowed to talk!"); return 0; }
  1176.  
  1177. //admin chat
  1178. if(text[0] == '#' && Stats[playerid][AdminLvl] >= 1)
  1179. {
  1180. new string[128]; GetPlayerName(playerid,string,sizeof(string));
  1181. format(string,sizeof(string),"%s: %s",string,text[1]);
  1182. for(new i = 0; i < MAX_PLAYERS; i++)
  1183. {
  1184. if(Stats[i][AdminLvl] > 0 && IsPlayerConnected(i))
  1185. {
  1186. SendClientMessage(i,COLOR_YELLOW,string);
  1187. }
  1188. }
  1189. return 0;
  1190. }
  1191. return 1;
  1192. }
  1193.  
  1194. public OnPlayerDeath(playerid,killerid, reason)
  1195. {
  1196. Stats[playerid][Deaths]++;
  1197. Stats[killerid][Kills]++;
  1198. SendDeathMessage(killerid,playerid,reason);
  1199. SetPlayerScore(killerid,Stats[killerid][Kills]);
  1200.  
  1201.  
  1202. if(Stats[killerid][God] == 1 && Stats[playerid][AdminLvl] == 0)
  1203. { //cant kill normal players with your godmode on!
  1204. SendClientMessage(killerid,COLOR_RED,"Don't kill people with your godmode on!");
  1205. Stats[killerid][God] = 0;
  1206. SetPlayerHealth(killerid,100);
  1207. }
  1208.  
  1209. new string[100],pName[90];
  1210. new wpn = GetPlayerWeapon(killerid);
  1211. new Float:health;
  1212. GetPlayerHealth(killerid,health);
  1213. GetPlayerName(killerid, pName, sizeof pName);
  1214. if(wpn == 38)
  1215. {
  1216. if(Stats[killerid][AdminLvl] > 0) return 0;
  1217. if(IsPlayerNPC(playerid)) return 0;
  1218. format(string, sizeof(string), "%s has been banned for having a minigun.",pName);
  1219. SendClientMessage(killerid,COLOR_RED,"You have been banned. (Reason: Minigun)");
  1220. SendClientMessageToAll(COLOR_RED,string);
  1221. BanEx(killerid,"Minigun");
  1222. }
  1223.  
  1224. if(wpn == 36)
  1225. {
  1226. if(Stats[killerid][AdminLvl] > 0) return 0;
  1227. if(IsPlayerNPC(playerid)) return 0;
  1228. GetPlayerName(killerid, pName, sizeof pName);
  1229. format(string, sizeof(string), "%s has been banned for having a heatseeking rpg.",pName);
  1230. SendClientMessage(killerid,COLOR_RED,"You have been banned. (Reason: Heatseek RPG)");
  1231. SendClientMessageToAll(COLOR_RED,string);
  1232. BanEx(killerid,"Heetseek");
  1233. }
  1234.  
  1235. if(health > 100 || health == 250)
  1236. {
  1237. if(Stats[killerid][AdminLvl] > 0) return 0;
  1238. format(string, sizeof(string), "Warning: Player %s has health more than 100... (Possible Health Hacks)",pName);
  1239. SendMessageToAdmins(string);
  1240. }
  1241.  
  1242.  
  1243. return 1;
  1244. }
  1245.  
  1246. stock IsValidWeapon(weaponid)
  1247. {
  1248. if (weaponid > 0 && weaponid < 19 || weaponid > 21 && weaponid < 47) return 1;
  1249. return 0;
  1250. }
  1251.  
  1252. IsNumeric(string1[])
  1253. {
  1254. for (new i = 0, j = strlen(string1); i < j; i++)
  1255. {
  1256. if (string1[i] > '9' || string1[i] < '0')
  1257. {
  1258. return 0;
  1259. }
  1260. }
  1261. return 1;
  1262. }
  1263.  
  1264. stock Save(playerid)
  1265. {
  1266. new name[90];
  1267. GetPlayerName(playerid,name,sizeof(name));
  1268. dUserSetINT(name).("Money",GetPlayerMoney(playerid));
  1269. dUserSetINT(name).("Kills",Stats[playerid][Kills]);
  1270. dUserSetINT(name).("Deaths",Stats[playerid][Deaths]);
  1271. dUserSetINT(name).("AdminLvl",Stats[playerid][AdminLvl]);
  1272. dUserSetINT(name).("DrunkLevel",Stats[playerid][AdminLvl]);
  1273. dUserSetINT(name).("FightStyle",Stats[playerid][FS]);
  1274.  
  1275. new file[256];
  1276. format(file,sizeof(file),"%s.ini",udb_encode(name));
  1277. }
  1278.  
  1279. stock Login(playerid)
  1280. {
  1281. new name[90];
  1282. GetPlayerName(playerid,name,sizeof(name));
  1283. ResetPlayerMoney(playerid);
  1284. GivePlayerMoney(playerid, dUserINT(name).("Money"));
  1285. Stats[playerid][Deaths] = dUserINT(name).("Deaths");
  1286. Stats[playerid][Kills] = dUserINT(name).("Kills");
  1287. Stats[playerid][AdminLvl] = dUserINT(name).("AdminLvl");
  1288. Stats[playerid][DrunkLvl] = dUserINT(name).("DrunkLevel");
  1289. Stats[playerid][FS] = dUserINT(name).("FightStyle");
  1290. if(Stats[playerid][DrunkLvl] != 0) SetPlayerDrunkLevel(playerid,Stats[playerid][DrunkLvl]);
  1291. if(Stats[playerid][FS] != 0) SetPlayerFightingStyle(playerid,Stats[playerid][FS]);
  1292. }
  1293.  
  1294.  
  1295. stock GetWeaponIDFromName(WeaponName[])
  1296. {
  1297. if(strfind("molotov",WeaponName,true)!=-1) return 18;
  1298. for(new i = 0; i <= 46; i++)
  1299. {
  1300. switch(i)
  1301. {
  1302. case 0,19,20,21,44,45: continue;
  1303. default:
  1304. {
  1305. new name[32]; GetWeaponName(i,name,32);
  1306. if(strfind(name,WeaponName,true) != -1) return i;
  1307. }
  1308. }
  1309. }
  1310. return -1;
  1311. }
  1312.  
  1313. adminspec_strtok(const string[], &index)
  1314. {
  1315. new length = strlen(string);
  1316. while ((index < length) && (string[index] <= ' '))
  1317. {
  1318. index++;
  1319. }
  1320.  
  1321. new offset = index;
  1322. new result[20];
  1323. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  1324. {
  1325. result[index - offset] = string[index];
  1326. index++;
  1327. }
  1328. result[index - offset] = EOS;
  1329. return result;
  1330. }
Advertisement
Add Comment
Please, Sign In to add comment