Advertisement
Guest User

Untitled

a guest
May 11th, 2011
664
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 56.36 KB | None | 0 0
  1. #include <a_samp>
  2. #include <core>
  3. #include <float>
  4.  
  5. #pragma tabsize 0
  6.  
  7. #define COLOR_GREY 0xAFAFAFAA
  8. #define COLOR_GREEN 0x33AA33AA
  9. #define COLOR_RED 0xAA3333AA
  10. #define COLOR_YELLOW 0xFFFF00AA
  11. #define COLOR_WHITE 0xFFFFFFAA
  12. #define COLOR_ERROR 0xFF0000FF
  13. #define COLOR_PURPLE 0xC2A2DAAA
  14. #define COLOR_DARKBLUE 0x2641FEAA
  15. #define COLOR_GRAD1 0xB4B5B7FF
  16. #define COLOR_GRAD2 0xBFC0C2FF
  17. #define COLOR_GRAD3 0xCBCCCEFF
  18. #define COLOR_GRAD4 0xD8D8D8FF
  19. #define COLOR_GRAD5 0xE3E3E3FF
  20. #define COLOR_GRAD6 0xF0F0F0FF
  21. #define COLOR_GREY 0xAFAFAFAA
  22. #define never 999999999999999999
  23.  
  24. #define PocketMoney 10000
  25. #define INACTIVE_PLAYER_ID 255
  26. #define GIVECASH_DELAY 500
  27.  
  28. #define NUMVALUES 4
  29.  
  30. //--Dialog Defines
  31. #define FIGHT 0
  32. #define DIALOG_REGISTER 1
  33. #define DIALOG_LOGIN 2
  34.  
  35. //--Server Info Defining
  36. #define owner "iLcke"
  37. #define scriptv " ~ O:DM ~ v0.3 ~"
  38. #define lastupdate "Febuary 4th, 2011"
  39. #define servername "[0.3c] OutStanding Deathmatch"
  40. #define scriptmap "iLcke"
  41. #define hostname "hostname [0.3c] OutStanding Deathmatch"
  42.  
  43. //
  44. #define C_BUG_TIME 2
  45.  
  46. forward MoneyGrubScoreUpdate();
  47. forward Givecashdelaytimer(playerid);
  48. forward SetPlayerRandomSpawn(playerid);
  49. forward SetupPlayerForClassSelection(playerid);
  50. forward GameModeExitFunc();
  51. forward SendAdminMessage(color, string[]);
  52. forward Info();
  53. forward ServerInfo();
  54. forward AntiHack (playerid, amount);
  55. forward IsStringAName (string[]);
  56. forward GetPlayerID (string[]);
  57. forward ChangeVehiclePlate();
  58.  
  59.  
  60. // Account
  61. forward OnPlayerLogin(playerid,password[]);
  62. forward ini_GetKey(line[]);
  63. forward ini_GetValue(line[]);
  64. forward SavePlayer(playerid);
  65. //
  66.  
  67. //------------------------------------------------------------------------------------------------------
  68. new CBugged[MAX_PLAYERS];
  69. new CashScoreOld;
  70. new iSpawnSet[MAX_PLAYERS];
  71. new gPlayerLogged[MAX_PLAYERS];
  72. new gPlayerAccount[MAX_PLAYERS];
  73. new blocked[MAX_PLAYERS];
  74.  
  75. //
  76. new Text:a;
  77. new Text:b;
  78. new Text:ODM;
  79.  
  80. // Account
  81. enum pInfo
  82. {
  83. pPassword[128],
  84. pAdmin,
  85. pVip,
  86. pTester,
  87. pGun1,
  88. pGun2,
  89. pGun3,
  90. pGun4,
  91. pGun5,
  92. pGun6,
  93. pAmmo1,
  94. pAmmo2,
  95. pAmmo3,
  96. pAmmo4,
  97. pAmmo5,
  98. pAmmo6,
  99. pCash,
  100. pKills,
  101. pDeaths
  102. };
  103. new PlayerInfo[MAX_PLAYERS][pInfo];
  104. // Account End
  105.  
  106.  
  107. new Float:gRandomPlayerSpawns[23][3] = {
  108. {1958.3783,1343.1572,15.3746},
  109. {2199.6531,1393.3678,10.8203},
  110. {2483.5977,1222.0825,10.8203},
  111. {2637.2712,1129.2743,11.1797},
  112. {2000.0106,1521.1111,17.0625},
  113. {2024.8190,1917.9425,12.3386},
  114. {2261.9048,2035.9547,10.8203},
  115. {2262.0986,2398.6572,10.8203},
  116. {2244.2566,2523.7280,10.8203},
  117. {2335.3228,2786.4478,10.8203},
  118. {2150.0186,2734.2297,11.1763},
  119. {2158.0811,2797.5488,10.8203},
  120. {1969.8301,2722.8564,10.8203},
  121. {1652.0555,2709.4072,10.8265},
  122. {1564.0052,2756.9463,10.8203},
  123. {1271.5452,2554.0227,10.8203},
  124. {1441.5894,2567.9099,10.8203},
  125. {1480.6473,2213.5718,11.0234},
  126. {1400.5906,2225.6960,11.0234},
  127. {1598.8419,2221.5676,11.0625},
  128. {1318.7759,1251.3580,10.8203},
  129. {1558.0731,1007.8292,10.8125},
  130. {1705.2347,1025.6808,10.8203}
  131. };
  132.  
  133. new Float:gCopPlayerSpawns[2][3] = {
  134. {2297.1064,2452.0115,10.8203},
  135. {2297.0452,2468.6743,10.8203}
  136. };
  137.  
  138. new Skins[277][1] = {
  139. {160},
  140. {256},
  141. {263},
  142. {262},
  143. {261},
  144. {260},
  145. {259},
  146. {258},
  147. {257},
  148. {256},
  149. {253},
  150. {252},
  151. {251},
  152. {250},
  153. {249},
  154. {246},
  155. {245},
  156. {244},
  157. {243},
  158. {242},
  159. {241},
  160. {240},
  161. {239},
  162. {238},
  163. {237},
  164. {236},
  165. {235},
  166. {234},
  167. {233},
  168. {232},
  169. {231},
  170. {230},
  171. {229},
  172. {228},
  173. {227},
  174. {226},
  175. {225},
  176. {224},
  177. {223},
  178. {222},
  179. {221},
  180. {220},
  181. {219},
  182. {218},
  183. {217},
  184. {216},
  185. {215},
  186. {214},
  187. {213},
  188. {212},
  189. {211},
  190. {210},
  191. {209},
  192. {207},
  193. {206},
  194. {205},
  195. {204},
  196. {203},
  197. {202},
  198. {201},
  199. {200},
  200. {199},
  201. {198},
  202. {197},
  203. {196},
  204. {195},
  205. {194},
  206. {193},
  207. {191},
  208. {190},
  209. {188},
  210. {187},
  211. {186},
  212. {185},
  213. {184},
  214. {183},
  215. {182},
  216. {181},
  217. {180},
  218. {179},
  219. {178},
  220. {177},
  221. {176},
  222. {172},
  223. {171},
  224. {170},
  225. {169},
  226. {168},
  227. {167},
  228. {162},
  229. {161},
  230. {264},
  231. {159},
  232. {158},
  233. {157},
  234. {156},
  235. {155},
  236. {154},
  237. {153},
  238. {152},
  239. {151},
  240. {150},
  241. {148},
  242. {147},
  243. {146},
  244. {145},
  245. {144},
  246. {143},
  247. {142},
  248. {140},
  249. {139},
  250. {138},
  251. {137},
  252. {136},
  253. {135},
  254. {134},
  255. {133},
  256. {132},
  257. {131},
  258. {130},
  259. {129},
  260. {128},
  261. {101},
  262. {254},
  263. {99},
  264. {98},
  265. {97},
  266. {96},
  267. {95},
  268. {94},
  269. {93},
  270. {92},
  271. {91},
  272. {90},
  273. {89},
  274. {88},
  275. {87},
  276. {85},
  277. {84},
  278. {83},
  279. {82},
  280. {81},
  281. {80},
  282. {79},
  283. {78},
  284. {77},
  285. {76},
  286. {75},
  287. {73},
  288. {72},
  289. {69},
  290. {68},
  291. {67},
  292. {64},
  293. {63},
  294. {62},
  295. {60},
  296. {59},
  297. {58},
  298. {57},
  299. {56},
  300. {55},
  301. {54},
  302. {53},
  303. {52},
  304. {51},
  305. {50},
  306. {49},
  307. {48},
  308. {47},
  309. {46},
  310. {45},
  311. {44},
  312. {43},
  313. {41},
  314. {40},
  315. {39},
  316. {38},
  317. {37},
  318. {36},
  319. {35},
  320. {34},
  321. {33},
  322. {32},
  323. {31},
  324. {30},
  325. {29},
  326. {28},
  327. {27},
  328. {26},
  329. {25},
  330. {24},
  331. {23},
  332. {22},
  333. {21},
  334. {20},
  335. {19},
  336. {18},
  337. {17},
  338. {16},
  339. {15},
  340. {14},
  341. {13},
  342. {11},
  343. {1},
  344. {2},
  345. {290},
  346. {291},
  347. {292},
  348. {293},
  349. {294},
  350. {296},
  351. {297},
  352. {298},
  353. {299},
  354. {173},
  355. {174},
  356. {175},
  357. {102},
  358. {103},
  359. {104},
  360. {105},
  361. {106},
  362. {107},
  363. {269},
  364. {270},
  365. {271},
  366. {108},
  367. {109},
  368. {110},
  369. {114},
  370. {115},
  371. {116},
  372. {294},
  373. {142},
  374. {150},
  375. {124},
  376. {125},
  377. {126},
  378. {127},
  379. {111},
  380. {112},
  381. {113},
  382. {117},
  383. {118},
  384. {120},
  385. {247},
  386. {248},
  387. {100},
  388. {163},
  389. {164},
  390. {189},
  391. {165},
  392. {166},
  393. {187},
  394. {255},
  395. {66},
  396. {61},
  397. {70},
  398. {274},
  399. {275},
  400. {276},
  401. {71},
  402. {192},
  403. {141},
  404. {186},
  405. {147},
  406. {288},
  407. {285},
  408. {284},
  409. {283},
  410. {282},
  411. {281},
  412. {280},
  413. {265},
  414. {266},
  415. {267}
  416. };
  417.  
  418. new Infos[][] =
  419. {
  420. "INFO: OutStanding Deathmatch has started in the late January, and has been updated almost everyday!",
  421. "INFO: OutStanding's script is amazingly updated threw out the day, for all the players to enjoy the server.",
  422. "INFO: You can always find the /help command useful!",
  423. "INFO: This script is a LVDM script, ordinary scripted by Jax, and heavy modifed by iLcke",
  424. "INFO: Would you like to help OutStanding Deatmatch? Why not donate and recieve rewards that others cant have?",
  425. "INFO: We would like for you to give us suggestions for the server!",
  426. "INFO: Got a crazy idea for the server? Why not tell us, we love suggestions!",
  427. "INFO: Of course admins are needed, to be an admin, You must become a tester first!",
  428. "INFO: Using any hacks of ANY kind will get you banned."
  429. };
  430.  
  431.  
  432.  
  433.  
  434.  
  435. new gActivePlayers[MAX_PLAYERS];
  436. new gLastGaveCash[MAX_PLAYERS];
  437.  
  438.  
  439. //------------------------------------------------------------------------------------------------------
  440.  
  441. main()
  442. {
  443. print("----------------------------------");
  444. print(" Running OutStanding Deathmatch ");
  445. print("----------------------------------");
  446. print("Coded by iLcke");
  447. }
  448.  
  449. //------------------------------------------------------------------------------------------------------
  450. public OnPlayerRequestSpawn(playerid)
  451. {
  452. if (gPlayerAccount[playerid] == 0)
  453. {
  454. GameTextForPlayer(playerid, "~w~Welcome.~n~In order to play you need to create an account.", 20000, 3);
  455. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "{0084FF}Registration:", "{FFFFFF}Welcome to {FF0000}OutStanding Deathmatch{FFFFFF}. \nYou need a password for your new account.\nType it below please.", "Register", "Leave");
  456. return 1;
  457. }
  458. if (gPlayerLogged[playerid] == 0)
  459. {
  460. GameTextForPlayer(playerid, "~w~In order to play you need to login to your account~n~Type your password into the dialog.", 20000, 3);
  461. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "{0084FF}Login:", "{FFFFFF}You are already have an account here!\nType your password in below.(60 Seconds to login)", "Login", "Leave");
  462. return 1;
  463. }
  464. return 1;
  465. }
  466. //------------------------------------------------------------------------------------------------------
  467.  
  468. public MoneyGrubScoreUpdate()
  469. {
  470. new Kills;
  471. new name[MAX_PLAYER_NAME];
  472. new string[256];
  473. for(new i=0; i<MAX_PLAYERS; i++)
  474. {
  475. if (IsPlayerConnected(i))
  476. {
  477. GetPlayerName(i, name, sizeof(name));
  478. Kills = PlayerInfo[i][pKills];
  479. SetPlayerScore(i, Kills);
  480. if (Kills > CashScoreOld)
  481. {
  482. CashScoreOld = Kills;
  483. format(string, sizeof(string), "{FF0000}$$${FFFFFF} %s is in now in the lead with the most kills! {FF0000}$$$", name);
  484. SendClientMessageToAll(COLOR_YELLOW, string);
  485. }
  486. }
  487. }
  488. }
  489.  
  490. //------------------------------------------------------------------------------------------------------
  491. public OnPlayerConnect(playerid)
  492. {
  493. //SetTimer("Login", 60000, false);
  494. //Account Stuff
  495. new plname[32];
  496. blocked[playerid] = 0;
  497. gPlayerLogged[playerid] = 0;
  498. gPlayerAccount[playerid] = 0;
  499. PlayerInfo[playerid][pAdmin] = 0;
  500. PlayerInfo[playerid][pVip] = 0;
  501. PlayerInfo[playerid][pTester] = 0;
  502. PlayerInfo[playerid][pGun1] = 0;
  503. PlayerInfo[playerid][pGun2] = 0;
  504. PlayerInfo[playerid][pGun3] = 0;
  505. PlayerInfo[playerid][pGun4] = 0;
  506. PlayerInfo[playerid][pGun5] = 0;
  507. PlayerInfo[playerid][pGun6] = 0;
  508. PlayerInfo[playerid][pAmmo1] = 0;
  509. PlayerInfo[playerid][pAmmo2] = 0;
  510. PlayerInfo[playerid][pAmmo3] = 0;
  511. PlayerInfo[playerid][pAmmo4] = 0;
  512. PlayerInfo[playerid][pAmmo5] = 0;
  513. PlayerInfo[playerid][pAmmo6] = 0;
  514. PlayerInfo[playerid][pKills] = 0;
  515. PlayerInfo[playerid][pDeaths] = 0;
  516. // End Account Stuff
  517. TextDrawShowForPlayer(playerid,ODM);
  518. new IP[32];
  519. GetPlayerIp(playerid, IP, 32);
  520. new string[128], string2[128], pName[MAX_PLAYER_NAME];
  521. GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
  522. format(string,sizeof string,"[JOIN] %s(%d) has joined OutStanding Deathmatch",pName,playerid);
  523. SendClientMessageToAll(0xFFFFFFAA,string);
  524. format(string2,sizeof string,"Admin: %s has joined with ID:[{0083FC}%d{FF0000}] and IP [{0083FC}%s{FF0000]]",pName,playerid,IP);
  525. SendAdminMessage(COLOR_ERROR,string2);
  526. gActivePlayers[playerid]++;
  527. gLastGaveCash[playerid] = GetTickCount();
  528. GetPlayerName(playerid, plname, sizeof(plname));
  529. format(string, sizeof(string), "users/%s.ini", plname);
  530. SetPlayerCameraPos(playerid,1460.0, -1324.0, 287.2);
  531. SetPlayerCameraLookAt(playerid,1374.5, -1291.1, 239.0);
  532. if(fexist(string))
  533. {
  534. gPlayerAccount[playerid] = 1;
  535. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "{0084FF}Login:", "{FFFFFF}You are already have an account here!\nType your password in below.(60 Seconds to login)", "Login", "Cancel");return 1;
  536. }
  537. else
  538. {
  539. gPlayerAccount[playerid] = 0;
  540. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "{0084FF}Registration:", "{FFFFFF}Welcome to {FF0000}OutStanding Deathmatch{FFFFFF}. \nYou need a password for your new account.\nType it below please.", "Register", "Cancel");
  541. return 1;
  542. }
  543. }
  544.  
  545. //------------------------------------------------------------------------------------------------------
  546. public OnPlayerDisconnect(playerid, reason)
  547. {
  548. gActivePlayers[playerid]--;
  549. new string[64],name[MAX_PLAYER_NAME];
  550. GetPlayerName(playerid,name,MAX_PLAYER_NAME);
  551. switch(reason)
  552. {
  553. case 0: format(string,sizeof string,"%s left the server. (Timed out)",name);
  554. case 1: format(string,sizeof string,"%s left the server. (Leaving)",name);
  555. case 2: format(string,sizeof string,"%s left the server. (Kicked/Banned)",name);
  556. }
  557. SendClientMessageToAll(0xFFFFFFAA,string);
  558. return 1;
  559. }
  560. //------------------------------------------------------------------------------------------------------
  561.  
  562. public OnPlayerCommandText(playerid, cmdtext[])
  563. {
  564. new tmp[256];
  565. new string[256];
  566. new playermoney;
  567. new sendername[MAX_PLAYER_NAME];
  568. new giveplayer[MAX_PLAYER_NAME];
  569. new playername[MAX_PLAYER_NAME];
  570. new cmd[256];
  571. new giveplayerid, moneys, idx;
  572.  
  573. cmd = strtok(cmdtext, idx);
  574. //
  575. if (strcmp(cmd, "/cplate", true) == 0)
  576. {
  577. new playerstate = GetPlayerState(playerid);
  578. tmp = strtok(cmdtext,idx);
  579. if(!strlen(tmp))
  580. {
  581. SendClientMessage(playerid,COLOR_GREY,"{FF0000}USAGE: {FFFFFF}/cplate [Plate]");
  582. return 1;
  583. }
  584. if(!IsPlayerInAnyVehicle(playerid))
  585. {
  586. SendClientMessage(playerid,COLOR_GREY,"You must be in a vehicle to use this");
  587. return 1;
  588. }
  589. if(playerstate == PLAYER_STATE_PASSENGER)
  590. {
  591. SendClientMessage(playerid,COLOR_GREY,"You cannot use this as passenger!");
  592. return 1;
  593. }
  594. new Float:x, Float:y, Float:z;
  595. new carid = GetPlayerVehicleID(playerid);
  596. format(string,sizeof(string),"%s",tmp);
  597. SetVehicleNumberPlate(carid, tmp);
  598. GetPlayerPos(playerid, x, y, z);
  599. SetVehicleToRespawn(carid);
  600. SetVehiclePos(carid, z, y, z);
  601. PutPlayerInVehicle(playerid,carid,0);
  602. return 1;
  603. }
  604.  
  605. //
  606. if (strcmp(cmd, "/changepass", true)==0)
  607. {
  608. tmp = strtok(cmdtext, idx);
  609. new passlength = strlen(tmp);
  610. if(passlength > 10)
  611. {
  612. SendClientMessage(playerid, COLOR_RED, "Passwords cannot be bigger than 10 characters!");
  613. return 1;
  614. }
  615. if(passlength < 4)
  616. {
  617. SendClientMessage(playerid, COLOR_RED, "Passwords cannot be smaller than 4 charcters!");
  618. return 1;
  619. }
  620. if (gPlayerLogged[playerid] != 1)
  621. {
  622. SendClientMessage(playerid, COLOR_GRAD1, " You Are Not Logged In");
  623. return 1;
  624. }
  625. if(!strlen(tmp))
  626. {
  627. SendClientMessage(playerid, COLOR_GRAD1, "USAGE: /changepass [password]");
  628. return 1;
  629. }
  630. strmid(PlayerInfo[playerid][pPassword], tmp, 0, strlen(cmdtext), 255);
  631. format(string, sizeof(string), "Your new password is %s don't forget it", PlayerInfo[playerid][pPassword]);
  632. SendClientMessage(playerid, COLOR_YELLOW, string);
  633. OnPlayerUpdate(playerid);
  634. GetPlayerName(playerid, playername, sizeof(playername));
  635. printf("%s has changed there password to %s", playername, PlayerInfo[playerid][pPassword]);
  636. return 1;
  637. }
  638. if (strcmp(cmd, "/admins", true) == 0)
  639. {
  640. SendClientMessage(playerid, COLOR_ERROR, "Admins Online:");
  641. for(new i = 0; i <= MAX_PLAYERS; i++)
  642. {
  643. if(IsPlayerConnected(i) == 1 && PlayerInfo[i][pAdmin] >= 6 && PlayerInfo[i][pAdmin] < 1338)
  644. {
  645. GetPlayerName(i, sendername, sizeof(sendername));
  646. format(string, 256, "Admin: %s Level: %d", sendername,PlayerInfo[i][pAdmin]);
  647. SendClientMessage(playerid, COLOR_WHITE, string);
  648. }
  649. if(IsPlayerConnected(i) == 1 && PlayerInfo[i][pAdmin] >= 1 && PlayerInfo[i][pAdmin] <= 5)
  650. {
  651. GetPlayerName(i, sendername, sizeof(sendername));
  652. format(string, 256, "Moderator: %s Level: %d", sendername,PlayerInfo[i][pAdmin]);
  653. SendClientMessage(playerid, COLOR_WHITE, string);
  654. }
  655. }
  656. return 1;
  657. }
  658. //
  659. if(strcmp(cmd, "/fightstyles", true) == 0)
  660. {
  661. ShowPlayerDialog(playerid,FIGHT,DIALOG_STYLE_LIST,"{1DA100}Whats your fightin' style eh?","Normal\r\nBoxing\r\nKungfu\r\nKneehead\r\nGrabkick\r\nElbow","Fight!", "Cancle");
  662. return 1;
  663. }
  664. if(strcmp(cmd, "/help", true) == 0)
  665. {
  666. SendClientMessage(playerid,COLOR_WHITE,"{FF0000}Account Related:{FFFFFF} /accounthelp /changepassword");
  667. SendClientMessage(playerid,COLOR_WHITE,"{FF0000}General Related:{FFFFFF} /me /report /ask /vip /donate");
  668. return 1;
  669. }
  670. if(strcmp(cmd, "/accounthelp", true) == 0)
  671. {
  672. SendClientMessage(playerid,COLOR_YELLOW,"Keeping your account might be hard for some, but not for others.");
  673. SendClientMessage(playerid,COLOR_WHITE, "All you have to do is change your password often, every week or so, and do not use the same passwords as you do as on other servers");
  674. SendClientMessage(playerid,COLOR_WHITE, "Try making sure your using a different password from your other passwords from other servers, write it down some where.");
  675. SendClientMessage(playerid,COLOR_WHITE, "Do not tell no one your password, thats a big NO-NO. You might think you'd be able to trust them, You'd think again after your account has been hacked");
  676. SendClientMessage(playerid,COLOR_WHITE, "So remember, change your password every week or two, dont tell no one the password, make sure its not a password from other servers");
  677. return 1;
  678. }
  679. if(strcmp(cmd, "/pay", true) == 0)
  680. {
  681. tmp = strtok(cmdtext, idx);
  682.  
  683. if(!strlen(tmp)) {
  684. SendClientMessage(playerid, COLOR_ERROR, "USAGE: {FFFFFF}/pay [playerid] [amount]");
  685. return 1;
  686. }
  687. giveplayerid = strval(tmp);
  688.  
  689. tmp = strtok(cmdtext, idx);
  690. if(!strlen(tmp)) {
  691. SendClientMessage(playerid, COLOR_ERROR, "USAGE: {FFFFFF}/pay [playerid] [amount]");
  692. return 1;
  693. }
  694. moneys = strval(tmp);
  695.  
  696. if (IsPlayerConnected(giveplayerid)) {
  697. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  698. GetPlayerName(playerid, sendername, sizeof(sendername));
  699. playermoney = GetPlayerMoney(playerid);
  700. if (moneys > 0 && playermoney >= moneys) {
  701. AntiHack(playerid, (0 - moneys));
  702. AntiHack(giveplayerid, moneys);
  703. format(string, sizeof(string), "You have sent %s(player: %d), $%d.", giveplayer,giveplayerid, moneys);
  704. SendClientMessage(playerid, COLOR_YELLOW, string);
  705. format(string, sizeof(string), "You have recieved $%d from %s(player: %d).", moneys, sendername, playerid);
  706. SendClientMessage(giveplayerid, COLOR_YELLOW, string);
  707. printf("%s(playerid:%d) has transfered %d to %s(playerid:%d)",sendername, playerid, moneys, giveplayer, giveplayerid);
  708. }
  709. else {
  710. SendClientMessage(playerid, COLOR_ERROR, "Invalid transaction amount.");
  711. }
  712. }
  713. else {
  714. format(string, sizeof(string), "%d {FFFFFF}is not an active player", giveplayerid);
  715. SendClientMessage(playerid, COLOR_YELLOW, string);
  716. }
  717. return 1;
  718. }
  719. // Private Message System
  720. if(strcmp(cmd, "/pm", true) == 0)
  721. {
  722. tmp = strtok(cmdtext,idx);
  723. if(!strlen(tmp)) return SendClientMessage(playerid,0xFF0000FF,"USAGE: /PM (id) (message)");
  724. new id = strval(tmp);
  725. new length = strlen(cmdtext);
  726. while ((idx < length) && (cmdtext[idx] <= ' '))
  727. {
  728. idx++;
  729. }
  730. new offset = idx;
  731. new gMessage[128];
  732. while ((idx < length) && ((idx - offset) < (sizeof(gMessage) - 1)))
  733. {
  734. gMessage[idx - offset] = cmdtext[idx];
  735. idx++;
  736. }
  737. gMessage[idx - offset] = EOS;
  738. if(!strlen(gMessage)) return SendClientMessage(playerid,0xFF0000FF,"Usage: /pm (id) (message)");
  739. if(!IsPlayerConnected(id)) return SendClientMessage(playerid,0xFF0000FF,"/pm :Invalid ID");
  740. GetPlayerName(id,sendername,sizeof(sendername));
  741. GetPlayerName(playerid,playername,sizeof(playername));
  742. /*if(blocked[playerid] == playerid)
  743. {
  744. SendClientMessage(id,COLOR_RED,"ERROR: Player blocked all private messages from you!");
  745. }
  746. else*/
  747. {
  748. format(string,sizeof(string),">> %s(%i): %s",sendername,id,gMessage);
  749. SendClientMessage(playerid,0xFFD720FF,string);
  750. format(string,sizeof(string),"** %s(%i): %s",playername,playerid,gMessage);
  751. SendClientMessage(id,0xFFD720FF,string);
  752. PlayerPlaySound(id,1085,0.0,0.0,0.0);
  753. //new pmstring[256];
  754. //format(pmstring,sizeof(string),"From %s to %s : %s",playername,sendername,gMessage);
  755. //PMLog(string);
  756. }
  757. return 1;
  758. }
  759. if(strcmp(cmd,"/block",true)==0)
  760. {
  761. tmp = strtok(cmdtext,idx);
  762. if(!strlen(tmp))
  763. {
  764. SendClientMessage(playerid,COLOR_RED,"USAGE: /block [playerid]");
  765. return 1;
  766. }
  767. new blockid = strval(tmp);
  768. if(!IsPlayerConnected(blockid))
  769. {
  770. SendClientMessage(playerid,COLOR_RED,"ERROR: No such Player");
  771. return 1;
  772. }
  773. if(blocked[playerid] == blockid)
  774. {
  775. SendClientMessage(playerid,COLOR_RED,"ERROR: Player Already Blocked");
  776. return 1;
  777. }
  778. blocked[playerid] = blockid;
  779. SendClientMessage(playerid,COLOR_GREY, "Player Blocked, /unblock to unblock");
  780. return 1;
  781. }
  782. if(strcmp(cmd,"/unblock",true)==0)
  783. {
  784. tmp = strtok(cmdtext,idx);
  785. if(!strlen(tmp))
  786. {
  787. SendClientMessage(playerid,COLOR_RED,"USAGE: /unblock [playerid]");
  788. return 1;
  789. }
  790. new blockid = strval(tmp);
  791. if(!IsPlayerConnected(blockid))
  792. {
  793. SendClientMessage(playerid,COLOR_RED,"ERROR: No such Player");
  794. return 1;
  795. }
  796. if(blocked[playerid] != blockid)
  797. {
  798. SendClientMessage(playerid,COLOR_RED,"ERROR: Player Not Blocked");
  799. return 1;
  800. }
  801. blocked[playerid] = 255;
  802. SendClientMessage(playerid,COLOR_GREY, "Player Unblocked");
  803. return 1;
  804. }
  805. // End Private Message System
  806. //Admin commands
  807. //-------------------------[Makeadmin]------------------------------------------
  808. if(strcmp(cmd, "/adminize", true) == 0 || strcmp(cmd, "/makeadmin", true) == 0)
  809. {
  810. tmp = strtok(cmdtext, idx);
  811. if(!strlen(tmp))
  812. {
  813. SendClientMessage(playerid, COLOR_PURPLE, "USAGE: /makeadmin [playerid/PartOfName] [level(1-10)]");
  814. return 1;
  815. }
  816. new para1;
  817. new level;
  818. if(IsStringAName(tmp))
  819. {
  820. para1 = GetPlayerID(tmp);
  821. }
  822. else
  823. {
  824. para1 = strval(tmp);
  825. }
  826. tmp = strtok(cmdtext, idx);
  827. level = strval(tmp);
  828. if(IsPlayerAdmin(playerid))
  829. {
  830. GetPlayerName(para1, giveplayer, sizeof(giveplayer));
  831. GetPlayerName(playerid, sendername, sizeof(sendername));
  832. PlayerInfo[para1][pAdmin] = level;
  833. printf("Admin: %s has promoted %s to a level %d admin.", sendername, giveplayer, level);
  834. format(string, sizeof(string), "You have been promoted to a level %d admin by %s", level, sendername);
  835. SendClientMessage(para1, COLOR_DARKBLUE, string);
  836. format(string, sizeof(string), "You have promoted %s to a level %d admin.", giveplayer,level);
  837. SendClientMessage(playerid, COLOR_DARKBLUE, string);
  838. }
  839. else
  840. {
  841. SendClientMessage(playerid, COLOR_RED, "You are not authorized to use that command!");
  842. }
  843. return 1;
  844. }
  845.  
  846. // PROCESS OTHER COMMANDS
  847.  
  848. return SendClientMessage(playerid, COLOR_ERROR, "ERROR: {FFFFFF} That command is not in our database.");
  849. }
  850.  
  851. //------------------------------------------------------------------------------------------------------
  852.  
  853. public OnPlayerSpawn(playerid)
  854. {
  855. //
  856. //
  857. AntiHack(playerid, PocketMoney);
  858. SetPlayerInterior(playerid,0);
  859. SetPlayerRandomSpawn(playerid);
  860. TogglePlayerClock(playerid,1);
  861. return 1;
  862. }
  863.  
  864. public SetPlayerRandomSpawn(playerid)
  865. {
  866. if (iSpawnSet[playerid] == 1)
  867. {
  868. new rand = random(sizeof(gCopPlayerSpawns));
  869. SetPlayerPos(playerid, gCopPlayerSpawns[rand][0], gCopPlayerSpawns[rand][1], gCopPlayerSpawns[rand][2]); // Warp the player
  870. SetPlayerFacingAngle(playerid, 270.0);
  871. }
  872. else if (iSpawnSet[playerid] == 0)
  873. {
  874. new rand = random(sizeof(gRandomPlayerSpawns));
  875. SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]); // Warp the player
  876. }
  877. return 1;
  878. }
  879.  
  880. //------------------------------------------------------------------------------------------------------
  881. public OnPlayerDeath(playerid, killerid, reason)
  882. {
  883. new deaths = PlayerInfo[playerid][pDeaths];
  884. new kills = PlayerInfo[killerid][pKills];
  885. new playercash = PlayerInfo[playerid][pCash];
  886. if(killerid == INVALID_PLAYER_ID) {
  887. SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
  888. ResetPlayerMoney(playerid);
  889. }
  890. else
  891. {
  892. SendDeathMessage(killerid,playerid,reason);
  893. SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
  894. SetPlayerScore(playerid,GetPlayerScore(playerid)-1);
  895. PlayerInfo[playerid][pDeaths] = deaths+1;
  896. PlayerInfo[killerid][pKills] = kills+1;
  897. playercash = GetPlayerMoney(playerid);
  898. if (playercash > 0)
  899. {
  900. AntiHack(killerid, playercash);
  901. ResetPlayerMoney(playerid);
  902. }
  903. else
  904. {
  905. }
  906. }
  907. return 1;
  908. }
  909.  
  910. //------------------------------------------------------------------------------------------------------
  911. public OnPlayerRequestClass(playerid, classid)
  912. {
  913. iSpawnSet[playerid] = 0;
  914. SetupPlayerForClassSelection(playerid);
  915. return 1;
  916. }
  917.  
  918. public SetupPlayerForClassSelection(playerid)
  919. {
  920. SetPlayerInterior(playerid,10);
  921. SetPlayerPos(playerid,1951.4672,998.0838,992.8594);
  922. SetPlayerFacingAngle(playerid, 60.0);
  923. SetPlayerCameraPos(playerid,1949.6038,999.7968,993.6669);
  924. SetPlayerCameraLookAt(playerid,1951.4672,998.0838,992.8594);
  925. }
  926.  
  927. public GameModeExitFunc()
  928. {
  929. GameModeExit();
  930. }
  931.  
  932. public OnGameModeInit()
  933. {
  934. SendRconCommand(hostname);
  935. SetTimer("ServerInfo", 300000, false);
  936. SetGameModeText(scriptv);
  937. ShowPlayerMarkers(1);
  938. ShowNameTags(1);
  939. EnableStuntBonusForAll(0);
  940. for(new i = 0; i <= sizeof(Skins)-1; i++)
  941. {
  942. AddPlayerClass(Skins[i][0],1958.3783,1343.1572,1100.3746,269.1425,0,0,24,200,-1,-1);
  943. }
  944. //Vehicles
  945. AddStaticVehicleEx(446,2375.44433594,526.75347900,0.00000000,186.00000000,-1,-1,never); //Squalo
  946. AddStaticVehicleEx(446,2375.22802734,539.33471680,0.00000000,185.99853516,-1,-1,never); //Squalo
  947. AddStaticVehicleEx(452,2367.08569336,519.26226807,0.00000000,90.00000000,-1,-1,never); //Speeder
  948. AddStaticVehicleEx(452,2355.22656250,519.16680908,0.00000000,90.00000000,-1,-1,never); //Speeder
  949. AddStaticVehicleEx(473,2303.35400391,542.02569580,0.00000000,0.00000000,-1,-1,never); //Dinghy
  950. AddStaticVehicleEx(493,2345.16333008,539.72833252,0.00000000,176.00000000,-1,-1,never); //Jetmax
  951. AddStaticVehicleEx(493,2345.09887695,526.76647949,0.00000000,175.99548340,-1,-1,never); //Jetmax
  952. AddStaticVehicleEx(473,2303.14575195,534.48175049,0.00000000,0.00000000,-1,-1,never); //Dinghy
  953. AddStaticVehicleEx(473,2303.13867188,528.00451660,0.00000000,0.00000000,-1,-1,never); //Dinghy
  954. AddStaticVehicleEx(473,2302.86279297,521.98803711,0.00000000,0.00000000,-1,-1,never); //Dinghy
  955. AddStaticVehicleEx(472,2296.98779297,519.81567383,0.00000000,270.00000000,1,1,15); //Coastguard
  956. AddStaticVehicleEx(454,2283.50073242,535.98864746,0.00000000,0.00000000,-1,-1,never); //Tropic
  957. AddStaticVehicleEx(430,2287.41577148,519.00982666,0.00000000,90.00000000,-1,-1,never); //Predator
  958. AddStaticVehicleEx(427,2273.47753906,2418.91674805,10.81831264,90.00000000,-1,1,15); //Enforcer
  959. AddStaticVehicleEx(598,2265.59082031,2418.76123047,10.54187489,90.00000000,-1,1,15); //Police Car (LVPD)
  960. AddStaticVehicleEx(598,2281.61938477,2418.63696289,10.69031239,92.00000000,-1,1,15); //Police Car (LVPD)
  961. AddStaticVehicleEx(598,2251.63818359,2444.89233398,10.69031239,0.00000000,-1,1,15); //Police Car (LVPD)
  962. AddStaticVehicleEx(598,2255.71020508,2445.15332031,10.69031239,0.00000000,-1,1,15); //Police Car (LVPD)
  963. AddStaticVehicleEx(598,2259.87719727,2445.18432617,10.69031239,0.00000000,-1,1,15); //Police Car (LVPD)
  964. AddStaticVehicleEx(598,2268.35058594,2444.22167969,10.69031239,0.00000000,-1,1,15); //Police Car (LVPD)
  965. AddStaticVehicleEx(598,2273.83227539,2444.33032227,10.69031239,0.00000000,-1,1,15); //Police Car (LVPD)
  966. AddStaticVehicleEx(599,2277.65673828,2444.34863281,11.20543861,0.00000000,-1,1,15); //Police Ranger
  967. AddStaticVehicleEx(599,2281.78564453,2444.28906250,11.20543861,0.00000000,-1,1,15); //Police Ranger
  968. AddStaticVehicleEx(599,2290.87426758,2443.89941406,11.20543861,0.00000000,-1,1,15); //Police Ranger
  969. AddStaticVehicleEx(599,2295.18945312,2443.38818359,11.20543861,0.00000000,-1,1,15); //Police Ranger
  970. AddStaticVehicleEx(601,2251.19799805,2458.63500977,10.75052166,0.00000000,-1,-1,never); //S.W.A.T. Van
  971. AddStaticVehicleEx(601,2255.54418945,2458.50708008,10.75052166,0.00000000,-1,-1,never); //S.W.A.T. Van
  972. AddStaticVehicleEx(596,2260.29248047,2460.68847656,10.64031219,0.00000000,-1,1,15); //Police Car (LSPD)
  973. AddStaticVehicleEx(596,2268.94628906,2460.30834961,10.64031219,0.00000000,-1,1,15); //Police Car (LSPD)
  974. AddStaticVehicleEx(596,2273.19238281,2460.21826172,10.64031219,0.00000000,-1,1,15); //Police Car (LSPD)
  975. AddStaticVehicleEx(528,2278.15429688,2460.40820312,11.00531197,0.00000000,-1,-1,never); //FBI Truck
  976. AddStaticVehicleEx(528,2282.32885742,2460.51684570,11.00531197,0.00000000,-1,-1,never); //FBI Truck
  977. AddStaticVehicleEx(490,2251.77197266,2475.72021484,11.14043903,0.00000000,1,1,15); //FBI Rancher
  978. AddStaticVehicleEx(490,2255.67993164,2475.96118164,11.14043903,0.00000000,-1,-1,never); //FBI Rancher
  979. AddStaticVehicleEx(490,2259.91308594,2476.25903320,11.14043903,0.00000000,2,2,15); //FBI Rancher
  980. AddStaticVehicleEx(459,2157.64892578,987.89672852,10.96031284,0.00000000,-1,-1,never); //Berkley's RC Van
  981. AddStaticVehicleEx(482,2151.47729492,988.17205811,11.07031250,0.00000000,-1,-1,never); //Burrito
  982. AddStaticVehicleEx(483,2148.11914062,988.20910645,10.91590881,0.00000000,-1,-1,never); //Camper
  983. AddStaticVehicleEx(483,2145.28198242,988.24035645,10.91590881,0.00000000,-1,-1,never); //Camper
  984. AddStaticVehicleEx(422,2154.62988281,988.67431641,10.90031242,0.00000000,-1,-1,never); //Bobcat
  985. AddStaticVehicleEx(422,2142.93847656,1006.38348389,10.90031242,272.00000000,-1,-1,never); //Bobcat
  986. AddStaticVehicleEx(422,2142.87207031,1012.74682617,10.90031242,271.99951172,-1,-1,never); //Bobcat
  987. AddStaticVehicleEx(525,2108.51049805,1011.84704590,10.81031227,0.00000000,-1,-1,never); //Tow Truck
  988. AddStaticVehicleEx(525,2121.21826172,1005.38891602,10.81031227,0.00000000,-1,-1,never); //Tow Truck
  989. AddStaticVehicleEx(578,2119.70190430,958.01867676,11.56298828,0.00000000,-1,-1,never); //DFT-30
  990. AddStaticVehicleEx(418,2176.43579102,987.48486328,10.99592972,0.00000000,-1,-1,never); //Moonbeam
  991. AddStaticVehicleEx(405,2040.25927734,995.65454102,10.67187500,182.99389648,-1,-1,never); //Sentinel
  992. AddStaticVehicleEx(405,2040.30419922,1003.18341064,10.67187500,184.48773193,-1,-1,never); //Sentinel
  993. AddStaticVehicleEx(405,2040.29968262,1011.05627441,10.67187500,186.23876953,-1,-1,never); //Sentinel
  994. AddStaticVehicleEx(409,2029.62646484,979.30511475,10.74531269,88.90405273,-1,-1,never); //Stretch
  995. AddStaticVehicleEx(420,2040.22021484,987.56903076,10.52187443,181.58569336,6,1,15); //Taxi
  996. AddStaticVehicleEx(426,2278.98950195,1388.29016113,42.64031219,0.00000000,-1,-1,never); //Premier
  997. AddStaticVehicleEx(426,2295.40454102,1388.11816406,42.64031219,0.00000000,-1,-1,never); //Premier
  998. AddStaticVehicleEx(445,2282.27270508,1388.00317383,42.81031418,0.00000000,-1,-1,never); //Admiral
  999. AddStaticVehicleEx(492,2285.65136719,1387.86755371,42.72031403,0.00000000,-1,-1,never); //Greenwood
  1000. AddStaticVehicleEx(507,2289.01855469,1387.98547363,42.77031326,0.00000000,-1,-1,never); //Elegant
  1001. AddStaticVehicleEx(546,2292.28491211,1388.24267578,42.66215897,0.00000000,-1,-1,never); //Intruder
  1002. AddStaticVehicleEx(566,2328.71484375,1390.52380371,17.11874962,0.00000000,-1,-1,never); //Tahoma
  1003. AddStaticVehicleEx(400,2325.84350586,1390.51098633,10.95642281,0.00000000,-1,-1,never); //Landstalker
  1004. AddStaticVehicleEx(400,2328.70971680,1390.05346680,10.95642281,0.00000000,-1,-1,never); //Landstalker
  1005. AddStaticVehicleEx(404,2331.85693359,1389.66003418,10.65031242,0.00000000,-1,-1,never); //Perrenial
  1006. AddStaticVehicleEx(488,2308.01904297,2449.72778320,11.08531284,0.00000000,-1,-1,never); //News Chopper
  1007. AddStaticVehicleEx(497,2317.41821289,2451.16186523,11.08531284,0.00000000,-1,-1,never); //Police Maverick
  1008. AddStaticVehicleEx(417,1324.32055664,1622.87585449,9.82031631,0.00000000,-1,-1,never); //Leviathan
  1009. AddStaticVehicleEx(417,1338.98095703,1621.39282227,9.82031250,0.00000000,-1,-1,never); //Leviathan
  1010. AddStaticVehicleEx(417,1353.44873047,1620.68237305,9.82031250,0.00000000,-1,-1,never); //Leviathan
  1011. AddStaticVehicleEx(469,1323.71459961,1601.86633301,10.92031288,0.00000000,-1,-1,never); //Sparrow
  1012. AddStaticVehicleEx(469,1336.07885742,1602.48706055,10.92031288,0.00000000,-1,-1,never); //Sparrow
  1013. AddStaticVehicleEx(469,1350.11572266,1602.40405273,10.92031288,0.00000000,-1,-1,never); //Sparrow
  1014. AddStaticVehicleEx(487,1621.69995117,1524.81250000,11.06514168,0.00000000,-1,-1,never); //Maverick
  1015. AddStaticVehicleEx(487,1648.37426758,1526.65954590,11.04647255,0.00000000,-1,-1,never); //Maverick
  1016. AddStaticVehicleEx(487,1637.60205078,1526.60070801,11.06187534,0.00000000,-1,-1,never); //Maverick
  1017. AddStaticVehicleEx(487,1628.51538086,1526.15075684,11.05622768,0.00000000,-1,-1,never); //Maverick
  1018. AddStaticVehicleEx(563,1595.76086426,1636.81677246,11.70606232,0.00000000,-1,-1,never); //Raindance
  1019. AddStaticVehicleEx(563,1609.96374512,1637.66101074,11.70606232,0.00000000,-1,-1,never); //Raindance
  1020. AddStaticVehicleEx(563,1625.91516113,1637.65368652,11.70606232,0.00000000,-1,-1,never); //Raindance
  1021. AddStaticVehicleEx(519,1567.04968262,1429.50219727,11.84584427,0.00000000,-1,-1,never); //Shamal
  1022. AddStaticVehicleEx(519,1566.15441895,1408.72399902,11.84087563,0.00000000,-1,-1,never); //Shamal
  1023. AddStaticVehicleEx(519,1545.77697754,1429.26062012,11.84704971,0.00000000,-1,-1,never); //Shamal
  1024. AddStaticVehicleEx(519,1545.97680664,1406.84472656,11.85657024,0.00000000,-1,-1,never); //Shamal
  1025. AddStaticVehicleEx(519,1586.28369141,1429.84020996,11.83484650,0.00000000,-1,-1,never); //Shamal
  1026. AddStaticVehicleEx(519,1585.84240723,1447.58264160,11.83516979,0.00000000,-1,-1,never); //Shamal
  1027. AddStaticVehicleEx(519,1566.46679688,1446.99865723,11.82248402,0.00000000,-1,-1,never); //Shamal
  1028. AddStaticVehicleEx(519,1546.10937500,1447.41931152,11.83186626,0.00000000,-1,-1,never); //Shamal
  1029. AddStaticVehicleEx(553,1512.93872070,1702.08288574,13.05531216,94.17553711,-1,-1,never); //Nevada
  1030. AddStaticVehicleEx(553,1513.79077148,1732.28991699,13.05531216,94.17480469,-1,-1,never); //Nevada
  1031. AddStaticVehicleEx(577,1473.73620605,1807.97753906,11.32392311,175.97143555,-1,-1,never); //AT-400
  1032. AddStaticVehicleEx(593,1275.73693848,1329.71887207,11.37049484,269.43066406,-1,-1,never); //Dodo
  1033. AddStaticVehicleEx(593,1275.10144043,1319.25708008,11.37049484,268.98364258,-1,-1,never); //Dodo
  1034. AddStaticVehicleEx(513,1291.80541992,1279.47656250,11.60506916,0.00000000,-1,-1,never); //Stunt
  1035. AddStaticVehicleEx(512,1291.87023926,1268.46960449,11.45431232,0.00000000,-1,-1,never); //Cropdust
  1036. AddStaticVehicleEx(402,1328.83117676,1279.36340332,10.76031208,0.00000000,-1,-1,never); //Buffalo
  1037. AddStaticVehicleEx(411,1322.27282715,1279.51782227,10.62031269,0.00000000,-1,-1,never); //Infernus
  1038. AddStaticVehicleEx(451,1313.02233887,1280.26171875,10.58468437,0.00000000,-1,-1,never); //Turismo
  1039. AddStaticVehicleEx(560,1078.19262695,1358.14001465,10.62528801,0.00000000,-1,-1,never); //Sultan
  1040. AddStaticVehicleEx(562,1081.76928711,1357.87915039,10.57386208,0.00000000,-1,-1,never); //Elegy
  1041. AddStaticVehicleEx(587,1085.46276855,1357.58935547,10.63031292,0.00000000,-1,-1,never); //Euros
  1042. AddStaticVehicleEx(602,1379.58581543,1155.54833984,10.72031212,0.00000000,-1,-1,never); //Alpha
  1043. AddStaticVehicleEx(436,1398.86791992,1173.15576172,10.69830608,0.00000000,-1,-1,never); //Previon
  1044. AddStaticVehicleEx(474,1013.38482666,1975.31750488,10.72031212,0.00000000,-1,-1,never); //Hermes
  1045. AddStaticVehicleEx(491,1013.23333740,1986.61474609,10.72031212,0.00000000,-1,-1,never); //Virgo
  1046. AddStaticVehicleEx(526,1012.75927734,1996.26062012,10.67031193,0.00000000,-1,-1,never); //Fortune
  1047. AddStaticVehicleEx(517,988.89050293,2072.07568359,10.75597858,0.00000000,-1,-1,never); //Majestic
  1048. AddStaticVehicleEx(517,992.39147949,2071.56494141,10.75597858,0.00000000,-1,-1,never); //Majestic
  1049. AddStaticVehicleEx(517,985.69238281,2071.82324219,10.75597858,0.00000000,-1,-1,never); //Majestic
  1050. AddStaticVehicleEx(475,1433.79772949,2578.72387695,10.72031212,0.00000000,-1,-1,never); //Sabre
  1051. AddStaticVehicleEx(542,1413.18200684,2579.89184570,10.66371059,0.00000000,-1,-1,never); //Clover
  1052. AddStaticVehicleEx(419,1459.59167480,2578.48144531,10.75031281,0.00000000,-1,-1,never); //Esperanto
  1053. AddStaticVehicleEx(535,1419.56994629,2604.22070312,10.51187515,270.39184570,-1,-1,never); //Slamvan
  1054. AddStaticVehicleEx(536,1481.62817383,2574.46899414,10.52187538,0.00000000,-1,-1,never); //Blade
  1055. AddStaticVehicleEx(575,1425.66809082,2603.40258789,11.01877308,269.60205078,-1,-1,never); //Broadway
  1056. AddStaticVehicleEx(405,1402.65161133,2578.94287109,10.82650948,0.00000000,-1,-1,never); //Sentinel
  1057. AddStaticVehicleEx(409,1600.03747559,2672.19458008,10.75239086,0.00000000,-1,-1,never); //Stretch
  1058. AddStaticVehicleEx(421,1592.99951172,2661.71020508,10.82031250,0.00000000,-1,-1,never); //Washington
  1059. AddStaticVehicleEx(550,1610.84973145,2719.76293945,10.74309444,0.00000000,-1,-1,never); //Sunrise
  1060. AddStaticVehicleEx(550,1605.93701172,2719.66503906,10.74309444,0.00000000,-1,-1,never); //Sunrise
  1061. AddStaticVehicleEx(580,1629.97778320,2808.56420898,10.73491478,0.00000000,-1,-1,never); //Stafford
  1062. AddStaticVehicleEx(580,1637.27246094,2832.44287109,10.72783661,0.00000000,-1,-1,never); //Stafford
  1063. AddStaticVehicleEx(585,1611.05371094,2810.40747070,10.51723862,0.00000000,-1,-1,never); //Emperor
  1064. AddStaticVehicleEx(551,1660.02380371,2834.48876953,10.70031261,0.00000000,-1,-1,never); //Merit
  1065. AddStaticVehicleEx(496,1494.08251953,2839.52026367,10.60803986,0.00000000,-1,-1,never); //Blista Compact
  1066. AddStaticVehicleEx(421,2805.10742188,926.49755859,10.75000000,0.00000000,-1,-1,never); //Washington
  1067. AddStaticVehicleEx(426,2817.48779297,927.16473389,10.56999969,0.00000000,-1,-1,never); //Premier
  1068. AddStaticVehicleEx(492,2817.55615234,939.22027588,10.64999962,0.00000000,-1,-1,never); //Greenwood
  1069. AddStaticVehicleEx(580,2803.86767578,965.24615479,10.65752411,0.00000000,-1,-1,never); //Stafford
  1070. AddStaticVehicleEx(422,2707.41015625,820.07299805,10.65758991,0.00000000,-1,-1,never); //Bobcat
  1071. AddStaticVehicleEx(406,2695.48779297,838.73815918,11.15090275,0.00000000,-1,-1,never); //Dumper
  1072. AddStaticVehicleEx(486,2707.55664062,833.21710205,10.54311943,0.00000000,-1,-1,never); //Dozer
  1073. AddStaticVehicleEx(525,2523.62695312,935.71343994,10.81799889,0.00000000,-1,-1,never); //Tow Truck
  1074. AddStaticVehicleEx(600,2498.09448242,936.70989990,10.66984749,0.00000000,-1,-1,never); //Picador
  1075. AddStaticVehicleEx(554,2510.58471680,936.80572510,11.01531219,0.00000000,-1,-1,never); //Yosemite
  1076. AddStaticVehicleEx(600,2568.60961914,1038.43395996,10.66216087,0.00000000,-1,-1,never); //Picador
  1077. AddStaticVehicleEx(600,2572.33349609,1038.09716797,10.66216087,0.00000000,-1,-1,never); //Picador
  1078. AddStaticVehicleEx(600,2573.54296875,1025.48278809,10.66216087,0.00000000,-1,-1,never); //Picador
  1079. AddStaticVehicleEx(554,2578.31274414,1038.37377930,11.01531219,0.00000000,-1,-1,never); //Yosemite
  1080. AddStaticVehicleEx(554,2475.10571289,1178.19921875,11.01531219,0.00000000,-1,-1,never); //Yosemite
  1081. AddStaticVehicleEx(515,2393.73486328,992.76861572,11.97403336,0.00000000,-1,-1,never); //Roadtrain
  1082. AddStaticVehicleEx(429,2201.55859375,939.56066895,10.57031250,0.00000000,-1,-1,never); //Banshee
  1083. AddStaticVehicleEx(451,2208.72338867,938.47113037,10.58468437,0.00000000,-1,-1,never); //Turismo
  1084. AddStaticVehicleEx(555,2214.36743164,938.11944580,10.60068703,0.00000000,-1,-1,never); //Windsor
  1085. AddStaticVehicleEx(558,1995.99768066,719.61981201,10.52410412,0.00000000,-1,-1,never); //Uranus
  1086. AddStaticVehicleEx(565,1996.27636719,728.74475098,10.51224327,0.00000000,-1,-1,never); //Flash
  1087. AddStaticVehicleEx(410,1993.77270508,712.66235352,10.57030582,0.00000000,-1,-1,never); //Manana
  1088. AddStaticVehicleEx(526,2076.01440430,1242.84777832,10.52187443,0.00000000,-1,-1,never); //Fortune
  1089. AddStaticVehicleEx(517,2075.78271484,1272.77954102,10.60754108,0.00000000,-1,-1,never); //Majestic
  1090. AddStaticVehicleEx(496,2075.55883789,1317.90856934,10.45960236,0.00000000,-1,-1,never); //Blista Compact
  1091. AddStaticVehicleEx(545,2107.03637695,1396.91979980,10.77031231,0.00000000,-1,-1,never); //Hustler
  1092.  
  1093. // Textdraws
  1094. a = TextDrawCreate(-1.000000,2.000000,"---");
  1095. TextDrawUseBox(a,1);
  1096. TextDrawBoxColor(a,0x000000ff);
  1097. TextDrawTextSize(a,640.000000,-69.000000);
  1098. TextDrawAlignment(a,0);
  1099. TextDrawBackgroundColor(a,0x000000ff);
  1100. TextDrawFont(a,3);
  1101. TextDrawLetterSize(a,1.000000,12.199999);
  1102. TextDrawSetOutline(a,1);
  1103. TextDrawColor(a,0x000000ff);
  1104. TextDrawSetProportional(a,1);
  1105. TextDrawSetShadow(a,1);
  1106. //
  1107. b = TextDrawCreate(0.000000,337.000000,"---");
  1108. TextDrawUseBox(b,1);
  1109. TextDrawBoxColor(b,0x000000ff);
  1110. TextDrawTextSize(b,638.000000,-60.000000);
  1111. TextDrawAlignment(b,0);
  1112. TextDrawBackgroundColor(b,0x000000ff);
  1113. TextDrawFont(b,3);
  1114. TextDrawLetterSize(b,0.899999,15.000000);
  1115. TextDrawColor(b,0x000000ff);
  1116. TextDrawSetOutline(b,1);
  1117. TextDrawSetProportional(b,1);
  1118. TextDrawSetShadow(b,1);
  1119. //
  1120. ODM = TextDrawCreate(2.000000,426.000000,"OutStanding DeathMatch");
  1121. TextDrawAlignment(ODM,0);
  1122. TextDrawBackgroundColor(ODM,0x000000ff);
  1123. TextDrawFont(ODM,0);
  1124. TextDrawLetterSize(ODM,0.700000,2.000000);
  1125. TextDrawColor(ODM,0xffffffff);
  1126. TextDrawSetOutline(ODM,1);
  1127. TextDrawSetProportional(ODM,1);
  1128. TextDrawSetShadow(ODM,1);
  1129. // Timers
  1130. SetTimer("Info", 60000, true);
  1131. SetTimer("MoneyGrubScoreUpdate", 1000, 1);
  1132. return 1;
  1133. }
  1134.  
  1135. //==================================================================================================================//
  1136. strtok(const string[], &index)
  1137. {
  1138. new length = strlen(string);
  1139. while ((index < length) && (string[index] <= ' '))
  1140. {
  1141. index++;
  1142. }
  1143.  
  1144. new offset = index;
  1145. new result[20];
  1146. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  1147. {
  1148. result[index - offset] = string[index];
  1149. index++;
  1150. }
  1151. result[index - offset] = EOS;
  1152. return result;
  1153. }
  1154.  
  1155. //==================================================================================================================//
  1156. public OnPlayerText(playerid, text[])
  1157. {
  1158. if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_ERROR, "ERROR: {FFFFFF} Your not logged in!");
  1159. return 1;
  1160. }
  1161. //==================================================================================================================//
  1162. public OnPlayerUpdate(playerid)
  1163. {
  1164. SavePlayer(playerid);
  1165. new name[MAX_PLAYER_NAME];
  1166. new string[256];
  1167. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK)
  1168. {
  1169. format(string, sizeof(string), "{FF0000}Server: %s {FFFFFF} has been banned by: {FF0000}SYSTEM{FFFFFF} Reason: {1DA100}jetpack hacks", name);
  1170. SendClientMessageToAll(COLOR_ERROR, string);
  1171. Ban(playerid);
  1172. }
  1173. if(GetPlayerWeapon(playerid) == WEAPON_MINIGUN)
  1174. {
  1175. format(string, sizeof(string), "{FF0000}Server: %s {FFFFFF} has been banned by: {FF0000}SYSTEM{FFFFFF} Reason: {1DA100}weapon hacks(Minigun)", name);
  1176. SendClientMessageToAll(COLOR_ERROR, string);
  1177. Ban(playerid);
  1178. return 0;
  1179. }
  1180. if(GetPlayerPing(playerid) > 1000)
  1181. {
  1182. new ping = GetPlayerPing(playerid);
  1183. Kick(playerid);
  1184. format(string, sizeof(string), "{FF0000}Server: %s {FFFFFF} has been kicked by: {FF0000}SYSTEM{FFFFFF} Reason: {1DA100}%s{FFFFFF} (Max Ping: 1000)", ping);
  1185. SendClientMessageToAll(COLOR_ERROR, string);
  1186. Kick(playerid);
  1187. }
  1188. return 1;
  1189. }
  1190.  
  1191. //==================================================================================================================//
  1192. public OnVehicleStreamIn(vehicleid, forplayerid)
  1193. {
  1194. for(new i = 0; i < MAX_VEHICLES; i++)
  1195. {
  1196. SetVehicleNumberPlate(i, "KillMe");
  1197. }
  1198. return 1;
  1199. }
  1200.  
  1201. //==================================================================================================================//
  1202. public SendAdminMessage(color, string[])
  1203. {
  1204. for(new i = 0; i <= MAX_PLAYERS; i++)
  1205. {
  1206. if(IsPlayerConnected(i) == 1 && PlayerInfo[i][pAdmin] >= 1)
  1207. {
  1208. SendClientMessage(i, color, string);
  1209. }
  1210. }
  1211. return 1;
  1212. }
  1213.  
  1214. //==================================================================================================================//
  1215. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  1216. {
  1217. if(dialogid == FIGHT)
  1218. {
  1219. if(!response)
  1220. {
  1221. SendClientMessage(playerid, 0xFF0000FF, "You canceled.");
  1222. return 1;
  1223. }
  1224. switch(listitem)
  1225. {
  1226. case 0:
  1227. {
  1228. SetPlayerFightingStyle(playerid, FIGHT_STYLE_NORMAL);
  1229. SendClientMessage(playerid, COLOR_WHITE, "Congratulations! Your fighting style is now {1DA100}Normal!");
  1230. }
  1231. case 1:
  1232. {
  1233. SetPlayerFightingStyle(playerid, FIGHT_STYLE_BOXING);
  1234. SendClientMessage(playerid, COLOR_WHITE, "Congratulations! Your fighting style is now {1DA100}Boxing!");
  1235. }
  1236. case 2:
  1237. {
  1238. SetPlayerFightingStyle(playerid, FIGHT_STYLE_KUNGFU);
  1239. SendClientMessage(playerid, COLOR_WHITE, "Congratulations! Your fighting style is now {1DA100}Kungfu!");
  1240. }
  1241. case 3:
  1242. {
  1243. SetPlayerFightingStyle(playerid, FIGHT_STYLE_KNEEHEAD);
  1244. SendClientMessage(playerid, COLOR_WHITE, "Congratulations! Your fighting style is now {1DA100}Kneehead!");
  1245. }
  1246. case 4:
  1247. {
  1248. SetPlayerFightingStyle(playerid, FIGHT_STYLE_GRABKICK);
  1249. SendClientMessage(playerid, COLOR_WHITE, "Congratulations! Your fighting style is now {1DA100}Grabkick!");
  1250. }
  1251. case 5:
  1252. {
  1253. SetPlayerFightingStyle(playerid, FIGHT_STYLE_ELBOW);
  1254. SendClientMessage(playerid, COLOR_WHITE, "Congratulations! Your fighting style is now {1DA100}Elbow!");
  1255. }
  1256. }
  1257. }
  1258. if(dialogid == DIALOG_LOGIN)
  1259. {
  1260. if(response)
  1261. {
  1262. if(!strlen(inputtext))
  1263. {
  1264. SendClientMessage(playerid, COLOR_ERROR, "You must have a password!");
  1265. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "{0084FF}Login:", "{FFFFFF}You are already have an account here!\nType your password in below.(60 Seconds to login)", "Login", "Leave");
  1266. return 1;
  1267. }
  1268. new string[256];
  1269. new plname[MAX_PLAYER_NAME];
  1270. GetPlayerName(playerid, plname, sizeof(plname));
  1271. format(string, sizeof(string), "users/%s.ini", plname);
  1272. OnPlayerLogin(playerid,inputtext);
  1273. }
  1274. else
  1275. {
  1276. SendClientMessage(playerid, 0xFFFFFFFF, "You have left the server..");
  1277. Kick(playerid);
  1278. }
  1279. return 1;
  1280. }
  1281. if(dialogid == DIALOG_REGISTER)
  1282. {
  1283. if(response)
  1284. {
  1285. if(!strlen(inputtext))
  1286. {
  1287. SendClientMessage(playerid, COLOR_ERROR, "You must have a password!");
  1288. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "{0084FF}Registration:", "{FFFFFF}Welcome to {FF0000}OutStanding Deathmatch{FFFFFF}. \nYou need a password for your new account.\nType it below please.", "Register", "Leave");
  1289. return 1;
  1290. }
  1291. new string[256];
  1292. new plname[MAX_PLAYER_NAME];
  1293. GetPlayerName(playerid, plname, sizeof(plname));
  1294. format(string, sizeof(string), "users/%s.ini", plname);
  1295. new File:hFile;
  1296. hFile = fopen(string, io_append);
  1297. new var[32];//
  1298. format(var, 32, "pPassword=%s\n", inputtext);fwrite(hFile, var);
  1299. format(var, 32, "pAdmin=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
  1300. format(var, 32, "pVip=%d\n",PlayerInfo[playerid][pVip]);fwrite(hFile, var);
  1301. format(var, 32, "pTester=%d\n",PlayerInfo[playerid][pTester]);fwrite(hFile, var);
  1302. format(var, 32, "pGun1=%d\n",PlayerInfo[playerid][pGun1]);fwrite(hFile, var);
  1303. format(var, 32, "pGun2=%d\n",PlayerInfo[playerid][pGun2]);fwrite(hFile, var);
  1304. format(var, 32, "pGun3=%d\n",PlayerInfo[playerid][pGun3]);fwrite(hFile, var);
  1305. format(var, 32, "pGun4=%d\n",PlayerInfo[playerid][pGun4]);fwrite(hFile, var);
  1306. format(var, 32, "pGun5=%d\n",PlayerInfo[playerid][pGun5]);fwrite(hFile, var);
  1307. format(var, 32, "pGun6=%d\n",PlayerInfo[playerid][pGun6]);fwrite(hFile, var);
  1308. format(var, 32, "pAmmo1=%d\n",PlayerInfo[playerid][pAmmo1]);fwrite(hFile, var);
  1309. format(var, 32, "pAmmo2=%d\n",PlayerInfo[playerid][pAmmo2]);fwrite(hFile, var);
  1310. format(var, 32, "pAmmo3=%d\n",PlayerInfo[playerid][pAmmo3]);fwrite(hFile, var);
  1311. format(var, 32, "pAmmo4=%d\n",PlayerInfo[playerid][pAmmo4]);fwrite(hFile, var);
  1312. format(var, 32, "pAmmo5=%d\n",PlayerInfo[playerid][pAmmo5]);fwrite(hFile, var);
  1313. format(var, 32, "pAmmo6=%d\n",PlayerInfo[playerid][pAmmo6]);fwrite(hFile, var);
  1314. format(var, 32, "pCash=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
  1315. format(var, 32, "pKills=%d\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
  1316. format(var, 32, "pDeaths=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
  1317. fclose(hFile);
  1318. gPlayerAccount[playerid] = 1;
  1319. SendClientMessage(playerid, COLOR_YELLOW, "Registered, next time you connect login with your password");
  1320. OnPlayerLogin(playerid,inputtext);
  1321. }
  1322. else
  1323. {
  1324. SendClientMessage(playerid, 0xFFFFFFFF, "You have left the server..");
  1325. Kick(playerid);
  1326. }
  1327. }
  1328. return 1;
  1329. }
  1330.  
  1331. //====================================================================================================================//
  1332. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  1333. {
  1334. //
  1335. new playerrank[64];
  1336. if(PlayerInfo[clickedplayerid][pKills] >= 0 && PlayerInfo[clickedplayerid][pKills] <= 25) { playerrank = "Newbie"; }
  1337. else if(PlayerInfo[clickedplayerid][pKills] >= 26 && PlayerInfo[clickedplayerid][pKills] <= 50) { playerrank = "Private"; }
  1338. else if(PlayerInfo[clickedplayerid][pAdmin] >= 51 && PlayerInfo[clickedplayerid][pKills] <= 75) { playerrank = "Solider"; }
  1339. else if(PlayerInfo[clickedplayerid][pAdmin] >= 76 && PlayerInfo[clickedplayerid][pKills] <= 100) { playerrank = "Captain"; }
  1340. else if(PlayerInfo[clickedplayerid][pAdmin] >= 101 && PlayerInfo[clickedplayerid][pKills] <= 150) { playerrank = "Pro Shooter"; }
  1341. else if(PlayerInfo[clickedplayerid][pAdmin] >= 151 && PlayerInfo[clickedplayerid][pKills] <= 200) { playerrank = "Leet Shooter"; }
  1342. else if(PlayerInfo[clickedplayerid][pAdmin] >= 201 && PlayerInfo[clickedplayerid][pKills] <= 300) { playerrank = "Veteren"; }
  1343. else if(PlayerInfo[clickedplayerid][pAdmin] >= 301 && PlayerInfo[clickedplayerid][pKills] <= 400) { playerrank = "Old Veteren"; }
  1344. else { playerrank = "Newbie"; }
  1345. new PlayerName[MAX_PLAYER_NAME];
  1346. GetPlayerName(clickedplayerid, PlayerName, sizeof(PlayerName));
  1347. new string[128];
  1348. new string2[500];
  1349. format(string, sizeof(string), "{FF0000}Information on Player:{FFFFFF}%s", PlayerName);
  1350. format(string2, sizeof(string2), "{FF0000}Player Name: {FFFFFF}%s{FF0000}\nKills: {FFFFFF}%d{FF0000}\nDeaths: {FFFFFF}%d{FF0000}\nRank: {FFFFFF}%s", PlayerName,PlayerInfo[clickedplayerid][pKills],PlayerInfo[clickedplayerid][pDeaths], playerrank);
  1351. ShowPlayerDialog(playerid, 1337, DIALOG_STYLE_MSGBOX, string, string2, "Close","Close");
  1352. return 1;
  1353. }
  1354.  
  1355. //===================================================================================================================//
  1356. public Info()
  1357. {
  1358. new randMSG = random(sizeof(Infos));
  1359. SendClientMessageToAll(COLOR_YELLOW, Infos[randMSG]);
  1360. }
  1361.  
  1362. //===================================================================================================================//
  1363. public ServerInfo()
  1364. {
  1365. new serverinfo[128];
  1366. SendClientMessageToAll(COLOR_WHITE, "============================================");
  1367. format(serverinfo, sizeof(serverinfo), "{FF0000}Server:{FFFFFF} %s", servername);
  1368. SendClientMessageToAll(COLOR_RED, serverinfo);
  1369. format(serverinfo, sizeof(serverinfo), "{FF0000}Server Owner:{FFFFFF} %s", owner);
  1370. SendClientMessageToAll(COLOR_RED, serverinfo);
  1371. format(serverinfo, sizeof(serverinfo), "{FF0000}Scripters & Mappers:{FFFFFF} %s", scriptmap);
  1372. SendClientMessageToAll(COLOR_RED, serverinfo);
  1373. format(serverinfo, sizeof(serverinfo), "{FF0000}Script Verison:{FFFFFF} %s", scriptv);
  1374. SendClientMessageToAll(COLOR_RED, serverinfo);
  1375. format(serverinfo, sizeof(serverinfo), "{FF0000}Last Update:{FFFFFF} %s", lastupdate);
  1376. SendClientMessageToAll(COLOR_RED, serverinfo);
  1377. SendClientMessageToAll(COLOR_WHITE, "============================================");
  1378. return 1;
  1379. }
  1380.  
  1381. //===================================================================================================================//
  1382. //Account Stuff
  1383. public OnPlayerLogin(playerid,password[])
  1384. {
  1385. new string2[64];
  1386. new playername2[MAX_PLAYER_NAME];
  1387. GetPlayerName(playerid, playername2, sizeof(playername2));
  1388. format(string2, sizeof(string2), "users/%s.ini", playername2);
  1389. new File: file = fopen(string2, io_read);
  1390. if (file)
  1391. {
  1392. new PassData[256];
  1393. new keytmp[256], valtmp[256];
  1394. fread( file , PassData , sizeof( PassData ) );
  1395. keytmp = ini_GetKey( PassData );
  1396. if( strcmp( keytmp , "pPassword" , true ) == 0 )
  1397. {
  1398. valtmp = ini_GetValue( PassData );
  1399. strmid(PlayerInfo[playerid][pPassword], valtmp, 0, strlen(valtmp)-1, 255);
  1400. }
  1401. if(strcmp(PlayerInfo[playerid][pPassword],password, true ) == 0 )
  1402. {
  1403. new key[ 256 ] , val[ 256 ];
  1404. new Data[ 256 ];
  1405. while ( fread( file , Data , sizeof( Data ) ) )
  1406. {
  1407. key = ini_GetKey( Data );
  1408. if( strcmp( key , "pAdmin" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAdmin] = strval( val ); }
  1409. if( strcmp( key , "pVip" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pVip] = strval( val ); }
  1410. if( strcmp( key , "pTester" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pTester] = strval( val ); }
  1411. if( strcmp( key , "pGun1" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pGun1] = strval( val ); }
  1412. if( strcmp( key , "pGun2" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pGun2] = strval( val ); }
  1413. if( strcmp( key , "pGun3" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pGun3] = strval( val ); }
  1414. if( strcmp( key , "pGun4" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pGun4] = strval( val ); }
  1415. if( strcmp( key , "pGun5" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pGun5] = strval( val ); }
  1416. if( strcmp( key , "pGun6" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pGun6] = strval( val ); }
  1417. if( strcmp( key , "pAmmo1" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAmmo1] = strval( val ); }
  1418. if( strcmp( key , "pAmmo2" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAmmo2] = strval( val ); }
  1419. if( strcmp( key , "pAmmo3" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAmmo3] = strval( val ); }
  1420. if( strcmp( key , "pAmmo4" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAmmo4] = strval( val ); }
  1421. if( strcmp( key , "pAmmo5" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAmmo5] = strval( val ); }
  1422. if( strcmp( key , "pAmmo6" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAmmo6] = strval( val ); }
  1423. if( strcmp( key , "pKills" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKills] = strval( val ); }
  1424. if( strcmp( key , "pDeaths" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDeaths] = strval( val ); }
  1425. }//end while
  1426. fclose(file);//close the file after everything has been read in the while
  1427. gPlayerLogged[playerid] = 1;
  1428. ResetPlayerMoney(playerid);
  1429. format(string2, sizeof(string2), "SERVER: Welcome %s",playername2);
  1430. SendClientMessage(playerid, COLOR_WHITE,string2);
  1431. SetupPlayerForClassSelection(playerid);
  1432. KillTimer(1);
  1433. return 1;
  1434. }
  1435. else
  1436. {
  1437. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "{0084FF}Login:", "{FF0000}WRONG PASSWORD!\n{FFFFFF} Please enter your password below", "Login", "Cancel");
  1438. fclose(file);
  1439. }
  1440. }
  1441. return 1;
  1442. }
  1443.  
  1444. //====================================================================================================================//
  1445. public SavePlayer(playerid)
  1446. {
  1447. new string3[32];
  1448. new playername[128];
  1449. GetPlayerName(playerid, playername, sizeof(playername));
  1450. format(string3, sizeof(string3), "users/%s.ini", playername);
  1451. new File: pFile = fopen(string3, io_write);
  1452. if (pFile)
  1453. {
  1454. new var[32];
  1455. format(var, 32, "pPassword=%s\n", PlayerInfo[playerid][pPassword]);fwrite(pFile, var);
  1456. fclose(pFile);
  1457. new File: hFile = fopen(string3, io_append);
  1458. format(var, 32, "pAdmin=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
  1459. format(var, 32, "pVip=%d\n",PlayerInfo[playerid][pVip]);fwrite(hFile, var);
  1460. format(var, 32, "pTester=%d\n",PlayerInfo[playerid][pTester]);fwrite(hFile, var);
  1461. format(var, 32, "pGun1=%d\n",PlayerInfo[playerid][pGun1]);fwrite(hFile, var);
  1462. format(var, 32, "pGun2=%d\n",PlayerInfo[playerid][pGun2]);fwrite(hFile, var);
  1463. format(var, 32, "pGun3=%d\n",PlayerInfo[playerid][pGun3]);fwrite(hFile, var);
  1464. format(var, 32, "pGun4=%d\n",PlayerInfo[playerid][pGun4]);fwrite(hFile, var);
  1465. format(var, 32, "pGun5=%d\n",PlayerInfo[playerid][pGun5]);fwrite(hFile, var);
  1466. format(var, 32, "pGun6=%d\n",PlayerInfo[playerid][pGun6]);fwrite(hFile, var);
  1467. format(var, 32, "pAmmo1=%d\n",PlayerInfo[playerid][pAmmo1]);fwrite(hFile, var);
  1468. format(var, 32, "pAmmo2=%d\n",PlayerInfo[playerid][pAmmo2]);fwrite(hFile, var);
  1469. format(var, 32, "pAmmo3=%d\n",PlayerInfo[playerid][pAmmo3]);fwrite(hFile, var);
  1470. format(var, 32, "pAmmo4=%d\n",PlayerInfo[playerid][pAmmo4]);fwrite(hFile, var);
  1471. format(var, 32, "pAmmo5=%d\n",PlayerInfo[playerid][pAmmo5]);fwrite(hFile, var);
  1472. format(var, 32, "pAmmo6=%d\n",PlayerInfo[playerid][pAmmo6]);fwrite(hFile, var);
  1473. format(var, 32, "pCash=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
  1474. format(var, 32, "pKills=%d\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
  1475. format(var, 32, "pDeaths=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
  1476. fclose(hFile);
  1477. }
  1478. return 1;
  1479. }
  1480.  
  1481. //====================================================================================================================//
  1482. public AntiHack(playerid, amount)
  1483. {
  1484. PlayerInfo[playerid][pCash] = PlayerInfo[playerid][pCash] + amount;
  1485. ResetPlayerMoney(playerid);
  1486. GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  1487. OnPlayerUpdate(playerid);
  1488. return 1;
  1489. }
  1490.  
  1491. //====================================================================================================================//
  1492. public IsStringAName(string[])
  1493. {
  1494. for(new i = 0; i <= MAX_PLAYERS; i++)
  1495. {
  1496. if(IsPlayerConnected(i) == 1)
  1497. {
  1498. new testname[MAX_PLAYER_NAME];
  1499. GetPlayerName(i, testname, sizeof(testname));
  1500. if(strcmp(testname, string, true, strlen(string)) == 0)
  1501. {
  1502. return 1;
  1503. }
  1504. }
  1505. }
  1506. return 0;
  1507. }
  1508.  
  1509. //=====================================================================================================================//
  1510. public GetPlayerID(string[])
  1511. {
  1512. for(new i = 0; i <= MAX_PLAYERS; i++)
  1513. {
  1514. if(IsPlayerConnected(i) == 1)
  1515. {
  1516. new testname[MAX_PLAYER_NAME];
  1517. GetPlayerName(i, testname, sizeof(testname));
  1518. if(strcmp(testname, string, true, strlen(string)) == 0)
  1519. {
  1520. return i;
  1521. }
  1522. }
  1523. }
  1524. return INVALID_PLAYER_ID;
  1525. }
  1526.  
  1527. //====================================================================================================================//
  1528. forward Login(playerid);
  1529. public Login(playerid)
  1530. {
  1531. new name[MAX_PLAYER_NAME], string[128];
  1532. GetPlayerName(playerid, name, sizeof(name));
  1533. format(string, sizeof(string), "{FF0000}Server: %s {FFFFFF} has been kicked by: {FF0000}SYTEM{FFFFFF} Reason: {1DA100}AFK At Login{FFFFFF}",name);
  1534. SendClientMessageToAll(0xFFFF00AA, string);
  1535. Kick(playerid);
  1536. return 1;
  1537. }
  1538.  
  1539. //====================================================================================================================//
  1540.  
  1541. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  1542. {
  1543. new name[MAX_PLAYER_NAME], string[128];
  1544. GetPlayerName(playerid, name, sizeof(name));
  1545. if(newkeys & KEY_FIRE && oldkeys & KEY_CROUCH && IsCbugWeapon(playerid))
  1546. {
  1547. CBugged[playerid] ++;
  1548. if(CBugged[playerid] > C_BUG_TIME)
  1549. {
  1550. CBugged[playerid] = 0;
  1551. format(string,sizeof(string), "{FF0000}Server: %s {FFFFFF} has been kicked by {FF0000}SYTEM{FFFFFF} Reason: {1DA100}C-Bugging{FFFFFF}",name);
  1552. SendClientMessageToAll(0xFFFF00AA, string);
  1553. Kick(playerid);
  1554. }
  1555. }
  1556. return 1;
  1557. }
  1558.  
  1559. //====================================================================================================================//
  1560. stock ini_GetKey(line[])
  1561. {
  1562. new keyRes[256];
  1563. keyRes[0] = 0;
  1564. if ( strfind( line , "=" , true ) == -1 ) return keyRes;
  1565. strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
  1566. return keyRes;
  1567. }
  1568.  
  1569. stock ini_GetValue(line[])
  1570. {
  1571. new valRes[256];
  1572. valRes[0]=0;
  1573. if ( strfind( line , "=" , true ) == -1 ) return valRes;
  1574. strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
  1575. return valRes;
  1576. }
  1577.  
  1578. stock IsCbugWeapon(playerid)
  1579. {
  1580. new weaponID = GetPlayerWeapon(playerid);
  1581.  
  1582. if(weaponID == 22 || weaponID == 24 || weaponID == 25 || weaponID == 27)
  1583. {
  1584. return 1;
  1585. }
  1586. return 0;
  1587. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement