Guest User

s

a guest
Jul 5th, 2014
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 71.72 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_mysql>
  3. //#include <streamer>
  4. #include <foreach>
  5. #include <zcmd>
  6. #include <sscanf2>
  7.  
  8. //#if defined FILTERSCRIPT
  9.  
  10.  
  11. #define ResetMoneyBar ResetPlayerMoney
  12. #define UpdateMoneyBar GivePlayerMoney
  13. #define MAX_CHARACTER_SLOTS 4
  14. #undef MAX_PLAYERS
  15. #define MAX_PLAYERS 50
  16. #undef MAX_VEHICLES
  17. #define MAX_VEHICLES 2500
  18. #define MAX_HOUSES 2000
  19. #define MAX_BUSINESS 2000
  20. #define MAX_FACTIONS 25
  21. #define MAX_BUYABLE_VEH 2000
  22. #define MAX_VEH_MODS 12
  23. #define MAX_OWNABLE_VEH 3
  24.  
  25.  
  26.  
  27. #define sDefault_P_Cash 500
  28. #define sDEFAULT_P_Bank 10000
  29. #define sDefault_P_Skin 1
  30.  
  31. #define COLOR_WHITE 0xFFFFFFFF
  32. #define COLOR_RED 0xE60000FF
  33. #define COLOR_PURPLE 0xC84ECBFF
  34. #define COLOR_BLUE 0x0000FFFF
  35. #define COLOR_DARKGREY 0x5F5F5FFF
  36. #define COLOR_LIGHTGREEN 0x9BFF37FF
  37. #define COLOR_YELLOW 0xFFFF00FF
  38. #define WHISPER 0x8080FFDE
  39. #define GREY 0x808080FF
  40. #define SHOUT 0xFF8000DE
  41.  
  42.  
  43.  
  44.  
  45. #define AdminOnly "You are not authorized to use this command."
  46. #define HelperOnly "You must be a helper moderator to use this command."
  47.  
  48.  
  49.  
  50. //---Dialog IDS]---
  51. #define DIALOG_REGISTER_PASSWORD (1)
  52. #define DIALOG_REGISTER_EMAIL (2)
  53. #define DIALOG_LOGIN (3)
  54. #define DIALOG_MAIN_MENU (4)
  55. #define DIALOG_MAIN_MENU_OPTIONS (5)
  56. #define DIALOG_MAIN_MENU_CREATE_CHARACTER_NAME (6)
  57. #define DIALOG_MAIN_MENU_CREATE_CHARACTER_AGE (7)
  58. #define DIALOG_MAIN_MENU_CREATE_CHARACTER_SEX (8)
  59. #define DIALOG_MAIN_MENU_CREATE_CHARACTER_RELIGION (9)
  60. #define DIALOG_MAIN_MENU_CHARACTER_DELETE (10)
  61. #define DIALOG_MAIN_MENU_CHANGE_PASSWORD (11)
  62. #define DIALOG_MAIN_MENU_CHANGE_PHRASE (12)
  63. //-----------------
  64.  
  65. #define MYSQL_HOST "localhost" //This will be your mysql host.
  66. #define MYSQL_USER "root" //This will be your mysql username.
  67. #define MYSQL_DB "sampserver" //This is your database name.
  68. #define MYSQL_PASS "asd123" //This is your mysql password.
  69. //-----------------
  70.  
  71.  
  72.  
  73.  
  74. new vNames[][] = {
  75. "Landstalker",
  76. "Bravura",
  77. "Buffalo",
  78. "Linerunner",
  79. "Pereniel",
  80. "Sentinel",
  81. "Dumper",
  82. "Firetruck",
  83. "Trashmaster",
  84. "Stretch",
  85. "Manana",
  86. "Infernus",
  87. "Voodoo",
  88. "Pony",
  89. "Mule",
  90. "Cheetah",
  91. "Ambulance",
  92. "Leviathan",
  93. "Moonbeam",
  94. "Esperanto",
  95. "Taxi",
  96. "Washington",
  97. "Bobcat",
  98. "Mr Whoopee",
  99. "BF Injection",
  100. "Hunter",
  101. "Premier",
  102. "Enforcer",
  103. "Securicar",
  104. "Banshee",
  105. "Predator",
  106. "Bus",
  107. "Rhino",
  108. "Barracks",
  109. "Hotknife",
  110. "Trailer",
  111. "Previon",
  112. "Coach",
  113. "Cabbie",
  114. "Stallion",
  115. "Rumpo",
  116. "RC Bandit",
  117. "Romero",
  118. "Packer",
  119. "Monster Truck",
  120. "Admiral",
  121. "Squalo",
  122. "Seasparrow",
  123. "Pizzaboy",
  124. "Tram",
  125. "Trailer",
  126. "Turismo",
  127. "Speeder",
  128. "Reefer",
  129. "Tropic",
  130. "Flatbed",
  131. "Yankee",
  132. "Caddy",
  133. "Solair",
  134. "Berkley's RC Van",
  135. "Skimmer",
  136. "PCJ-600",
  137. "Faggio",
  138. "Freeway",
  139. "RC Baron",
  140. "RC Raider",
  141. "Glendale",
  142. "Oceanic",
  143. "Sanchez",
  144. "Sparrow",
  145. "Patriot",
  146. "Quad",
  147. "Coastguard",
  148. "Dinghy",
  149. "Hermes",
  150. "Sabre",
  151. "Rustler",
  152. "ZR-350",
  153. "Walton",
  154. "Regina",
  155. "Comet",
  156. "BMX",
  157. "Burrito",
  158. "Camper",
  159. "Marquis",
  160. "Baggage",
  161. "Dozer",
  162. "Maverick",
  163. "News Chopper",
  164. "Rancher",
  165. "FBI Rancher",
  166. "Virgo",
  167. "Greenwood",
  168. "Jetmax",
  169. "Hotring",
  170. "Sandking",
  171. "Blista Compact",
  172. "Police Maverick",
  173. "Boxville",
  174. "Benson",
  175. "Mesa",
  176. "RC Goblin",
  177. "Hotring Racer",
  178. "Hotring Racer",
  179. "Bloodring Banger",
  180. "Rancher",
  181. "Super GT",
  182. "Elegant",
  183. "Journey",
  184. "Bike",
  185. "Mountain Bike",
  186. "Beagle",
  187. "Cropdust",
  188. "Stunt",
  189. "Tanker",
  190. "RoadTrain",
  191. "Nebula",
  192. "Majestic",
  193. "Buccaneer",
  194. "Shamal",
  195. "Hydra",
  196. "FCR-900",
  197. "NRG-500",
  198. "HPV1000",
  199. "Cement Truck",
  200. "Tow Truck",
  201. "Fortune",
  202. "Cadrona",
  203. "FBI Truck",
  204. "Willard",
  205. "Forklift",
  206. "Tractor",
  207. "Combine",
  208. "Feltzer",
  209. "Remington",
  210. "Slamvan",
  211. "Blade",
  212. "Freight",
  213. "Streak",
  214. "Vortex",
  215. "Vincent",
  216. "Bullet",
  217. "Clover",
  218. "Sadler",
  219. "Firetruck",
  220. "Hustler",
  221. "Intruder",
  222. "Primo",
  223. "Cargobob",
  224. "Tampa",
  225. "Sunrise",
  226. "Merit",
  227. "Utility",
  228. "Nevada",
  229. "Yosemite",
  230. "Windsor",
  231. "Monster Truck",
  232. "Monster Truck",
  233. "Uranus",
  234. "Jester",
  235. "Sultan",
  236. "Stratum",
  237. "Elegy",
  238. "Raindance",
  239. "RC Tiger",
  240. "Flash",
  241. "Tahoma",
  242. "Savanna",
  243. "Bandito",
  244. "Freight",
  245. "Trailer",
  246. "Kart",
  247. "Mower",
  248. "Duneride",
  249. "Sweeper",
  250. "Broadway",
  251. "Tornado",
  252. "AT-400",
  253. "DFT-30",
  254. "Huntley",
  255. "Stafford",
  256. "BF-400",
  257. "Newsvan",
  258. "Tug",
  259. "Trailer",
  260. "Emperor",
  261. "Wayfarer",
  262. "Euros",
  263. "Hotdog",
  264. "Club",
  265. "Trailer",
  266. "Trailer",
  267. "Andromada",
  268. "Dodo",
  269. "RC Cam",
  270. "Launch",
  271. "Police Car (LSPD)",
  272. "Police Car (SFPD)",
  273. "Police Car (LVPD)",
  274. "Police Ranger",
  275. "Picador",
  276. "S.W.A.T. Van",
  277. "Alpha",
  278. "Phoenix",
  279. "Glendale",
  280. "Sadler",
  281. "Luggage Trailer",
  282. "Luggage Trailer",
  283. "Stair Trailer",
  284. "Boxville",
  285. "Farm Plow",
  286. "Utility Trailer"
  287. };
  288.  
  289.  
  290. enum MainAccount
  291. {
  292. mID,
  293. mPassword[20],
  294. mEmailAddress[25],
  295. mCurrentCID,
  296. mRealName[128],
  297. bool:mLoggedIn,
  298. mSuperAdmin,
  299. mSecretPhrase[28],
  300. mOriginalUsername[MAX_PLAYER_NAME],
  301. mOld_IP[20],
  302. mCharacterString[128],
  303. }
  304. new MasterAccount[MAX_PLAYERS][MainAccount];
  305.  
  306. enum PlayerCharacter
  307. {
  308. cName[MAX_PLAYER_NAME],
  309. cOwnerID,
  310. cID,
  311. cAdminLevel,
  312. Float:cX,
  313. Float:cY,
  314. Float:cZ,
  315. Float:cAngle,
  316. cWorld,
  317. cInterior,
  318. cCash,
  319. cBank,
  320. cSkin,
  321. cMask,
  322. Level,
  323. SpawnPoint,
  324. Accent,
  325. ExperiencePoints,
  326. Deaths,
  327. Kills,
  328. CellPhone,
  329. CellPhoneNumber,
  330. CellBattery,
  331. Job,
  332. CarKey1,
  333. CarKey2,
  334. CarKey3,
  335. Clothes1,
  336. Clothes2,
  337. Clothes3,
  338. ClothesUsed,
  339. CarLicense,
  340. TruckLicense,
  341. HouseKey,
  342. Business1Key,
  343. Business2Key,
  344. Faction,
  345. FactionRank,
  346. }
  347. new Character[MAX_PLAYERS][PlayerCharacter];
  348.  
  349. enum HouseData
  350. {
  351. HouseName[128],
  352. HouseOwner[24],
  353. HouseID,
  354. Float:HouseExteriorX,
  355. Float:HouseExteriorY,
  356. Float:HouseExteriorZ,
  357. Float:HouseInteriorX,
  358. Float:HouseInteriorY,
  359. Float:HouseInteriorZ,
  360. HouseInteriorID,
  361. HousePrice,
  362. HouseLocked,
  363. HouseWorld
  364. };
  365. new Houses[MAX_HOUSES][HouseData];
  366.  
  367. enum FactionData
  368. {
  369. FactionName[128],
  370. RankOne[24],
  371. RankTwo[24],
  372. RankThree[24],
  373. RankFour[24],
  374. RankFive[24],
  375. RankSix[24],
  376. RankSeven[24],
  377. Float:fSpawnX,
  378. Float:fSpawnY,
  379. Float:fSpawnZ,
  380. Float:fSpawnA,
  381. Float:fPayCheckX,
  382. Float:fPayCheckY,
  383. Float:fPayCheckZ,
  384. };
  385. new Factions[MAX_FACTIONS][FactionData];
  386.  
  387. enum _Vehicles
  388. {
  389. vModel,
  390. vColor1,
  391. vColor2,
  392. vPrice,
  393. VehicleOwner[MAX_PLAYER_NAME],
  394. Float:vPosX,
  395. Float:vPosY,
  396. Float:vPosZ,
  397. Float:vPosA,
  398. VehiclePlate[32],
  399. VehiclePaintJob,
  400. vLocked,
  401. vTrunkMoney,
  402. vTrunkMats,
  403. vTrunkCocaine,
  404. vTrunkMoonshine,
  405. vTrunkWeed,
  406. vFuel
  407. }
  408. //new Vehicles[MAX_BUYABLE_VEH][_Vehicles];
  409.  
  410.  
  411. //-------------------------------------NEW'S-------------------------------------
  412. // new VehicleID = GetPlayerVehicleId(playerid)
  413.  
  414. new Player_Name[MAX_PLAYERS][MAX_PLAYER_NAME], Player_Ip[MAX_PLAYERS][16];
  415.  
  416. //new EngineStatus[MAX_PLAYERS];
  417. //new Float:vhp;
  418. new Logged[MAX_PLAYERS];
  419. new MaskNumber[MAX_PLAYERS], MaskOn[MAX_PLAYERS], Text3D:masklabel[MAX_PLAYERS];
  420. //new Text3D:NameTag[MAX_PLAYERS];
  421. new gHandle;
  422.  
  423. //--------------FORWARDS--------------
  424.  
  425.  
  426.  
  427.  
  428. main()
  429. {
  430. print(" Blank Gamemode by your name here");
  431. }
  432.  
  433.  
  434. public OnGameModeInit()
  435. {
  436. gHandle = mysql_connect("localhost", "root", "sampserver", "");
  437. if(mysql_errno() != 0) print("Could not connect to database!");
  438.  
  439.  
  440. //Timers
  441. SetTimer("AntiCheatTimer", 1000, 1);
  442.  
  443.  
  444. ManualVehicleEngineAndLights();
  445. ShowPlayerMarkers(0);
  446. EnableStuntBonusForAll(0);
  447. DisableInteriorEnterExits();
  448. return 1;
  449. }
  450.  
  451.  
  452.  
  453.  
  454. public OnGameModeExit()
  455. {
  456. return 1;
  457. }
  458.  
  459. public OnPlayerRequestClass(playerid, classid)
  460. {
  461. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  462. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  463. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  464. return 0;
  465. }
  466.  
  467. forward AccountExists(playerid); // Checks if the master account is already registered.
  468. public AccountExists(playerid)
  469. {
  470. if(IsPlayerConnected(playerid))
  471. {
  472. new str[128];
  473. format(str, sizeof(str), "SELECT `mID` FROM `MasterAccount` WHERE `mID` = '%s'", PlayerName(playerid));
  474. mysql_query(gHandle, str);
  475. if(cache_num_rows() >=1)
  476. {
  477. return true;
  478. }
  479. }
  480. return false;
  481. }
  482.  
  483. forward MasterAccountLogin(playerid, password[]); // Login to an existing master account.
  484. public MasterAccountLogin(playerid, password[])
  485. {
  486. if(IsPlayerConnected(playerid))
  487. {
  488. if(AccountExists(playerid))
  489. {
  490. if(strlen(password) >= 1 && strlen(password) <= 20)
  491. {
  492. if(!MasterAccount[playerid][mLoggedIn])
  493. {
  494. new value[128];
  495. new query[128];
  496. format(query, sizeof(query), "SELECT * FROM `MasterAccount` WHERE `username` = '%s' AND `mPassword` = '%s' LIMIT 1", MasterAccount[playerid][mOriginalUsername] , MasterAccount[playerid][mPassword]);
  497. new Cache:result = mysql_query(gHandle, query);
  498. if(cache_num_rows() > 0)
  499. {
  500. SetPlayerColor(playerid, COLOR_LIGHTGREEN);
  501. MasterAccount[playerid][mLoggedIn] = true;
  502. cache_get_field_content(0, "password", MasterAccount[playerid][mPassword], 20);
  503. cache_get_field_content(0, "email_address", MasterAccount[playerid][mEmailAddress], 30);
  504. cache_get_field_content(0, "ip_address", MasterAccount[playerid][mOld_IP], 20);
  505. cache_get_field_content(0, "super_admin", value, 5); MasterAccount[playerid][mSuperAdmin] = strval(value);
  506. cache_get_field_content(0, "id", value, 15); MasterAccount[playerid][mID] = strval(value);
  507. ShowMenuDialog(playerid);
  508. printf("Password: %s, Email Address: %s, Last IP Used: %s, Super Admin: %d, ID: %d.", MasterAccount[playerid][mPassword], MasterAccount[playerid][mEmailAddress], MasterAccount[playerid][mOld_IP], MasterAccount[playerid][mSuperAdmin], MasterAccount[playerid][mID]);
  509. return true;
  510. }
  511. else
  512. {
  513. SetPVarInt(playerid, "LOGIN_ATTEMPTS", GetPVarInt(playerid, "LOGIN_ATTEMPTS") + 1);
  514. switch(GetPVarInt(playerid, "LOGIN_ATTEMPTS"))
  515. {
  516. case 1: ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Master Account - Login","The password you entered is incorrect.","Login","Cancel");
  517. case 2: ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Master Account - Login","The password you entered is incorrect.","Login","Cancel");
  518. case 3: ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Master Account - Login","The password you entered is incorrect.","Login","Cancel");
  519. case 4: Kick(playerid);
  520. }
  521. }
  522. cache_delete(result);
  523. }
  524. else { printf("Players already logged !"); }
  525. }
  526. else
  527. {
  528. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Master Account - Login","Account already registered, please enter your password to continue.","Login","Cancel");
  529. }
  530. } else { printf("Accounts doesn't exits !"); }
  531. }
  532. else { print("Players didn't connected !"); }
  533. return false;
  534. }
  535.  
  536. forward MasterAccountRegister(playerid); // Register a new Master Account if name not already in use.
  537. public MasterAccountRegister(playerid)
  538. {
  539. if(!AccountExists(playerid))
  540. {
  541. new Query[300];
  542. mysql_format(gHandle, Query, sizeof (Query), "INSERT INTO Master (username,password,email_address,ip_address,super_admin,old_ip) VALUES ('%e' , '%e', '%e', '%e', 0, 'UNKNOWN')", PlayerName(playerid), GetPVarStringEx(playerid, "TEMP_PASSWORD"), GetPVarStringEx(playerid, "TEMP_EMAIL"), GetPlayerIPEx(playerid));
  543. mysql_query(gHandle, Query, false);
  544. DeletePVar(playerid,"TEMP_EMAIL");
  545. DeletePVar(playerid,"TEMP_PASSWORD");
  546. return true;
  547. }
  548. return false;
  549. }
  550.  
  551.  
  552. forward ResetMasterAccountVariables(playerid); // Resetting variables upon connection.
  553. public ResetMasterAccountVariables(playerid)
  554. {
  555. strmid(MasterAccount[playerid][mPassword], "", 128, 128);
  556. strmid(MasterAccount[playerid][mEmailAddress], "", 128, 128);
  557. MasterAccount[playerid][mCurrentCID] = -1; // 0 = no character in use.
  558. MasterAccount[playerid][mID] = 0;
  559. strmid(MasterAccount[playerid][mRealName], "", 128, 128);
  560. MasterAccount[playerid][mSuperAdmin] = 0; // Not super-administrator.
  561. strmid(MasterAccount[playerid][mSecretPhrase], "", 128, 128);
  562. strmid(MasterAccount[playerid][mOriginalUsername], "", 128, 128);
  563. strmid(MasterAccount[playerid][mOld_IP], "", 128, 128);
  564. MasterAccount[playerid][mLoggedIn] = false; // Not logged in.
  565.  
  566.  
  567. MasterAccount[playerid][mPassword][0] = MasterAccount[playerid][mEmailAddress][0] = MasterAccount[playerid][mRealName][0] = MasterAccount[playerid][mSecretPhrase][0] = MasterAccount[playerid][mOriginalUsername][0] = MasterAccount[playerid][mOld_IP][0] = 0;
  568.  
  569. }
  570.  
  571. forward SaveCharacter(playerid);
  572. public SaveCharacter(playerid)
  573. {
  574. if(AccountExists(playerid))
  575. {
  576. if(MasterAccount[playerid][mLoggedIn])
  577. {
  578. new query[1024], pname[24];
  579. GetPlayerName(playerid, pname, 24);
  580. format(query, sizeof(query), "UPDATE PlayerCharacter SET cName=%s, cOwnerID=%d, Level=%d, cAdminLevel=%d, cCash=%d, cBank=%d, cMask=%d, ExperiencePoints=%d, SpawnPoint=%d, CellPhone=%d, CellPhoneNumber=%d, Accent=%s, CellBattery=%d, Job=%d, cID=%d, Deaths=%d, Kills=%d, CarKey1=%d, CarKey2=%d, CarKey3=%d, Clothes1=%d, Clothes2=%d, Clothes3=%d, ClothesUsed=%d, CarLicense=%d, HouseKey=%d, Business1Key=%d, Business2Key=%d, Faction=%d, FactionRank=%d WHERE Username='%s'", // <----572
  581. Character[playerid][cName],
  582. Character[playerid][cOwnerID],
  583. Character[playerid][cID],
  584. Character[playerid][cAdminLevel],
  585. /* Character[playerid][Float:cX],
  586. Character[playerid][Float:cY],
  587. Character[playerid][Float:cZ],
  588. Character[playerid][Float:cAngle],
  589. Character[playerid][cWorld],
  590. Character[playerid][cInterior],*/
  591. Character[playerid][cCash],
  592. Character[playerid][cBank],
  593. Character[playerid][cSkin],
  594. Character[playerid][cMask],
  595. Character[playerid][Level],
  596. Character[playerid][SpawnPoint],
  597. Character[playerid][Accent],
  598. Character[playerid][ExperiencePoints],
  599. Character[playerid][Deaths],
  600. Character[playerid][Kills],
  601. Character[playerid][CellPhone],
  602. Character[playerid][CellPhoneNumber],
  603. Character[playerid][CellBattery],
  604. Character[playerid][Job],
  605. Character[playerid][CarKey1],
  606. Character[playerid][CarKey2],
  607. Character[playerid][CarKey3],
  608. Character[playerid][Clothes1],
  609. Character[playerid][Clothes2],
  610. Character[playerid][Clothes3],
  611. Character[playerid][ClothesUsed],
  612. Character[playerid][CarLicense],
  613. Character[playerid][HouseKey],
  614. Character[playerid][Business1Key],
  615. Character[playerid][Business2Key],
  616. Character[playerid][Faction],
  617. Character[playerid][FactionRank]);
  618. mysql_query(1, query);
  619. /*
  620. format(query, sizeof(query), "UPDATE PlayerCharacter SET Clothes1=%d, Clothes2=%d, Clothes3=%d, ClothesUsed=%d, CarLicense=%d, TruckLicense=%d, HouseKey=%d, Business1Key=%d, Business2Key=%d, Faction=%d, FactionRank=%d, WHERE Username='%s'",
  621. Character[playerid][Clothes1],
  622. Character[playerid][Clothes2],
  623. Character[playerid][Clothes3],
  624. Character[playerid][ClothesUsed],
  625. Character[playerid][CarLicense],
  626. Character[playerid][TruckLicense],
  627. Character[playerid][HouseKey],
  628. Character[playerid][Business1Key],
  629. Character[playerid][Business2Key],
  630. Character[playerid][Faction],
  631. Character[playerid][FactionRank],
  632. pname);
  633. mysql_query(1, query);*/
  634.  
  635.  
  636. return true;
  637. }
  638. }
  639. return false;
  640. }
  641.  
  642. forward ShowMenuDialog(playerid);
  643. public ShowMenuDialog(playerid)
  644. {
  645. //new count = 0; // , CharacterName[MAX_PLAYER_NAME];
  646. format(MasterAccount[playerid][mCharacterString], 128, ""); // Resetting Character list string, because reading text from list is impossible.
  647. if(MasterAccount[playerid][mLoggedIn])
  648. {
  649. new str[128];
  650. format(str, sizeof(str), "SELECT * FROM `PlayerCharacter` WHERE ( `owner_id` = '%d' )", MasterAccount[playerid][mID]);
  651. new Cache:result = mysql_query(gHandle, str);
  652. if(cache_num_rows() <= 0)
  653. {
  654. ShowPlayerDialog(playerid, DIALOG_MAIN_MENU, DIALOG_STYLE_LIST, "Main Menu - Character Selection", "No characters available.", "Spawn", "Options");
  655. }
  656. else
  657. {
  658. for(new a;a<cache_num_rows();a++)
  659. {
  660. new test[128];
  661. cache_get_field_content(a, "name", test); //CharacterName, MAX_PLAYER_NAME);
  662. if(a == (cache_num_rows() - 1)) { format( MasterAccount[playerid][mCharacterString], 128, "%s ", test); /*RemoveUnderScore(CharacterName)*//*%s*/ }
  663. else
  664. {
  665. format( MasterAccount[playerid][mCharacterString], 128, "%s\n ", test); /*RemoveUnderScore(CharacterName)*//*%s*/
  666. }
  667. //db_next_row(qresult);
  668. }
  669. if(strlen(MasterAccount[playerid][mCharacterString]) >= 1) { ShowPlayerDialog(playerid, DIALOG_MAIN_MENU, DIALOG_STYLE_LIST, "Main Menu - Character Selection", MasterAccount[playerid][mCharacterString], "Spawn", "Options"); }
  670. }
  671. cache_delete(result);
  672. }
  673. }
  674.  
  675.  
  676. forward ResetPlayerCharacterVariables(playerid);
  677. public ResetPlayerCharacterVariables(playerid)
  678. {
  679. strmid(Character[playerid][cName], "", 128, 128);
  680. Character[playerid][cID] = -1;
  681. Character[playerid][cOwnerID] = -1;
  682. Character[playerid][cAdminLevel] = 0;
  683. ResetPlayerCash(playerid);
  684. Character[playerid][cBank] = 0;
  685. Character[playerid][cSkin] = 0;
  686. Character[playerid][cMask] = 0;
  687. Character[playerid][Level] = 0;
  688. Character[playerid][SpawnPoint] = 0;
  689. Character[playerid][Accent] = 0;
  690. Character[playerid][ExperiencePoints] = 0;
  691. Character[playerid][Deaths] = 0;
  692. Character[playerid][Kills] = 0;
  693. Character[playerid][CellPhone] = 0;
  694. Character[playerid][CellPhoneNumber] = 0;
  695. Character[playerid][CellBattery] = 0;
  696. Character[playerid][Job] = 0;
  697. Character[playerid][CarKey1] = 0;
  698. Character[playerid][CarKey2] = 0;
  699. Character[playerid][CarKey3] = 0;
  700. Character[playerid][Clothes1] = 0;
  701. Character[playerid][Clothes2] = 0;
  702. Character[playerid][Clothes3] = 0;
  703. Character[playerid][ClothesUsed] = 0;
  704. Character[playerid][CarLicense] = 0;
  705. Character[playerid][TruckLicense] = 0;
  706. Character[playerid][HouseKey] = 0;
  707. Character[playerid][Business1Key] = 0;
  708. Character[playerid][Business2Key] = 0;
  709. Character[playerid][Faction] = 0;
  710. Character[playerid][FactionRank] = 0;
  711.  
  712.  
  713. //Character[playerid][cNameLabel] = -1; // Set to null, i'm not sure as what the invalid ID is but i assume it's -1.
  714. }
  715.  
  716. forward PlayerCharacterCount(playerid);
  717. public PlayerCharacterCount(playerid)
  718. {
  719. new count;
  720. if(IsPlayerConnected(playerid))
  721. {
  722. if(MasterAccount[playerid][mLoggedIn])
  723. {
  724. new query[128];
  725. format(query, sizeof(query), "SELECT * FROM `MasterAccount` WHERE owner_id=%d", MasterAccount[playerid][mID]);
  726. mysql_query(1, query);
  727. count = cache_get_row_count(count);
  728.  
  729. }
  730. }
  731. return count;
  732. }
  733.  
  734.  
  735.  
  736.  
  737.  
  738. forward CharacterID(charactername[]); // Returns the character ID of the desired name.
  739. public CharacterID(charactername[])
  740. {
  741. new otherid[11], id, query[128];
  742. format(query, sizeof(query), "SELECT * FROM `Character` WHERE name=%s LIMIT 1", charactername);
  743. mysql_query(gHandle, query);
  744. if(cache_num_rows() > 0)
  745. {
  746. cache_get_field_content(0, "id", otherid, 11);
  747. id = strval(otherid);
  748. }
  749. return id;
  750. }
  751.  
  752.  
  753. forward CharacterExists(charactername[]); // Checks if the character exists by name.
  754. public CharacterExists(charactername[])
  755. {
  756. new query[128];
  757. format(query, sizeof(query), "SELECT * FROM `Character` WHERE name=%s", charactername);
  758. mysql_query(gHandle, query);
  759. if(cache_num_rows() >= 1)
  760. {
  761. return true;
  762. }
  763. return false;
  764. }
  765.  
  766.  
  767. forward SpawnedAsCharacter(playerid);
  768. public SpawnedAsCharacter(playerid)
  769. {
  770. if(IsPlayerConnected(playerid))
  771. {
  772. if(MasterAccount[playerid][mLoggedIn])
  773. {
  774. if(Character[playerid][cID] != -1) return true;
  775. }
  776. }
  777. return false;
  778. }
  779.  
  780. forward CreateCharacter(playerid, charactername[],playercash, playerbank, playerskin); // Creates a character.
  781. public CreateCharacter(playerid, charactername[], playercash, playerbank, playerskin)
  782. {
  783. if(AccountExists(playerid)) // Checking if master account exists.
  784. {
  785. if(MasterAccount[playerid][mLoggedIn]) // Checking if players logged in.
  786. {
  787. if(!CharacterExists(charactername)) // Continue if character does not exist.
  788. {
  789. if(PlayerCharacterCount(playerid) <= MAX_CHARACTER_SLOTS) // Checking if player has went over his character limit.
  790. {
  791. if(strlen(charactername) >= 1)
  792. {/*
  793. new query[256];
  794. format(query, sizeof(query), "INSERT INTO `PlayerCharacter` cName=%s, cOwnerID=%d, Level=%d, cAdminLevel=%d, cCash=%d, cBank=%d, cMask=%d, ExperiencePoints=%d, SpawnPoint=%d, CellPhoneNumber=%d, Accent='%s', CellBattery=%d, Job=%d, cID=%d, Deaths=%d, Kills=%d, CarKey1=%d, CarKey2=%d, CarKey3=%d WHERE Username='%s'",
  795. */
  796. new query[1024], pname[24];
  797. GetPlayerName(playerid, pname, 24);
  798. format(query, sizeof(query), "INSERT INTO PlayerCharacter SET cName=%s, cOwnerID=%d, Level=%d, cAdminLevel=%d, cCash=%d, cBank=%d, cMask=%d, ExperiencePoints=%d, SpawnPoint=%d, CellPhone=%d, CellPhoneNumber=%d, Accent=%s, CellBattery=%d, Job=%d, cID=%d, Deaths=%d, Kills=%d, CarKey1=%d, CarKey2=%d, CarKey3=%d, Clothes1=%d, Clothes2=%d, Clothes3=%d, ClothesUsed=%d, CarLicense=%d, HouseKey=%d, Business1Key=%d, Business2Key=%d, Faction=%d, FactionRank=%d WHERE Username='%s'", // <----572
  799. Character[playerid][cName],
  800. Character[playerid][cOwnerID],
  801. Character[playerid][cID],
  802. Character[playerid][cAdminLevel],
  803. Character[playerid][cCash],
  804. Character[playerid][cBank],
  805. Character[playerid][cSkin],
  806. Character[playerid][cMask],
  807. Character[playerid][Level],
  808. Character[playerid][SpawnPoint],
  809. Character[playerid][Accent],
  810. Character[playerid][ExperiencePoints],
  811. Character[playerid][Deaths],
  812. Character[playerid][Kills],
  813. Character[playerid][CellPhone],
  814. Character[playerid][CellPhoneNumber],
  815. Character[playerid][CellBattery],
  816. Character[playerid][Job],
  817. Character[playerid][CarKey1],
  818. Character[playerid][CarKey2],
  819. Character[playerid][CarKey3],
  820. Character[playerid][Clothes1],
  821. Character[playerid][Clothes2],
  822. Character[playerid][Clothes3],
  823. Character[playerid][ClothesUsed],
  824. Character[playerid][CarLicense],
  825. Character[playerid][HouseKey],
  826. Character[playerid][Business1Key],
  827. Character[playerid][Business2Key],
  828. Character[playerid][Faction],
  829. Character[playerid][FactionRank]);
  830. mysql_query(gHandle, query, false);
  831.  
  832.  
  833.  
  834. //MasterAccount[playerid][mID]);
  835. //mysql_query(1, query);
  836. format(query, sizeof(query), "Your character ID = %d.", Character[playerid][cID]);
  837. SendClientMessage(playerid, COLOR_WHITE, query);
  838. return true;
  839.  
  840.  
  841. //"INSERT INTO `PlayerCharacter` (`admin_level`,`cash`,`sex`,`age`,`bank`,`skin`,`religion`,`name`,`owner_id`) VALUES ( 0, %d, %d, %d, %d, %d, %d, '%s', %d)"
  842. }
  843. else
  844. {
  845. ShowPlayerDialog(playerid,DIALOG_MAIN_MENU_CREATE_CHARACTER_NAME,DIALOG_STYLE_INPUT,"Master Account - New Character","You left the character name field blank.\n(Firstname Lastname format).","Continue","Go Back");
  846. }
  847. }
  848. else
  849. {
  850. ShowMenuDialog(playerid);
  851. SendClientMessage(playerid, COLOR_RED, "[I:] You have exceeded your character limit, and cannot create a new character.");
  852. }
  853. }
  854. else
  855. {
  856. ShowPlayerDialog(playerid,DIALOG_MAIN_MENU_CREATE_CHARACTER_NAME,DIALOG_STYLE_INPUT,"Master Account - New Character","That character name already exists, choose another.\n(Firstname Lastname format).","Continue","Go Back");
  857. }
  858. }
  859. }
  860. return false;
  861. }
  862.  
  863.  
  864. forward DespawnCharacter(playerid); // Despawns the character if it's spawnted.
  865. public DespawnCharacter(playerid) // Force character selection is bugged, so we make the illusion it's going to character selection.
  866. {
  867. if(IsPlayerConnected(playerid))
  868. {
  869. if(MasterAccount[playerid][mLoggedIn])
  870. {
  871. if(SpawnedAsCharacter(playerid)) // Making sure a character slot is in use.
  872. {
  873. SaveCharacter(playerid);
  874. TogglePlayerControllable(playerid, 0);
  875. SetPlayerPos(playerid,1518.5189,-1084.0756,33.3984);
  876. SetPlayerCameraPos(playerid, 2126.0251,1283.9984,63.0858);
  877. SetPlayerCameraLookAt(playerid,92178.8748,1285.5367,39.5399);
  878. ResetPlayerCharacterVariables(playerid);
  879. MasterAccount[playerid][mCurrentCID] = -1;
  880. ShowMenuDialog(playerid);
  881. SetPlayerColor(playerid, COLOR_DARKGREY); // Character selection.
  882. return true;
  883. }
  884. }
  885. }
  886. return false;
  887. }
  888.  
  889. forward PlayerOwnsCharacter_Name(playerid, charactername[]);
  890. public PlayerOwnsCharacter_Name(playerid, charactername[])
  891. {
  892. if(IsPlayerConnected(playerid))
  893. {
  894. if(MasterAccount[playerid][mLoggedIn])
  895. {
  896. new query[128];
  897. format(query, sizeof(query), "SELECT * FROM `Character` WHERE ( `name` = '%s' AND `owner_id` = '%d' )", charactername, MasterAccount[playerid][mID]);
  898. mysql_query(gHandle, query);
  899. if(cache_num_rows() >= 1)
  900. {
  901. return true;
  902. }
  903. }
  904. }
  905. return false;
  906. }
  907.  
  908. forward PlayerOwnsCharacter_ID(playerid, id);
  909. public PlayerOwnsCharacter_ID(playerid, id)
  910. {
  911. if(IsPlayerConnected(playerid))
  912. {
  913. if(MasterAccount[playerid][mLoggedIn])
  914. {
  915. new query[128];
  916. format(query, sizeof(query), "SELECT * FROM `Character` WHERE ( `id` = '%d' AND `owner_id` = '%d' )", id, MasterAccount[playerid][mID]);
  917. mysql_query(gHandle, query);
  918. if(cache_num_rows() >= 1)
  919. {
  920. return true;
  921. }
  922. }
  923. }
  924. return false;
  925. }
  926.  
  927. forward LoadCharacter(playerid, charactername[]); // Load character.
  928. public LoadCharacter(playerid, charactername[])
  929. {
  930. new count = 0, value[128];
  931. if(IsPlayerConnected(playerid))
  932. {
  933. if(MasterAccount[playerid][mLoggedIn])
  934. {
  935. count = PlayerCharacterCount(playerid);
  936. if(count >= 1 && count <= MAX_CHARACTER_SLOTS)
  937. {
  938. if(CharacterExists(charactername))
  939. {
  940. MasterAccount[playerid][mCurrentCID] = CharacterID(charactername);
  941. if(MasterAccount[playerid][mCurrentCID] != -1)
  942. {
  943. new query[256];
  944. new temp[128];
  945. format(query, sizeof(query), "SELECT * FROM `PlayerCharacter` WHERE ( `id` = '%d' )", MasterAccount[playerid][mCurrentCID]);
  946. mysql_query(gHandle, query);
  947. Character[playerid][cID] = MasterAccount[playerid][mCurrentCID];
  948. cache_get_field_content(0, "cName", temp); Character[playerid][cName] = strval(value); /*(qresult, "admin_level", value, 11);*/
  949. cache_get_field_content(0, "cOwnerID", value, 11); Character[playerid][cOwnerID] = strval(value);
  950. cache_get_field_content(0, "cID", value, 11); Character[playerid][cID] = strval(value);
  951. cache_get_field_content(0, "cAdminLevel", value, 11); Character[playerid][cAdminLevel] = strval(value);
  952. cache_get_field_content(0, "cCash", value, 11); Character[playerid][cCash] = strval(value);
  953. cache_get_field_content(0, "cBank", value, 11); Character[playerid][cBank] = strval(value);
  954. cache_get_field_content(0, "cSkin", value, 11); Character[playerid][cSkin] = strval(value);
  955. cache_get_field_content(0, "cMask", value, 11); Character[playerid][cMask] = strval(value);
  956. cache_get_field_content(0, "Level", value, 11); Character[playerid][Level] = strval(value);
  957. cache_get_field_content(0, "SpawnPoint", value, 11); Character[playerid][SpawnPoint] = strval(value);
  958. cache_get_field_content(0, "Accent", value, 11); Character[playerid][Accent] = strval(value);
  959. cache_get_field_content(0, "ExperiencePoints", value, 11); Character[playerid][ExperiencePoints] = strval(value);
  960. cache_get_field_content(0, "Deaths", value, 11); Character[playerid][Deaths] = strval(value);
  961. cache_get_field_content(0, "Kills", value, 11); Character[playerid][Kills] = strval(value);
  962. cache_get_field_content(0, "CellPhone", value, 11); Character[playerid][CellPhone] = strval(value);
  963. cache_get_field_content(0, "CellPhoneNumber", value, 11); Character[playerid][CellPhoneNumber] = strval(value);
  964. cache_get_field_content(0, "CellBattery", value, 11); Character[playerid][CellBattery] = strval(value);
  965. cache_get_field_content(0, "Job", value, 11); Character[playerid][Job] = strval(value);
  966. cache_get_field_content(0, "CarKey1", value, 11); Character[playerid][CarKey1] = strval(value);
  967. cache_get_field_content(0, "CarKey2", value, 11); Character[playerid][CarKey2] = strval(value);
  968. cache_get_field_content(0, "CarKey2", value, 11); Character[playerid][CarKey3] = strval(value);
  969. cache_get_field_content(0, "Clothes1", value, 11); Character[playerid][Clothes1] = strval(value);
  970. cache_get_field_content(0, "Clothes2", value, 11); Character[playerid][Clothes2] = strval(value);
  971. cache_get_field_content(0, "Clothes3", value, 11); Character[playerid][Clothes3] = strval(value);
  972. cache_get_field_content(0, "ClothesUsed", value, 11); Character[playerid][ClothesUsed] = strval(value);
  973. cache_get_field_content(0, "CarLicense", value, 11); Character[playerid][CarLicense] = strval(value);
  974. cache_get_field_content(0, "TruckLicense", value, 11); Character[playerid][TruckLicense] = strval(value);
  975. cache_get_field_content(0, "HouseKey", value, 11); Character[playerid][HouseKey] = strval(value);
  976. cache_get_field_content(0, "Business1Key", value, 11); Character[playerid][Business1Key] = strval(value);
  977. cache_get_field_content(0, "Business2Key", value, 11); Character[playerid][Business2Key] = strval(value);
  978. cache_get_field_content(0, "Faction", value, 11); Character[playerid][Faction] = strval(value);
  979. cache_get_field_content(0, "FactionRank", value, 11); Character[playerid][FactionRank] = strval(value);
  980. format(Character[playerid][cName], MAX_PLAYER_NAME, charactername);
  981.  
  982. SetTimerEx("StartTimer", 1000, 0, "i", playerid);
  983. SpawnPlayer(playerid);
  984. SetPlayerVirtualWorld(playerid, Character[playerid][cWorld]);
  985. SetPlayerInterior(playerid, Character[playerid][cInterior]);
  986. SetPlayerCash(playerid, Character[playerid][cCash]);
  987. new str[128];
  988. format(str, sizeof(str), "You have successfully spawned as %s - (/logout to return to character selection).", RemoveUnderScore(Character[playerid][cName]));
  989. SendClientMessage(playerid, COLOR_WHITE, str);
  990. SetPlayerColor(playerid, COLOR_WHITE);// White = character spawned.
  991. }
  992. else
  993. {
  994. SendClientMessage(playerid, COLOR_RED, "ERROR");
  995. Kick(playerid);
  996. }
  997. }
  998. }
  999. }
  1000. }
  1001. return count;
  1002. }
  1003.  
  1004. public OnPlayerConnect(playerid)
  1005. {
  1006. //new query[128];
  1007. GetPlayerName(playerid, Player_Name[playerid], MAX_PLAYER_NAME);
  1008. GetPlayerIp(playerid, Player_Ip[playerid], 16);
  1009.  
  1010. //mysql_format(1, query, sizeof(query),"SELECT `mPassword`, `ID` FROM `MasterAccount` WHERE `mOriginalUsername` = '%e' LIMIT 1", Player_Name[playerid]);
  1011. //mysql_tquery(1, query, "OnAccountCheck", "i", playerid);
  1012.  
  1013. // -------------------------- [ RESETTING VARIABLES ] ----------------------------
  1014. ResetPlayerCharacterVariables(playerid);
  1015. ResetMasterAccountVariables(playerid);
  1016.  
  1017. //-----------------------------[STARTUP CAMERA POS]-------------------------------
  1018. SetPlayerColor(playerid, COLOR_DARKGREY);
  1019. SetPlayerCameraPos(playerid, 2126.0251,1283.9984,63.0858);
  1020. SetPlayerCameraLookAt(playerid,92178.8748,1285.5367,39.5399);
  1021.  
  1022. if(AccountExists(playerid))
  1023. {
  1024. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Master Account - Login","Account already registered, please enter your password to continue.","Login","Cancel");
  1025. }
  1026. else
  1027. {
  1028. ShowPlayerDialog(playerid,DIALOG_REGISTER_PASSWORD,DIALOG_STYLE_INPUT,"Master Account Registration - Step One","Password:\n( No more or less than 20 characters )","Continue","Cancel");
  1029. }
  1030. ClearScreen(playerid);
  1031. SendClientMessage(playerid, COLOR_WHITE, "Welcome!");
  1032. return 1;
  1033. }
  1034.  
  1035. forward StartTimer(playerid);
  1036. public StartTimer(playerid)
  1037. {
  1038. new Text:JoinText;
  1039. new joinmsg[256];
  1040. if(MasterAccount[playerid][mLoggedIn] && Character[playerid][cAdminLevel] >= 1)
  1041. {
  1042. format(joinmsg, sizeof(joinmsg), "%s has joined the Server. {FFFFFF}IP: -To be done- ID: %d.", RemoveUnderScore(playerid), playerid); /*{FFFFFF}IP: %s GetIP(playerid), */
  1043. SendToAdmins(COLOR_RED, joinmsg, 0);
  1044. SendToAdmins(COLOR_RED, joinmsg, 1);
  1045. }
  1046. TextDrawHideForPlayer(playerid, JoinText);
  1047. // if(Player[playerid][RegistrationStep] == 0)
  1048. {
  1049. if(Character[playerid][SpawnPoint] == 1) //North Caravan Park
  1050. {
  1051. TogglePlayerSpectating(playerid, false);
  1052. if(Character[playerid][ClothesUsed] == 1)
  1053. {
  1054. SetSpawnInfo(playerid, 0, Character[playerid][Clothes1], 765.9069,361.9311,20.8550,174.3097, 0, 0, 0, 0, 0, 0);
  1055. SpawnPlayer(playerid);
  1056.  
  1057. if(Character[playerid][Faction] == 1)
  1058. {
  1059. SetPlayerArmour(playerid, 100);
  1060. }
  1061. if(Character[playerid][Faction] == 2)
  1062. {
  1063. GivePlayerWeapon(playerid, 42, 99999);
  1064. }
  1065. SetPlayerArmedWeapon(playerid, 0);
  1066. }
  1067. else if(Character[playerid][ClothesUsed] == 2)
  1068. {
  1069. SetSpawnInfo(playerid, 0, Character[playerid][Clothes2], 765.9069,361.9311,20.8550,174.3097, 0, 0, 0, 0, 0, 0);
  1070. SpawnPlayer(playerid);
  1071.  
  1072. if(Character[playerid][Faction] == 1)
  1073. {
  1074. SetPlayerArmour(playerid, 100);
  1075. }
  1076. if(Character[playerid][Faction] == 2)
  1077. {
  1078. GivePlayerWeapon(playerid, 42, 99999);
  1079. }
  1080. SetPlayerArmedWeapon(playerid, 0);
  1081. }
  1082. else if(Character[playerid][ClothesUsed] == 3)
  1083. {
  1084. SetSpawnInfo(playerid, 0, Character[playerid][Clothes3], 765.9069,361.9311,20.8550,174.3097, 0, 0, 0, 0, 0, 0);
  1085. SpawnPlayer(playerid);
  1086.  
  1087. if(Character[playerid][Faction] == 1)
  1088. {
  1089. SetPlayerArmour(playerid, 100);
  1090. }
  1091. if(Character[playerid][Faction] == 2)
  1092. {
  1093. GivePlayerWeapon(playerid, 42, 99999);
  1094. }
  1095. if(Character[playerid][Faction] == 3)
  1096. {
  1097. GivePlayerWeapon(playerid, 43, 20);
  1098. }
  1099. SetPlayerArmedWeapon(playerid, 0);
  1100. }
  1101. }
  1102. else if(Character[playerid][SpawnPoint] == 2) //Blueberry Caravan Park
  1103. {
  1104. TogglePlayerSpectating(playerid, false);
  1105. if(Character[playerid][ClothesUsed] == 1)
  1106. {
  1107. SetSpawnInfo(playerid, 0, Character[playerid][Clothes1], 252.1177,-310.5331,1.5836,52.7107, 0, 0, 0, 0, 0, 0);
  1108. SpawnPlayer(playerid);
  1109.  
  1110. if(Character[playerid][Faction] == 1)
  1111. {
  1112. SetPlayerArmour(playerid, 100);
  1113. }
  1114. if(Character[playerid][Faction] == 2)
  1115. {
  1116. GivePlayerWeapon(playerid, 42, 99999);
  1117. }
  1118. SetPlayerArmedWeapon(playerid, 0);
  1119. }
  1120. else if(Character[playerid][ClothesUsed] == 2)
  1121. {
  1122. SetSpawnInfo(playerid, 0, Character[playerid][Clothes2], 252.1177,-310.5331,1.5836,52.7107, 0, 0, 0, 0, 0, 0);
  1123. SpawnPlayer(playerid);
  1124.  
  1125. if(Character[playerid][Faction] == 1)
  1126. {
  1127. SetPlayerArmour(playerid, 100);
  1128. }
  1129. if(Character[playerid][Faction] == 2)
  1130. {
  1131. GivePlayerWeapon(playerid, 42, 99999);
  1132. }
  1133. SetPlayerArmedWeapon(playerid, 0);
  1134. }
  1135. else if(Character[playerid][ClothesUsed] == 3)
  1136. {
  1137. SetSpawnInfo(playerid, 0, Character[playerid][Clothes3], 252.1177,-310.5331,1.5836,52.7107, 0, 0, 0, 0, 0, 0);
  1138. SpawnPlayer(playerid);
  1139.  
  1140. if(Character[playerid][Faction] == 1)
  1141. {
  1142. SetPlayerArmour(playerid, 100);
  1143. }
  1144. if(Character[playerid][Faction] == 2)
  1145. {
  1146. GivePlayerWeapon(playerid, 42, 99999);
  1147. }
  1148. SetPlayerArmedWeapon(playerid, 0);
  1149. }
  1150. SetPlayerVirtualWorld(playerid, 0);
  1151. }
  1152. else if(Character[playerid][SpawnPoint] == 3) //Palomino Creek Caravan Park
  1153. {
  1154. TogglePlayerSpectating(playerid, false);
  1155. if(Character[playerid][ClothesUsed] == 1)
  1156. {
  1157. SetSpawnInfo(playerid, 0, Character[playerid][Clothes1], 2266.2488,27.3444,26.4328,4.8782, 0, 0, 0, 0, 0, 0);
  1158. SpawnPlayer(playerid);
  1159. SetPlayerVirtualWorld(playerid, 0);
  1160.  
  1161. if(Character[playerid][Faction] == 1)
  1162. {
  1163. SetPlayerArmour(playerid, 100);
  1164. }
  1165. if(Character[playerid][Faction] == 2)
  1166. {
  1167. GivePlayerWeapon(playerid, 42, 99999);
  1168. }
  1169. SetPlayerArmedWeapon(playerid, 0);
  1170. }
  1171. else if(Character[playerid][ClothesUsed] == 2)
  1172. {
  1173. SetSpawnInfo(playerid, 0, Character[playerid][Clothes2], 2266.2488,27.3444,26.4328,4.8782, 0, 0, 0, 0, 0, 0);
  1174. SpawnPlayer(playerid);
  1175. SetPlayerVirtualWorld(playerid, 0);
  1176.  
  1177. if(Character[playerid][Faction] == 1)
  1178. {
  1179. SetPlayerArmour(playerid, 100);
  1180. }
  1181. if(Character[playerid][Faction] == 2)
  1182. {
  1183. GivePlayerWeapon(playerid, 42, 99999);
  1184. }
  1185. SetPlayerArmedWeapon(playerid, 0);
  1186. }
  1187. else if(Character[playerid][ClothesUsed] == 3)
  1188. {
  1189. SetSpawnInfo(playerid, 0, Character[playerid][Clothes3], 2266.2488,27.3444,26.4328,4.8782, 0, 0, 0, 0, 0, 0);
  1190. SpawnPlayer(playerid);
  1191.  
  1192. SetPlayerVirtualWorld(playerid, 0);
  1193. if(Character[playerid][Faction] == 1)
  1194. {
  1195. SetPlayerArmour(playerid, 100);
  1196. }
  1197. if(Character[playerid][Faction] == 2)
  1198. {
  1199. GivePlayerWeapon(playerid, 42, 99999);
  1200. }
  1201. SetPlayerArmedWeapon(playerid, 0);
  1202. }
  1203. }
  1204. else if(Character[playerid][SpawnPoint] == 4) //Montgomery Caravan Park
  1205. {
  1206. TogglePlayerSpectating(playerid, false);
  1207. if(Character[playerid][ClothesUsed] == 1)
  1208. {
  1209. SetSpawnInfo(playerid, 0, Character[playerid][Clothes1], 1284.0914,168.3455,20.4620,354.0366, 0, 0, 0, 0, 0, 0);
  1210. SetPlayerVirtualWorld(playerid, 0);
  1211. SpawnPlayer(playerid);
  1212.  
  1213. if(Character[playerid][Faction] == 1)
  1214. {
  1215. SetPlayerArmour(playerid, 100);
  1216. }
  1217. if(Character[playerid][Faction] == 2)
  1218. {
  1219. GivePlayerWeapon(playerid, 42, 99999);
  1220. }
  1221. SetPlayerArmedWeapon(playerid, 0);
  1222. }
  1223. else if(Character[playerid][ClothesUsed] == 2)
  1224. {
  1225. SetSpawnInfo(playerid, 0, Character[playerid][Clothes2], 1284.0914,168.3455,20.4620,354.0366, 0, 0, 0, 0, 0, 0);
  1226. SetPlayerVirtualWorld(playerid, 0);
  1227. SpawnPlayer(playerid);
  1228.  
  1229. if(Character[playerid][Faction] == 1)
  1230. {
  1231. SetPlayerArmour(playerid, 100);
  1232. }
  1233. if(Character[playerid][Faction] == 2)
  1234. {
  1235. GivePlayerWeapon(playerid, 42, 99999);
  1236. }
  1237. SetPlayerArmedWeapon(playerid, 0);
  1238. }
  1239. else if(Character[playerid][ClothesUsed] == 3)
  1240. {
  1241. SetSpawnInfo(playerid, 0, Character[playerid][Clothes3], 1284.0914,168.3455,20.4620,354.0366, 0, 0, 0, 0, 0, 0);
  1242. SetPlayerVirtualWorld(playerid, 0);
  1243. SpawnPlayer(playerid);
  1244.  
  1245. if(Character[playerid][Faction] == 1)
  1246. {
  1247. SetPlayerArmour(playerid, 100);
  1248. }
  1249. if(Character[playerid][Faction] == 2)
  1250. {
  1251. GivePlayerWeapon(playerid, 42, 99999);
  1252. }
  1253. SetPlayerArmedWeapon(playerid, 0);
  1254. }
  1255. }
  1256. else if(Character[playerid][SpawnPoint] == 5) //Owned Home
  1257. {
  1258. TogglePlayerSpectating(playerid, false);
  1259. if(Character[playerid][ClothesUsed] == 1)
  1260. {
  1261. SetSpawnInfo(playerid, 0, Character[playerid][Clothes1], Houses[Character[playerid][HouseKey]][HouseExteriorX], Houses[Character[playerid][HouseKey]][HouseExteriorY], Houses[Character[playerid][HouseKey]][HouseExteriorZ], 90.0, 0, 0, 0, 0, 0, 0);
  1262. SetPlayerVirtualWorld(playerid, 0);
  1263. SpawnPlayer(playerid);
  1264.  
  1265. if(Character[playerid][Faction] == 1)
  1266. {
  1267. SetPlayerArmour(playerid, 100);
  1268. }
  1269. if(Character[playerid][Faction] == 2)
  1270. {
  1271. GivePlayerWeapon(playerid, 42, 99999);
  1272. }
  1273. SetPlayerArmedWeapon(playerid, 0);
  1274. }
  1275. else if(Character[playerid][ClothesUsed] == 2)
  1276. {
  1277. SetSpawnInfo(playerid, 0, Character[playerid][Clothes2], Houses[Character[playerid][HouseKey]][HouseExteriorX], Houses[Character[playerid][HouseKey]][HouseExteriorY], Houses[Character[playerid][HouseKey]][HouseExteriorZ], 90.0, 0, 0, 0, 0, 0, 0);
  1278. SetPlayerVirtualWorld(playerid, 0);
  1279. SpawnPlayer(playerid);
  1280.  
  1281. if(Character[playerid][Faction] == 1)
  1282. {
  1283. SetPlayerArmour(playerid, 100);
  1284. }
  1285. if(Character[playerid][Faction] == 2)
  1286. {
  1287. GivePlayerWeapon(playerid, 42, 99999);
  1288. }
  1289. SetPlayerArmedWeapon(playerid, 0);
  1290. }
  1291. else if(Character[playerid][ClothesUsed] == 3)
  1292. {
  1293. SetSpawnInfo(playerid, 0, Character[playerid][Clothes3], Houses[Character[playerid][HouseKey]][HouseExteriorX], Houses[Character[playerid][HouseKey]][HouseExteriorY], Houses[Character[playerid][HouseKey]][HouseExteriorZ], 90.0, 0, 0, 0, 0, 0, 0);
  1294. SetPlayerVirtualWorld(playerid, 0);
  1295. SpawnPlayer(playerid);
  1296.  
  1297. if(Character[playerid][Faction] == 1)
  1298. {
  1299. SetPlayerArmour(playerid, 100);
  1300. }
  1301. if(Character[playerid][Faction] == 2)
  1302. {
  1303. GivePlayerWeapon(playerid, 42, 99999);
  1304. }
  1305. SetPlayerArmedWeapon(playerid, 0);
  1306. }
  1307. }
  1308. else if(Character[playerid][SpawnPoint] == 6) //Faction Spawn
  1309. {
  1310. TogglePlayerSpectating(playerid, false);
  1311. if(Character[playerid][ClothesUsed] == 1)
  1312. {
  1313. SetSpawnInfo(playerid, 0, Character[playerid][Clothes1], Factions[Character[playerid][Faction]][fSpawnX], Factions[Character[playerid][Faction]][fSpawnY], Factions[Character[playerid][Faction]][fSpawnZ], Factions[Character[playerid][Faction]][fSpawnA], 0, 0, 0, 0, 0, 0);
  1314. SetPlayerVirtualWorld(playerid, 0);
  1315. SpawnPlayer(playerid);
  1316.  
  1317. if(Character[playerid][Faction] == 1)
  1318. {
  1319. SetPlayerArmour(playerid, 100);
  1320. }
  1321. if(Character[playerid][Faction] == 2)
  1322. {
  1323. GivePlayerWeapon(playerid, 42, 99999);
  1324. }
  1325. SetPlayerArmedWeapon(playerid, 0);
  1326. }
  1327. else if(Character[playerid][ClothesUsed] == 2)
  1328. {
  1329. SetSpawnInfo(playerid, 0, Character[playerid][Clothes2], Factions[Character[playerid][Faction]][fSpawnX], Factions[Character[playerid][Faction]][fSpawnY], Factions[Character[playerid][Faction]][fSpawnZ], Factions[Character[playerid][Faction]][fSpawnA], 0, 0, 0, 0, 0, 0);
  1330. SetPlayerVirtualWorld(playerid, 0);
  1331. SpawnPlayer(playerid);
  1332.  
  1333. if(Character[playerid][Faction] == 1)
  1334. {
  1335. SetPlayerArmour(playerid, 100);
  1336. }
  1337. if(Character[playerid][Faction] == 2)
  1338. {
  1339. GivePlayerWeapon(playerid, 42, 99999);
  1340. }
  1341. SetPlayerArmedWeapon(playerid, 0);
  1342. }
  1343. else if(Character[playerid][ClothesUsed] == 3)
  1344. {
  1345. SetSpawnInfo(playerid, 0, Character[playerid][Clothes3], Factions[Character[playerid][Faction]][fSpawnX], Factions[Character[playerid][Faction]][fSpawnY], Factions[Character[playerid][Faction]][fSpawnZ], Factions[Character[playerid][Faction]][fSpawnA], 0, 0, 0, 0, 0, 0);
  1346. SetPlayerVirtualWorld(playerid, 0);
  1347. SpawnPlayer(playerid);
  1348.  
  1349. if(Character[playerid][Faction] == 1)
  1350. {
  1351. SetPlayerArmour(playerid, 100);
  1352. }
  1353. if(Character[playerid][Faction] == 2)
  1354. {
  1355. GivePlayerWeapon(playerid, 42, 99999);
  1356. }
  1357. SetPlayerArmedWeapon(playerid, 0);
  1358. }
  1359. }
  1360. }
  1361. return 1;
  1362. }
  1363.  
  1364. forward SendToAdmins(colour, string1[], duty);
  1365. public SendToAdmins(colour, string1[], duty)
  1366. {
  1367. for(new i = 0; i < MAX_PLAYERS; i++)
  1368. {
  1369. if(IsPlayerConnected(i))
  1370. {
  1371. if(Character[i][cAdminLevel] >= 2)
  1372. {
  1373. SendClientMessage(i, colour, string1);
  1374. }
  1375. }
  1376. }
  1377. return 1;
  1378. }
  1379. forward CloseMessage(playerid, colour, string[]);
  1380. public CloseMessage(playerid, colour, string[])
  1381. {
  1382. new Float: PlayerX, Float: PlayerY, Float: PlayerZ;
  1383. for(new i = 0; i < MAX_PLAYERS; i++)
  1384. {
  1385. if(IsPlayerConnected(i))
  1386. {
  1387. GetPlayerPos(playerid, PlayerX, PlayerY, PlayerZ);
  1388. if(IsPlayerInRangeOfPoint(i, 12, PlayerX, PlayerY, PlayerZ))
  1389. {
  1390. if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i) && GetPlayerInterior(playerid) == GetPlayerInterior(i))
  1391. {
  1392. SendClientMessage(i, colour, string);
  1393. }
  1394. }
  1395. }
  1396. }
  1397. return 1;
  1398. }
  1399.  
  1400. forward CloseMessageEx(playerid, color, string[], Float: range);
  1401. public CloseMessageEx(playerid, color, string[], Float: range)
  1402. {
  1403. new Float: PlayerX, Float: PlayerY, Float: PlayerZ;
  1404. for(new i = 0; i < MAX_PLAYERS; i++)
  1405. {
  1406. if(IsPlayerConnected(i))
  1407. {
  1408. GetPlayerPos(playerid, PlayerX, PlayerY, PlayerZ);
  1409. if(IsPlayerInRangeOfPoint(i, range, PlayerX, PlayerY, PlayerZ))
  1410. {
  1411. if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
  1412. {
  1413. SendClientMessage(i, color, string);
  1414. }
  1415. }
  1416. }
  1417. }
  1418. }
  1419.  
  1420. public OnPlayerDisconnect(playerid, reason)
  1421. {
  1422. SaveCharacter(playerid);
  1423. DespawnCharacter(playerid);
  1424.  
  1425. return 1;
  1426. }
  1427.  
  1428. public OnPlayerSpawn(playerid)
  1429. {
  1430. return 1;
  1431. }
  1432.  
  1433. public OnPlayerDeath(playerid, killerid, reason)
  1434. {
  1435.  
  1436. return 1;
  1437. }
  1438.  
  1439. public OnVehicleSpawn(vehicleid)
  1440. {
  1441. return 1;
  1442. }
  1443.  
  1444. public OnVehicleDeath(vehicleid, killerid)
  1445. {
  1446. return 1;
  1447. }
  1448.  
  1449. public OnPlayerText(playerid, text[])
  1450. {
  1451. new text1[256];
  1452. if(strcmp("None", Character[playerid][Accent]))
  1453. {
  1454. format(text1, 256, "%s says: %s", MaskOnOff(playerid), text1);
  1455. CloseMessage(playerid, COLOR_WHITE, text1);
  1456. }
  1457. else
  1458. {
  1459. format(text1, 256, "%s says: [%s accent] %s", MaskOnOff(playerid), Character[playerid][Accent], text1);
  1460. CloseMessage(playerid, COLOR_WHITE, text1);
  1461. SetPlayerChatBubble(playerid, text1, COLOR_WHITE, 10.0, 10000);
  1462. }
  1463. return 1;
  1464. }
  1465.  
  1466. //Stocks
  1467.  
  1468. stock split(const strsrc[], strdest[][], delimiter)
  1469. {
  1470. new i, li;
  1471. new aNum;
  1472. new len;
  1473. while(i <= strlen(strsrc)){
  1474. if(strsrc[i]==delimiter || i==strlen(strsrc)){
  1475. len = strmid(strdest[aNum], strsrc, li, i, 128);
  1476. strdest[aNum][len] = 0;
  1477. li = i+1;
  1478. aNum++;
  1479. }
  1480. i++;
  1481. }
  1482. return 1;
  1483. }
  1484.  
  1485. RPName(name[],ret_first[],ret_last[])
  1486. {
  1487. new len = strlen(name),
  1488. point = -1,
  1489. bool:done = false;
  1490. for(new i = 0; i < len; i++)
  1491. {
  1492. if(name[i] == '_')
  1493. {
  1494. if(point != -1) return 0;
  1495. else {
  1496. if(i == 0) return 0;
  1497. point = i + 1;
  1498. }
  1499. } else if(point == -1) ret_first[i] = name[i];
  1500. else {
  1501. ret_last[i - point] = name[i];
  1502. done = true;
  1503. }
  1504. }
  1505. if(!done) return 0;
  1506. return 1;
  1507. }
  1508.  
  1509. stock GetMenuDialogCharacterOrder(playerid, characterslotid)
  1510. {
  1511. new arrCoords[11][MAX_PLAYER_NAME], string[128];
  1512. if(MasterAccount[playerid][mLoggedIn])
  1513. {
  1514. if(characterslotid >= 1 && characterslotid <= MAX_CHARACTER_SLOTS)
  1515. {
  1516. format(string,sizeof(string),"%s", MasterAccount[playerid][mCharacterString]);
  1517. split(string, arrCoords, '\n');
  1518. //printf("%s", arrCoords[characterslotid]);
  1519. return arrCoords[characterslotid];
  1520. }
  1521. }
  1522. return arrCoords[0];
  1523. }
  1524.  
  1525. stock InsertPlayerUnderscoreString(string[])
  1526. {
  1527. new str[24];
  1528. strmid(str,string,0,strlen(string),24);
  1529. for(new i = 0; i < MAX_PLAYER_NAME; i++)
  1530. {
  1531. if (str[i] == ' ') str[i] = '_';
  1532. }
  1533. return str;
  1534. }
  1535.  
  1536. stock PlayerFacePlayer(playerid, targetid)
  1537. {
  1538. new
  1539. Float:pX,
  1540. Float:pY,
  1541. Float:pZ,
  1542. Float:X,
  1543. Float:Y,
  1544. Float:Z,
  1545. Float:ang;
  1546.  
  1547. if(!IsPlayerConnected(playerid) || !IsPlayerConnected(targetid)) return 0;
  1548. GetPlayerPos(targetid, X, Y, Z);
  1549. GetPlayerPos(playerid, pX, pY, pZ);
  1550. if( Y > pY ) ang = (-acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 90.0);
  1551. else if( Y < pY && X < pX ) ang = (acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 450.0);
  1552. else if( Y < pY ) ang = (acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 90.0);
  1553. if(X > pX) ang = (floatabs(floatabs(ang) + 180.0));
  1554. else ang = (floatabs(ang) - 180.0);
  1555. SetPlayerFacingAngle(playerid, ang);
  1556. return 0;
  1557. }
  1558.  
  1559. stock GetDistanceBetweenPlayers(playerid,playerid2)
  1560. {
  1561. new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
  1562. new Float:tmpdis;
  1563. GetPlayerPos(playerid,x1,y1,z1);
  1564. GetPlayerPos(playerid2,x2,y2,z2);
  1565. tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
  1566. return floatround(tmpdis);
  1567. }
  1568.  
  1569. stock MaskOnOff(playerid)
  1570. {
  1571. new string2[25];
  1572. if(MaskOn[playerid] == 0)format(string2, sizeof(string2), "%s", RemoveUnderScore(playerid));
  1573. else if(MaskOn[playerid] == 1)format(string2, sizeof(string2), "Stranger_%d", MaskNumber[playerid]);
  1574. return string2;
  1575. }
  1576.  
  1577. stock ClearScreen(playerid)
  1578. {
  1579. for(new i = 0; i < 50; i++)
  1580. {
  1581. SendClientMessage(playerid, COLOR_WHITE, " ");
  1582. }
  1583. return 0;
  1584. }
  1585.  
  1586.  
  1587. stock RemoveUnderScore(playerid)
  1588. {
  1589. new name[MAX_PLAYER_NAME];
  1590. GetPlayerName(playerid,name,sizeof(name));
  1591. for(new i = 0; i < MAX_PLAYER_NAME; i++)
  1592. {
  1593. if(name[i] == '_') name[i] = ' ';
  1594. }
  1595. return name;
  1596. }
  1597.  
  1598. stock GetPVarStringEx(playerid, var[])
  1599. {
  1600. new pmsg[128] = "NULL";
  1601. if(IsPlayerConnected(playerid))
  1602. {
  1603. GetPVarString(playerid, var, pmsg, 128);
  1604. }
  1605. return pmsg;
  1606. }
  1607.  
  1608. stock GetPlayerIPEx(playerid)
  1609. {
  1610. new plrIP[16] = "NULL";
  1611. if(IsPlayerConnected(playerid))
  1612. {
  1613. GetPlayerIp(playerid, plrIP, sizeof(plrIP));
  1614. }
  1615. return plrIP;
  1616. }
  1617.  
  1618. stock PlayerName(playerid) {
  1619. new name[MAX_PLAYER_NAME];
  1620. GetPlayerName(playerid, name, sizeof(name));
  1621. return name;
  1622. }
  1623.  
  1624. stock GetVehicleName(vehicleid)
  1625. {
  1626. new vn[50];
  1627. format(vn,sizeof(vn),"%s",vNames[GetVehicleModel(vehicleid)-400]);
  1628. return vn;
  1629. }
  1630.  
  1631.  
  1632. // --------------------------------------[ ANTI CHEAT ] -------------------------------------
  1633. forward AntiCheatTimer();
  1634. public AntiCheatTimer()
  1635. {
  1636. for(new i=0;i<MAX_PLAYERS;i++)
  1637. {
  1638. if(SpawnedAsCharacter(i))
  1639. {
  1640. if(GetPlayerCash(i) != GetPlayerMoney(i))
  1641. {
  1642. new difference = GetPlayerCash(i) - GetPlayerMoney(i);
  1643. printf("[ANTICHEAT:] %s possibly moneyhacking ($%d)", PlayerName(i), difference);
  1644. ResetMoneyBar(i);
  1645. UpdateMoneyBar(i, Character[i][cCash]);
  1646. }
  1647. }
  1648. }
  1649. return true;
  1650. }
  1651. stock GivePlayerCash(playerid, money)
  1652. {
  1653. Character[playerid][cCash] += money;
  1654. ResetMoneyBar(playerid);
  1655. UpdateMoneyBar(playerid, Character[playerid][cCash]);
  1656. return 1;
  1657. }
  1658. stock SetPlayerCash(playerid, money)
  1659. {
  1660. Character[playerid][cCash] = money;
  1661. ResetMoneyBar(playerid);
  1662. UpdateMoneyBar(playerid, Character[playerid][cCash]);
  1663. return true;
  1664. }
  1665. stock ResetPlayerCash(playerid)
  1666. {
  1667. Character[playerid][cCash] = 0;
  1668. ResetMoneyBar(playerid);
  1669. UpdateMoneyBar(playerid, Character[playerid][cCash]);
  1670. return true;
  1671. }
  1672. stock GetPlayerCash(playerid)
  1673. {
  1674. return Character[playerid][cCash];
  1675. }
  1676. // ------------------------------------------------------------------------------------------
  1677.  
  1678.  
  1679.  
  1680.  
  1681. //Commands Start
  1682. //Admin Commands
  1683.  
  1684.  
  1685.  
  1686. CMD:gmx(playerid, params[])
  1687. { //1643
  1688. if(MasterAccount[playerid][mSuperAdmin] || Character[playerid][cAdminLevel] >= 6)
  1689. {
  1690. SendRconCommand("gmx");
  1691. }
  1692. else return SendClientMessage(playerid, COLOR_DARKGREY, AdminOnly);
  1693. return 1;
  1694. }
  1695.  
  1696. CMD:a(playerid, params[])
  1697. {
  1698. if(MasterAccount[playerid][mSuperAdmin] || Character[playerid][cAdminLevel] >=1)
  1699. {
  1700. new message[128], string[256];
  1701. if(!strlen(params)) return SendClientMessage(playerid, COLOR_DARKGREY, "Usage: /a [message]");
  1702. {
  1703. format(string, sizeof(string), "Admin %s: %s", RemoveUnderScore(playerid), message);
  1704. SendToAdmins(COLOR_RED, string, 0);
  1705. SendToAdmins(COLOR_RED, string, 1);
  1706. }
  1707. }
  1708. else return SendClientMessage(playerid, COLOR_DARKGREY, AdminOnly);
  1709. return 1;
  1710. }
  1711.  
  1712.  
  1713. CMD:asay(playerid,params[])
  1714. {
  1715. if(Character[playerid][cAdminLevel] >= 2) return SendClientMessage(playerid, COLOR_DARKGREY, AdminOnly);
  1716. if(!strlen(params)) return SendClientMessage(playerid, COLOR_DARKGREY, "USAGE: /asay [text]");
  1717. if(strlen(params) > 100) return SendClientMessage(playerid, COLOR_DARKGREY, "Your message must not exceed 100 characters.");
  1718. new str[128];
  1719. format(str, sizeof(str), "%s", params);
  1720. SendClientMessageToAll(COLOR_PURPLE, str);
  1721. return 1;
  1722. }
  1723.  
  1724. CMD:akill(playerid, params[])
  1725. {
  1726. if(MasterAccount[playerid][mSuperAdmin] || Character[playerid][cAdminLevel] >=2)
  1727. {
  1728. new targetid;
  1729. if(!strlen(params)) return SendClientMessage(playerid, COLOR_DARKGREY, "Usage: /akill [playerid]");
  1730. if(!IsPlayerConnected(targetid))return SendClientMessage(playerid, -1, "This player is not connected!");
  1731. SetPlayerHealth(targetid, -1);
  1732. }
  1733. else
  1734. SendClientMessage(playerid, COLOR_DARKGREY, AdminOnly);
  1735. return 1;
  1736. }
  1737.  
  1738. CMD:sethealth(playerid, params[])
  1739. {
  1740. if(MasterAccount[playerid][mSuperAdmin] || Character[playerid][cAdminLevel] >=2)
  1741. {
  1742. new user, health;
  1743. if(!sscanf(params, "ui", user, health))
  1744. {
  1745. if(user != INVALID_PLAYER_ID)
  1746. {
  1747. SetPlayerHealth(user, health);
  1748. }
  1749. else return SendClientMessage(playerid, COLOR_DARKGREY, "Player is not logged in or is off-line.");
  1750. }
  1751. else return SendClientMessage(playerid, COLOR_WHITE, "Usage: /Sethealth [ID] [Amount]");
  1752. }
  1753. return 1;
  1754. }
  1755. CMD:sethp(playerid, params[])
  1756. {
  1757. return cmd_sethealth(playerid, params);
  1758. }
  1759.  
  1760. CMD:setweather(playerid, params[])
  1761. {
  1762. if(MasterAccount[playerid][mSuperAdmin] || Character[playerid][cAdminLevel] >=4)
  1763. {
  1764. if(isnull(params)) return SendClientMessage(playerid, COLOR_DARKGREY, "/Setweather [ID]");
  1765. SetWeather(strval(params));
  1766. return true;
  1767. }
  1768. else return SendClientMessage(playerid, COLOR_DARKGREY, AdminOnly);
  1769. }
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776. CMD:flip(playerid, params[])
  1777. {
  1778. #pragma unused params
  1779. playerid = GetPlayerVehicleID(playerid);
  1780. if(playerid != INVALID_VEHICLE_ID) {
  1781. new
  1782. Float: A;
  1783. GetVehicleZAngle(playerid, A);
  1784. SetVehicleZAngle(playerid, A);
  1785. }
  1786. return 1;
  1787. }
  1788.  
  1789. CMD:veh(playerid, params[])
  1790. {
  1791. if(IsPlayerConnected(playerid))
  1792. {
  1793. if(MasterAccount[playerid][mSuperAdmin] || Character[playerid][cAdminLevel] >=3)
  1794. {
  1795. new car, col1, col2;
  1796. if(sscanf(params, "iii", car, col1, col2)) return SendClientMessage(playerid, COLOR_DARKGREY, "USAGE: /veh [carid] [color1] [color2]");
  1797. if(car < 400 || car > 611) return SendClientMessage(playerid, COLOR_DARKGREY, "Vehicle ID can't be below 400 or above 611.");
  1798. if(col1 < 0 || col1 > 256) return SendClientMessage(playerid, COLOR_DARKGREY, "Colour ID can't be below 0 or above 256.");
  1799. if(col2 < 0 || col2 > 256) return SendClientMessage(playerid, COLOR_DARKGREY, "Colour ID can't be below 0 or above 256.");
  1800. new Float:X,Float:Y,Float:Z;
  1801. GetPlayerPos(playerid, X,Y,Z);
  1802. new carid = CreateVehicle(car, X,Y,Z, 0.0, col1, col2, 60000);
  1803. PutPlayerInVehicle(playerid, carid, 0);
  1804. }
  1805. else return SendClientMessage(playerid, COLOR_DARKGREY, AdminOnly);
  1806. }
  1807. return 1;
  1808. }
  1809. //Player Commands
  1810.  
  1811. CMD:kill(playerid, params[])
  1812. {
  1813. SetPlayerHealth(playerid, -1);
  1814. }
  1815.  
  1816. CMD:mask(playerid, params[])
  1817. {
  1818. if(Character[playerid][Level] >= 5)
  1819. {
  1820. if(Character[playerid][cMask] == 1)
  1821. {
  1822. if(MaskOn[playerid] == 0)
  1823. {
  1824. new string[256];
  1825. MaskOn[playerid] = 1;
  1826. new rand = 1000 + random(8999);
  1827. MaskNumber[playerid] = rand;
  1828. format(string, sizeof(string), "* %s takes out a mask and places it over their head. *", MaskOnOff(playerid));
  1829. format(string, sizeof(string), "Stranger_%d", MaskNumber[playerid]);
  1830. Update3DTextLabelText(masklabel[playerid], GREY, string);
  1831. Attach3DTextLabelToPlayer(masklabel[playerid], playerid, 0.0, 0.0, 0.7);
  1832. for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, false);
  1833. }
  1834. else return SendClientMessage(playerid, COLOR_WHITE, "You already have your mask on.");
  1835. }
  1836. else return SendClientMessage(playerid, COLOR_WHITE, "You don't have a Mask.");
  1837. }
  1838. else return SendClientMessage(playerid, COLOR_WHITE, "You must be level 5 and above to use a mask.");
  1839. return 1;
  1840. }
  1841.  
  1842. CMD:unmask(playerid, params[])
  1843. {
  1844. if(Character[playerid][cMask] == 1)
  1845. {
  1846. if(MaskOn[playerid] == 1)
  1847. {
  1848. new string[256];
  1849. MaskOn[playerid] = 0;
  1850. format(string, sizeof(string), "* %s takes off their mask. *", MaskOnOff(playerid));
  1851. CloseMessage(playerid, COLOR_PURPLE, string);
  1852. MaskNumber[playerid] = -1;
  1853. Update3DTextLabelText(masklabel[playerid], GREY, string);
  1854. for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, true);
  1855. }
  1856. else return SendClientMessage(playerid, COLOR_WHITE, "You don't have your mask on.");
  1857. }
  1858. else return SendClientMessage(playerid, COLOR_WHITE, "You don't have a Mask.");
  1859. return 1;
  1860. }
  1861.  
  1862. CMD:pay(playerid, params[])
  1863. {
  1864. new id, amount, string[256];
  1865. if(sscanf(params, "ui", id, amount)) return SendClientMessage(playerid, COLOR_DARKGREY, "Usage: /pay [playerid/name] [amount]");
  1866. {
  1867. if(GetDistanceBetweenPlayers(playerid, id) < 3)
  1868. {
  1869. if(Character[playerid][cCash] >= amount)
  1870. {
  1871. PlayerFacePlayer(id, playerid);
  1872. PlayerFacePlayer(playerid, id);
  1873. format(string, sizeof(string), "* %s hands over some money to %s. *", MaskOnOff(playerid), MaskOnOff(id));
  1874. CloseMessage(playerid, COLOR_PURPLE, string);
  1875.  
  1876. format(string, sizeof(string), "You have paid %s $%d.", MaskOnOff(id), amount);
  1877. SendClientMessage(playerid, COLOR_WHITE, string);
  1878. format(string, sizeof(string), "%s has paid you $%d.", MaskOnOff(playerid), amount);
  1879. ApplyAnimation(playerid, "INT_SHOP", "shop_pay", 3.0, 0, 0, 0, 0, 0);
  1880. SendClientMessage(id, COLOR_WHITE, string);
  1881. Character[playerid][cCash] -= amount;
  1882. Character[id][cCash] += amount;
  1883. }
  1884. else return SendClientMessage(playerid, COLOR_DARKGREY, "You don't have that amount of money.");
  1885. }
  1886. else return SendClientMessage(playerid, COLOR_DARKGREY, "You must be closer to the player to pay them.");
  1887. }
  1888. return 1;
  1889. }
  1890.  
  1891. // Chat commands
  1892. CMD:me(playerid, params[])
  1893. {
  1894. new action[128], string[152];
  1895. if(sscanf(params, "s[128]", action)) return SendClientMessage(playerid, COLOR_DARKGREY, "Usage: /me [action]");
  1896. {
  1897. format(string, sizeof(string), "%s %s", MaskOnOff(playerid), action);
  1898. CloseMessage(playerid, COLOR_PURPLE, string);
  1899. }
  1900. return 1;
  1901. }
  1902.  
  1903. CMD:do(playerid, params[])
  1904. {
  1905. new action[128], string[157];
  1906. if(sscanf(params, "s[128]", action)) return SendClientMessage(playerid, COLOR_WHITE, "Usage: /do [action]");
  1907. {
  1908. format(string, sizeof(string), "%s (( %s ))", action, MaskOnOff(playerid));
  1909. CloseMessage(playerid, COLOR_PURPLE, string);
  1910. }
  1911. return 1;
  1912. }
  1913.  
  1914. CMD:b(playerid, params[])
  1915. {
  1916. new message[128], string[152];
  1917. if(sscanf(params, "s[128]", message)) return SendClientMessage(playerid, COLOR_WHITE, "Usage: /b [message]");
  1918. {
  1919. format(string, sizeof(string), "(( [OOC] %s says: %s ))", RemoveUnderScore(playerid), message);
  1920. CloseMessage(playerid, COLOR_BLUE, string);
  1921. }
  1922. return 1;
  1923. }
  1924.  
  1925. CMD:w(playerid, params[])
  1926. {
  1927. return cmd_whisper(playerid, params);
  1928. }
  1929.  
  1930. CMD:whisper(playerid, params[])
  1931. {
  1932. new id, message[128], string[186];
  1933. if(sscanf(params, "us[128]", id, message)) return SendClientMessage(playerid, COLOR_DARKGREY, "Usage: /w(hisper) [playerid/name] [message]");
  1934. {
  1935. if(GetDistanceBetweenPlayers(playerid, id) <= 5.0)
  1936. {
  1937. if(id != INVALID_PLAYER_ID)
  1938. {
  1939. format(string, sizeof(string), "[Whisper from %s(%d)] %s", MaskOnOff(playerid), playerid, message);
  1940. SendClientMessage(id, WHISPER, string);
  1941. format(string, sizeof(string), "[Whisper to %s(%d)] %s", MaskOnOff(id), id, message);
  1942. SendClientMessage(playerid, WHISPER, string);
  1943. format(string, sizeof(string), "* %s whispers something to %s *", MaskOnOff(playerid), MaskOnOff(id));
  1944. CloseMessage(playerid, COLOR_PURPLE, string);
  1945. }
  1946. else return SendClientMessage(playerid, COLOR_WHITE, "That player isn't connected.");
  1947. }
  1948. else return SendClientMessage(playerid, COLOR_WHITE, "You must be close to the player to whisper to them.");
  1949. }
  1950. return 1;
  1951. }
  1952.  
  1953. CMD:s(playerid, params[])
  1954. {
  1955. return cmd_shout(playerid, params);
  1956. }
  1957.  
  1958. CMD:shout(playerid, params[])
  1959. {
  1960. new message[128], string[182];
  1961. if(sscanf(params, "s[128]", message)) return SendClientMessage(playerid, COLOR_DARKGREY, "Usage: /s(hout)");
  1962. {
  1963. if(strcmp("None", Character[playerid][Accent]))
  1964. {
  1965. format(string, sizeof(string), "%s shouts: %s!", MaskOnOff(playerid), message);
  1966. }
  1967. else
  1968. {
  1969. format(string, sizeof(string), "%s shouts: [%s accent] %s!", MaskOnOff(playerid), Character[playerid][Accent], message);
  1970. }
  1971. CloseMessageEx(playerid, SHOUT, string, 20.0);
  1972. SetPlayerChatBubble(playerid, string, SHOUT, 20.0, 10000);
  1973. }
  1974. return 1;
  1975. }
  1976.  
  1977. public OnPlayerCommandText(playerid, cmdtext[])
  1978. {
  1979. //if(TutorialStep[playerid] >= 1) return SendClientMessage(playerid, GREY, "You can't perform commands while you're in the tutorial.");
  1980. //if(ChangingSkin[playerid] == 1) return SendClientMessage(playerid, GREY, "You can't perform commands while you're changing clothes.");
  1981. if(Logged[playerid] == 0) return SendClientMessage(playerid, GREY, "You need to login first!");
  1982. return 0;
  1983. }
  1984.  
  1985.  
  1986.  
  1987. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  1988. {
  1989. return 1;
  1990. }
  1991.  
  1992. public OnPlayerExitVehicle(playerid, vehicleid)
  1993. {
  1994. return 1;
  1995. }
  1996.  
  1997. public OnPlayerStateChange(playerid, newstate, oldstate)
  1998. {
  1999. return 1;
  2000. }
  2001.  
  2002. public OnPlayerEnterCheckpoint(playerid)
  2003. {
  2004. return 1;
  2005. }
  2006.  
  2007. public OnPlayerLeaveCheckpoint(playerid)
  2008. {
  2009. return 1;
  2010. }
  2011.  
  2012. public OnPlayerEnterRaceCheckpoint(playerid)
  2013. {
  2014. return 1;
  2015. }
  2016.  
  2017. public OnPlayerLeaveRaceCheckpoint(playerid)
  2018. {
  2019. return 1;
  2020. }
  2021.  
  2022. public OnRconCommand(cmd[])
  2023. {
  2024. return 1;
  2025. }
  2026.  
  2027. public OnPlayerRequestSpawn(playerid)
  2028. {
  2029. return 1;
  2030. }
  2031.  
  2032. public OnObjectMoved(objectid)
  2033. {
  2034. return 1;
  2035. }
  2036.  
  2037. public OnPlayerObjectMoved(playerid, objectid)
  2038. {
  2039. return 1;
  2040. }
  2041.  
  2042. public OnPlayerPickUpPickup(playerid, pickupid)
  2043. {
  2044. return 1;
  2045. }
  2046.  
  2047. public OnVehicleMod(playerid, vehicleid, componentid)
  2048. {
  2049. return 1;
  2050. }
  2051.  
  2052. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  2053. {
  2054. return 1;
  2055. }
  2056.  
  2057. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  2058. {
  2059. return 1;
  2060. }
  2061.  
  2062. public OnPlayerSelectedMenuRow(playerid, row)
  2063. {
  2064. return 1;
  2065. }
  2066.  
  2067. public OnPlayerExitedMenu(playerid)
  2068. {
  2069. return 1;
  2070. }
  2071.  
  2072. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  2073. {
  2074. return 1;
  2075. }
  2076.  
  2077. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  2078. {
  2079. return 1;
  2080. }
  2081.  
  2082. public OnRconLoginAttempt(ip[], password[], success)
  2083. {
  2084. return 1;
  2085. }
  2086.  
  2087. public OnPlayerUpdate(playerid)
  2088. {
  2089. return 1;
  2090. }
  2091.  
  2092. public OnPlayerStreamIn(playerid, forplayerid)
  2093. {
  2094. return 1;
  2095. }
  2096.  
  2097. public OnPlayerStreamOut(playerid, forplayerid)
  2098. {
  2099. return 1;
  2100. }
  2101.  
  2102. public OnVehicleStreamIn(vehicleid, forplayerid)
  2103. {
  2104. return 1;
  2105. }
  2106.  
  2107. public OnVehicleStreamOut(vehicleid, forplayerid)
  2108. {
  2109. return 1;
  2110. }
  2111.  
  2112. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  2113. {
  2114. switch(dialogid)
  2115. {
  2116. case DIALOG_REGISTER_PASSWORD:
  2117. {
  2118. if(response)
  2119. {
  2120. if(strlen(inputtext) >= 1 && strlen(inputtext) <= 20)
  2121. {
  2122. SetPVarString(playerid,"TEMP_PASSWORD",inputtext);
  2123. ShowPlayerDialog(playerid,DIALOG_REGISTER_EMAIL,DIALOG_STYLE_INPUT,"Master Account Registration - Step Two","Email Address:\n( No more or less than 25 characters )","Finish","Cancel");
  2124. }
  2125. else
  2126. {
  2127. ShowPlayerDialog(playerid,DIALOG_REGISTER_PASSWORD,DIALOG_STYLE_PASSWORD,"Master Account Registration - Step One","Password:\n( No more or less than 20 characters )","Continue","Cancel");
  2128. }
  2129. }
  2130. else
  2131. {
  2132. Kick(playerid);
  2133. }
  2134. }
  2135. case DIALOG_REGISTER_EMAIL:
  2136. {
  2137. if(response)
  2138. {
  2139. if(strlen(inputtext) >= 1 && strlen(inputtext) <= 30)
  2140. {
  2141. SetPVarString(playerid,"TEMP_EMAIL",inputtext);
  2142. if(MasterAccountRegister(playerid))
  2143. {
  2144. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Master Account - Login","Account already registered, please enter your password to continue.","Login","Cancel");
  2145. }
  2146. else
  2147. {
  2148. SendClientMessage(playerid, COLOR_RED, "ERROR.");
  2149. Kick(playerid);
  2150. }
  2151. }
  2152. else
  2153. {
  2154. ShowPlayerDialog(playerid,DIALOG_REGISTER_EMAIL,DIALOG_STYLE_INPUT,"Master Account Registration - Step Two","Email Address:\n( No more or less than 25 characters )","Finish","Cancel");
  2155. }
  2156. }
  2157. else
  2158. {
  2159. Kick(playerid);
  2160. }
  2161. }
  2162. case DIALOG_LOGIN:
  2163. {
  2164. if(response)
  2165. {
  2166. MasterAccountLogin(playerid, inputtext);
  2167. }
  2168. }
  2169. case DIALOG_MAIN_MENU:
  2170. {
  2171. if(response)
  2172. {
  2173. new count = PlayerCharacterCount(playerid);
  2174. if(count == 0)
  2175. {
  2176. SendClientMessage(playerid, COLOR_WHITE, "[I:] No characters available to spawn with.");
  2177. ShowMenuDialog(playerid);
  2178. }
  2179. else
  2180. {
  2181. LoadCharacter(playerid, InsertPlayerUnderscoreString(GetMenuDialogCharacterOrder(playerid, listitem+1)));
  2182. }
  2183. }
  2184. else
  2185. {
  2186. ShowPlayerDialog(playerid, DIALOG_MAIN_MENU_OPTIONS, DIALOG_STYLE_LIST, "Main Menu - Options", "Create New Character\nDelete Character\nChange Password\nDisconnect", "Continue", "Go Back");
  2187. }
  2188. }
  2189. case DIALOG_MAIN_MENU_OPTIONS:
  2190. {
  2191. if(response)
  2192. {
  2193. switch(listitem)
  2194. {
  2195. case 0: // Create New Character
  2196. {
  2197. if(PlayerCharacterCount(playerid) < MAX_CHARACTER_SLOTS)
  2198. {
  2199. ShowPlayerDialog(playerid,DIALOG_MAIN_MENU_CREATE_CHARACTER_NAME,DIALOG_STYLE_INPUT,"Master Account - New Character","What do you want your character to be called?\n(Firstname Lastname format).","Continue","Go Back");
  2200. }
  2201. else
  2202. {
  2203. ShowMenuDialog(playerid);
  2204. SendClientMessage(playerid, COLOR_RED, "[I:] You have exceeded your character limit, and cannot create anymore.");
  2205. }
  2206. }
  2207. case 1: // Delete Character
  2208. {
  2209. ShowPlayerDialog(playerid,DIALOG_MAIN_MENU_CHARACTER_DELETE,DIALOG_STYLE_INPUT,"Master Account - Delete Character","What is the name of the character you wish to delete?\nYou will not be able to recover it after it has been deleted!\n(Firstname Lastname format)","Delete","Go Back");
  2210. }
  2211. case 2: // Change Password
  2212. {
  2213. ShowPlayerDialog(playerid,DIALOG_MAIN_MENU_CHANGE_PASSWORD,DIALOG_STYLE_INPUT,"Master Account - Change Password","Type your new desired password:","Change","Go Back");
  2214. }
  2215. case 3: // Disconnect
  2216. {
  2217. SendClientMessage(playerid, COLOR_WHITE, "[I:] You have safely disconnected.");
  2218. Kick(playerid);
  2219. }
  2220. }
  2221. }
  2222. else
  2223. {
  2224. ShowMenuDialog(playerid);
  2225. }
  2226. }
  2227. case DIALOG_MAIN_MENU_CHARACTER_DELETE:
  2228. {
  2229. if(response)
  2230. {
  2231. if(strlen(inputtext) >= 1)
  2232. {
  2233. if(CharacterExists(inputtext))
  2234. {
  2235. new escapedstring[50];
  2236. mysql_real_escape_string(InsertPlayerUnderscoreString(inputtext), escapedstring);
  2237. if(PlayerOwnsCharacter_Name(playerid, escapedstring))
  2238. {
  2239. new query[128];
  2240. format(query, sizeof(query), "DELETE FROM `Character` WHERE `cName` = '%s'", InsertPlayerUnderscoreString(inputtext)); //(InsertPlayerUnderscoreString(inputtext) //2464
  2241.  
  2242. format(query, sizeof(query), "[I:] You have successfully deleted character: %s.", inputtext);
  2243. SendClientMessage(playerid, COLOR_YELLOW, query);
  2244. ShowMenuDialog(playerid);
  2245. }
  2246. else
  2247. {
  2248. ShowPlayerDialog(playerid,DIALOG_MAIN_MENU_CHARACTER_DELETE,DIALOG_STYLE_INPUT,"Master Account - Delete Character","What is the name of the character you wish to delete?\nYou will not be able to recover it after it has been deleted!\n(Firstname Lastname format)","Delete","Go Back");
  2249. }
  2250. }
  2251. else
  2252. {
  2253. ShowPlayerDialog(playerid,DIALOG_MAIN_MENU_CHARACTER_DELETE,DIALOG_STYLE_INPUT,"Master Account - Delete Character","What is the name of the character you wish to delete?\nYou will not be able to recover it after it has been deleted!\n(Firstname Lastname format)","Delete","Go Back");
  2254. }
  2255. }
  2256. else
  2257. {
  2258. ShowPlayerDialog(playerid,DIALOG_MAIN_MENU_CHARACTER_DELETE,DIALOG_STYLE_INPUT,"Master Account - Delete Character","What is the name of the character you wish to delete?\nYou will not be able to recover it after it has been deleted!\n(Firstname Lastname format)","Delete","Go Back");
  2259. }
  2260. }
  2261. else
  2262. {
  2263. ShowPlayerDialog(playerid, DIALOG_MAIN_MENU_OPTIONS, DIALOG_STYLE_LIST, "Main Menu - Options", "Create New Character\nDelete Character\nChange Password\nDisconnect", "Continue", "Go Back");
  2264. }
  2265. }
  2266. case DIALOG_MAIN_MENU_CREATE_CHARACTER_NAME:
  2267. {
  2268. new firstname[MAX_PLAYER_NAME], lastname[MAX_PLAYER_NAME];
  2269. if(response)
  2270. {
  2271. if(strlen(inputtext) >= 1 && strlen(inputtext) <= MAX_PLAYER_NAME)
  2272. {
  2273. if(!CharacterExists(InsertPlayerUnderscoreString(inputtext)))
  2274. {
  2275. if(RPName(InsertPlayerUnderscoreString(inputtext), firstname, lastname))
  2276. {
  2277. SetPVarString(playerid,"TEMP_C_NAME",InsertPlayerUnderscoreString(inputtext)); //2501
  2278. }
  2279. else
  2280. {
  2281. ShowPlayerDialog(playerid,DIALOG_MAIN_MENU_CREATE_CHARACTER_NAME,DIALOG_STYLE_INPUT,"Master Account - New Character","The character name you entered is not a valid roleplay name.\n(Firstname Lastname format).","Continue","Go Back");
  2282. }
  2283. }
  2284. else
  2285. {
  2286. ShowPlayerDialog(playerid,DIALOG_MAIN_MENU_CREATE_CHARACTER_NAME,DIALOG_STYLE_INPUT,"Master Account - New Character","A character with that name is already registered, please choose another name.\n(Firstname Lastname format).","Continue","Go Back");
  2287. }
  2288. }
  2289. else
  2290. {
  2291. ShowPlayerDialog(playerid,DIALOG_MAIN_MENU_CREATE_CHARACTER_NAME,DIALOG_STYLE_INPUT,"Master Account - New Character","What do you want your character to be called?\n(Firstname Lastname format).","Continue","Go Back");
  2292. }
  2293. CreateCharacter(playerid, inputtext, Character[playerid][cCash], Character[playerid][cBank], Character[playerid][cSkin]),
  2294. GetPVarStringEx(playerid, "TEMP_C_NAME"),
  2295.  
  2296.  
  2297. DeletePVar(playerid, "TEMP_C_NAME");
  2298. ShowMenuDialog(playerid);
  2299. SpawnPlayer(playerid);
  2300. }
  2301. else
  2302. {
  2303. ShowPlayerDialog(playerid, DIALOG_MAIN_MENU, DIALOG_STYLE_LIST, "Master Account - New Character","What do you want your character to be called?\n(Firstname Lastname format).","Continue","Go Back");
  2304. } // Go back.
  2305. }
  2306. } //2540
  2307. return 1;
  2308. }
  2309.  
  2310. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  2311. {
  2312. return 1;
  2313. }
Advertisement
Add Comment
Please, Sign In to add comment