Guest User

pawelf94

a guest
Dec 21st, 2009
387
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 136.25 KB | None | 0 0
  1. #include <a_samp>
  2. #include <core>
  3. #include <float>
  4. native WP_Hash(buffer[], len, const str[]);
  5.  
  6. #pragma tabsize 0
  7.  
  8. #define GREEN 0x21DD00FF
  9. #define RED 0xE60000FF
  10. #define ADMIN_RED 0xFB0000FF
  11. #define YELLOW 0xFFFF00FF
  12. #define ORANGE 0xF97804FF
  13. #define LIGHTRED 0xFF8080FF
  14. #define LIGHTBLUE 0x00C2ECFF
  15. #define LIGHT_BLUE 0x00C2ECFF
  16. #define PURPLE 0xB360FDFF
  17. #define BLUE 0x1229FAFF
  18. #define LIGHTGREEN 0x38FF06FF
  19. #define DARKPINK 0xE100E1FF
  20. #define DARKGREEN 0x008040FF
  21. #define AQUAGREEN 0x00CACAFB
  22. #define NICESKY 0x99FFFFAA
  23. #define GREY 0xCECECEFF
  24. #define WHITE 0xFFFFFFFF
  25. #define LIMEGREEN 0x97DD37FF
  26. #define COLOR_GREY 0xAFAFAFAA
  27. #define COLOR_GREEN 0x33AA33AA
  28. #define COLOR_RED 0xAA3333AA
  29. #define COLOR_YELLOW 0xFFFF00AA
  30. #define COLOR_WHITE 0xFFFFFFAA
  31. #define PocketMoney 0
  32. #define INACTIVE_PLAYER_ID 255
  33. #define GIVECASH_DELAY 0
  34.  
  35. #define NUMVALUES 4
  36. #define DIALOG_TYPE_DELVEH 7000
  37. #define DIALOG_TYPE_DELVEHS 7001
  38. #define DIALOG_TYPE_SERVLOCK 7002
  39. #define DIALOG_TYPE_SERVLOCKPASS 7003
  40.  
  41. forward AddCar(carcoords);
  42. forward MoneyGrubScoreUpdate();
  43. forward Givecashdelaytimer(playerid);
  44. forward SetPlayerRandomSpawn(playerid);
  45. forward SetupPlayerForClassSelection(playerid);
  46. forward GameModeExitFunc();
  47. forward SendPlayerFormattedText(playerid, const str[], define);
  48. forward public SendAllFormattedText(playerid, const str[], define);
  49. forward SendClientMessageToAdmins(color,string[],alevel);
  50. forward OnPlayerRegister(playerid,password[]);
  51. forward OnPlayerLogin(playerid,password[]);
  52. forward OnPlayerUpdateAccount(playerid);
  53. forward BanLog(string[]);
  54. forward KickLog(string[]);
  55. forward VehicleLog(string[]);
  56. forward CountDown();
  57.  
  58. //------------------------------------------------------------------------------------------------------
  59.  
  60. enum Info
  61. {
  62. AdminLevel,
  63. Password[150],
  64. Cash,
  65. Warns,
  66. Jail,
  67. Logged,
  68. Mute,
  69. WarnReason1[128],
  70. WarnReason2[128],
  71. WarnReason3[128],
  72. IP[20],
  73. };
  74.  
  75. new ViewCommands[][] =
  76. {
  77. {"/admins"},
  78. {"/count"}
  79. };
  80.  
  81. new carselect[15];
  82. new rccounter = 0;
  83. new AccountInfo[MAX_PLAYERS][Info];
  84. new SuperPunch[MAX_PLAYERS];
  85. new ViewCmds[MAX_PLAYERS];
  86. new Count = 999;
  87. new Hide[MAX_PLAYERS];
  88. new Drugs[MAX_PLAYERS];
  89. new bool:PMBlock[MAX_PLAYERS];
  90. new Nuke[MAX_PLAYERS];
  91. new Missile[MAX_PLAYERS];
  92. new bool:SpawnedVehicle[MAX_VEHICLES];
  93. new PlayerDelVeh[MAX_PLAYERS];
  94. new ServerLockPass[128];
  95. new servlock[128];
  96.  
  97. new VehNames[212][] = { // Vehicle Names - Betamaster
  98. {"Landstalker"},
  99. {"Bravura"},
  100. {"Buffalo"},
  101. {"Linerunner"},
  102. {"Perrenial"},
  103. {"Sentinel"},
  104. {"Dumper"},
  105. {"Firetruck"},
  106. {"Trashmaster"},
  107. {"Stretch"},
  108. {"Manana"},
  109. {"Infernus"},
  110. {"Voodoo"},
  111. {"Pony"},
  112. {"Mule"},
  113. {"Cheetah"},
  114. {"Ambulance"},
  115. {"Leviathan"},
  116. {"Moonbeam"},
  117. {"Esperanto"},
  118. {"Taxi"},
  119. {"Washington"},
  120. {"Bobcat"},
  121. {"Mr Whoopee"},
  122. {"BF Injection"},
  123. {"Hunter"},
  124. {"Premier"},
  125. {"Enforcer"},
  126. {"Securicar"},
  127. {"Banshee"},
  128. {"Predator"},
  129. {"Bus"},
  130. {"Rhino"},
  131. {"Barracks"},
  132. {"Hotknife"},
  133. {"Trailer 1"}, //artict1
  134. {"Previon"},
  135. {"Coach"},
  136. {"Cabbie"},
  137. {"Stallion"},
  138. {"Rumpo"},
  139. {"RC Bandit"},
  140. {"Romero"},
  141. {"Packer"},
  142. {"Monster"},
  143. {"Admiral"},
  144. {"Squalo"},
  145. {"Seasparrow"},
  146. {"Pizzaboy"},
  147. {"Tram"},
  148. {"Trailer 2"}, //artict2
  149. {"Turismo"},
  150. {"Speeder"},
  151. {"Reefer"},
  152. {"Tropic"},
  153. {"Flatbed"},
  154. {"Yankee"},
  155. {"Caddy"},
  156. {"Solair"},
  157. {"Berkley's RC Van"},
  158. {"Skimmer"},
  159. {"PCJ-600"},
  160. {"Faggio"},
  161. {"Freeway"},
  162. {"RC Baron"},
  163. {"RC Raider"},
  164. {"Glendale"},
  165. {"Oceanic"},
  166. {"Sanchez"},
  167. {"Sparrow"},
  168. {"Patriot"},
  169. {"Quad"},
  170. {"Coastguard"},
  171. {"Dinghy"},
  172. {"Hermes"},
  173. {"Sabre"},
  174. {"Rustler"},
  175. {"ZR-350"},
  176. {"Walton"},
  177. {"Regina"},
  178. {"Comet"},
  179. {"BMX"},
  180. {"Burrito"},
  181. {"Camper"},
  182. {"Marquis"},
  183. {"Baggage"},
  184. {"Dozer"},
  185. {"Maverick"},
  186. {"News Chopper"},
  187. {"Rancher"},
  188. {"FBI Rancher"},
  189. {"Virgo"},
  190. {"Greenwood"},
  191. {"Jetmax"},
  192. {"Hotring"},
  193. {"Sandking"},
  194. {"Blista Compact"},
  195. {"Police Maverick"},
  196. {"Boxville"},
  197. {"Benson"},
  198. {"Mesa"},
  199. {"RC Goblin"},
  200. {"Hotring Racer A"}, //hotrina
  201. {"Hotring Racer B"}, //hotrinb
  202. {"Bloodring Banger"},
  203. {"Rancher"},
  204. {"Super GT"},
  205. {"Elegant"},
  206. {"Journey"},
  207. {"Bike"},
  208. {"Mountain Bike"},
  209. {"Beagle"},
  210. {"Cropdust"},
  211. {"Stunt"},
  212. {"Tanker"}, //petro
  213. {"Roadtrain"},
  214. {"Nebula"},
  215. {"Majestic"},
  216. {"Buccaneer"},
  217. {"Shamal"},
  218. {"Hydra"},
  219. {"FCR-900"},
  220. {"NRG-500"},
  221. {"HPV1000"},
  222. {"Cement Truck"},
  223. {"Tow Truck"},
  224. {"Fortune"},
  225. {"Cadrona"},
  226. {"FBI Truck"},
  227. {"Willard"},
  228. {"Forklift"},
  229. {"Tractor"},
  230. {"Combine"},
  231. {"Feltzer"},
  232. {"Remington"},
  233. {"Slamvan"},
  234. {"Blade"},
  235. {"Freight"},
  236. {"Streak"},
  237. {"Vortex"},
  238. {"Vincent"},
  239. {"Bullet"},
  240. {"Clover"},
  241. {"Sadler"},
  242. {"Firetruck LA"}, //firela
  243. {"Hustler"},
  244. {"Intruder"},
  245. {"Primo"},
  246. {"Cargobob"},
  247. {"Tampa"},
  248. {"Sunrise"},
  249. {"Merit"},
  250. {"Utility"},
  251. {"Nevada"},
  252. {"Yosemite"},
  253. {"Windsor"},
  254. {"Monster A"}, //monstera
  255. {"Monster B"}, //monsterb
  256. {"Uranus"},
  257. {"Jester"},
  258. {"Sultan"},
  259. {"Stratum"},
  260. {"Elegy"},
  261. {"Raindance"},
  262. {"RC Tiger"},
  263. {"Flash"},
  264. {"Tahoma"},
  265. {"Savanna"},
  266. {"Bandito"},
  267. {"Freight Flat"}, //freiflat
  268. {"Streak Carriage"}, //streakc
  269. {"Kart"},
  270. {"Mower"},
  271. {"Duneride"},
  272. {"Sweeper"},
  273. {"Broadway"},
  274. {"Tornado"},
  275. {"AT-400"},
  276. {"DFT-30"},
  277. {"Huntley"},
  278. {"Stafford"},
  279. {"BF-400"},
  280. {"Newsvan"},
  281. {"Tug"},
  282. {"Trailer 3"}, //petrotr
  283. {"Emperor"},
  284. {"Wayfarer"},
  285. {"Euros"},
  286. {"Hotdog"},
  287. {"Club"},
  288. {"Freight Carriage"}, //freibox
  289. {"Trailer 3"}, //artict3
  290. {"Andromada"},
  291. {"Dodo"},
  292. {"RC Cam"},
  293. {"Launch"},
  294. {"Police Car (LSPD)"},
  295. {"Police Car (SFPD)"},
  296. {"Police Car (LVPD)"},
  297. {"Police Ranger"},
  298. {"Picador"},
  299. {"S.W.A.T. Van"},
  300. {"Alpha"},
  301. {"Phoenix"},
  302. {"Glendale"},
  303. {"Sadler"},
  304. {"Luggage Trailer A"}, //bagboxa
  305. {"Luggage Trailer B"}, //bagboxb
  306. {"Stair Trailer"}, //tugstair
  307. {"Boxville"},
  308. {"Farm Plow"}, //farmtr1
  309. {"Utility Trailer"} //utiltr1
  310. };
  311.  
  312. new WeapNames[][32] = {
  313. {"Unarmed (Fist)"}, // 0
  314. {"Brass Knuckles"}, // 1
  315. {"Golf Club"}, // 2
  316. {"Night Stick"}, // 3
  317. {"Knife"}, // 4
  318. {"Baseball Bat"}, // 5
  319. {"Shovel"}, // 6
  320. {"Pool Cue"}, // 7
  321. {"Katana"}, // 8
  322. {"Chainsaw"}, // 9
  323. {"Purple Dildo"}, // 10
  324. {"Big White Vibrator"}, // 11
  325. {"Medium White Vibrator"}, // 12
  326. {"Small White Vibrator"}, // 13
  327. {"Flowers"}, // 14
  328. {"Cane"}, // 15
  329. {"Grenade"}, // 16
  330. {"Teargas"}, // 17
  331. {"Molotov"}, // 18
  332. {" "}, // 19
  333. {" "}, // 20
  334. {" "}, // 21
  335. {"Colt 45"}, // 22
  336. {"Colt 45(Silenced)"}, // 23
  337. {"Deagle"}, // 24
  338. {"Normal Shotgun"}, // 25
  339. {"Sawnoff Shotgun"}, // 26
  340. {"Combat Shotgun"}, // 27
  341. {"Micro Uzi(Mac 10)"}, // 28
  342. {"SMG(MP5)"}, // 29
  343. {"AK47"}, // 30
  344. {"M4"}, // 31
  345. {"Tec9"}, // 32
  346. {"Country Rifle"}, // 33
  347. {"Sniper Rifle"}, // 34
  348. {"Rocket Launcher"}, // 35
  349. {"Heat-Seeking Rocket Launcher"}, // 36
  350. {"Flamethrower"}, // 37
  351. {"Minigun"}, // 38
  352. {"Satchel Charge"}, // 39
  353. {"Detonator"}, // 40
  354. {"Spray Can"}, // 41
  355. {"Fire Extinguisher"}, // 42
  356. {"Camera"}, // 43
  357. {"Night Vision Goggles"}, // 44
  358. {"Infrared Vision Goggles"}, // 45
  359. {"Parachute"}, // 46
  360. {"Fake Pistol"} // 47
  361. };
  362.  
  363. stock strtok(const string[], &index,seperator=' ')
  364. {
  365. new length = strlen(string);
  366. new offset = index;
  367. new result[128];
  368. while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
  369. {
  370. result[index - offset] = string[index];
  371. index++;
  372. }
  373.  
  374. result[index - offset] = EOS;
  375. if ((index < length) && (string[index] == seperator))
  376. {
  377. index++;
  378. }
  379. return result;
  380. }
  381. stock IsNumeric(const string[])
  382. {
  383. for (new i = 0, j = strlen(string); i < j; i++)
  384. if (string[i] > '9' || string[i] < '0')
  385. return 0;
  386. return 1;
  387. }
  388.  
  389. ReturnUser(text[], playerid = INVALID_PLAYER_ID)
  390. {
  391. new pos = 0;
  392. while (text[pos] < 0x21)
  393. {
  394. if (text[pos] == 0) return INVALID_PLAYER_ID;
  395. pos++;
  396. }
  397. new userid = INVALID_PLAYER_ID;
  398. if (IsNumeric(text[pos]))
  399. {
  400. userid = strval(text[pos]);
  401. if (userid >=0 && userid < MAX_PLAYERS)
  402. {
  403. if(!IsPlayerConnected(userid))
  404. userid = INVALID_PLAYER_ID;
  405. else return userid;
  406. }
  407. }
  408. new len = strlen(text[pos]);
  409. new count = 0;
  410. new pname[MAX_PLAYER_NAME];
  411. for (new i = 0; i < MAX_PLAYERS; i++)
  412. {
  413. if (IsPlayerConnected(i))
  414. {
  415. GetPlayerName(i, pname, sizeof (pname));
  416. if (strcmp(pname, text[pos], true, len) == 0)
  417. {
  418. if (len == strlen(pname)) return i;
  419. else
  420. {
  421. count++;
  422. userid = i;
  423. }
  424. }
  425. }
  426. }
  427. if (count != 1)
  428. {
  429. if (playerid != INVALID_PLAYER_ID)
  430. {
  431. if (count) SendClientMessage(playerid, YELLOW, "There are multiple users, enter full playername.");
  432. else SendClientMessage(playerid, RED, "Playername not found.");
  433. }
  434. userid = INVALID_PLAYER_ID;
  435. }
  436. return userid;
  437. }
  438. stock GetFileString(string[])
  439. {
  440. new result[128];
  441. result[0] = 0;
  442. if (strfind(string, ":", true) == -1) return result;
  443. new id = strfind(string, ":", true);
  444. strmid(result, string, 0, id, 128);
  445. return result;
  446. }
  447.  
  448. stock GetFileValue(string[])
  449. {
  450. new val[256];
  451. val[0] = 0;
  452. if (strfind(string , ":", true) == -1) return val;
  453. new id = strfind(string, ":", true);
  454. strmid(val, string, id+2, strlen(string)-1, 256);
  455. return val;
  456. }
  457.  
  458. new RandCars[20][1] = {
  459. {603},{583},{586},{566},
  460. {562},{568},{580},{579},
  461. {560},{558},{541},{521},
  462. {522},{523},{477},{451},
  463. {434},{429},{415},{411}
  464. };
  465.  
  466.  
  467. new Float:CarSpawns[54][4] = {
  468. {1032.8171,-1594.2629,13.3356,180.7377},
  469. {1988.6533,1087.7460,10.4751,269.5815},
  470. {1992.5874,1087.8477,10.4761,269.7112},
  471. {1993.5490,1087.8447,10.4750,269.7661},
  472. {2040.5435,1181.9846,10.3790,178.2661},
  473. {2040.2813,1173.3302,10.3787,178.2643},
  474. {2039.9502,1162.4052,10.3806,178.2644},
  475. {2039.9458,1135.4756,10.3813,180.2942},
  476. {2171.7546,1012.6989,10.5273,89.2601},
  477. {2163.1548,1012.8098,10.5252,89.2628},
  478. {2142.4731,1013.0759,10.5268,89.2632},
  479. {2141.2031,1015.9063,10.5272,88.0564},
  480. {2132.6350,1016.1976,10.5275,88.0542},
  481. {2133.0439,1022.6212,10.5268,89.2576},
  482. {2132.3315,1025.5502,10.5268,89.5869},
  483. {2151.2642,987.3393,10.5526,181.5200},
  484. {2394.4719,994.1828,10.5267,90.5199},
  485. {2380.0977,1009.1062,10.5267,356.4108},
  486. {2380.6201,1017.4321,10.5271,356.4107},
  487. {2448.0166,1301.7682,10.4629,178.0107},
  488. {2464.8359,1337.6912,10.5273,359.4193},
  489. {2441.1145,1335.7941,10.5273,89.7969},
  490. {2486.6282,1307.5331,10.4532,269.1746},
  491. {2788.2173,1295.8784,10.4569,0.9409},
  492. {2794.5825,1296.0687,10.4569,359.2833},
  493. {2781.8972,1295.3284,10.4568,1.4087},
  494. {2775.2886,1295.1444,10.4567,358.8980},
  495. {2764.8103,1291.2999,10.4574,88.9120},
  496. {2764.6997,1284.8268,10.4568,90.1575},
  497. {2823.9519,2209.6033,10.5241,88.9704},
  498. {2823.3530,2197.2993,10.5202,269.0419},
  499. {2827.1157,2364.2427,10.5268,270.7789},
  500. {2841.4985,2357.2939,10.5198,268.3486},
  501. {2852.3020,2357.0061,10.5408,268.4392},
  502. {2866.8760,2353.0588,10.5262,266.4987},
  503. {2852.9712,2338.5791,10.5279,85.7903},
  504. {2842.4629,2338.8401,10.5259,88.2479},
  505. {2827.3442,2338.4021,10.5202,87.9161},
  506. {2815.2798,2341.8125,10.5199,85.9341},
  507. {2814.9163,2379.7063,10.5277,269.1239},
  508. {2604.3020,2136.0994,10.5282,270.0356},
  509. {2604.8613,2149.4902,10.5274,268.9434},
  510. {2119.4792,2191.5049,10.3787,359.8015},
  511. {2119.3945,2167.2690,10.3792,359.8012},
  512. {2119.3035,2141.1130,10.3792,359.8007},
  513. {2119.8755,2098.0063,10.3792,0.2043},
  514. {2102.6357,2092.3552,10.5263,266.6326},
  515. {2103.1125,2082.6079,10.5271,266.0643},
  516. {2103.2695,2059.7346,10.5261,267.1861},
  517. {1690.8741,2131.3967,11.0373,88.8118},
  518. {1643.7787,2197.5212,10.5281,357.6211},
  519. {1612.5304,2190.5161,10.5273,89.3708},
  520. {1590.0470,2191.6707,10.5261,90.8158},
  521. {1602.8180,2206.7151,10.5277,269.6120}
  522. };
  523.  
  524. new CashScoreOld;
  525. new iSpawnSet[MAX_PLAYERS];
  526.  
  527. new Float:gRandomPlayerSpawns[23][3] = {
  528. {1958.3783,1343.1572,15.3746},
  529. {2199.6531,1393.3678,10.8203},
  530. {2483.5977,1222.0825,10.8203},
  531. {2637.2712,1129.2743,11.1797},
  532. {2000.0106,1521.1111,17.0625},
  533. {2024.8190,1917.9425,12.3386},
  534. {2261.9048,2035.9547,10.8203},
  535. {2262.0986,2398.6572,10.8203},
  536. {2244.2566,2523.7280,10.8203},
  537. {2335.3228,2786.4478,10.8203},
  538. {2150.0186,2734.2297,11.1763},
  539. {2158.0811,2797.5488,10.8203},
  540. {1969.8301,2722.8564,10.8203},
  541. {1652.0555,2709.4072,10.8265},
  542. {1564.0052,2756.9463,10.8203},
  543. {1271.5452,2554.0227,10.8203},
  544. {1441.5894,2567.9099,10.8203},
  545. {1480.6473,2213.5718,11.0234},
  546. {1400.5906,2225.6960,11.0234},
  547. {1598.8419,2221.5676,11.0625},
  548. {1318.7759,1251.3580,10.8203},
  549. {1558.0731,1007.8292,10.8125},
  550. //{-857.0551,1536.6832,22.5870}, Out of Town Spawns
  551. //{817.3494,856.5039,12.7891},
  552. //{116.9315,1110.1823,13.6094},
  553. //{-18.8529,1176.0159,19.5634},
  554. //{-315.0575,1774.0636,43.6406},
  555. {1705.2347,1025.6808,10.8203}
  556. };
  557.  
  558. new Float:gCopPlayerSpawns[2][3] = {
  559. {2297.1064,2452.0115,10.8203},
  560. {2297.0452,2468.6743,10.8203}
  561. };
  562.  
  563. //Round code stolen from mike's Manhunt :P
  564. //new gRoundTime = 3600000; // Round time - 1 hour
  565. //new gRoundTime = 1200000; // Round time - 20 mins
  566. //new gRoundTime = 900000; // Round time - 15 mins
  567. //new gRoundTime = 600000; // Round time - 10 mins
  568. //new gRoundTime = 300000; // Round time - 5 mins
  569. //new gRoundTime = 120000; // Round time - 2 mins
  570. //new gRoundTime = 60000; // Round time - 1 min
  571. /*
  572. new gActivePlayers[MAX_PLAYERS];
  573. new gLastGaveCash[MAX_PLAYERS];
  574. */
  575. //------------------------------------------------------------------------------------------------------
  576.  
  577. main()
  578. {
  579. print("Mapa by: Pawel Fraczkowski");
  580. }
  581.  
  582. //------------------------------------------------------------------------------------------------------
  583.  
  584. public OnPlayerRequestSpawn(playerid)
  585. {
  586. #if defined LOGIN_BEFORE_SPAWN
  587. new string[128];
  588. new sendername[MAX_PLAYER_NAME];
  589. GetPlayerName(playerid,sendername,24);
  590. format(string,128,"/sAccounts/%s.seifadmin",sendername);
  591. if (fexist(string) && AccountInfo[playerid][Logged] == 0)
  592. {
  593. SendClientMessage(playerid,RED,"Your account is registered. You must first login in order to spawn.");
  594. return 0;
  595. }
  596. #endif
  597. return 1;
  598. }
  599.  
  600. public VehicleLog(string[])
  601. {
  602. new entry[128];
  603. format(entry, sizeof(entry), "%s\r\n",string);
  604. new File:hFile;
  605. hFile = fopen("vehiclespawn.log", io_append);
  606. if (hFile)
  607. {
  608. fwrite(hFile, entry);
  609. fclose(hFile);
  610. }
  611. }
  612.  
  613. public KickLog(string[])
  614. {
  615. new entry[128];
  616. format(entry, sizeof(entry), "%s\r\n",string);
  617. new File:hFile;
  618. hFile = fopen("kick.log", io_append);
  619. if (hFile)
  620. {
  621. fwrite(hFile, entry);
  622. fclose(hFile);
  623. }
  624. }
  625.  
  626. public BanLog(string[])
  627. {
  628. new entry[128];
  629. format(entry, sizeof(entry), "%s\r\n",string);
  630. new File:hFile;
  631. hFile = fopen("ban.log", io_append);
  632. if (hFile)
  633. {
  634. fwrite(hFile, entry);
  635. fclose(hFile);
  636. }
  637. }
  638. public SendClientMessageToAdmins(color,string[],alevel)
  639. {
  640. for(new i = 0; i < MAX_PLAYERS; i++)
  641. {
  642. if(IsPlayerConnected(i))
  643. {
  644. if (AccountInfo[i][AdminLevel] >= alevel)
  645. {
  646. SendClientMessage(i, color, string);
  647. printf("%s", string);
  648. }
  649. }
  650. }
  651. return 1;
  652. }
  653. public OnPlayerRegister(playerid, password[])
  654. {
  655. if(IsPlayerConnected(playerid))
  656. {
  657. new name[MAX_PLAYER_NAME], str[128], ip[15];
  658. GetPlayerName(playerid, name, sizeof name);
  659. GetPlayerIp(playerid, ip, sizeof ip);
  660. format(str, sizeof str, "/sAccounts/%s.seifadmin", name);
  661. new File:account = fopen(str, io_write);
  662. if (account)
  663. {
  664. strmid(AccountInfo[playerid][Password], password, 0, strlen(password), 255);
  665. AccountInfo[playerid][Cash] = GetPlayerMoney(playerid);
  666. new file[256];
  667. {
  668. format(file, sizeof file, "Password: %s\n", AccountInfo[playerid][Password]);
  669. { fwrite(account, file); }
  670. format(file, sizeof file, "AdminLevel: %d\n", 0);
  671. { fwrite(account, file); AccountInfo[playerid][AdminLevel] = 0; }
  672. format(file, sizeof file, "Cash: %d\n", AccountInfo[playerid][Cash]);
  673. { fwrite(account, file); }
  674. format(file, sizeof file, "Warnings: %d\n",AccountInfo[playerid][Warns]);
  675. { fwrite(account, file); }
  676. format(file, sizeof file, "WarnReason1: %s\n",AccountInfo[playerid][WarnReason1]);
  677. { fwrite(account, file); }
  678. format(file, sizeof file, "WarnReason2: %s\n",AccountInfo[playerid][WarnReason2]);
  679. { fwrite(account, file); }
  680. format(file, sizeof file, "WarnReason3: %s\n",AccountInfo[playerid][WarnReason3]);
  681. { fwrite(account, file); }
  682. format(file, sizeof file, "IPAddress: %s\n",ip);
  683. { fwrite(account, file); }
  684. }
  685. fclose(account);
  686. SendClientMessage(playerid, GREEN, "You can now login [/login]");
  687. }
  688. }
  689. return 1;
  690. }
  691.  
  692. public OnPlayerUpdateAccount(playerid)
  693. {
  694. if(IsPlayerConnected(playerid))
  695. {
  696. if(AccountInfo[playerid][Logged] == 1)
  697. {
  698. new name[MAX_PLAYER_NAME], str[128];
  699. GetPlayerName(playerid, name, sizeof name);
  700. format(str, sizeof str, "/sAccounts/%s.seifadmin", name);
  701. new File:account = fopen(str, io_write);
  702. if (account)
  703. {
  704. AccountInfo[playerid][Cash] = GetPlayerMoney(playerid);
  705. new file[256];
  706. {
  707. format(file, sizeof file, "Password: %s\n", AccountInfo[playerid][Password]);
  708. { fwrite(account, file); }
  709. format(file, sizeof file, "AdminLevel: %d\n",AccountInfo[playerid][AdminLevel]);
  710. { fwrite(account, file); }
  711. format(file, sizeof file, "Cash: %d\n", AccountInfo[playerid][Cash]);
  712. { fwrite(account, file); }
  713. format(file, sizeof file, "Warnings: %d\n",AccountInfo[playerid][Warns]);
  714. { fwrite(account, file); }
  715. format(file, sizeof file, "WarnReason1: %s\n",AccountInfo[playerid][WarnReason1]);
  716. { fwrite(account, file); }
  717. format(file, sizeof file, "WarnReason2: %s\n",AccountInfo[playerid][WarnReason2]);
  718. { fwrite(account, file); }
  719. format(file, sizeof file, "WarnReason3: %s\n",AccountInfo[playerid][WarnReason3]);
  720. { fwrite(account, file); }
  721. format(file, sizeof file, "IPAddress: %s\n",AccountInfo[playerid][IP]);
  722. { fwrite(account, file); }
  723. }
  724. fclose(account);
  725. }
  726. }
  727. }
  728. return 1;
  729. }
  730.  
  731. public OnPlayerLogin(playerid, password[])
  732. {
  733. new name[MAX_PLAYER_NAME], str[128];
  734. GetPlayerName(playerid, name, sizeof name);
  735. format(str, sizeof str, "/sAccounts/%s.seifadmin", name);
  736. new File:account = fopen(str, io_read);
  737. if (account)
  738. {
  739. new pass[256];
  740. new passres[256], value[256];
  741. fread(account, pass, sizeof pass);
  742. passres = GetFileString(pass);
  743. if (!strcmp("Password", passres))
  744. {
  745. value = GetFileValue(pass);
  746. strmid(AccountInfo[playerid][Password], value, 0, strlen(value), 150);
  747. }
  748. if (!strcmp(AccountInfo[playerid][Password], password, true))
  749. {
  750. while (fread(account, pass, 256))
  751. {
  752. passres = GetFileString(pass);
  753. if (!strcmp("AdminLevel", passres, true))
  754. {
  755. value = GetFileValue(pass);
  756. AccountInfo[playerid][AdminLevel] = strval(value);
  757. }
  758. if (!strcmp("Cash", passres, true))
  759. {
  760. value = GetFileValue(pass);
  761. AccountInfo[playerid][Cash] = strval(value);
  762. }
  763. if (!strcmp("Warnings", passres, true))
  764. {
  765. value = GetFileValue(pass);
  766. AccountInfo[playerid][Warns] = strval(value);
  767. }
  768. if (!strcmp("WarnReason1", passres, true))
  769. {
  770. value = GetFileValue(pass);
  771. strmid(AccountInfo[playerid][WarnReason1], value, 0, strlen(value), 128);
  772. }
  773. if (!strcmp("WarnReason2", passres, true))
  774. {
  775. value = GetFileValue(pass);
  776. strmid(AccountInfo[playerid][WarnReason2], value, 0, strlen(value), 128);
  777. }
  778. if (!strcmp("WarnReason3", passres, true))
  779. {
  780. value = GetFileValue(pass);
  781. strmid(AccountInfo[playerid][WarnReason3], value, 0, strlen(value), 128);
  782. }
  783. }
  784. fclose(account);
  785. AccountInfo[playerid][Logged] = 1;
  786. }
  787. else
  788. {
  789. SendClientMessage(playerid, RED, "Incorrect Password.");
  790. fclose(account);
  791. return 1;
  792. }
  793. GivePlayerMoney(playerid, AccountInfo[playerid][Cash]);
  794. format(str, sizeof str, "|- You have successfully logged in as %s -|", name);
  795. SendClientMessage(playerid, GREEN, str);
  796. printf("%s has logged in", name);
  797. if (AccountInfo[playerid][AdminLevel] > 0)
  798. {
  799. format(str, sizeof str, "|� You are now logged in as a level %d admin �|", AccountInfo[playerid][AdminLevel]);
  800. SendClientMessage(playerid, LIGHTGREEN, str);
  801. ViewCmds[playerid] = 0;
  802. }
  803. }
  804. return 1;
  805. }
  806.  
  807. //------------------------------------------------------------------------------------------------------
  808.  
  809. public AddCar(carcoords)
  810. {
  811. new randcol = random(126);
  812. new randcol2 = 1;
  813. if (rccounter == 14)
  814. {
  815. rccounter = 0;
  816. }
  817. AddStaticVehicleEx(carselect[rccounter], CarSpawns[carcoords][0], CarSpawns[carcoords][1], CarSpawns[carcoords][2], CarSpawns[carcoords][3], randcol, randcol2, 60000);
  818. rccounter++;
  819. return 1;
  820. }
  821.  
  822.  
  823. public OnPlayerPickUpPickup(playerid, pickupid)
  824. {
  825. //new s[256];
  826. //format(s,256,"Picked up %d",pickupid);
  827. //SendClientMessage(playerid,0xFFFFFFFF,s);
  828. }
  829.  
  830. //------------------------------------------------------------------------------------------------------
  831.  
  832. public MoneyGrubScoreUpdate()
  833. {
  834. new CashScore;
  835. new name[MAX_PLAYER_NAME];
  836. //new string[256];
  837. for(new i=0; i<MAX_PLAYERS; i++)
  838. {
  839. if (IsPlayerConnected(i))
  840. {
  841. GetPlayerName(i, name, sizeof(name));
  842. CashScore = GetPlayerMoney(i);
  843. SetPlayerScore(i, CashScore);
  844. if (CashScore > CashScoreOld)
  845. {
  846. CashScoreOld = CashScore;
  847. //format(string, sizeof(string), "$$$ %s is now in the lead $$$", name);
  848. //SendClientMessageToAll(COLOR_YELLOW, string);
  849. }
  850. }
  851. }
  852. }
  853.  
  854. //------------------------------------------------------------------------------------------------------
  855.  
  856. /*public GrubModeReset()
  857. {
  858. for(new i=0; i<MAX_PLAYERS; i++)
  859. {
  860. if (IsPlayerConnected(i))
  861. {
  862. SetPlayerScore(i, PocketMoney);
  863. SetPlayerRandomSpawn(i, classid);
  864. }
  865. }
  866.  
  867. }*/
  868.  
  869. //------------------------------------------------------------------------------------------------------
  870. public OnPlayerConnect(playerid)
  871. {
  872. AccountInfo[playerid][Jail] = 0;
  873. AccountInfo[playerid][AdminLevel] = 0;
  874. AccountInfo[playerid][Warns] = 0;
  875. AccountInfo[playerid][Logged] = 0;
  876. AccountInfo[playerid][Mute] = 0;
  877. format(AccountInfo[playerid][Password], 128, " ");
  878. format(AccountInfo[playerid][WarnReason1], 128, "NONE");
  879. format(AccountInfo[playerid][WarnReason2], 128, "NONE");
  880. format(AccountInfo[playerid][WarnReason3], 128, "NONE");
  881. Drugs[playerid] = 0;
  882. Hide[playerid] = 0;
  883. SuperPunch[playerid] = 0;
  884. ViewCmds[playerid] = 0;
  885. PlayerDelVeh[playerid] = INVALID_VEHICLE_ID;
  886. PMBlock[playerid] = false;
  887. if (strcmp(ServerLockPass, "-", true))
  888. {
  889. SendClientMessage(playerid, ADMIN_RED, "| Server Zamkniety |");
  890. ShowPlayerDialog(playerid, DIALOG_TYPE_SERVLOCKPASS, DIALOG_STYLE_INPUT, "Server Jest Zamkniety", "Wpisz haslo aby wejsc", "Enter", "Cancel");
  891. }
  892. new string[128];
  893. new ip[20];
  894. new sendername[MAX_PLAYER_NAME];
  895. GetPlayerName(playerid, sendername, sizeof(sendername));
  896. GetPlayerIp(playerid, ip, sizeof ip);
  897. strmid(AccountInfo[playerid][IP], ip, 0, strlen(ip), 128);
  898. format(string, sizeof(string), "/sAccounts/%s.seifadmin", sendername);
  899. if (!fexist(string)) return SendClientMessage(playerid,GREEN,"Potrzebujesz konto aby grac wpisz /register [haslo]");
  900. #if defined ENABLE_AUTO_LOGIN
  901. {
  902. new File:user = fopen(string, io_read);
  903. if (user)
  904. {
  905. new pass[128];
  906. new passres[128], value[128];
  907. new loop = 1;
  908. WHILE:
  909. while (fread(user, pass))
  910. {
  911. printf("line: %s", pass);
  912. strmid(passres, GetFileString(pass), 0, strlen(GetFileString(pass)), 128);
  913. if (loop == 1)
  914. {
  915. if (!strcmp("IPAddress", passres)) printf("IP; %s", GetFileValue(pass));
  916. if (!strcmp("Password", passres))
  917. {
  918. value = GetFileValue(pass);
  919. strmid(AccountInfo[playerid][Password], value, 0, strlen(value)-1, 128);
  920. loop = 2;
  921. goto WHILE;
  922. }
  923. }
  924. else if (loop == 2)
  925. {
  926. if (!strcmp("IPAddress", passres))
  927. {
  928. printf("%s", passres);
  929. strmid(passres, value, 0, strlen(value)-1, 20);
  930. printf("file-ip: %s | player-ip: %s", GetFileValue(pass), AccountInfo[playerid][IP]);
  931. if (!strcmp(AccountInfo[playerid][IP], passres, true))
  932. {
  933. SendClientMessage(playerid, GREEN, "Auto Logowanie.");
  934. fclose(user);
  935. OnPlayerLogin(playerid, AccountInfo[playerid][Password]);
  936. return 1;
  937. }
  938. else
  939. {
  940. if (fexist(string))
  941. {
  942. SendClientMessage(playerid, ORANGE, "Wpisz /login [haslo] by sie zalogowac");
  943. }
  944. fclose(user);
  945. }
  946. }
  947. }
  948. }
  949. fclose(user);
  950. }
  951. }
  952. #else
  953. {
  954. if (fexist(string))
  955. {
  956. SendClientMessage(playerid, ORANGE, "Wpisz /login [haslo] by sie zalogowac");
  957. }
  958. }
  959. #endif
  960. return 1;
  961. }
  962.  
  963. //------------------------------------------------------------------------------------------------------
  964. public OnPlayerDisconnect(playerid, reason)
  965. {
  966. OnPlayerUpdateAccount(playerid);
  967. AccountInfo[playerid][Jail] = 0;
  968. AccountInfo[playerid][AdminLevel] = 0;
  969. AccountInfo[playerid][Warns] = 0;
  970. AccountInfo[playerid][Logged] = 0;
  971. AccountInfo[playerid][Mute] = 0;
  972. Drugs[playerid] = 0;
  973. Hide[playerid] = 0;
  974. SuperPunch[playerid] = 0;
  975. ViewCmds[playerid] = 0;
  976. strmid(AccountInfo[playerid][IP], " ", 0, strlen(" "), 20);
  977. return 1;
  978. }
  979. //------------------------------------------------------------------------------------------------------
  980.  
  981. public OnPlayerCommandText(playerid, cmdtext[])
  982. {
  983. new playermoney;
  984. new sendername[MAX_PLAYER_NAME];
  985. new giveplayer[MAX_PLAYER_NAME];
  986. new giveplayerid, moneys, idx;
  987. new cmd[128];
  988. new tmp[128];
  989. new giveplayername[MAX_PLAYER_NAME];
  990. new string[128];
  991. cmd = strtok(cmdtext,idx);
  992.  
  993. for(new i = 0; i < GetMaxPlayers(); i++)
  994. {
  995. if (IsPlayerConnected(i))
  996. {
  997. if (AccountInfo[i][AdminLevel] > 0 && ViewCmds[i] == 1)
  998. {
  999. for(new v = 0; v < sizeof(ViewCommands); v++) if (!strcmp(cmdtext, ViewCommands[v], true))
  1000. {
  1001. GetPlayerName(playerid, sendername, sizeof sendername);
  1002. format(tmp, 128, "[VIEWCMDS] [%d]%s: %s", playerid, sendername, cmdtext);
  1003. SendClientMessage(i, PURPLE, tmp);
  1004. }
  1005. }
  1006. }
  1007. }
  1008.  
  1009. if(strcmp(cmd, "/ah", true) == 0 || strcmp(cmd, "/ahelp", true) == 0 || strcmp(cmd, "/acommands", true) == 0) // List of admin commands
  1010. {
  1011. if (AccountInfo[playerid][AdminLevel] >= 1 || IsPlayerAdmin(playerid))
  1012. {
  1013. SendClientMessage(playerid, YELLOW, " |- Server Admin Commands -|");
  1014. SendClientMessage(playerid, ORANGE, "LEAD(5): /gmx /makeadmin /kickall /crash /blockpm /seifocalypse /missile /setskin");
  1015. SendClientMessage(playerid, ORANGE, "LEVEL 1+: /(un)freeze /setscore /angle /kick /setname /kill /goto /ip /pweapons /view /changepassword");
  1016. SendClientMessage(playerid, ORANGE, "LEVEL 2+: /(un)mute /givecash /get /pstats /warn /viewcmds /logout /demolish /virtual");
  1017. SendClientMessage(playerid, ORANGE, "LEVEL 3+: /nuke /ban /disarm /say /giveweapon /slap /gotoveh /(un)jail /sethp /push /settime");
  1018. SendClientMessage(playerid, ORANGE, "LEVEL 4+: /fuck /bc /setwarn /announce /aclearchat /bslap /(un)hide /rangeban /teleport /setgravity /setweather");
  1019. SendClientMessage(playerid, ORANGE, "ADMIN CHAT: // Example: //hello");
  1020. }
  1021. return 1;
  1022. }
  1023.  
  1024. if(strcmp(cmd, "/dajkase", true) == 0) {
  1025. // new tmp[256];
  1026. tmp = strtok(cmdtext, idx);
  1027.  
  1028. if(!strlen(tmp)) {
  1029. SendClientMessage(playerid, ORANGE, "USAGE: /dajkase [playerid] [ilosc]");
  1030. return 1;
  1031. }
  1032. giveplayerid = strval(tmp);
  1033.  
  1034. tmp = strtok(cmdtext, idx);
  1035. if(!strlen(tmp)) {
  1036. SendClientMessage(playerid, ORANGE, "USAGE: /dajkase [playerid] [ilosc]");
  1037. return 1;
  1038. }
  1039. moneys = strval(tmp);
  1040.  
  1041. if (IsPlayerConnected(giveplayerid)) {
  1042. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  1043. GetPlayerName(playerid, sendername, sizeof(sendername));
  1044. playermoney = GetPlayerMoney(playerid);
  1045. if (moneys > 0 && playermoney >= moneys) {
  1046. GivePlayerMoney(playerid, (0 - moneys));
  1047. GivePlayerMoney(giveplayerid, moneys);
  1048. format(string, sizeof(string), "Dales %s dla %d), $%d.", giveplayer,giveplayerid, moneys);
  1049. SendClientMessage(playerid, ORANGE, string);
  1050. format(string, sizeof(string), "Otrzymales $%d od %s %d).", moneys, sendername, playerid);
  1051. SendClientMessage(giveplayerid, ORANGE, string);
  1052. // printf("%s(playerid:%d) has transfered %d to %s(playerid:%d)",sendername, playerid, moneys, giveplayer, giveplayerid);
  1053. }
  1054. else {
  1055. SendClientMessage(playerid, ORANGE, "Nie wlasciwa suma");
  1056. }
  1057. }
  1058. else {
  1059. format(string, sizeof(string), "%d jest nie aktywnym graczem.", giveplayerid);
  1060. SendClientMessage(playerid, ORANGE, string);
  1061. }
  1062. return 1;
  1063. }
  1064.  
  1065. if(strcmp(cmd, "/dajadmina", true) == 0) // Make player an admin
  1066. {
  1067. if (AccountInfo[playerid][AdminLevel] >= 5 || IsPlayerAdmin(playerid))
  1068. {
  1069. tmp = strtok(cmdtext, idx);
  1070. if(!strlen(tmp))
  1071. {
  1072. SendClientMessage(playerid, ORANGE, "USAGE: /dajadmina [playerid] [level 3-5]");
  1073. SendClientMessage(playerid, ORANGE, "5 - Head Admin, 4 - Admin, 3 - Moderator");
  1074. return 1;
  1075. }
  1076. // new giveplayerid = ReturnUser(tmp, playerid);
  1077. tmp = strtok(cmdtext, idx);
  1078. new level = strval(tmp);
  1079. if(giveplayerid != INVALID_PLAYER_ID)
  1080. {
  1081. if (level >= 0)
  1082. {
  1083. GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
  1084. GetPlayerName(playerid, sendername, sizeof(sendername));
  1085. printf("Head Admin: %s dal admina dla %s ", sendername, giveplayername);
  1086. format(string, sizeof(string), "Zostales adminem z lvlem %d przez %s.", level, sendername);
  1087. SendClientMessage(giveplayerid, LIGHTBLUE, string);
  1088. format(string, sizeof(string), "Head Admin %s dal admina %s", sendername,giveplayername);
  1089. SendClientMessageToAdmins(ORANGE, string, 1);
  1090. AccountInfo[giveplayerid][AdminLevel] = level;
  1091. format(string, sizeof(string), "Dales admina %s level %d ", giveplayername,AccountInfo[giveplayerid][AdminLevel]);
  1092. SendClientMessage(playerid, LIGHTBLUE, string);
  1093. }
  1094. else return SendClientMessage(playerid, ORANGE, "Nie mozesz isc ponizej 0");
  1095. }
  1096. else if(giveplayerid == INVALID_PLAYER_ID)
  1097. {
  1098. format(string, sizeof(string), "%i nie jest aktywnym graczem", giveplayerid);
  1099. SendClientMessage(playerid, ORANGE, string);
  1100. }
  1101. }
  1102. else SendClientMessage(playerid, ORANGE, "Nie jestes Head Adminem!");
  1103. return 1;
  1104. }
  1105.  
  1106. if(strcmp(cmd, "/gmx", true) == 0) // Reboot the server
  1107. {
  1108. if (AccountInfo[playerid][AdminLevel] >= 5 || IsPlayerAdmin(playerid)) return GameModeExit();
  1109. else return SendClientMessage(playerid, RED, "Nie jestes Head Adminem!");
  1110. }
  1111.  
  1112. if(strcmp(cmd, "/kickall", true) == 0) // Kick everyone except the one who does this
  1113. {
  1114. new reason[128];
  1115. if (AccountInfo[playerid][AdminLevel] >= 5 || IsPlayerAdmin(playerid))
  1116. {
  1117. GetPlayerName(playerid, sendername, sizeof(sendername));
  1118. reason = bigstrtok(cmdtext, idx);
  1119. if(!strlen(reason))
  1120. {
  1121. SendClientMessage(playerid, ORANGE, "USAGE: /kickall [reason]");
  1122. SendClientMessage(playerid, ORANGE, "FUNCTION: Will kick all the players.");
  1123. return 1;
  1124. }
  1125. printf("ADMIN: Admin %s wyrzucil kazdego. Poniewaz: %s", sendername, reason);
  1126. format(string, sizeof(string), "Administrator %s wykopal kazdego [Poniewaz: %s ] ", sendername,reason);
  1127. SendClientMessageToAll(ORANGE, string);
  1128. for(new i = 0; i < MAX_PLAYERS; i++)
  1129. {
  1130. if (i != playerid)
  1131. {
  1132. Kick(i);
  1133. KickLog(string);
  1134. }
  1135. }
  1136. }
  1137. else SendClientMessage(playerid, RED, "Nie jestes Head Adminem");
  1138. return 1;
  1139. }
  1140.  
  1141. if(strcmp(cmd, "/nuke", true) == 0) // Nuke a player (explode)
  1142. {
  1143. if (AccountInfo[playerid][AdminLevel] >= 4)
  1144. {
  1145. tmp = strtok(cmdtext, idx);
  1146. if(!strlen(tmp))
  1147. {
  1148. SendClientMessage(playerid, ORANGE, "USAGE: /nuke [playerid]");
  1149. SendClientMessage(playerid, ORANGE, "FUNCTION: Player will explode.");
  1150. return 1;
  1151. }
  1152. new Float:X,Float:Y,Float:Z;
  1153. // new giveplayerid = ReturnUser(tmp, playerid);
  1154. if(IsPlayerConnected(giveplayerid))
  1155. {
  1156. GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
  1157. GetPlayerName(playerid, sendername, sizeof(sendername));
  1158. GetPlayerPos(giveplayerid, X,Y,Z);
  1159. CreateExplosion(X,Y,Z,2,3.0);
  1160. SetPlayerHealth(giveplayerid, 0.0);
  1161. format(string, sizeof(string), "Administrator %s spuscil bombe nuklearna na %s ",sendername,giveplayername);
  1162. SendClientMessageToAdmins(ORANGE, string,1);
  1163. }
  1164. else if (!IsPlayerConnected(giveplayerid))
  1165. {
  1166. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1167. SendClientMessage(playerid, RED, string);
  1168. }
  1169. }
  1170. else SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  1171. return 1;
  1172. }
  1173.  
  1174. if(strcmp(cmd, "/setscore", true) == 0) // Set player a score
  1175. {
  1176. if (IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 3)
  1177. {
  1178. tmp = strtok(cmdtext, idx);
  1179. if(!strlen(tmp))
  1180. {
  1181. SendClientMessage(playerid, ORANGE, "USAGE: /setscore [playerid] [score]");
  1182. SendClientMessage(playerid, ORANGE, "FUNCTION: Will set a specified player's score");
  1183. return 1;
  1184. }
  1185. // new giveplayerid = ReturnUser(tmp);
  1186. tmp = strtok(cmdtext, idx);
  1187. if(!strlen(tmp))
  1188. {
  1189. SendClientMessage(playerid, ORANGE, "USAGE: /score [playerid] [score]");
  1190. SendClientMessage(playerid, ORANGE, "FUNCTION: Will set a specified player's score");
  1191. return 1;
  1192. }
  1193. new score = strval(tmp);
  1194. if(IsPlayerConnected(giveplayerid))
  1195. {
  1196. GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
  1197. GetPlayerScore(giveplayerid);
  1198. SetPlayerScore(giveplayerid, score);
  1199. format(string, sizeof(string), "You have changed %s's score number to %d.",giveplayername, score);
  1200. SendClientMessage(playerid, GREEN, string);
  1201. }
  1202. else if (!IsPlayerConnected(giveplayerid))
  1203. {
  1204. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1205. SendClientMessage(playerid, RED, string);
  1206. }
  1207. }
  1208. return 1;
  1209. }
  1210.  
  1211. if(strcmp(cmd, "/angle", true) == 0) // Shows your current angle + sets it
  1212. {
  1213. if (IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 3)
  1214. {
  1215. new Float:angle;
  1216. tmp = strtok(cmdtext, idx);
  1217. if(!strlen(tmp))
  1218. {
  1219. SendClientMessage(playerid, ORANGE, "USAGE: /angle [angle degree]");
  1220. SendClientMessage(playerid, ORANGE, "FUNCTION: Will change your current angle.");
  1221. GetPlayerFacingAngle(playerid,angle);
  1222. format(string, sizeof(string), "HELP: Your current angle is %f", angle);
  1223. SendClientMessage(playerid, ORANGE, string);
  1224. return 1;
  1225. }
  1226. angle = floatstr(tmp);
  1227. if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1228. {
  1229. SetVehicleZAngle(GetPlayerVehicleID(playerid), angle);
  1230. format(string, sizeof(string), "You have changed your angle degree to %f" ,angle);
  1231. SendClientMessage(playerid, GREEN, string);
  1232. }
  1233. else
  1234. {
  1235. SetPlayerFacingAngle(playerid,angle);
  1236. format(string, sizeof(string), "You have changed your angle degree to %f",angle);
  1237. SendClientMessage(playerid, GREEN, string);
  1238. }
  1239. }
  1240. else SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  1241. return 1;
  1242. }
  1243.  
  1244. if(strcmp(cmd, "/rangeban", true) == 0) // Range-bans a player with the amount of ranges entered.
  1245. {
  1246. if (AccountInfo[playerid][AdminLevel] >= 5)
  1247. {
  1248. tmp = strtok(cmdtext,idx);
  1249. if (!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /rangeban [playername/id] [ranges(2 max)]");
  1250. new ip[20],ban[128];
  1251. // new giveplayerid = ReturnUser(tmp);
  1252. if (IsPlayerConnected(giveplayerid))
  1253. {
  1254. tmp = strtok(cmdtext,idx);
  1255. if (!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /rangeban [playername/id] [RANGES(2 max)]");
  1256. new ranges = strval(tmp);
  1257. if (ranges < 0 || ranges > 2) return SendClientMessage(playerid, RED, "Minimum ranges: 0 | Maximum ranges: 2");
  1258. if (ranges == 0)
  1259. {
  1260. Ban(giveplayerid);
  1261. }
  1262. GetPlayerName(giveplayerid, giveplayername, sizeof giveplayername);
  1263. GetPlayerIp(giveplayerid, ip, sizeof ip);
  1264. new count = 1;
  1265. for(new i = strlen(ip); i > 0; i--)
  1266. {
  1267. if (ip[i] == '.')
  1268. {
  1269. if (count == ranges)
  1270. {
  1271. format(ban, sizeof ban, "banip %s", ip);
  1272. SendRconCommand(ban);
  1273. break;
  1274. }
  1275. else count++;
  1276. }
  1277. else ip[i] = '*';
  1278. }
  1279. format(ban, sizeof ban, "%s has been banned with the ip '%s'", giveplayername, ip);
  1280. SendClientMessage(playerid, GREEN, ban);
  1281. }
  1282. else
  1283. {
  1284. format(string, sizeof(string), "%i is not an active player.", giveplayerid);
  1285. SendClientMessage(playerid, RED, string);
  1286. }
  1287. }
  1288. else SendClientMessage(playerid, RED, "You're not a lead admin !");
  1289. return 1;
  1290. }
  1291.  
  1292. if(strcmp(cmd, "/ip", true) == 0) // Look at the player's IP address
  1293. {
  1294. if (AccountInfo[playerid][AdminLevel] >= 1 || IsPlayerAdmin(playerid))
  1295. {
  1296. tmp = strtok(cmdtext, idx);
  1297. if(!strlen(tmp))
  1298. {
  1299. SendClientMessage(playerid, ORANGE, "USAGE: /ip [playername/id]");
  1300. SendClientMessage(playerid, ORANGE, "FUNCTION: View a player's IP.");
  1301. return 1;
  1302. }
  1303.  
  1304. // new giveplayerid = ReturnUser(tmp);
  1305. if(IsPlayerConnected(giveplayerid))
  1306. {
  1307. new sstring[256];
  1308. new ip[20];
  1309. GetPlayerIp(giveplayerid, ip, sizeof ip);
  1310. GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
  1311. format(sstring, sizeof(sstring), " %s's IP: %s ", giveplayername,ip);
  1312. SendClientMessage(playerid,LIGHTBLUE, sstring);
  1313. }
  1314. else
  1315. {
  1316. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1317. SendClientMessage(playerid, RED, string);
  1318. }
  1319. }
  1320. else SendClientMessage(playerid, RED, "You are not an admin.");
  1321. return 1;
  1322. }
  1323.  
  1324. if(strcmp(cmd, "/ban", true) == 0) // Bans a player from the server
  1325. {
  1326. new reason[128];
  1327. if (AccountInfo[playerid][AdminLevel] >= 4 || IsPlayerAdmin(playerid))
  1328. {
  1329. tmp = strtok(cmdtext, idx);
  1330. if(!strlen(tmp))
  1331. {
  1332. SendClientMessage(playerid, ORANGE, "USAGE: /ban [playername/id] [reason]");
  1333. SendClientMessage(playerid, ORANGE, "FUNCTION: Will BAN the specified player.");
  1334. return 1;
  1335. }
  1336.  
  1337. // new giveplayerid = ReturnUser(tmp);
  1338.  
  1339. if (AccountInfo[giveplayerid][AdminLevel] > AccountInfo[playerid][AdminLevel])
  1340. {
  1341. format(string, sizeof(string), "[%i]%s prubowal cie zbanowac",playerid,sendername);
  1342. SendClientMessage(giveplayerid, ORANGE,string);
  1343. SendClientMessage(playerid, ORANGE, "You are not allowed to ban an admin with a higher level than you!");
  1344. }
  1345.  
  1346. else if (giveplayerid != INVALID_PLAYER_ID)
  1347. {
  1348. GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
  1349. GetPlayerName(playerid, sendername, sizeof(sendername));
  1350. reason = bigstrtok(cmdtext, idx);
  1351. if(!strlen(reason)) return SendClientMessage(playerid, ORANGE, "USAGE: /ban [playername/id] [reason]");
  1352. new ip[20];
  1353. printf("ADMIN: Admin %s zbanowal %s. Za: %s", sendername, giveplayername, reason);
  1354. format(string, sizeof(string), "Administrator %s zbanowal %s. [Za: %s ] |-", sendername, giveplayername, reason);
  1355. SendClientMessageToAll(ORANGE, string);
  1356. GetPlayerIp(giveplayerid, ip, sizeof ip);
  1357. format(string, sizeof(string), "Zbanowane ip gracza: %s ", ip);
  1358. SendClientMessageToAdmins(ORANGE, string, 1);
  1359. AccountInfo[giveplayerid][AdminLevel] = 0; // Resets the banned player's admin level for security reasons
  1360. format(reason, sizeof reason, "[%s]%s", sendername, reason);
  1361. BanEx(giveplayerid, reason);
  1362. }
  1363. else if(giveplayerid == INVALID_PLAYER_ID)
  1364. {
  1365. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1366. SendClientMessage(playerid, RED, string);
  1367. }
  1368. }
  1369. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1370. return 1;
  1371. }
  1372.  
  1373. if(strcmp(cmd, "/kick", true) == 0) // Kicks the player from the server
  1374. {
  1375. new reason[128];
  1376. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1377. {
  1378. tmp = strtok(cmdtext, idx);
  1379. if(!strlen(tmp))
  1380. {
  1381. SendClientMessage(playerid, ORANGE, "USAGE: /kick [playername/id] [reason]");
  1382. SendClientMessage(playerid, ORANGE, "FUNCTION: Will kick the specified player.");
  1383. return 1;
  1384. }
  1385.  
  1386. // new giveplayerid = ReturnUser(tmp);
  1387. if(giveplayerid != INVALID_PLAYER_ID)
  1388. {
  1389. GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
  1390. GetPlayerName(playerid, sendername, sizeof(sendername));
  1391. reason = bigstrtok(cmdtext, idx);
  1392. if(!strlen(reason)) return SendClientMessage(playerid, ORANGE, "USAGE: /kick [playername/id] [reason]");
  1393. printf("ADMIN: Admin %s kicked %s. Reason: %s", sendername, giveplayername, reason);
  1394. format(string, sizeof(string), "Administrator/Moderator %s wykopal %s. [Za: %s ] |-", sendername, giveplayername, reason);
  1395. SendClientMessageToAll(ORANGE, string);
  1396. Kick(giveplayerid);
  1397. KickLog(string);
  1398. }
  1399. else if(giveplayerid == INVALID_PLAYER_ID)
  1400. {
  1401. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1402. SendClientMessage(playerid, RED, string);
  1403. }
  1404. }
  1405. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1406. return 1;
  1407. }
  1408.  
  1409. if(strcmp(cmd, "/mute", true) == 0) // Mutes the player from talking in the chat box
  1410. {
  1411. new reason[128];
  1412. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1413. {
  1414. tmp = strtok(cmdtext, idx);
  1415. if(!strlen(tmp))
  1416. {
  1417. SendClientMessage(playerid, ORANGE, "USAGE: /mute [playername/id] [reason]");
  1418. SendClientMessage(playerid, ORANGE, "FUNCTION: Will mute the specified player.");
  1419. return 1;
  1420. }
  1421.  
  1422. // new giveplayerid = ReturnUser(tmp);
  1423.  
  1424. if(giveplayerid != INVALID_PLAYER_ID)
  1425. {
  1426. if (AccountInfo[giveplayerid][Mute] == 0)
  1427. {
  1428. GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
  1429. GetPlayerName(playerid, sendername, sizeof(sendername));
  1430. reason = bigstrtok(cmdtext, idx);
  1431. if(!strlen(reason)) return SendClientMessage(playerid, ORANGE, "USAGE: /mute [playername/id] [reason]");
  1432. printf("ADMIN: Admin %s muted %s. Reason: %s", sendername, giveplayername, reason);
  1433. format(string, sizeof(string), "Administrator/Moderator %s wyciszyl %s. [Za: %s ]|-", sendername,giveplayername,reason);
  1434. SendClientMessageToAll(ORANGE, string);
  1435. AccountInfo[giveplayerid][Mute] = 1;
  1436. }
  1437. else if (AccountInfo[giveplayerid][Mute] == 1) SendClientMessage(playerid, RED, "Player is already muted!");
  1438. }
  1439.  
  1440. else if(giveplayerid == INVALID_PLAYER_ID)
  1441. {
  1442. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1443. SendClientMessage(playerid, RED, string);
  1444. }
  1445. }
  1446. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1447. return 1;
  1448. }
  1449.  
  1450. if(strcmp(cmd, "/unmute", true) == 0) // Unmutes a muted player
  1451. {
  1452. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1453. {
  1454. tmp = strtok(cmdtext, idx);
  1455. if(!strlen(tmp))
  1456. {
  1457. SendClientMessage(playerid, ORANGE, "USAGE: /unmute [playername/id]");
  1458. SendClientMessage(playerid, ORANGE, "FUNCTION: Will unmute the specified player.");
  1459. return 1;
  1460. }
  1461.  
  1462. // new giveplayerid = ReturnUser(tmp);
  1463.  
  1464. if(giveplayerid != INVALID_PLAYER_ID)
  1465. {
  1466. if (AccountInfo[giveplayerid][Mute] == 1)
  1467. {
  1468. GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
  1469. GetPlayerName(playerid, sendername, sizeof(sendername));
  1470. format(string, sizeof(string), "Administrator/Moderator %s dal zgode na mowienie dla %s ", sendername,giveplayername);
  1471. SendClientMessageToAll(ORANGE, string);
  1472. AccountInfo[giveplayerid][Mute] = 0;
  1473. }
  1474. else if (AccountInfo[giveplayerid][Mute] == 0) SendClientMessage(playerid, RED, "Player isn't muted.");
  1475. }
  1476.  
  1477. else if(giveplayerid == INVALID_PLAYER_ID)
  1478. {
  1479. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1480. SendClientMessage(playerid, RED, string);
  1481. }
  1482. }
  1483. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1484. return 1;
  1485. }
  1486.  
  1487. if(strcmp(cmd, "/drugs", true) == 0) // Will make the player invinsible until death
  1488. {
  1489. if (AccountInfo[playerid][AdminLevel] > 3 || IsPlayerAdmin(playerid))
  1490. {
  1491. SetPlayerHealth(playerid,999999999); // max HP
  1492. Drugs[playerid] = 1;
  1493. SendClientMessage(playerid, GREEN, "You are now high on drugs...");
  1494. }
  1495. else SendClientMessage(playerid, RED, "Drugs are bad for you!");
  1496. return 1;
  1497. }
  1498.  
  1499. if(strcmp(cmd, "/freeze", true) == 0) // Freezes the player. Prevents him from moving
  1500. {
  1501. new reason[128];
  1502. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1503. {
  1504. tmp = strtok(cmdtext, idx);
  1505. if(!strlen(tmp))
  1506. {
  1507. SendClientMessage(playerid, ORANGE, "USAGE: /freeze [playername/id] [reason]");
  1508. SendClientMessage(playerid, ORANGE, "FUNCTION: Will freeze the specified player.");
  1509. return 1;
  1510. }
  1511.  
  1512. // new giveplayerid = ReturnUser(tmp);
  1513. if(giveplayerid != INVALID_PLAYER_ID)
  1514. {
  1515. GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
  1516. GetPlayerName(playerid, sendername, sizeof(sendername));
  1517. reason = bigstrtok(cmdtext, idx);
  1518. if(!strlen(reason)) return SendClientMessage(playerid, ORANGE, "USAGE: /freeze [playername/id] [reason]");
  1519. format(string, sizeof(string), "Administrator/Moderator %s zamrozil %s. [Za: %s ] |-", sendername, giveplayername, reason);
  1520. SendClientMessageToAdmins(ORANGE, string, 1);
  1521. TogglePlayerControllable(giveplayerid, false);
  1522. }
  1523. else if(giveplayerid == INVALID_PLAYER_ID)
  1524. {
  1525. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1526. SendClientMessage(playerid, RED, string);
  1527. }
  1528. }
  1529. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1530. return 1;
  1531. }
  1532. if(strcmp(cmd, "/unfreeze", true) == 0) // Unfreezes the player
  1533. {
  1534. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1535. {
  1536. tmp = strtok(cmdtext, idx);
  1537. if(!strlen(tmp))
  1538. {
  1539. SendClientMessage(playerid, ORANGE, "USAGE: /unfreeze [playername/id]");
  1540. SendClientMessage(playerid, ORANGE, "FUNCTION: Will unfreeze the specified player.");
  1541. return 1;
  1542. }
  1543.  
  1544. // new giveplayerid = ReturnUser(tmp);
  1545. if(giveplayerid != INVALID_PLAYER_ID)
  1546. {
  1547. GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
  1548. GetPlayerName(playerid, sendername, sizeof(sendername));
  1549. format(string, sizeof(string), "Administrator %s odmrozil %s ", sendername,giveplayername);
  1550. SendClientMessageToAdmins(ORANGE, string, 1);
  1551. TogglePlayerControllable(giveplayerid, true);
  1552. }
  1553. else if(giveplayerid == INVALID_PLAYER_ID)
  1554. {
  1555. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1556. SendClientMessage(playerid, RED, string);
  1557. }
  1558. }
  1559. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1560. return 1;
  1561. }
  1562.  
  1563. if(strcmp(cmd, "/setname", true) == 0) // Changes a player's name
  1564. {
  1565. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1566. {
  1567. tmp = strtok(cmdtext, idx);
  1568. if(!strlen(tmp))
  1569. {
  1570. SendClientMessage(playerid, ORANGE, "USAGE: /setname [playername/id] [newname]");
  1571. SendClientMessage(playerid, ORANGE, "FUNCTION: Will change the player's current name. ");
  1572. return 1;
  1573. }
  1574.  
  1575. // new giveplayerid = ReturnUser(tmp);
  1576. if(giveplayerid != INVALID_PLAYER_ID)
  1577. {
  1578. GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
  1579. GetPlayerName(playerid, sendername, sizeof(sendername));
  1580. tmp = strtok(cmdtext, idx);
  1581. if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /setname [playername/id] [newname]");
  1582. format(string, sizeof(string), "Administrator/Moderator %s zmienil imie %s na %s ", sendername, giveplayername, tmp);
  1583. SendClientMessageToAdmins(ORANGE, string, 1);
  1584. SetPlayerName(giveplayerid, tmp);
  1585. }
  1586. else if(giveplayerid == INVALID_PLAYER_ID)
  1587. {
  1588. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1589. SendClientMessage(playerid, RED, string);
  1590. }
  1591. }
  1592. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1593. return 1;
  1594. }
  1595.  
  1596. if(strcmp(cmd, "/givecash", true) == 0) // Gives some cash to the player
  1597. {
  1598. if (AccountInfo[playerid][AdminLevel] >= 4 || IsPlayerAdmin(playerid))
  1599. {
  1600. tmp = strtok(cmdtext, idx);
  1601. if(!strlen(tmp))
  1602. {
  1603. SendClientMessage(playerid, ORANGE, "USAGE: /givecash [playername/id] [cash]");
  1604. SendClientMessage(playerid, ORANGE, "FUNCTION: Will give the player some cash. ");
  1605. return 1;
  1606. }
  1607.  
  1608. // new giveplayerid = ReturnUser(tmp);
  1609. if(giveplayerid != INVALID_PLAYER_ID)
  1610. {
  1611. GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
  1612. GetPlayerName(playerid, sendername, sizeof(sendername));
  1613. tmp = strtok(cmdtext, idx);
  1614. new cash = strval(tmp);
  1615. if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /givecash [playername/id] [cash]");
  1616. format(string, sizeof(string), "Administrator %s dal %s $%d |-", sendername,giveplayername,cash);
  1617. SendClientMessageToAdmins(ORANGE, string, 1);
  1618. GivePlayerMoney(giveplayerid, cash);
  1619. }
  1620. else if(giveplayerid == INVALID_PLAYER_ID)
  1621. {
  1622. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1623. SendClientMessage(playerid, RED, string);
  1624. }
  1625. }
  1626. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1627. return 1;
  1628. }
  1629.  
  1630. if(strcmp(cmd, "/kill", true) == 0) // If an admin, it kills the player you want. If not, suicide.
  1631. {
  1632. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1633. {
  1634. tmp = strtok(cmdtext, idx);
  1635. if(!strlen(tmp))
  1636. {
  1637. SendClientMessage(playerid, ORANGE, "USAGE: /kill [playername/id]");
  1638. SendClientMessage(playerid, ORANGE, "FUNCTION: Will kill the specified player.");
  1639. return 1;
  1640. }
  1641.  
  1642. // new giveplayerid = ReturnUser(tmp);
  1643. if(giveplayerid != INVALID_PLAYER_ID)
  1644. {
  1645. GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
  1646. GetPlayerName(playerid, sendername, sizeof(sendername));
  1647. format(string, sizeof(string), "Administrator/Moderator %s zabil %s ", sendername,giveplayername);
  1648. SendClientMessageToAdmins(ORANGE, string, 1);
  1649. SetPlayerHealth(giveplayerid, 0.0);
  1650. }
  1651. else if(giveplayerid == INVALID_PLAYER_ID)
  1652. {
  1653. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1654. SendClientMessage(playerid, RED, string);
  1655. }
  1656. }
  1657. else
  1658. {
  1659. SendClientMessage(playerid, RED, "You have committed suicide.");
  1660. SetPlayerHealth(playerid,0.0);
  1661. }
  1662. return 1;
  1663. }
  1664.  
  1665. if(strcmp(cmd, "/goto", true) == 0) // Teleports to a player
  1666. {
  1667. new Float:pX,Float:pY,Float:pZ;
  1668. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1669. {
  1670. tmp = strtok(cmdtext, idx);
  1671. if(!strlen(tmp))
  1672. {
  1673. SendClientMessage(playerid, ORANGE, "USAGE: /goto [playername/id]");
  1674. SendClientMessage(playerid, ORANGE, "FUNCTION: Will teleport to the specified player.");
  1675. return 1;
  1676. }
  1677. // new giveplayerid = ReturnUser(tmp);
  1678. if(giveplayerid != INVALID_PLAYER_ID)
  1679. {
  1680. if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1681. {
  1682. GetPlayerPos(giveplayerid,pX,pY,pZ);
  1683. SetVehiclePos(GetPlayerVehicleID(playerid),pX,pY,pZ+2);
  1684. }
  1685. else
  1686. {
  1687. GetPlayerPos(giveplayerid,pX,pY,pZ);
  1688. SetPlayerPos(playerid,pX,pY,pZ+2);
  1689. }
  1690. SetPlayerInterior(playerid,GetPlayerInterior(giveplayerid));
  1691. }
  1692. else if(giveplayerid == INVALID_PLAYER_ID)
  1693. {
  1694. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1695. SendClientMessage(playerid, RED, string);
  1696. }
  1697. }
  1698. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1699. return 1;
  1700. }
  1701.  
  1702. if(strcmp(cmd, "/get", true) == 0) // Teleports the player to your position
  1703. {
  1704. new Float:pX,Float:pY,Float:pZ;
  1705. if (AccountInfo[playerid][AdminLevel] >= 5 || IsPlayerAdmin(playerid))
  1706. {
  1707. tmp = strtok(cmdtext, idx);
  1708. if(!strlen(tmp))
  1709. {
  1710. SendClientMessage(playerid, ORANGE, "USAGE: /get [playername/id]");
  1711. SendClientMessage(playerid, ORANGE, "FUNCTION: Will teleport the specified player to you.");
  1712. return 1;
  1713. }
  1714. // new giveplayerid = ReturnUser(tmp);
  1715. if(giveplayerid != INVALID_PLAYER_ID)
  1716. {
  1717. if (GetPlayerState(giveplayerid) == PLAYER_STATE_DRIVER)
  1718. {
  1719. GetPlayerPos(playerid,pX,pY,pZ);
  1720. SetVehiclePos(GetPlayerVehicleID(giveplayerid),pX,pY,pZ+2);
  1721. }
  1722. else
  1723. {
  1724. GetPlayerPos(playerid,pX,pY,pZ);
  1725. SetPlayerPos(giveplayerid,pX,pY,pZ+2);
  1726. }
  1727. SetPlayerInterior(giveplayerid,GetPlayerInterior(playerid));
  1728. }
  1729. else if(giveplayerid == INVALID_PLAYER_ID)
  1730. {
  1731. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1732. SendClientMessage(playerid, RED, string);
  1733. }
  1734. }
  1735. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1736. return 1;
  1737. }
  1738.  
  1739. if(strcmp(cmd, "/teleport", true) == 0) // Teleports the player to the other player
  1740. {
  1741. if (AccountInfo[playerid][AdminLevel] >= 4 || IsPlayerAdmin(playerid))
  1742. {
  1743. tmp = strtok(cmdtext, idx);
  1744. if(!strlen(tmp))
  1745. {
  1746. SendClientMessage(playerid, ORANGE, "USAGE: /teleport [playername/id] [targetname/id]");
  1747. SendClientMessage(playerid, ORANGE, "FUNCTION: Will teleport the player to the target.");
  1748. return 1;
  1749. }
  1750. // new giveplayerid = ReturnUser(tmp);
  1751. if(giveplayerid != INVALID_PLAYER_ID)
  1752. {
  1753. tmp = strtok(cmdtext, idx);
  1754. if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /teleport [playername/id] [targetname/id]");
  1755. new targetid = ReturnUser(tmp, playerid);
  1756. if (targetid == INVALID_PLAYER_ID) return 1;
  1757. new Float:tX,Float:tY,Float:tZ;
  1758. if (GetPlayerState(giveplayerid) == PLAYER_STATE_DRIVER)
  1759. {
  1760. GetPlayerPos(targetid,tX,tY,tZ);
  1761. SetVehiclePos(GetPlayerVehicleID(giveplayerid),tX,tY,tZ+2);
  1762. }
  1763. else
  1764. {
  1765. GetPlayerPos(targetid,tX,tY,tZ);
  1766. SetPlayerPos(giveplayerid,tX,tY,tZ+2);
  1767. }
  1768. SetPlayerInterior(giveplayerid,GetPlayerInterior(targetid));
  1769. }
  1770. else if(giveplayerid == INVALID_PLAYER_ID)
  1771. {
  1772. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1773. SendClientMessage(playerid, RED, string);
  1774. }
  1775. }
  1776. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1777. return 1;
  1778. }
  1779.  
  1780. if(!strcmp(cmdtext, "//", true, 2)) // Admin chat
  1781. {
  1782. if (AccountInfo[playerid][AdminLevel] == 5 || IsPlayerAdmin(playerid))
  1783. {
  1784. if(!strlen(cmdtext[2])) return
  1785. GetPlayerName(playerid, sendername, sizeof(sendername));
  1786. format(string, sizeof(string), "Head Admin [%i]%s: %s" ,playerid,sendername, cmdtext[2]);
  1787. SendClientMessageToAdmins(BLUE, string, 1);
  1788. return 1;
  1789. }
  1790. else if (AccountInfo[playerid][AdminLevel] == 4 || IsPlayerAdmin(playerid))
  1791. {
  1792. if(!strlen(cmdtext[2])) return
  1793. GetPlayerName(playerid, sendername, sizeof(sendername));
  1794. format(string, sizeof(string), "Admin [%i]%s: %s" ,playerid,sendername, cmdtext[2]);
  1795. SendClientMessageToAdmins(LIGHT_BLUE, string, 1);
  1796. return 1;
  1797. }
  1798. else if (AccountInfo[playerid][AdminLevel] == 3 || IsPlayerAdmin(playerid))
  1799. {
  1800. if(!strlen(cmdtext[2])) return
  1801. GetPlayerName(playerid, sendername, sizeof(sendername));
  1802. format(string, sizeof(string), "Moderator [%i]%s: %s" ,playerid,sendername, cmdtext[2]);
  1803. SendClientMessageToAdmins(GREEN, string, 1);
  1804. return 1;
  1805. }
  1806. }
  1807.  
  1808. if(strcmp(cmd, "/slap", true) == 0) // Slap a player
  1809. {
  1810. new Float:pX,Float:pY,Float:pZ;
  1811. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1812. {
  1813. tmp = strtok(cmdtext, idx);
  1814. if(!strlen(tmp))
  1815. {
  1816. SendClientMessage(playerid, ORANGE, "USAGE: /slap [playername/id]");
  1817. SendClientMessage(playerid, ORANGE, "FUNCTION: Will slap the specified player");
  1818. return 1;
  1819. }
  1820.  
  1821. // new giveplayerid = ReturnUser(tmp);
  1822. if(giveplayerid != INVALID_PLAYER_ID)
  1823. {
  1824. GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
  1825. GetPlayerName(playerid, sendername, sizeof(sendername));
  1826. GetPlayerPos(giveplayerid,pX,pY,pZ);
  1827. SetPlayerPos(giveplayerid,pX,pY,pZ+5);
  1828. format(string, sizeof(string), "Administrator/Moderator %s walnol %s ",sendername, giveplayername);
  1829. SendClientMessageToAdmins(ORANGE, string, 1);
  1830. }
  1831. else if(giveplayerid == INVALID_PLAYER_ID)
  1832. {
  1833. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1834. SendClientMessage(playerid, RED, string);
  1835. }
  1836. }
  1837. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1838. return 1;
  1839. }
  1840.  
  1841. /*if(strcmp(cmd, "/bslap", true) == 0) // Slap a player 2 times higher than /slap
  1842. {
  1843. new Float:pX,Float:pY,Float:pZ;
  1844. if (AccountInfo[playerid][AdminLevel] >= 2 || IsPlayerAdmin(playerid))
  1845. {
  1846. tmp = strtok(cmdtext, idx);
  1847. if(!strlen(tmp))
  1848. {
  1849. SendClientMessage(playerid, ORANGE, "USAGE: /bslap [playername/id]");
  1850. SendClientMessage(playerid, ORANGE, "FUNCTION: Will double slap the specified player");
  1851. return 1;
  1852. }
  1853.  
  1854. new giveplayerid = ReturnUser(tmp);
  1855. if(giveplayerid != INVALID_PLAYER_ID)
  1856. {
  1857. GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
  1858. GetPlayerName(playerid, sendername, sizeof(sendername));
  1859. GetPlayerPos(giveplayerid,pX,pY,pZ);
  1860. SetPlayerPos(giveplayerid,pX,pY,pZ+10);
  1861. format(string, sizeof(string), "-| Administrator %s bitch slapped %s |-",sendername, giveplayername);
  1862. SendClientMessageToAdmins(ADMIN_RED, string, 1);
  1863. }
  1864. else if(giveplayerid == INVALID_PLAYER_ID)
  1865. {
  1866. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1867. SendClientMessage(playerid, RED, string);
  1868. }
  1869. }
  1870. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1871. return 1;
  1872. }
  1873. */
  1874. if(strcmp(cmd, "/disarm", true) == 0) // Reset the player's weapons
  1875. {
  1876. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1877. {
  1878. tmp = strtok(cmdtext, idx);
  1879. if(!strlen(tmp))
  1880. {
  1881. SendClientMessage(playerid, ORANGE, "USAGE: /disarm [playername/id]");
  1882. SendClientMessage(playerid, ORANGE, "FUNCTION: Will disarm the player.");
  1883. return 1;
  1884. }
  1885.  
  1886. // new giveplayerid = ReturnUser(tmp);
  1887. if(giveplayerid != INVALID_PLAYER_ID)
  1888. {
  1889. GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
  1890. GetPlayerName(playerid, sendername, sizeof(sendername));
  1891. ResetPlayerWeapons(giveplayerid);
  1892. format(string, sizeof(string), "Administrator/Moderator %s zabral bronie %s ",sendername, giveplayername);
  1893. SendClientMessageToAdmins(ADMIN_RED,string,1);
  1894. }
  1895. else if(giveplayerid == INVALID_PLAYER_ID)
  1896. {
  1897. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1898. SendClientMessage(playerid, RED, string);
  1899. }
  1900. }
  1901. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1902. return 1;
  1903. }
  1904.  
  1905. if(strcmp(cmd, "/say", true) == 0) // Publicly says an admin message. Exact same as RCON's 'say' but in a red color.
  1906. {
  1907. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1908. {
  1909. GetPlayerName(playerid, sendername, sizeof(sendername));
  1910. new result[128];
  1911. result = bigstrtok(cmdtext, idx);
  1912. if(!strlen(result))
  1913. {
  1914. SendClientMessage(playerid, ORANGE, "USAGE: /say [message]");
  1915. SendClientMessage(playerid, ORANGE, "FUNCTION: Will broadcast an admin message.");
  1916. return 1;
  1917. }
  1918. format(string, sizeof(string), "* Admin/Moderator: %s", result);
  1919. SendClientMessageToAll(LIGHTRED, string);
  1920. printf("%s", string);
  1921. }
  1922. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1923. return 1;
  1924. }
  1925.  
  1926. if(strcmp(cmd, "/bc", true) == 0 || strcmp(cmd, "/broadcast", true) == 0) // Displays a screen message
  1927. {
  1928. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1929. {
  1930. GetPlayerName(playerid, sendername, sizeof(sendername));
  1931. new result[128];
  1932. result = bigstrtok(cmdtext, idx);
  1933. if(!strlen(result))
  1934. {
  1935. SendClientMessage(playerid, ORANGE, "USAGE: /bc [message] [time in seconds(if non entered, 5 seconds will be the time by default)]");
  1936. SendClientMessage(playerid, ORANGE, "FUNCTION: Will broadcast a screen message");
  1937. return 1;
  1938. }
  1939. new time;
  1940. tmp = strtok(cmdtext, idx);
  1941. if (!strlen(tmp)) time = 5;
  1942. else time = strval(tmp);
  1943. format(string, sizeof(string), "~w~%s", result);
  1944. GameTextForAll(string, time*1000, 4);
  1945. printf("%s", string);
  1946. }
  1947. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1948. return 1;
  1949. }
  1950.  
  1951. if(strcmp(cmd, "/veh", true) == 0) // Spawn a vehicle. Name supported too.
  1952. {
  1953. if (AccountInfo[playerid][AdminLevel] >= 4 || IsPlayerAdmin(playerid))
  1954. {
  1955. tmp = strtok(cmdtext, idx);
  1956. if(!strlen(tmp))
  1957. {
  1958. SendClientMessage(playerid, ORANGE, "USAGE: /veh [modelname/id] [color1] [color2]");
  1959. return 1;
  1960. }
  1961. new car = GetVehicleModelIDFromName(tmp);
  1962. if (car == -1)
  1963. {
  1964. car = strval(tmp);
  1965. if(car < 400 || car > 611) return SendClientMessage(playerid, RED, "Vehicle ID can't be below 400 nor above 611 !");
  1966. }
  1967.  
  1968. tmp = strtok(cmdtext, idx);
  1969. if(!strlen(tmp))
  1970. {
  1971. SendClientMessage(playerid, ORANGE, "USAGE: /veh [modelname/id] [color1] [color2]");
  1972. return 1;
  1973. }
  1974. new color1 = strval(tmp);
  1975.  
  1976. tmp = strtok(cmdtext, idx);
  1977. if(!strlen(tmp))
  1978. {
  1979. SendClientMessage(playerid, ORANGE, "USAGE: /veh [modelname/id] [color1] [color2]");
  1980. return 1;
  1981. }
  1982. new color2 = strval(tmp);
  1983.  
  1984. new Float:X,Float:Y,Float:Z,Float:A;
  1985. GetPlayerPos(playerid, X,Y,Z);
  1986. GetPlayerFacingAngle(playerid, A);
  1987. X += (5 * floatsin(-A, degrees));
  1988. Y += (5 * floatcos(-A, degrees));
  1989. new carid = CreateVehicle(car, X,Y,Z, 0.0, color1, color2, 600000000);
  1990. SpawnedVehicle[carid] = true;
  1991. format(string, sizeof(string), "Vehicle %s(%d) spawned. To delete, enter it and type /delveh. To delete all /veh spawned vehicles, type /delvehs", VehNames[GetVehicleModel(carid)-400], carid);
  1992. SendClientMessage(playerid, GREEN, string);
  1993. GetPlayerName(playerid,sendername,sizeof(sendername));
  1994. format(string, sizeof(string), "-| Administrator %s spawned a vehicle(%d) [ Model: %s ] |-", sendername, carid, VehNames[GetVehicleModel(carid)-400]);
  1995. SendClientMessageToAdmins(ADMIN_RED, string, 1);
  1996. }
  1997. else SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  1998. return 1;
  1999. }
  2000.  
  2001. if(strcmp(cmd, "/pweapons", true) == 0) // Checks a player's weapons
  2002. {
  2003. if(IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 4)
  2004. {
  2005. tmp = strtok(cmdtext, idx);
  2006. if(!strlen(tmp))
  2007. {
  2008. SendClientMessage(playerid, ORANGE, "USAGE: /pweapons [playerid/name]");
  2009. return 1;
  2010. }
  2011. // new giveplayerid = ReturnUser(tmp);
  2012. if (giveplayerid != INVALID_PLAYER_ID)
  2013. {
  2014. new bullets[12];
  2015. new weapons[12];
  2016. new weapname[12][20];
  2017. for(new i = 0; i < 12; i++)
  2018. {
  2019. GetPlayerWeaponData(giveplayerid, i+1, weapons[i], bullets[i]);
  2020. GetWeaponName(weapons[i], weapname[i], 20);
  2021. }
  2022. GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
  2023. format(string,sizeof(string)," |- %s's Weapons -|",giveplayername);
  2024. SendClientMessage(playerid,LIGHTGREEN,string);
  2025. format(string, sizeof(string),"%s(0) - %s(%d) - %s(%d) - %s(%d) - %s(%d) - %s(%d)",weapname[0],weapname[1],bullets[1],weapname[2],bullets[2],weapname[3],bullets[3],weapname[4],bullets[4],weapname[5],bullets[5]);
  2026. SendClientMessage(playerid,YELLOW,string);
  2027. format(string,sizeof(string),"%s(%d) - %s(%d) - %s(%d) - %s(0) - %s(0) - %s(0)",weapname[6],bullets[6],weapname[7],bullets[7],weapname[8],bullets[8],weapname[9],weapname[10],weapname[11]);
  2028. SendClientMessage(playerid,YELLOW,string);
  2029. }
  2030. else SendClientMessage(playerid, RED, "Player is not active.");
  2031. }
  2032. else SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  2033. return 1;
  2034. }
  2035.  
  2036. if(strcmp(cmd, "/sethp", true) == 0) // Sets a player's health
  2037. {
  2038. if(IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 3)
  2039. {
  2040. tmp = strtok(cmdtext, idx);
  2041. if(!strlen(tmp))
  2042. {
  2043. SendClientMessage(playerid, ORANGE, "USAGE: /sethp [playerid/name] [health]");
  2044. return 1;
  2045. }
  2046. new targetid = ReturnUser(tmp);
  2047. tmp = strtok(cmdtext, idx);
  2048. new Float:hp = floatstr(tmp);
  2049. if (targetid != INVALID_PLAYER_ID)
  2050. {
  2051. if (!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /sethp [playerid/name] [health]");
  2052. SetPlayerHealth(targetid,hp);
  2053. if (hp < 1) Drugs[targetid] = 0;
  2054. GetPlayerName(playerid, sendername, sizeof(sendername));
  2055. GetPlayerName(targetid, giveplayername, sizeof(giveplayername));
  2056. format(string,sizeof(string),"|- Administrator %s has changed %s's HP. [HP: %.2f] -|",sendername,giveplayername,hp);
  2057. SendClientMessageToAdmins(ADMIN_RED, string, 1);
  2058. }
  2059. else SendClientMessage(playerid, RED, "Player is not active.");
  2060. }
  2061. else SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  2062. return 1;
  2063. }
  2064.  
  2065. if (strcmp(cmd, "/logout", true) == 0) // Logs off the admin
  2066. {
  2067. if(AccountInfo[playerid][Logged] == 1)
  2068. {
  2069. if(AccountInfo[playerid][AdminLevel] >= 1)
  2070. {
  2071. OnPlayerUpdateAccount(playerid);
  2072. AccountInfo[playerid][Logged] = 0;
  2073. AccountInfo[playerid][AdminLevel] = 0;
  2074. SendClientMessage(playerid, GREEN, "You have successfuly logged out.");
  2075. }
  2076. else SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  2077. }
  2078. else return SendClientMessage(playerid, RED, "You're not logged in! ( /login [password] )");
  2079. return 1;
  2080. }
  2081.  
  2082. if(strcmp(cmd, "/warn", true) == 0) // Warns a player. 3 warnings = auto-ban
  2083. {
  2084. if (AccountInfo[playerid][AdminLevel] >= 4)
  2085. {
  2086. tmp = strtok(cmdtext, idx);
  2087. if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /warn [playername/id] [reason]");
  2088. new targetid = ReturnUser(tmp);
  2089. if(IsPlayerConnected(targetid))
  2090. {
  2091. if(targetid != INVALID_PLAYER_ID)
  2092. {
  2093. new reason[128];
  2094. reason = bigstrtok(cmdtext, idx);
  2095. if(!strlen(reason)) return SendClientMessage(playerid, ORANGE, "USAGE: /warn [playername/id] [reason]");
  2096. new sstring[128];
  2097. GetPlayerName(targetid, giveplayername, sizeof(giveplayername));
  2098. GetPlayerName(playerid, sendername, sizeof(sendername));
  2099. AccountInfo[targetid][Warns] += 1;
  2100. format(string, sizeof(string), "You got warned by Admin %s. Reason: %s", sendername, reason);
  2101. SendClientMessage(targetid, ADMIN_RED, string);
  2102. format(string, sizeof(string), "Administrator %s ostrzegl %s. [Za: %s ] ", sendername,giveplayername, reason);
  2103. SendClientMessageToAdmins(ADMIN_RED,string,1);
  2104. format(string, sizeof(string), "-| %s's warnings: %d |-",giveplayername, AccountInfo[targetid][Warns]);
  2105. SendClientMessageToAdmins(ADMIN_RED,string,1);
  2106. if (AccountInfo[targetid][Warns] == 1) strmid(AccountInfo[targetid][WarnReason1], reason, 0, strlen(reason), 128);
  2107. else if (AccountInfo[targetid][Warns] == 2) strmid(AccountInfo[targetid][WarnReason2], reason, 0, strlen(reason), 128);
  2108. else if (AccountInfo[targetid][Warns] == 3) strmid(AccountInfo[targetid][WarnReason3], reason, 0, strlen(reason), 128);
  2109. SendClientMessage(targetid, RED, "3 Warnings = Auto-Ban!");
  2110. if(AccountInfo[targetid][Warns] >= 3)
  2111. {
  2112. new ip[128];
  2113. format(string, sizeof(string), "Administrator %s zbanowal %s. [Powod: 3 Ostrzezenia] ", sendername,giveplayername);
  2114. BanLog(string);
  2115. SendClientMessageToAll(ADMIN_RED, string);
  2116. for(new i = 0; i < 3; i++)
  2117. {
  2118. if (i == 0) format(string, sizeof (string), "-| Reason #%d: %s |-", i+1, AccountInfo[targetid][WarnReason1]);
  2119. else if (i == 1) format(string, sizeof (string), "-| Reason #%d: %s |-", i+1, AccountInfo[targetid][WarnReason2]);
  2120. else if (i == 2) format(string, sizeof (string), "-| Reason #%d: %s |-", i+1, AccountInfo[targetid][WarnReason3]);
  2121. SendClientMessageToAll(ADMIN_RED, string);
  2122. }
  2123. GetPlayerIp(targetid,ip,128);
  2124. format(sstring, sizeof(sstring), "-| Banned Player's IP: %s |-", ip);
  2125. SendClientMessageToAdmins(ADMIN_RED, sstring,1);
  2126. AccountInfo[targetid][AdminLevel]= 0;
  2127. AccountInfo[targetid][Warns] = 0;
  2128. format(AccountInfo[targetid][WarnReason1], 128, "NONE");
  2129. format(AccountInfo[targetid][WarnReason2], 128, "NONE");
  2130. format(AccountInfo[targetid][WarnReason3], 128, "NONE");
  2131. Ban(giveplayerid);
  2132. return 1;
  2133. }
  2134. }
  2135. else
  2136. {
  2137. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  2138. SendClientMessage(playerid, RED, string);
  2139. }
  2140. }
  2141. else
  2142. {
  2143. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  2144. SendClientMessage(playerid, RED, string);
  2145. }
  2146. }
  2147. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  2148. return 1;
  2149. }
  2150.  
  2151. if(strcmp(cmd, "/pstats", true) == 0) // Views the player's stats
  2152. {
  2153. if(IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 4)
  2154. {
  2155. tmp = strtok(cmdtext, idx);
  2156. if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /pstats [playername/id]");
  2157. new targetid = ReturnUser(tmp);
  2158. if (targetid != INVALID_PLAYER_ID)
  2159. {
  2160. new Float:health,Float:armor;
  2161. GetPlayerHealth(targetid,health);
  2162. GetPlayerArmour(targetid,armor);
  2163. GetPlayerName(targetid, giveplayername, sizeof(giveplayername));
  2164. format(string, sizeof(string), "Stats of %s: Health: '%.2f' - Cash: '$%d' - Warnings: '%d' - Armor: '%.2f'",giveplayername, health,GetPlayerMoney(targetid),AccountInfo[targetid][Warns],armor);
  2165. SendClientMessage(playerid,PURPLE,string);
  2166. if(AccountInfo[giveplayerid][Logged] == 1) SendClientMessage(playerid, PURPLE, "Logged In: Yes");
  2167. else if(AccountInfo[giveplayerid][Logged] == 0) SendClientMessage(playerid, PURPLE, "Logged In: No");
  2168. SendClientMessage(playerid,YELLOW,"Type /pweapons [playername/id] to check the player's weapons");
  2169. }
  2170. else SendClientMessage(playerid, RED, "Player is not active.");
  2171. }
  2172. else SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  2173. return 1;
  2174. }
  2175.  
  2176. if(strcmp(cmd, "/fuck", true) == 0) // Sends a player in the air and explodes
  2177. {
  2178. new Float:pX,Float:pY,Float:pZ;
  2179. new Float:X,Float:Y,Float:Z;
  2180. if (AccountInfo[playerid][AdminLevel] >= 4 || IsPlayerAdmin(playerid))
  2181. {
  2182. tmp = strtok(cmdtext, idx);
  2183. if(!strlen(tmp))
  2184. {
  2185. SendClientMessage(playerid, ORANGE, "USAGE: /fuck [playerid]");
  2186. SendClientMessage(playerid, ORANGE, "FUNCTION: Will fuck up a player.");
  2187. return 1;
  2188. }
  2189.  
  2190. new targetid = ReturnUser(tmp);
  2191. if(targetid != INVALID_PLAYER_ID)
  2192. {
  2193. GetPlayerName(targetid, giveplayername, sizeof(giveplayername));
  2194. GetPlayerName(playerid, sendername, sizeof(sendername));
  2195. GetPlayerPos(targetid,pX,pY,pZ);
  2196. CreateExplosion(X,Y,Z+50,2,5.0);
  2197. SetPlayerPos(targetid,pX,pY,pZ+50);
  2198. format(string, sizeof(string), "Administrator %s fucked %s up ",sendername, giveplayername);
  2199. SendClientMessageToAdmins(ADMIN_RED,string,1);
  2200. SendClientMessage(targetid, RED, "You've been fucked up by an admin.");
  2201. }
  2202. else if(giveplayerid == INVALID_PLAYER_ID)
  2203. {
  2204. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  2205. SendClientMessage(playerid, RED, string);
  2206. }
  2207. }
  2208. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  2209. return 1;
  2210. }
  2211.  
  2212. if(strcmp(cmd, "/giveweapon", true) == 0) // Gives a weapon to a player
  2213. {
  2214. if (AccountInfo[playerid][AdminLevel] >= 4 || IsPlayerAdmin(playerid))
  2215. {
  2216. tmp = strtok(cmdtext, idx);
  2217. if(!strlen(tmp))
  2218. {
  2219. SendClientMessage(playerid, ORANGE, "USAGE: /giveweapon [playername/id] [weaponid] [ammo]");
  2220. return 1;
  2221. }
  2222. new gun;
  2223. new ammo;
  2224. new targetid = ReturnUser(tmp);
  2225. tmp = strtok(cmdtext, idx);
  2226. gun = strval(tmp);
  2227. if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /giveweapon [playername/id] [weaponid] [ammo]");
  2228. tmp = strtok(cmdtext, idx);
  2229. ammo = strval(tmp);
  2230. if(targetid != INVALID_PLAYER_ID)
  2231. {
  2232. new weap[50];
  2233. GetPlayerName(playerid, sendername, sizeof(sendername));
  2234. GetPlayerName(targetid, giveplayername, sizeof(giveplayername));
  2235. GivePlayerWeapon(targetid, gun, ammo);
  2236. GetWeaponName(gun, weap, sizeof weap);
  2237. format(string, sizeof(string), "Administrator %s dal (%s) dla %s |-",sendername, weap, giveplayername);
  2238. SendClientMessageToAdmins(ORANGE,string,1);
  2239. }
  2240. else if(targetid == INVALID_PLAYER_ID)
  2241. {
  2242. format(string, sizeof(string), "%d is not an active player.", targetid);
  2243. SendClientMessage(playerid, RED, string);
  2244. }
  2245. }
  2246. else SendClientMessage(playerid, RED, "You are not an admin with the required level!");
  2247. return 1;
  2248. }
  2249. if(strcmp(cmd, "/crash", true) == 0) // Crashes a player's client
  2250. {
  2251. if (AccountInfo[playerid][AdminLevel] >= 5 || IsPlayerAdmin(playerid))
  2252. {
  2253. tmp = strtok(cmdtext, idx);
  2254. if(!strlen(tmp))
  2255. {
  2256. SendClientMessage(playerid, ORANGE, "USAGE: /crash [playername/id]");
  2257. SendClientMessage(playerid, ORANGE, "FUNCTION: Will crash a player.");
  2258. return 1;
  2259. }
  2260. new Float:X,Float:Y,Float:Z;
  2261. new targetid = ReturnUser(tmp);
  2262. if(IsPlayerConnected(targetid))
  2263. {
  2264. GetPlayerPos(giveplayerid,X,Y,Z);
  2265. new objectcrash = CreatePlayerObject(targetid,666666,X,Y,Z,0,0,0); // double-devil has spoken
  2266. SendClientMessage(playerid,GREEN, "Player successfuly crashed.");
  2267. DestroyPlayerObject(targetid, objectcrash);
  2268. }
  2269. else if (!IsPlayerConnected(giveplayerid))
  2270. {
  2271. format(string, sizeof(string), "%d is not an active player.", targetid);
  2272. SendClientMessage(playerid, RED, string);
  2273. }
  2274. }
  2275. else SendClientMessage(playerid, RED, "You're not a lead admin.");
  2276. return 1;
  2277. }
  2278.  
  2279. if(strcmp(cmd, "/setwarn", true) == 0) // Sets the player's warnings
  2280. {
  2281. if (AccountInfo[playerid][AdminLevel] >= 5 || IsPlayerAdmin(playerid))
  2282. {
  2283. tmp = strtok(cmdtext, idx);
  2284. if(!strlen(tmp))
  2285. {
  2286. SendClientMessage(playerid, ORANGE, "USAGE: /setwarn [playername/id] [warning]");
  2287. SendClientMessage(playerid, ORANGE, "FUNCTION: Will set a certain player's warning.");
  2288. return 1;
  2289. }
  2290. new targetid = ReturnUser(tmp);
  2291. if(targetid != INVALID_PLAYER_ID)
  2292. {
  2293. GetPlayerName(targetid, giveplayername, sizeof(giveplayername));
  2294. GetPlayerName(playerid, sendername, sizeof(sendername));
  2295. tmp = strtok(cmdtext, idx);
  2296. new warnings = strval(tmp);
  2297. if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /setwarn [playername/id] [warning]");
  2298. AccountInfo[targetid][Warns] = warnings;
  2299. format(string, sizeof(string), "Admin %s changed your warnings to %d", sendername, warnings);
  2300. SendClientMessage(targetid, GREEN, string);
  2301. SendClientMessage(targetid, RED, "3 Warnings = Auto-Ban! Ask an admin to check how many warnings you have");
  2302. format(string, sizeof(string), "Administrator %s zmienil warningi dla %s [Warningi: %d ] ",sendername,giveplayername, AccountInfo[giveplayerid][Warns]);
  2303. SendClientMessageToAdmins(ADMIN_RED,string,1);
  2304. }
  2305. else if(giveplayerid == INVALID_PLAYER_ID)
  2306. {
  2307. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  2308. SendClientMessage(playerid, RED, string);
  2309. }
  2310. }
  2311. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  2312. return 1;
  2313. }
  2314.  
  2315. if(strcmp(cmd, "/an", true) == 0 || strcmp(cmd, "/announce", true) == 0) // Broadcasts an 'announcement' message.
  2316. {
  2317. if (AccountInfo[playerid][AdminLevel] >= 4 || IsPlayerAdmin(playerid))
  2318. {
  2319. GetPlayerName(playerid, sendername, sizeof(sendername));
  2320. new result[128];
  2321. result = bigstrtok(cmdtext, idx);
  2322. if(!strlen(result))
  2323. {
  2324. SendClientMessage(playerid, ORANGE, "USAGE: /(an)nounce [message]");
  2325. SendClientMessage(playerid, ORANGE, "FUNCTION: Will broadcast an announcement.");
  2326. return 1;
  2327. }
  2328. format(string, sizeof(string), "%s", result);
  2329. SendClientMessageToAll(AQUAGREEN, string);
  2330. printf("Announcement by %s: %s", sendername, string);
  2331. }
  2332. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  2333. return 1;
  2334. }
  2335.  
  2336. /* if(strcmp(cmd, "/superpunch", true) == 0) // Triggers an explosion when you use the punch key
  2337. {
  2338. if (AccountInfo[playerid][AdminLevel] >= 4 || IsPlayerAdmin(playerid))
  2339. {
  2340. tmp = strtok(cmdtext,idx);
  2341. if(!strlen(tmp))
  2342. {
  2343. SendClientMessage(playerid, ORANGE, "USAGE: /superpunch [on/off]");
  2344. SendClientMessage(playerid, ORANGE, "FUNCTION: Will give you the power of Super Punch. When pressing 'PUNCH' button, you will explode but will live.");
  2345. }
  2346. else if(strcmp(tmp,"on",true) == 0)
  2347. {
  2348. SuperPunch[playerid] = 1;
  2349. SendClientMessage(playerid,GREEN,"You are now blessed with SUPER PUNCH! Go knock someone out.");
  2350. }
  2351. else if(strcmp(tmp,"off",true) == 0)
  2352. {
  2353. SuperPunch[playerid] = 0;
  2354. SendClientMessage(playerid,GREEN,"Your super punch is now disabled.");
  2355. }
  2356. }
  2357. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  2358. return 1;
  2359. }
  2360.  
  2361. if (strcmp(cmd, "/superpunchp", true) == 0) // Gives the Super Punch ability to a player
  2362. {
  2363. new tmp2[128];
  2364. if (AccountInfo[playerid][AdminLevel] > 4 || IsPlayerAdmin(playerid))
  2365. {
  2366. tmp = strtok(cmdtext,idx);
  2367. if(!strlen(tmp))
  2368. {
  2369. SendClientMessage(playerid,ORANGE,"USAGE: /superpunchp [playername/id] [on/off]");
  2370. SendClientMessage(playerid,ORANGE,"FUNCTION: Will give the player the power of SuperPunch.");
  2371. }
  2372. new targetid = ReturnUser(tmp);
  2373. if(targetid != INVALID_PLAYER_ID)
  2374. {
  2375. tmp2 = strtok(cmdtext,idx);
  2376. if(strcmp(tmp2,"on",true) == 0)
  2377. {
  2378. GetPlayerName(playerid, sendername, sizeof(sendername));
  2379. GetPlayerName(targetid, giveplayername, sizeof(giveplayername));
  2380. SuperPunch[targetid] = 1;
  2381. format(string, sizeof(string), "Admin %s blessed you with the power of Super Punch !", sendername);
  2382. SendClientMessage(targetid,GREEN,string);
  2383. format(string, sizeof(string), "-| Administrator %s blessed %s with the power of Super Punch |-", sendername,giveplayername);
  2384. SendClientMessageToAdmins(ADMIN_RED,string,1);
  2385. }
  2386. else if(strcmp(tmp2,"off",true) == 0)
  2387. {
  2388. format(string, sizeof(string), "Admin %s removed your Super Punch power.", sendername);
  2389. SendClientMessage(targetid,RED,string);
  2390. SuperPunch[targetid] = 0;
  2391. }
  2392. }
  2393. else if(giveplayerid == INVALID_PLAYER_ID)
  2394. {
  2395. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  2396. SendClientMessage(playerid,RED,string);
  2397. }
  2398. }
  2399. else SendClientMessage(playerid,RED,"You are not an admin with the required level.");
  2400. return 1;
  2401. }
  2402. *//*
  2403. if(strcmp(cmd, "/viewcmds", true) == 0) // Views unknown commands and commands mentioned in 'ViewCommands' variable entered by players
  2404. {
  2405. if (AccountInfo[playerid][AdminLevel] >= 1 || IsPlayerAdmin(playerid))
  2406. {
  2407. tmp = strtok(cmdtext,idx);
  2408. if(!strlen(tmp))
  2409. {
  2410. SendClientMessage(playerid, ORANGE, "USAGE: /viewcmds [on/off]");
  2411. SendClientMessage(playerid, ORANGE, "FUNCTION: Will see the players typing some commands and wrong commands.");
  2412. }
  2413. else if(strcmp(tmp,"on",true) == 0)
  2414. {
  2415. ViewCmds[playerid] = 1;
  2416. SendClientMessage(playerid,GREEN,"You can know view players typing some commands and wrong commands.");
  2417. }
  2418. else if(strcmp(tmp,"off",true) == 0)
  2419. {
  2420. ViewCmds[playerid] = 0;
  2421. SendClientMessage(playerid,GREEN,"You can no longer view players typing some commands and wrong commands.");
  2422. }
  2423. }
  2424. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  2425. return 1;
  2426. }
  2427. */
  2428. if(strcmp(cmd, "/jail", true) == 0) // Jails a player
  2429. {
  2430. if (AccountInfo[playerid][AdminLevel] >= 3)
  2431. {
  2432. tmp = strtok(cmdtext, idx);
  2433. if(!strlen(tmp))
  2434. {
  2435. SendClientMessage(playerid, ORANGE, "USAGE: /jail [playername/id] [reason]");
  2436. return 1;
  2437. }
  2438. new targetid = ReturnUser(tmp);
  2439. if(IsPlayerConnected(targetid))
  2440. {
  2441. if(targetid != INVALID_PLAYER_ID)
  2442. {
  2443. if(AccountInfo[giveplayerid][Jail] == 0)
  2444. {
  2445. GetPlayerName(targetid, giveplayername, sizeof(giveplayername));
  2446. GetPlayerName(playerid, sendername, sizeof(sendername));
  2447. new reason[128];
  2448. reason = bigstrtok(cmdtext, idx);
  2449. if(!strlen(reason)) return SendClientMessage(playerid, ORANGE, "USAGE: /jail [playername/id] [reason]");
  2450. format(string, sizeof(string), "You got jailed by Admin %s. Reason: %s", sendername, reason);
  2451. SendClientMessage(targetid, ADMIN_RED, string);
  2452. format(string, sizeof(string), " Administrator/Moderator %s uwienzil %s. [ Za: %s ] ",sendername,giveplayername, reason);
  2453. SendClientMessageToAll(ORANGE,string);
  2454. AccountInfo[targetid][Jail] = 1;
  2455. OnPlayerJailed(targetid);
  2456. return 1;
  2457. }
  2458. else SendClientMessage(playerid, RED, "Player is already jailed!");
  2459. }
  2460. else
  2461. {
  2462. format(string, sizeof(string), "%d is not an active player.", targetid);
  2463. SendClientMessage(playerid, RED, string);
  2464. }
  2465. }
  2466. else
  2467. {
  2468. format(string, sizeof(string), "%d is not an active player.", targetid);
  2469. SendClientMessage(playerid, RED, string);
  2470. }
  2471. }
  2472. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  2473. return 1;
  2474. }
  2475.  
  2476. if(strcmp(cmd, "/unjail", true) == 0) // Unjails a player
  2477. {
  2478. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  2479. {
  2480. tmp = strtok(cmdtext, idx);
  2481. if(!strlen(tmp))
  2482. {
  2483. SendClientMessage(playerid, ORANGE, "USAGE: /unjail [playername/id]");
  2484. return 1;
  2485. }
  2486.  
  2487. new targetid = ReturnUser(tmp);
  2488. if(targetid != INVALID_PLAYER_ID)
  2489. {
  2490. if(AccountInfo[giveplayerid][Jail] == 1)
  2491. {
  2492. GetPlayerName(targetid, giveplayername, sizeof(giveplayername));
  2493. GetPlayerName(playerid, sendername, sizeof(sendername));
  2494. format(string, sizeof(string), "Administrator %s wypuscil %s ",sendername, giveplayername);
  2495. SendClientMessageToAll(ORANGE,string);
  2496. AccountInfo[targetid][Jail] = 0;
  2497. OnPlayerUnjailed(targetid);
  2498. }
  2499. else SendClientMessage(playerid, RED, "Player is not jailed!");
  2500. }
  2501. else
  2502. {
  2503. format(string, sizeof(string), "%d is not an active player.", targetid);
  2504. SendClientMessage(playerid, RED, string);
  2505. }
  2506. }
  2507. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  2508. return 1;
  2509. }
  2510. /*
  2511. if(strcmp(cmd, "/gotoveh", true) == 0) // Teleports to a vehicle's position
  2512. {
  2513. tmp = strtok(cmdtext, idx);
  2514. if(!strlen(tmp))
  2515. {
  2516. SendClientMessage(playerid, ORANGE, "USAGE: /gotoveh [vehicleid]");
  2517. return 1;
  2518. }
  2519. new car = strval(tmp);
  2520. if (AccountInfo[playerid][AdminLevel] >= 3)
  2521. {
  2522. new Float:vx,Float:vy,Float:vz;
  2523. GetVehiclePos(car,vx,vy,vz);
  2524. if (GetPlayerState(playerid) == 2)
  2525. SetVehiclePos(GetPlayerVehicleID(playerid),vx,vy+2,vz);
  2526. else
  2527. SetPlayerPos(playerid,vx,vy,vz+1);
  2528. SetPlayerInterior(playerid,0);
  2529. format(string,256,"You have teleported to vehicle id %d(%s)",car, VehNames[GetVehicleModel(car)-400]);
  2530. SendClientMessage(playerid,GREEN,string);
  2531. }
  2532. else SendClientMessage(playerid,RED,"You're not an admin with the required level");
  2533. return 1;
  2534. }*/
  2535. if(!strcmp(cmdtext, "/aclearchat", true)) // Clears the chatbox for everyone
  2536. {
  2537. if(AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  2538. {
  2539. for(new chat = 0; chat <= 50; chat++) SendClientMessageToAll(GREEN, " ");
  2540. GetPlayerName(playerid, sendername, 20);
  2541. format(string, 256, "Administrator/Moderator %s wyczysciyl czat", sendername);
  2542. SendClientMessageToAll(ORANGE, string);
  2543. return 1;
  2544. }
  2545. else SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  2546. return 1;
  2547. }
  2548. if(strcmp(cmd, "/hide", true) == 0) // Hides you from the admin list
  2549. {
  2550. if (AccountInfo[playerid][AdminLevel] >= 4)
  2551. {
  2552. Hide[playerid] = 1;
  2553. SendClientMessage(playerid,GREEN," You're now hidden from the admin list ");
  2554. }
  2555. return 1;
  2556. }
  2557. if(strcmp(cmd, "/unhide", true) == 0)
  2558. {
  2559. if (AccountInfo[playerid][AdminLevel] >= 4) // Unhides you from the admin list
  2560. {
  2561. if (Hide[playerid] != 1) return SendClientMessage(playerid,RED,"You're not hidden in the admin list!");
  2562. Hide[playerid] = 0;
  2563. SendClientMessage(playerid,GREEN," You're now visible in the admin list ");
  2564. }
  2565. return 1;
  2566. }
  2567. /*
  2568. if(strcmp(cmd, "/virtual", true) == 0) // Sets the player's virtual world
  2569. {
  2570. if(IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 2)
  2571. {
  2572. tmp = strtok(cmdtext, idx);
  2573. if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /virtual [playerid/name] [virtual world (0-255)]");
  2574. new targetid = ReturnUser(tmp);
  2575. tmp = strtok(cmdtext, idx);
  2576. new v = strval(tmp);
  2577. if (targetid != INVALID_PLAYER_ID)
  2578. {
  2579. if (!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /virtual [playerid/name] [virtual world (0-255)]");
  2580. SetPlayerVirtualWorld(targetid,v);
  2581. GetPlayerName(playerid, sendername, sizeof(sendername));
  2582. GetPlayerName(targetid, giveplayername, sizeof(giveplayername));
  2583. format(string,sizeof(string),"|- Administrator %s has changed %s's Virtual World. [World: %d] -|",sendername,giveplayername,v);
  2584. SendClientMessageToAdmins(ADMIN_RED,string,1);
  2585. }
  2586. else SendClientMessage(playerid, RED, "Player is not active.");
  2587. }
  2588. else SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  2589. return 1;
  2590. }
  2591. */
  2592. if(strcmp(cmd,"/odliczanie", true) == 0) // Starts a count down
  2593. {
  2594. tmp = strtok(cmdtext, idx);
  2595. new count = strval(tmp);
  2596. if (!strlen(tmp)) count = 5;
  2597. if (AccountInfo[playerid][AdminLevel] < 3) return SendClientMessage(playerid,RED,"You're not an admin");
  2598. if (Count > 0) return SendClientMessage(playerid, RED, "Countdown is already in progress.");
  2599. GetPlayerName(playerid, sendername, sizeof(sendername));
  2600. format(string,sizeof(string)," Administrator/Moderator %s odpalil odliczanie od %d", sendername, count);
  2601. SendClientMessageToAll(GREEN, string);
  2602. Count = count;
  2603. CountDown();
  2604. return 1;
  2605. }
  2606.  
  2607. if(strcmp(cmd, "/view", true) == 0) // Spectates a player
  2608. {
  2609. if (AccountInfo[playerid][AdminLevel] < 5) return SendClientMessage(playerid,RED,"You're not an admin !");
  2610. tmp = strtok(cmdtext, idx);
  2611. if(!strlen(tmp))
  2612. {
  2613. SendClientMessage(playerid, ORANGE, "|__________________________________|");
  2614. SendClientMessage(playerid, ORANGE, "USAGE: /view [playerid]");
  2615. SendClientMessage(playerid, ORANGE, "FUNCTION: Will spectate a player.");
  2616. SendClientMessage(playerid, ORANGE, "HELP: /view off to stop spectating");
  2617. SendClientMessage(playerid, ORANGE, "|__________________________________|");
  2618. return 1;
  2619. }
  2620. new targetid = ReturnUser(tmp);
  2621. if (giveplayerid != INVALID_PLAYER_ID)
  2622. {
  2623. if (AccountInfo[playerid][AdminLevel] < 1) return SendClientMessage(playerid,RED,"You're not an admin !");
  2624. TogglePlayerSpectating(playerid, 1);
  2625. SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(targetid));
  2626. SetPlayerInterior(playerid,GetPlayerInterior(targetid));
  2627. if (IsPlayerInAnyVehicle(targetid)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(targetid));
  2628. else PlayerSpectatePlayer(playerid, targetid);
  2629. SendClientMessage(playerid, ORANGE, "HELP: '/view off' to stop spectating");
  2630. }
  2631. else if(strcmp(tmp, "off", true) == 0)
  2632. {
  2633. TogglePlayerSpectating(playerid, 0);
  2634. SetPlayerVirtualWorld(playerid,0);
  2635. }
  2636. else
  2637. {
  2638. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  2639. SendClientMessage(playerid, RED, string);
  2640. }
  2641. return 1;
  2642. }
  2643.  
  2644. if(strcmp(cmd, "/apm", true) == 0) // Blocks PMs
  2645. {
  2646. if (AccountInfo[playerid][AdminLevel] >= 5)
  2647. {
  2648. if (PMBlock[playerid] == true)
  2649. {
  2650. PMBlock[playerid] = false;
  2651. SendClientMessage(playerid, GREEN, " Private messages BLOCKED ");
  2652. return 1;
  2653. }
  2654. if (PMBlock[playerid] == false)
  2655. {
  2656. PMBlock[playerid] = true;
  2657. SendClientMessage(playerid, GREEN, " Private messages UNBLOCKED ");
  2658. return 1;
  2659. }
  2660. }
  2661. else return SendClientMessage(playerid, RED, "You're not a lead admin!");
  2662. }
  2663. /*
  2664. if(!strcmp(cmd, "/seifocalypse", true)) // Launches explosion(s) in front of the player(it follow the previous explosion so it goes straight) as many times has he wants
  2665. {
  2666. if (AccountInfo[playerid][AdminLevel] >= 5 || IsPlayerAdmin(playerid))
  2667. {
  2668. tmp = strtok(cmdtext, idx);
  2669. if (!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /seifocalypse [explosions]");
  2670. new Float:X,Float:Y,Float:Z,Float:A;
  2671. GetPlayerPos(playerid, X,Y,Z);
  2672. GetPlayerFacingAngle(playerid, A);
  2673. Nuke[playerid] = 1;
  2674. SetTimerEx("NukeBlast", 200, 0, "ddffff",playerid, strval(tmp), X, Y, Z, A);
  2675. }
  2676. else return SendClientMessage(playerid, RED, "You're not a lead admin!");
  2677. return 1;
  2678. }
  2679.  
  2680. if(!strcmp(cmd, "/missile", true)) // Spawns a missile 50 Z higher than player's and drops it to the ground, toggling a huge explosion
  2681. {
  2682. if (AccountInfo[playerid][AdminLevel] >= 5 || IsPlayerAdmin(playerid))
  2683. {
  2684. if (IsValidObject(Missile[playerid])) return SendClientMessage(playerid, RED, "You already dropped a missile that's currently in progress of exploding");
  2685. new Float:X,Float:Y,Float:Z;
  2686. GetPlayerPos(playerid, X,Y,Z);
  2687. Missile[playerid] = CreateObject(3786, X, Y, Z+50, 357.6293, 272.3375, 6.8755);
  2688. MoveObject(Missile[playerid], X, Y, Z, 20.0);
  2689. }
  2690. else return SendClientMessage(playerid, RED, "You're not a lead admin!");
  2691. return 1;
  2692. }
  2693.  
  2694. if (!strcmp(cmd, "/push", true)) // Pushes a player back. Player gets pushed back in motions
  2695. {
  2696. if(IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 3)
  2697. {
  2698. tmp = strtok(cmdtext, idx);
  2699. if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /push [playername/id]");
  2700. new targetid = ReturnUser(tmp);
  2701. if (targetid != INVALID_PLAYER_ID)
  2702. {
  2703. new Float:X, Float:Y, Float:Z;
  2704. GetPlayerVelocity(targetid, X, Y, Z);
  2705. SetPlayerVelocity(targetid, X, Y-20, Z);
  2706. GetPlayerName(playerid, sendername, sizeof(sendername));
  2707. GetPlayerName(targetid, giveplayername, sizeof(giveplayername));
  2708. format(string,sizeof(string),"|- Administrator %s has pushed %s -|", sendername, giveplayername);
  2709. SendClientMessageToAdmins(ADMIN_RED, string, 1);
  2710. }
  2711. else SendClientMessage(playerid, RED, "Player is not active.");
  2712. }
  2713. else SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  2714. return 1;
  2715. }
  2716.  
  2717. if (!strcmp(cmd, "/setgravity", true)) // Changes gravity
  2718. {
  2719. if(IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 4)
  2720. {
  2721. tmp = strtok(cmdtext, idx);
  2722. if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /pussetgravity [gravity float]");
  2723. new Float:gravity = floatstr(tmp);
  2724. SetGravity(gravity);
  2725. GetPlayerName(playerid, sendername, sizeof(sendername));
  2726. format(string,sizeof(string),"|- Administrator %s has changed gravity [ Gravity: %.4f ] -|", sendername, gravity);
  2727. SendClientMessageToAll(ADMIN_RED, string);
  2728. }
  2729. else SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  2730. return 1;
  2731. }
  2732. */
  2733. if (!strcmp(cmd, "/settime", true)) // Changes time
  2734. {
  2735. if(IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 4)
  2736. {
  2737. tmp = strtok(cmdtext, idx);
  2738. if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /settime [time(0-23)]");
  2739. new time = strval(tmp);
  2740. if (time < 0 || time > 23) return SendClientMessage(playerid, RED, "Time can only be from 0 to 23!");
  2741. SetWorldTime(time);
  2742. GetPlayerName(playerid, sendername, sizeof(sendername));
  2743. format(string,sizeof(string)," Administrator %s zmienil czas na %d ", sendername, time);
  2744. SendClientMessageToAll(ADMIN_RED, string);
  2745. }
  2746. else SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  2747. return 1;
  2748. }
  2749.  
  2750. if (!strcmp(cmd, "/setweather", true)) // Changes time
  2751. {
  2752. if(IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 4)
  2753. {
  2754. tmp = strtok(cmdtext, idx);
  2755. if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /setweather [weather id]");
  2756. new weather = strval(tmp);
  2757. SetWeather(weather);
  2758. GetPlayerName(playerid, sendername, sizeof(sendername));
  2759. format(string,sizeof(string)," Administrator %s zmienil pogode na : %d ", sendername, weather);
  2760. SendClientMessageToAdmins(ADMIN_RED, string, 1);
  2761. }
  2762. else SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  2763. return 1;
  2764. }
  2765.  
  2766. if (!strcmp(cmd, "/setskin", true)) // Sets a player's skin
  2767. {
  2768. if(IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 3)
  2769. {
  2770. tmp = strtok(cmdtext, idx);
  2771. if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /setskin [playername/id] [skinid]");
  2772. new targetid = ReturnUser(tmp);
  2773. if (targetid != INVALID_PLAYER_ID)
  2774. {
  2775. tmp = strtok(cmdtext, idx);
  2776. new skinid = strval(tmp);
  2777. if (!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /setskin [playername/id] [SKINID]");
  2778. if (IsInvalidSkin(skinid)) return SendClientMessage(playerid, RED, "Invalid skin ID!");
  2779. SetPlayerSkin(targetid, skinid);
  2780. GetPlayerName(playerid, sendername, sizeof(sendername));
  2781. GetPlayerName(targetid, giveplayername, sizeof(giveplayername));
  2782. format(string,sizeof(string)," Administrator %s zmienil skina dla %s ", sendername, giveplayername);
  2783. SendClientMessageToAdmins(ORANGE, string, 1);
  2784. }
  2785. else SendClientMessage(playerid, RED, "Player is not active.");
  2786. }
  2787. else SendClientMessage(playerid, RED, "You're not an admin.");
  2788. return 1;
  2789. }
  2790.  
  2791. /* if (!strcmp(cmd, "/delveh", true)) // Deletes a vehicle
  2792. {
  2793. if(IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 4)
  2794. {
  2795. tmp = strtok(cmdtext, idx);
  2796. if(!strlen(tmp))
  2797. {
  2798. if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, ORANGE, "USAGE: /delveh [vehicle id]");
  2799. PlayerDelVeh[playerid] = GetPlayerVehicleID(playerid);
  2800. ShowPlayerDialog(playerid, DIALOG_TYPE_DELVEH, DIALOG_STYLE_MSGBOX, "You are about to delete the vehicle you are currently in...", "Are you sure?", "Yes, delete", "No");
  2801. return 1;
  2802. }
  2803. new vehicleid = strval(tmp);
  2804. PlayerDelVeh[playerid] = vehicleid;
  2805. ShowPlayerDialog(playerid, DIALOG_TYPE_DELVEH, DIALOG_STYLE_MSGBOX, "You are about to delete a vehicle...", "Are you sure?", "Yes, delete", "No");
  2806. }
  2807. else SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  2808. return 1;
  2809. }
  2810. */
  2811. /* if (!strcmp(cmd, "/delvehs", true)) // Deletes all spawned vehicles
  2812. {
  2813. if(IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 3)
  2814. {
  2815. ShowPlayerDialog(playerid, DIALOG_TYPE_DELVEHS, DIALOG_STYLE_MSGBOX, "You are about to delete ALL vehicles spawned by admins...", "Are you sure?", "Yes, delete", "No");
  2816. }
  2817. else SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  2818. return 1;
  2819. }
  2820. */
  2821. if (!strcmp(cmd, "/lockserver", true)) // Locks the server with a password(in-game, not the one built in SA-MP client)
  2822. {
  2823. if(IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 5)
  2824. {
  2825. tmp = bigstrtok(cmdtext, idx);
  2826. if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /lockserver [password (SET TO - TO DISABLE]");
  2827. format(cmdtext, 128, "Locking server to password: '%s'", tmp);
  2828. format(servlock, sizeof servlock, "%s", tmp);
  2829. ShowPlayerDialog(playerid, DIALOG_TYPE_SERVLOCK, DIALOG_STYLE_MSGBOX, cmdtext, "Do you wish to proceed?", "Yes", "No");
  2830. }
  2831. else SendClientMessage(playerid, RED, "You're not a lead admin.");
  2832. return 1;
  2833. }
  2834.  
  2835. if(strcmp(cmd, "/report", true) == 0) // Available for everyone: reports a player to the admins
  2836. {
  2837. tmp = strtok(cmdtext, idx);
  2838. if(!strlen(tmp))
  2839. {
  2840. SendClientMessage(playerid, ORANGE, "USAGE: /report [playername/id] [reason]");
  2841. SendClientMessage(playerid, ORANGE, "FUNCTION: Will report the specified player to the administrators(online).");
  2842. return 1;
  2843. }
  2844. new targetid = ReturnUser(tmp);
  2845. if(targetid != INVALID_PLAYER_ID)
  2846. {
  2847. GetPlayerName(targetid, giveplayername, sizeof(giveplayername));
  2848. GetPlayerName(playerid, sendername, sizeof(sendername));
  2849. new reason[128];
  2850. reason = bigstrtok(cmdtext, idx);
  2851. if(!strlen(reason)) return SendClientMessage(playerid, ORANGE, "USAGE: /report [playerid] [reason]");
  2852. format(string, sizeof(string), "|- %s reported %s [ Reason: %s ]", sendername,giveplayername,reason);
  2853. SendClientMessageToAdmins(ADMIN_RED, string,1);
  2854. format(string, sizeof(string), "Your report on '%s' has been sent to the current online admins. Thank you.", giveplayername);
  2855. SendClientMessage(playerid, GREEN, string);
  2856. }
  2857.  
  2858. else if(giveplayerid == INVALID_PLAYER_ID)
  2859. {
  2860. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  2861. SendClientMessage(playerid, RED, string);
  2862. }
  2863. return 1;
  2864. }
  2865. if (strcmp(cmd, "/admins", true) == 0) // Admin list if they're online
  2866. {
  2867. new count = 0;
  2868. SendClientMessage(playerid, GREEN, "[Online Admins]");
  2869. SendClientMessage(playerid, GREEN, " ");
  2870. for(new i = 0; i < MAX_PLAYERS; i++)
  2871. {
  2872. if (IsPlayerConnected(i))
  2873. {
  2874. if(AccountInfo[i][AdminLevel] == 5 && AccountInfo[i][AdminLevel] <= 5 && Hide[i] == 0)
  2875. {
  2876. GetPlayerName(i, sendername, sizeof(sendername));
  2877. format(string, 128, "Head Admin [%i]%s",i,sendername);
  2878. SendClientMessage(playerid, BLUE, string);
  2879. count++;
  2880. }
  2881. else if(AccountInfo[i][AdminLevel] == 4 && AccountInfo[i][AdminLevel] <= 5 && Hide[i] == 0)
  2882. {
  2883. GetPlayerName(i, sendername, sizeof(sendername));
  2884. format(string, 128, "Admin [%i]%s",i,sendername);
  2885. SendClientMessage(playerid, LIGHTBLUE, string);
  2886. count++;
  2887. }
  2888. else if(AccountInfo[i][AdminLevel] == 3 && AccountInfo[i][AdminLevel] <= 5 && Hide[i] == 0)
  2889. {
  2890. GetPlayerName(i, sendername, sizeof(sendername));
  2891. format(string, 128, "Moderator [%i]%s",i,sendername);
  2892. SendClientMessage(playerid, GREEN, string);
  2893. count++;
  2894. }
  2895. }
  2896. }
  2897. if (count == 0) SendClientMessage(playerid,RED,"No admin online in the list");
  2898. return 1;
  2899. }
  2900.  
  2901. if (strcmp(cmd, "/register", true) == 0) // Registers an account
  2902. {
  2903. if(IsPlayerConnected(playerid))
  2904. {
  2905. if(AccountInfo[playerid][Logged] == 1)
  2906. {
  2907. SendClientMessage(playerid, RED, "You are already logged in.");
  2908. return 1;
  2909. }
  2910. GetPlayerName(playerid, sendername, sizeof(sendername));
  2911. format(string, sizeof(string), "/sAccounts/%s.seifadmin", sendername);
  2912. new File: hFile = fopen(string, io_read);
  2913. if (hFile)
  2914. {
  2915. SendClientMessage(playerid, RED, "That name is already taken. Please reconnect using a different username.");
  2916. fclose(hFile);
  2917. return 1;
  2918. }
  2919. new pass[150];
  2920. tmp = strtok(cmdtext, idx);
  2921. if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /register [password]");
  2922. WP_Hash(pass, sizeof pass, tmp);
  2923. printf("register: %s", pass);
  2924. OnPlayerRegister(playerid, pass);
  2925. }
  2926. return 1;
  2927. }
  2928.  
  2929. if (strcmp(cmd, "/login", true) == 0) // Logins
  2930. {
  2931. if(AccountInfo[playerid][Logged] == 1) return SendClientMessage(playerid, RED, "You are already logged in.");
  2932. tmp = strtok(cmdtext, idx);
  2933. if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /login [password]");
  2934. new plname[MAX_PLAYER_NAME];
  2935. GetPlayerName(playerid, plname, sizeof(plname));
  2936. format(string, sizeof(string), "/sAccounts/%s.seifadmin", plname);
  2937. if(!fexist(string)) return SendClientMessage(playerid, RED, "That account isn't registered! Please register: /register [password]");
  2938. new pass[150];
  2939. WP_Hash(pass, sizeof pass, tmp);
  2940. OnPlayerLogin(playerid, pass);
  2941. return 1;
  2942. }
  2943.  
  2944. if (!strcmp(cmd, "/changepassword", true)) // Changes your password
  2945. {
  2946. if (!AccountInfo[playerid][Logged]) return SendClientMessage(playerid, RED, "You're not logged in.");
  2947. if (AccountInfo[playerid][AdminLevel] >= 0)
  2948. {
  2949. new oldpass[128];
  2950. new pass[150];
  2951. oldpass = strtok(cmdtext, idx);
  2952. if(!strlen(oldpass)) return SendClientMessage(playerid, ORANGE, "USAGE: /changepassword [CURRENT PASSWORD] [new password]");
  2953. WP_Hash(pass, sizeof pass, oldpass);
  2954. if (strcmp(oldpass, AccountInfo[playerid][Password], true)) return SendClientMessage(playerid, RED, "Invalid password.");
  2955. tmp = strtok(cmdtext, idx);
  2956. if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /changepassword [current password] [NEW PASSWORD]");
  2957. format(oldpass, 128, "|- You've changed your password to '%s' -|", tmp);
  2958. SendClientMessage(playerid, LIGHTGREEN, oldpass);
  2959. WP_Hash(pass, sizeof pass, tmp);
  2960. strmid(AccountInfo[playerid][Password], pass, 0, strlen(pass), 150);
  2961. }
  2962. return 1;
  2963. }
  2964. return 0;
  2965. }
  2966.  
  2967. //------------------------------------------------------------------------------------------------------
  2968.  
  2969. public OnPlayerSpawn(playerid)
  2970. {
  2971. GivePlayerMoney(playerid, PocketMoney);
  2972. SetPlayerInterior(playerid,0);
  2973. SetPlayerRandomSpawn(playerid);
  2974. TogglePlayerClock(playerid,1);
  2975. return 1;
  2976. }
  2977.  
  2978. public SetPlayerRandomSpawn(playerid)
  2979. {
  2980. if (iSpawnSet[playerid] == 1)
  2981. {
  2982. new rand = random(sizeof(gCopPlayerSpawns));
  2983. SetPlayerPos(playerid, gCopPlayerSpawns[rand][0], gCopPlayerSpawns[rand][1], gCopPlayerSpawns[rand][2]); // Warp the player
  2984. SetPlayerFacingAngle(playerid, 270.0);
  2985. }
  2986. else if (iSpawnSet[playerid] == 0)
  2987. {
  2988. new rand = random(sizeof(gRandomPlayerSpawns));
  2989. SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]); // Warp the player
  2990. }
  2991. return 1;
  2992. }
  2993.  
  2994. //------------------------------------------------------------------------------------------------------
  2995.  
  2996. public OnPlayerDeath(playerid, killerid, reason)
  2997. {
  2998. Drugs[playerid] = 0;
  2999. new playercash;
  3000. if(killerid == INVALID_PLAYER_ID) {
  3001. SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
  3002. ResetPlayerMoney(playerid);
  3003. } else {
  3004. SendDeathMessage(killerid,playerid,reason);
  3005. SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
  3006. playercash = GetPlayerMoney(playerid);
  3007. if (playercash > 0) {
  3008. GivePlayerMoney(killerid, playercash);
  3009. ResetPlayerMoney(playerid);
  3010. }
  3011. else
  3012. {
  3013. }
  3014. }
  3015. return 1;
  3016. }
  3017.  
  3018. public OnPlayerText(playerid, text[])
  3019. {
  3020. if (AccountInfo[playerid][Mute] == 1)
  3021. {
  3022. SendClientMessage(playerid, RED, "Zostales wyciszony!");
  3023. return 0;
  3024. }
  3025. return 1;
  3026. }
  3027.  
  3028. /* public OnPlayerDeath(playerid, killerid, reason)
  3029. { haxed by teh mike
  3030. new name[MAX_PLAYER_NAME];
  3031. new string[256];
  3032. new deathreason[20];
  3033. new playercash;
  3034. GetPlayerName(playerid, name, sizeof(name));
  3035. GetWeaponName(reason, deathreason, 20);
  3036. if (killerid == INVALID_PLAYER_ID) {
  3037. switch (reason) {
  3038. case WEAPON_DROWN:
  3039. {
  3040. format(string, sizeof(string), "*** %s drowned.)", name);
  3041. }
  3042. default:
  3043. {
  3044. if (strlen(deathreason) > 0) {
  3045. format(string, sizeof(string), "*** %s died. (%s)", name, deathreason);
  3046. } else {
  3047. format(string, sizeof(string), "*** %s died.", name);
  3048. }
  3049. }
  3050. }
  3051. }
  3052. else {
  3053. new killer[MAX_PLAYER_NAME];
  3054. GetPlayerName(killerid, killer, sizeof(killer));
  3055. if (strlen(deathreason) > 0) {
  3056. format(string, sizeof(string), "*** %s killed %s. (%s)", killer, name, deathreason);
  3057. } else {
  3058. format(string, sizeof(string), "*** %s killed %s.", killer, name);
  3059. }
  3060. }
  3061. SendClientMessageToAll(COLOR_RED, string);
  3062. {
  3063. playercash = GetPlayerMoney(playerid);
  3064. if (playercash > 0)
  3065. {
  3066. GivePlayerMoney(killerid, playercash);
  3067. ResetPlayerMoney(playerid);
  3068. }
  3069. else
  3070. {
  3071. }
  3072. }
  3073. return 1;
  3074. }*/
  3075.  
  3076. //------------------------------------------------------------------------------------------------------
  3077.  
  3078. public OnPlayerRequestClass(playerid, classid)
  3079. {
  3080. iSpawnSet[playerid] = 0;
  3081. SetupPlayerForClassSelection(playerid);
  3082. return 1;
  3083. }
  3084.  
  3085. public SetupPlayerForClassSelection(playerid)
  3086. {
  3087. SetPlayerInterior(playerid,14);
  3088. SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
  3089. SetPlayerFacingAngle(playerid, 270.0);
  3090. SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
  3091. SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
  3092. }
  3093.  
  3094. public GameModeExitFunc()
  3095. {
  3096. GameModeExit();
  3097. }
  3098.  
  3099. public OnGameModeInit()
  3100. {
  3101. SetGameModeText("Polski [DM]");
  3102. UsePlayerPedAnims ();
  3103. ShowPlayerMarkers(1);
  3104. ShowNameTags(1);
  3105. EnableStuntBonusForAll(0);
  3106.  
  3107. // Player Class's
  3108. AddPlayerClass(0,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
  3109. AddPlayerClass(266,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
  3110. AddPlayerClass(267,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
  3111. AddPlayerClass(268,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3112. AddPlayerClass(269,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3113. AddPlayerClass(270,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3114. AddPlayerClass(271,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3115. AddPlayerClass(272,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3116.  
  3117. AddPlayerClass(280,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
  3118. AddPlayerClass(281,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
  3119. AddPlayerClass(282,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
  3120. AddPlayerClass(283,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3121. AddPlayerClass(284,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3122. AddPlayerClass(285,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3123. AddPlayerClass(286,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3124. AddPlayerClass(287,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3125.  
  3126. AddPlayerClass(254,1958.3783,1343.1572,15.3746,0.0,0,0,24,300,-1,-1);
  3127. AddPlayerClass(255,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3128. AddPlayerClass(256,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3129. AddPlayerClass(257,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3130. AddPlayerClass(258,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3131. AddPlayerClass(259,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3132. AddPlayerClass(260,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3133. AddPlayerClass(261,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3134. AddPlayerClass(262,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3135. AddPlayerClass(263,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3136. AddPlayerClass(264,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3137. AddPlayerClass(274,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3138. AddPlayerClass(275,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3139. AddPlayerClass(276,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3140.  
  3141. AddPlayerClass(1,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3142. AddPlayerClass(2,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3143. AddPlayerClass(290,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3144. AddPlayerClass(291,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3145. AddPlayerClass(292,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3146. AddPlayerClass(293,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3147. AddPlayerClass(294,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3148. AddPlayerClass(295,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3149. AddPlayerClass(296,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3150. AddPlayerClass(297,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3151. AddPlayerClass(298,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3152. AddPlayerClass(299,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3153.  
  3154. AddPlayerClass(277,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3155. AddPlayerClass(278,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3156. AddPlayerClass(279,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3157. AddPlayerClass(288,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3158. AddPlayerClass(47,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3159. AddPlayerClass(48,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3160. AddPlayerClass(49,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3161. AddPlayerClass(50,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3162. AddPlayerClass(51,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3163. AddPlayerClass(52,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3164. AddPlayerClass(53,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3165. AddPlayerClass(54,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3166. AddPlayerClass(55,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3167. AddPlayerClass(56,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3168. AddPlayerClass(57,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3169. AddPlayerClass(58,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3170. AddPlayerClass(59,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3171. AddPlayerClass(60,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3172. AddPlayerClass(61,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3173. AddPlayerClass(62,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3174. AddPlayerClass(63,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3175. AddPlayerClass(64,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3176. AddPlayerClass(66,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3177. AddPlayerClass(67,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3178. AddPlayerClass(68,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3179. AddPlayerClass(69,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3180. AddPlayerClass(70,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3181. AddPlayerClass(71,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3182. AddPlayerClass(72,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3183. AddPlayerClass(73,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3184. AddPlayerClass(75,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3185. AddPlayerClass(76,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3186. AddPlayerClass(78,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3187. AddPlayerClass(79,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3188. AddPlayerClass(80,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3189. AddPlayerClass(81,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3190. AddPlayerClass(82,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3191. AddPlayerClass(83,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3192. AddPlayerClass(84,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3193. AddPlayerClass(85,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3194. AddPlayerClass(87,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3195. AddPlayerClass(88,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3196. AddPlayerClass(89,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3197. AddPlayerClass(91,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3198. AddPlayerClass(92,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3199. AddPlayerClass(93,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3200. AddPlayerClass(95,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3201. AddPlayerClass(96,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3202. AddPlayerClass(97,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3203. AddPlayerClass(98,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3204. AddPlayerClass(99,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3205. AddPlayerClass(100,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3206. AddPlayerClass(101,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3207. AddPlayerClass(102,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3208. AddPlayerClass(103,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3209. AddPlayerClass(104,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3210. AddPlayerClass(105,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3211. AddPlayerClass(106,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3212. AddPlayerClass(107,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3213. AddPlayerClass(108,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3214. AddPlayerClass(109,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3215. AddPlayerClass(110,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3216. AddPlayerClass(111,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3217. AddPlayerClass(112,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3218. AddPlayerClass(113,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3219. AddPlayerClass(114,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3220. AddPlayerClass(115,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3221. AddPlayerClass(116,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3222. AddPlayerClass(117,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3223. AddPlayerClass(118,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3224. AddPlayerClass(120,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3225. AddPlayerClass(121,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3226. AddPlayerClass(122,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3227. AddPlayerClass(123,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3228. AddPlayerClass(124,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3229. AddPlayerClass(125,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3230. AddPlayerClass(126,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3231. AddPlayerClass(127,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3232. AddPlayerClass(128,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3233. AddPlayerClass(129,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3234. AddPlayerClass(131,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3235. AddPlayerClass(133,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3236. AddPlayerClass(134,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3237. AddPlayerClass(135,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3238. AddPlayerClass(136,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3239. AddPlayerClass(137,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3240. AddPlayerClass(138,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3241. AddPlayerClass(139,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3242. AddPlayerClass(140,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3243. AddPlayerClass(141,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3244. AddPlayerClass(142,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3245. AddPlayerClass(143,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3246. AddPlayerClass(144,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3247. AddPlayerClass(145,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3248. AddPlayerClass(146,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3249. AddPlayerClass(147,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3250. AddPlayerClass(148,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3251. AddPlayerClass(150,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3252. AddPlayerClass(151,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3253. AddPlayerClass(152,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3254. AddPlayerClass(153,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3255. AddPlayerClass(154,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3256. AddPlayerClass(155,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3257. AddPlayerClass(156,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3258. AddPlayerClass(157,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3259. AddPlayerClass(158,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3260. AddPlayerClass(159,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3261. AddPlayerClass(160,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3262. AddPlayerClass(161,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3263. AddPlayerClass(162,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3264. AddPlayerClass(163,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3265. AddPlayerClass(164,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3266. AddPlayerClass(165,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3267. AddPlayerClass(166,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3268. AddPlayerClass(167,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3269. AddPlayerClass(168,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3270. AddPlayerClass(169,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3271. AddPlayerClass(170,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3272. AddPlayerClass(171,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3273. AddPlayerClass(172,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3274. AddPlayerClass(173,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3275. AddPlayerClass(174,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3276. AddPlayerClass(175,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3277. AddPlayerClass(176,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3278. AddPlayerClass(177,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3279. AddPlayerClass(178,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3280. AddPlayerClass(179,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3281. AddPlayerClass(180,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3282. AddPlayerClass(181,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3283. AddPlayerClass(182,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3284. AddPlayerClass(183,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3285. AddPlayerClass(184,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3286. AddPlayerClass(185,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3287. AddPlayerClass(186,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3288. AddPlayerClass(187,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3289. AddPlayerClass(188,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3290. AddPlayerClass(189,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3291. AddPlayerClass(190,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3292. AddPlayerClass(191,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3293. AddPlayerClass(192,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3294. AddPlayerClass(193,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3295. AddPlayerClass(194,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3296. AddPlayerClass(195,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3297. AddPlayerClass(196,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3298. AddPlayerClass(197,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3299. AddPlayerClass(198,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3300. AddPlayerClass(199,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3301. AddPlayerClass(200,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3302. AddPlayerClass(201,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3303. AddPlayerClass(202,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3304. AddPlayerClass(203,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3305. AddPlayerClass(204,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3306. AddPlayerClass(205,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3307. AddPlayerClass(206,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3308. AddPlayerClass(207,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3309. AddPlayerClass(209,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3310. AddPlayerClass(210,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3311. AddPlayerClass(211,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3312. AddPlayerClass(212,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3313. AddPlayerClass(213,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3314. AddPlayerClass(214,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3315. AddPlayerClass(215,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3316. AddPlayerClass(216,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3317. AddPlayerClass(217,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3318. AddPlayerClass(218,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3319. AddPlayerClass(219,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3320. AddPlayerClass(220,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3321. AddPlayerClass(221,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3322. AddPlayerClass(222,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3323. AddPlayerClass(223,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3324. AddPlayerClass(224,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3325. AddPlayerClass(225,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3326. AddPlayerClass(226,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3327. AddPlayerClass(227,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3328. AddPlayerClass(228,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3329. AddPlayerClass(229,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3330. AddPlayerClass(230,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3331. AddPlayerClass(231,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3332. AddPlayerClass(232,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3333. AddPlayerClass(233,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3334. AddPlayerClass(234,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3335. AddPlayerClass(235,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3336. AddPlayerClass(236,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3337. AddPlayerClass(237,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3338. AddPlayerClass(238,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3339. AddPlayerClass(239,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3340. AddPlayerClass(240,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3341. AddPlayerClass(241,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3342. AddPlayerClass(242,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3343. AddPlayerClass(243,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3344. AddPlayerClass(244,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3345. AddPlayerClass(245,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3346. AddPlayerClass(246,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3347. AddPlayerClass(247,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3348. AddPlayerClass(248,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3349. AddPlayerClass(249,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3350. AddPlayerClass(250,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3351. AddPlayerClass(251,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3352. AddPlayerClass(253,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  3353.  
  3354. // Car Spawns
  3355. new randa = random(sizeof(RandCars));
  3356. randa = random(sizeof(RandCars));carselect[0] = RandCars[randa][0];
  3357. randa = random(sizeof(RandCars));carselect[1] = RandCars[randa][0];
  3358. randa = random(sizeof(RandCars));carselect[2] = RandCars[randa][0];
  3359. randa = random(sizeof(RandCars));carselect[3] = RandCars[randa][0];
  3360. randa = random(sizeof(RandCars));carselect[4] = RandCars[randa][0];
  3361. randa = random(sizeof(RandCars));carselect[5] = RandCars[randa][0];
  3362. randa = random(sizeof(RandCars));carselect[6] = RandCars[randa][0];
  3363. randa = random(sizeof(RandCars));carselect[7] = RandCars[randa][0];
  3364. randa = random(sizeof(RandCars));carselect[8] = RandCars[randa][0];
  3365. randa = random(sizeof(RandCars));carselect[9] = RandCars[randa][0];
  3366. randa = random(sizeof(RandCars));carselect[10] = RandCars[randa][0];
  3367. randa = random(sizeof(RandCars));carselect[11] = RandCars[randa][0];
  3368. randa = random(sizeof(RandCars));carselect[12] = RandCars[randa][0];
  3369. randa = random(sizeof(RandCars));carselect[13] = RandCars[randa][0];
  3370. for(new i = 0; i < sizeof(CarSpawns); i++)
  3371. // for(new i = 0; i < 165; i++)
  3372. {
  3373. AddCar(i);
  3374. }
  3375. return 1;
  3376. }
  3377.  
  3378.  
  3379.  
  3380. public SendPlayerFormattedText(playerid, const str[], define)
  3381. {
  3382. new tmpbuf[256];
  3383. format(tmpbuf, sizeof(tmpbuf), str, define);
  3384. SendClientMessage(playerid, 0xFF004040, tmpbuf);
  3385. }
  3386.  
  3387. public SendAllFormattedText(playerid, const str[], define)
  3388. {
  3389. new tmpbuf[256];
  3390. format(tmpbuf, sizeof(tmpbuf), str, define);
  3391. SendClientMessageToAll(0xFFFF00AA, tmpbuf);
  3392. }
  3393. /*
  3394. strtok(const string[], &index)
  3395. {
  3396. new length = strlen(string);
  3397. while ((index < length) && (string[index] <= ' '))
  3398. {
  3399. index++;
  3400. }
  3401.  
  3402. new offset = index;
  3403. new result[20];
  3404. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  3405. {
  3406. result[index - offset] = string[index];
  3407. index++;
  3408. }
  3409. result[index - offset] = EOS;
  3410. return result;
  3411. }
  3412. */
  3413.  
  3414. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  3415. {
  3416. if (SuperPunch[playerid] == 1)
  3417. {
  3418. if (GetPlayerState(playerid) != 2)
  3419. {
  3420. if (newkeys & KEY_FIRE && Drugs[playerid] == 0)
  3421. {
  3422. new Float:X,Float:Y,Float:Z,Float:Health;
  3423. GetPlayerHealth(playerid,Health);
  3424. if (GetPlayerWeapon(playerid) == 0)
  3425. {
  3426. GetPlayerPos(playerid,X,Y,Z);
  3427. CreateExplosion(X,Y,Z,7,7.0);
  3428. SetPlayerHealth(playerid,Health);
  3429. }
  3430. }
  3431. else if (newkeys & KEY_FIRE && Drugs[playerid] == 1)
  3432. {
  3433. new Float:X,Float:Y,Float:Z;
  3434. if (GetPlayerWeapon(playerid) == 0)
  3435. {
  3436. SetPlayerHealth(playerid,999999999);
  3437. GetPlayerPos(playerid,X,Y,Z);
  3438. CreateExplosion(X,Y,Z,7,7.0);
  3439. SetPlayerHealth(playerid,999999999);
  3440. }
  3441. }
  3442. }
  3443. }
  3444. }
  3445.  
  3446. OnPlayerJailed(playerid)
  3447. {
  3448. SetPlayerInterior(playerid, 6);
  3449. SetPlayerPos(playerid, 264.3700,77.5700,1001.0391);
  3450. SetPlayerFacingAngle(playerid, 272.6900);
  3451. TogglePlayerControllable(playerid, 0);
  3452. return 1;
  3453. }
  3454.  
  3455. OnPlayerUnjailed(playerid)
  3456. {
  3457. SetPlayerInterior(playerid, 6);
  3458. SetPlayerPos(playerid, 266.9272,78.6098,1001.0391);
  3459. SetPlayerFacingAngle(playerid, 266.9169);
  3460. TogglePlayerControllable(playerid, 1);
  3461. return 1;
  3462. }
  3463.  
  3464. public CountDown()
  3465. {
  3466. if (Count > 0)
  3467. {
  3468. new str[5];
  3469. format(str, sizeof str, "~w~%d", Count);
  3470. GameTextForAll(str,2500,3);
  3471. Count--;
  3472. SetTimer("CountDown",1000,0);
  3473. }
  3474. else
  3475. {
  3476. GameTextForAll("~g~~h~Go ~w~!!",2500,3);
  3477. Count = 999;
  3478. }
  3479. return 1;
  3480. }
  3481.  
  3482. forward OnPlayerPrivmsg(playerid, receiverid, text[]); public OnPlayerPrivmsg(playerid, receiverid, text[])
  3483. {
  3484. if (PMBlock[receiverid] == true) return SendClientMessage(playerid, RED, "That admin has blocked private messages");
  3485.  
  3486. new string[128], name[MAX_PLAYER_NAME];
  3487. GetPlayerName(playerid, name, sizeof name);
  3488. format(string, sizeof string, "[PM]From %s: %s", name, text);
  3489. SendClientMessage(receiverid, LIMEGREEN, string);
  3490. GetPlayerName(receiverid, name, sizeof name);
  3491. format(string, sizeof string, "[PM]Sent to %s: %s", name, text);
  3492. SendClientMessage(playerid, LIMEGREEN, string);
  3493. return 1;
  3494. }
  3495.  
  3496. forward NukeBlast(playerid, times, Float:X,Float:Y,Float:Z,Float:A);
  3497. public NukeBlast(playerid, times, Float:X,Float:Y,Float:Z,Float:A)
  3498. {
  3499. if (Nuke[playerid] == times+1) return 1;
  3500. //printf("Nukeblast %d",Nuke[playerid]);
  3501. new Float:x,Float:y;
  3502. x = X + ((10*Nuke[playerid]) * floatsin(-A+5, degrees));
  3503. y = Y + ((10*Nuke[playerid]) * floatcos(-A+5, degrees));
  3504. CreateExplosion(x, y, Z, 3, 3.0);
  3505. Nuke[playerid]++;
  3506. SetTimerEx("NukeBlast", 200, 0, "ddffff",playerid, times, X, Y, Z, A);
  3507. return 1;
  3508. }
  3509.  
  3510. public OnObjectMoved(objectid)
  3511. {
  3512. for(new i; i < MAX_PLAYERS; i++) if (objectid == Missile[i])
  3513. {
  3514. new Float:X,Float:Y,Float:Z,Float:x,Float:y,Float:z;
  3515. GetObjectPos(objectid, X, Y, Z);
  3516. GetObjectPos(objectid, x, y, z);
  3517. DestroyObject(objectid);
  3518. CreateExplosion(X, Y, Z, 7, 5);
  3519. //front
  3520. X += (5.0 * floatsin(0, degrees));
  3521. Y += (5.0 * floatcos(0, degrees));
  3522. CreateExplosion(X, Y, Z, 7, 5);
  3523. X += (3.0 * floatsin(0+45, degrees));
  3524. Y += (3.0 * floatcos(0+45, degrees));
  3525. CreateExplosion(X, Y, Z, 7, 5);
  3526. X += (3.0 * floatsin(0-45, degrees));
  3527. Y += (3.0 * floatcos(0-45, degrees));
  3528. CreateExplosion(X, Y, Z, 7, 5);
  3529. //right-left
  3530. X += (5.0 * floatcos(0, degrees));
  3531. Y += (5.0 * floatsin(0, degrees));
  3532. CreateExplosion(X, Y, Z, 7, 5);
  3533. //back
  3534. X -= (5.0 * floatcos(0, degrees));
  3535. Y -= (5.0 * floatsin(0, degrees));
  3536. CreateExplosion(X, Y, Z, 7, 5);
  3537. X -= (5.0 * floatsin(0, degrees));
  3538. Y -= (5.0 * floatcos(0, degrees));
  3539. CreateExplosion(X, Y, Z, 7, 5);
  3540. X -= (3.0 * floatsin(0+45, degrees));
  3541. Y -= (3.0 * floatcos(0+45, degrees));
  3542. CreateExplosion(X, Y, Z, 7, 5);
  3543. X -= (3.0 * floatsin(0-45, degrees));
  3544. Y -= (3.0 * floatcos(0-45, degrees));
  3545. CreateExplosion(X, Y, Z, 7, 5);
  3546. SetTimerEx("MissileExplosion", 700, 0, "fffd", x, y, z, 3);
  3547. break;
  3548. }
  3549. }
  3550.  
  3551. forward MissileExplosion(Float:X, Float:Y, Float:Z, times);
  3552. public MissileExplosion(Float:X, Float:Y, Float:Z, times)
  3553. {
  3554. new Float:x = X;
  3555. new Float:y = Y;
  3556. new Float:z = Z;
  3557. if (times == 3)
  3558. {
  3559. //front
  3560. X += (10.0 * floatsin(0, degrees));
  3561. Y += (10.0 * floatcos(0, degrees));
  3562. CreateExplosion(X, Y, Z, 7, 5);
  3563. X += (6.0 * floatsin(0+45, degrees));
  3564. Y += (6.0 * floatcos(0+45, degrees));
  3565. CreateExplosion(X, Y, Z, 7, 5);
  3566. X += (6.0 * floatsin(0-45, degrees));
  3567. Y += (6.0 * floatcos(0-45, degrees));
  3568. CreateExplosion(X, Y, Z, 7, 5);
  3569. //right-left
  3570. X += (10.0 * floatcos(0, degrees));
  3571. Y += (10.0 * floatsin(0, degrees));
  3572. CreateExplosion(X, Y, Z, 7, 5);
  3573. //back
  3574. X -= (10.0 * floatcos(0, degrees));
  3575. Y -= (10.0 * floatsin(0, degrees));
  3576. CreateExplosion(X, Y, Z, 7, 5);
  3577. X -= (10.0 * floatsin(0, degrees));
  3578. Y -= (10.0 * floatcos(0, degrees));
  3579. CreateExplosion(X, Y, Z, 7, 5);
  3580. X -= (6.0 * floatsin(0+45, degrees));
  3581. Y -= (6.0 * floatcos(0+45, degrees));
  3582. CreateExplosion(X, Y, Z, 7, 5);
  3583. X -= (6.0 * floatsin(0-45, degrees));
  3584. Y -= (6.0 * floatcos(0-45, degrees));
  3585. CreateExplosion(X, Y, Z, 7, 5);
  3586. }
  3587. else if (times == 2)
  3588. {
  3589. //front
  3590. X += (15.0 * floatsin(0, degrees));
  3591. Y += (15.0 * floatcos(0, degrees));
  3592. CreateExplosion(X, Y, Z, 7, 5);
  3593. X += (9.0 * floatsin(0+45, degrees));
  3594. Y += (9.0 * floatcos(0+45, degrees));
  3595. CreateExplosion(X, Y, Z, 7, 5);
  3596. X += (9.0 * floatsin(0-45, degrees));
  3597. Y += (9.0 * floatcos(0-45, degrees));
  3598. CreateExplosion(X, Y, Z, 7, 5);
  3599. //right-left
  3600. X += (15.0 * floatcos(0, degrees));
  3601. Y += (15.0 * floatsin(0, degrees));
  3602. CreateExplosion(X, Y, Z, 7, 5);
  3603. //back
  3604. X -= (15.0 * floatcos(0, degrees));
  3605. Y -= (15.0 * floatsin(0, degrees));
  3606. CreateExplosion(X, Y, Z, 7, 5);
  3607. X -= (15.0 * floatsin(0, degrees));
  3608. Y -= (15.0 * floatcos(0, degrees));
  3609. CreateExplosion(X, Y, Z, 7, 5);
  3610. X -= (9.0 * floatsin(0+45, degrees));
  3611. Y -= (9.0 * floatcos(0+45, degrees));
  3612. CreateExplosion(X, Y, Z, 7, 5);
  3613. X -= (9.0 * floatsin(0-45, degrees));
  3614. Y -= (9.0 * floatcos(0-45, degrees));
  3615. CreateExplosion(X, Y, Z, 7, 5);
  3616. }
  3617. else if (times == 1)
  3618. {
  3619. //front
  3620. X += (20.0 * floatsin(0, degrees));
  3621. Y += (20.0 * floatcos(0, degrees));
  3622. CreateExplosion(X, Y, Z, 7, 5);
  3623. X += (12.0 * floatsin(0+45, degrees));
  3624. Y += (12.0 * floatcos(0+45, degrees));
  3625. CreateExplosion(X, Y, Z, 7, 5);
  3626. X += (12.0 * floatsin(0-45, degrees));
  3627. Y += (12.0 * floatcos(0-45, degrees));
  3628. CreateExplosion(X, Y, Z, 7, 5);
  3629. //right-left
  3630. X += (20.0 * floatcos(0, degrees));
  3631. Y += (20.0 * floatsin(0, degrees));
  3632. CreateExplosion(X, Y, Z, 7, 5);
  3633. //back
  3634. X -= (20.0 * floatcos(0, degrees));
  3635. Y -= (20.0 * floatsin(0, degrees));
  3636. CreateExplosion(X, Y, Z, 7, 5);
  3637. X -= (20.0 * floatsin(0, degrees));
  3638. Y -= (20.0 * floatcos(0, degrees));
  3639. CreateExplosion(X, Y, Z, 7, 5);
  3640. X -= (12.0 * floatsin(0+45, degrees));
  3641. Y -= (12.0 * floatcos(0+45, degrees));
  3642. CreateExplosion(X, Y, Z, 7, 5);
  3643. X -= (12.0 * floatsin(0-45, degrees));
  3644. Y -= (12.0 * floatcos(0-45, degrees));
  3645. CreateExplosion(X, Y, Z, 7, 5);
  3646. }
  3647.  
  3648. if (times > 0) SetTimerEx("MissileExplosion", 700, 0, "fffd", x, y, z, times-1);
  3649. }
  3650.  
  3651. forward PushPlayer(playerid, distance, zup);
  3652. public PushPlayer(playerid, distance, zup)
  3653. {
  3654. new Float:X,Float:Y,Float:Z,Float:A;
  3655. GetPlayerPos(playerid, X, Y, Z);
  3656. GetPlayerFacingAngle(playerid, A);
  3657. if (zup == 1) SetPlayerPos(playerid, X, Y, Z+5);
  3658. GetPlayerPos(playerid, X, Y, Z);
  3659. X -= (2.0 * floatsin(-A, degrees));
  3660. Y -= (2.0 * floatcos(-A, degrees));
  3661. SetPlayerPos(playerid, X, Y, Z);
  3662. if (distance > 0) SetTimerEx("PushPlayer", 100, 0, "ddd", playerid, distance-1, 0);
  3663. }
  3664.  
  3665. stock GetVehicleModelIDFromName(vehname[])
  3666. {
  3667. for(new i = 0; i < 211; i++)
  3668. {
  3669. if (strfind(VehNames[i], vehname, true) != -1) return i + 400;
  3670. }
  3671. return -1;
  3672. }
  3673.  
  3674. stock GetWeaponModelIDFromName(weapname[])
  3675. {
  3676. for(new i = 0; i < 48; i++)
  3677. {
  3678. if (i == 19 || i == 20 || i == 21) continue;
  3679. if (strfind(WeapNames[i], weapname, true) != -1) return i;
  3680. }
  3681. return -1;
  3682. }
  3683.  
  3684. stock bigstrtok(const string[], &idx)
  3685. {
  3686. new length = strlen(string);
  3687. while ((idx < length) && (string[idx] <= ' '))
  3688. {
  3689. idx++;
  3690. }
  3691. new offset = idx;
  3692. new result[128];
  3693. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  3694. {
  3695. result[idx - offset] = string[idx];
  3696. idx++;
  3697. }
  3698. result[idx - offset] = EOS;
  3699. return result;
  3700. }
  3701.  
  3702. stock IsInvalidSkin(skinid)
  3703. {
  3704. #define MAX_BAD_SKINS 14
  3705. new badSkins[MAX_BAD_SKINS] =
  3706. {
  3707. 3, 4, 5, 6, 8, 42, 65, 74, 86,
  3708. 119, 149, 208, 273, 289
  3709. };
  3710.  
  3711. for (new i = 0; i < MAX_BAD_SKINS; i++)
  3712. {
  3713. if (skinid == badSkins[i] || skinid < 0 || skinid >= 300) return true;
  3714. }
  3715.  
  3716. return false;
  3717. }
  3718.  
  3719. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  3720. {
  3721. new sendername[MAX_PLAYER_NAME];
  3722.  
  3723. /* if (dialogid == DIALOG_TYPE_DELVEH)
  3724. {
  3725. if (response)
  3726. {
  3727. if (PlayerDelVeh[playerid] == INVALID_PLAYER_ID) return SendClientMessage(playerid, RED, "Error deleting vehicle(invalid id)");
  3728.  
  3729. GetPlayerName(playerid, sendername, sizeof(sendername));
  3730. format(inputtext, 128,"|- Administrator %s has deleted a vehicle [ Vehicle: %d - Model: %s ] -|", sendername, PlayerDelVeh[playerid], VehNames[GetVehicleModel(PlayerDelVeh[playerid])-400]);
  3731. SendClientMessageToAdmins(ADMIN_RED, inputtext, 1);
  3732. DestroyVehicle(PlayerDelVeh[playerid]);
  3733. SpawnedVehicle[PlayerDelVeh[playerid]] = false;
  3734. }
  3735. }
  3736. if (dialogid == DIALOG_TYPE_DELVEHS)
  3737. {
  3738. if (response)
  3739. {
  3740. new count;
  3741. for(new v; v < MAX_VEHICLES; v++)
  3742. {
  3743. if (SpawnedVehicle[v] == true) DestroyVehicle(v), SpawnedVehicle[v] = false, count++;
  3744. }
  3745. GetPlayerName(playerid, sendername, sizeof(sendername));
  3746. format(inputtext, 128,"|- Administrator %s has deleted ALL spawned vehicles [ Total: %d ] -|", sendername, count);
  3747. SendClientMessageToAdmins(ADMIN_RED, inputtext, 1);
  3748. }
  3749. }*/
  3750. if (dialogid == DIALOG_TYPE_SERVLOCK)
  3751. {
  3752. if (response)
  3753. {
  3754. format(ServerLockPass, sizeof ServerLockPass, "%s", servlock);
  3755. if (!strcmp(servlock, "-", true)) SendClientMessage(playerid, LIGHTGREEN, "* Server unlocked");
  3756. else
  3757. {
  3758. format(servlock, sizeof servlock, "Server locked to password: %s. Password is case sensitive!", ServerLockPass);
  3759. SendClientMessage(playerid, GREEN, servlock);
  3760. }
  3761. }
  3762. }
  3763. if (dialogid == DIALOG_TYPE_SERVLOCKPASS)
  3764. {
  3765. if (response)
  3766. {
  3767. if (!strcmp(ServerLockPass, inputtext) && !(!strlen(inputtext))) SendClientMessage(playerid, LIGHTGREEN, "|- Correct password, you have been granted access to the server -|");
  3768. else
  3769. {
  3770. SendClientMessage(playerid, RED, "|- Invalid server password, try again or cancel -|");
  3771. ShowPlayerDialog(playerid, DIALOG_TYPE_SERVLOCKPASS, DIALOG_STYLE_INPUT, "Server is currently locked.", "Enter the password to access it:", "Enter", "Cancel");
  3772. }
  3773. }
  3774. else
  3775. {
  3776. SendClientMessage(playerid, RED, "You have no business here, then.");
  3777. Kick(playerid);
  3778. }
  3779. }
  3780. return 1;
  3781. }
Advertisement
Add Comment
Please, Sign In to add comment