Wouter0100

RDD v0.2

Sep 3rd, 2011
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 35.01 KB | None | 0 0
  1. /*
  2. All rights to RDD.
  3. Wouter0100, Danny_Mqueen aka Wouter.
  4. Dont rerelease ore delete this credits.
  5. */
  6.  
  7. #include <a_samp>
  8. #include <streamer>
  9. #include <a_mysql>
  10. #include <sscanf2>
  11. #include <OPSP>
  12. #include <OPVD>
  13. #include <zcmd>
  14. #include <geoip>
  15.  
  16. #define VERSION "0.2"
  17.  
  18. #define COLOR_GRAD1 0xB4B5B7FF
  19. #define COLOR_GRAD2 0xBFC0C2FF
  20. #define COLOR_GRAD3 0xCBCCCEFF
  21. #define COLOR_GRAD4 0xD8D8D8FF
  22. #define COLOR_GRAD5 0xE3E3E3FF
  23. #define COLOR_GRAD6 0xF0F0F0FF
  24. #define COLOR_GREY 0xAFAFAFAA
  25. #define COLOR_GREEN 0x9EC73DAA
  26. #define COLOR_GROVE 0x00FF00FF
  27. #define COLOR_RED 0xAA3333AA
  28. #define COLOR_COOLRED 0xB35959AA
  29. #define COLOR_ORANGE 0xFF9900AA
  30. #define COLOR_PINK 0xFF66FFAA
  31. #define COLOR_DARKRED 0x660000AA
  32. #define COLOR_BRIGHTRED 0xFF0000AA
  33. #define COLOR_INDIGO 0x4B00B0AA
  34. #define COLOR_VIOLET 0x9955DEEE
  35. #define COLOR_GRAYWHITE 0xEEEEFFC4
  36. #define COLOR_LIGHTNEUTRALBLUE 0xabcdef66
  37. #define COLOR_GREENISHGOLD 0xCCFFDD56
  38. #define COLOR_LIGHTBLUEGREEN 0x0FFDD349
  39. #define COLOR_NEUTRALBLUE 0xABCDEF01
  40. #define COLOR_LIGHTCYAN 0xAAFFCC33
  41. #define COLOR_LEMON 0xDDDD2357
  42. #define COLOR_LIGHTRED 0xFF6347AA
  43. #define COLOR_LIGHTBLUE 0x33CCFFAA
  44. #define COLOR_LIGHTGREEN 0x9ACD32AA
  45. #define COLOR_YELLOW 0xDABB3EAA
  46. #define COLOR_YELLOW2 0xF5DEB3AA
  47. #define COLOR_WHITE 0xFFFFFFAA
  48. #define COLOR_FADE1 0xE6E6E6E6
  49. #define COLOR_FADE2 0xC8C8C8C8
  50. #define COLOR_FADE3 0xAAAAAAAA
  51. #define COLOR_FADE4 0x8C8C8C8C
  52. #define COLOR_FADE5 0x6E6E6E6E
  53. #define COLOR_PURPLE 0xC2A2DAAA
  54. #define COLOR_CHAT1 0xF9B7FFAA
  55. #define COLOR_CHAT2 0xE6A9ECAA
  56. #define COLOR_CHAT3 0xC38EC7AA
  57. #define COLOR_CHAT4 0xD2B9D3AA
  58. #define COLOR_CHAT5 0xC6AEC7AA
  59. #define COLOR_ALLDEPT 0xFF8282AA
  60. #define COLOR_NEWS 0x458E1DAA
  61. #define COLOR_OOC 0xE0FFFFAA
  62.  
  63. #define KEY_AIM 128
  64.  
  65. #define mysql_host "localhost"
  66. #define mysql_user "root"
  67. #define mysql_password "<hide>"
  68. #define mysql_database "rdd"
  69.  
  70. enum p_data
  71. {
  72.   Level,
  73.   Adminlevel,
  74.   Vip,
  75.   Vipexp[19],
  76.   Skin,
  77.   Kill,
  78.   Death,
  79. };
  80. new Playerdata[MAX_PLAYERS][p_data];
  81.  
  82. new cars[25];
  83.  
  84. new updateteller = 0;
  85.  
  86. new CurrentMap = 0;
  87.  
  88. new Ingame[MAX_PLAYERS];
  89.  
  90. enum carpickup_data
  91. {
  92.   pid,
  93.   soort,
  94. };
  95. new Carpickup[MAX_PICKUPS][carpickup_data];
  96.  
  97. enum pdata
  98. {
  99.   pid,
  100.   Text3D:ptext,
  101.   psoort,
  102.   Float:px,
  103.   Float:py,
  104.   Float:pz,
  105.   pdeleted,
  106. };
  107. new Aantalpickup1[MAX_PICKUPS][pdata];
  108. new Aantalpickup = -1;
  109.  
  110. new SpectatedPlayer[MAX_PLAYERS];
  111. new bool:IsPlayerSpectating[MAX_PLAYERS];
  112.  
  113. new Text:Textdraw0;
  114. new Text:blackTD;
  115.  
  116. new string[230];
  117. new logintimer[MAX_PLAYERS];
  118.  
  119. new LoginKicked[MAX_PLAYERS];
  120. forward LoginKick(playerid);
  121. forward Update();
  122.  
  123.  
  124. new PointTimer[MAX_PLAYERS][3];
  125. forward PickupClear(playerid, pickupsoort);
  126.  
  127. new VehicleNames[212][] = {
  128.     "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
  129.     "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection",
  130.     "Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
  131.     "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
  132.     "Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
  133.     "Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina",
  134.     "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood",
  135.     "Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B",
  136.     "Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
  137.     "Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
  138.     "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
  139.     "Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A",
  140.     "Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
  141.     "Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor",
  142.     "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
  143.     "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
  144.     "Stair Trailer","Boxville","Farm Plow","Utility Trailer"
  145. };
  146.  
  147. main()
  148. {
  149.     print("\n----------------------------------");
  150.     print(" [DD] Real Destruction Derby [ENG]");
  151.     print("----------------------------------\n");
  152. }
  153.  
  154. public OnGameModeInit()
  155. {
  156.     SetGameModeText("RDD V"#VERSION);
  157.     mysql_connect(mysql_host, mysql_user, mysql_database, mysql_password);
  158.     mysql_debug(1);
  159.    
  160.     SetTimer("Update", 1, true);
  161.    
  162.     AddPlayerClass(0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  163.    
  164.     Textdraw0 = TextDrawCreate(320.000000, 437.000000, "Left Mouse Click | Back / Next | Right Mouse Click");
  165.     TextDrawAlignment(Textdraw0, 2);
  166.     TextDrawBackgroundColor(Textdraw0, 255);
  167.     TextDrawFont(Textdraw0, 1);
  168.     TextDrawLetterSize(Textdraw0, 0.500000, 1.000000);
  169.     TextDrawColor(Textdraw0, -16776961);
  170.     TextDrawSetOutline(Textdraw0, 1);
  171.     TextDrawSetProportional(Textdraw0, 1);
  172.     TextDrawUseBox(Textdraw0, 1);
  173.     TextDrawBoxColor(Textdraw0, 255);
  174.     TextDrawTextSize(Textdraw0, 651.000000, 638.000000);
  175.    
  176.     blackTD = TextDrawCreate(-20.000000,2.000000," Pleas wait a second.");
  177.     TextDrawUseBox(blackTD,1);
  178.     TextDrawBoxColor(blackTD,0x000000ff);
  179.     TextDrawTextSize(blackTD,660.000000,22.000000);
  180.     TextDrawAlignment(blackTD,0);
  181.     TextDrawBackgroundColor(blackTD,0x000000ff);
  182.     TextDrawFont(blackTD,3);
  183.     TextDrawLetterSize(blackTD,1.000000,52.200000);
  184.     TextDrawColor(blackTD,0x000000ff);
  185.     TextDrawSetOutline(blackTD,1);
  186.     TextDrawSetProportional(blackTD,1);
  187.     TextDrawSetShadow(blackTD,1);
  188.     return 1;
  189. }
  190.  
  191. public OnGameModeExit()
  192. {
  193.     return 1;
  194. }
  195.  
  196. public OnPlayerRequestClass(playerid, classid)
  197. {
  198.     return 1;
  199. }
  200.  
  201. public OnPlayerConnect(playerid)
  202. {
  203.     Playerdata[playerid][Level] = 0;
  204.     ResetPlayerMoney(playerid);
  205.     ResetPlayerWeapons(playerid);
  206.     Playerdata[playerid][Adminlevel] = 0;
  207.     Playerdata[playerid][Vip] = 0;
  208.     Playerdata[playerid][Skin] = 0;
  209.     Playerdata[playerid][Kill] = 0;
  210.     Playerdata[playerid][Death] = 0;
  211.  
  212.     Ingame[playerid] = false;
  213.  
  214.     SetPlayerColor(playerid, COLOR_GREY);
  215.  
  216.     PointTimer[playerid][0] = false;
  217.     PointTimer[playerid][1] = false;
  218.     PointTimer[playerid][2] = false;
  219.    
  220.     LoginKicked[playerid] = false;
  221.  
  222.     new query[200], pname[24];
  223.     GetPlayerName(playerid, pname, 24);
  224.     format(query, sizeof(query), "SELECT id FROM `users` WHERE name = '%s' LIMIT 1", pname);
  225.     mysql_query(query);
  226.     mysql_store_result();
  227.     new rows = mysql_num_rows();
  228.     if(!rows)
  229.     {
  230.         ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Register","You are not registered, Please register with a password below.","Register","Cancel");
  231.     }
  232.     else
  233.     {
  234.         ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Login","You have 60 seconds to login!","Login","Cancel");
  235.         logintimer[playerid] = SetTimerEx("LoginKick", 60000, false, "i", playerid);
  236.     }
  237.     mysql_free_result();
  238.     return 1;
  239. }
  240.  
  241. public OnPlayerDisconnect(playerid, reason)
  242. {
  243.     if(!LoginKicked[playerid])
  244.     {
  245.         MySQL_Save(playerid);
  246.         new name[MAX_PLAYER_NAME], country[MAX_COUNTRY_NAME];
  247.         GetPlayerName(playerid, name, sizeof(name));
  248.         country = GetPlayerCountryName(playerid);
  249.         format(string, sizeof(string), "[QUIT] %s (%s)", name, country);
  250.         SendClientMessageToElse(playerid, COLOR_GREEN, string);
  251.     }
  252.     return 1;
  253. }
  254.  
  255. public OnPlayerSpawn(playerid)
  256. {
  257.     if(GetOnlinePlayers() == 1)
  258.     {
  259.         if(!Ingame[playerid])
  260.         {
  261.             StartMap();
  262.         }
  263.     }
  264.     else
  265.     {
  266.         if(GetAlivePlayers()+1 == GetOnlinePlayers())
  267.         {
  268.             StartMap();
  269.         }
  270.         else
  271.         {
  272.             SpectateOn(playerid);
  273.         }
  274.     }
  275.     return 1;
  276. }
  277.  
  278. public OnPlayerDeath(playerid, killerid, reason)
  279. {
  280.     Playerdata[playerid][Death]++;
  281.     Playerdata[killerid][Kill]++;
  282.     return 1;
  283. }
  284.  
  285. public OnVehicleSpawn(vehicleid)
  286. {
  287.  
  288.     new engine, lights, alarm, doors, bonnet, boot, objective;
  289.     GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  290.     SetVehicleParamsEx(vehicleid, false, lights, alarm, doors, bonnet, boot, objective);
  291.     return 1;
  292. }
  293.  
  294. public OnVehicleDeath(vehicleid, killerid)
  295. {
  296.     DestroyVehicle(vehicleid);
  297.     return 1;
  298. }
  299.  
  300. public OnPlayerText(playerid, text[])
  301. {
  302.     return 1;
  303. }
  304.  
  305. /*-----------------Commands------------------*/
  306. CMD:engine(playerid, params[])
  307. {
  308.     EnableCarEngine(playerid);
  309.     return 1;
  310. }
  311.  
  312. CMD:vehicle(playerid, params[])
  313. {
  314.     if(Playerdata[playerid][Adminlevel] > 0)
  315.     {
  316.         new id;
  317.         if(!sscanf(params, "i", id))
  318.         {
  319.             if(IsPlayerInAnyVehicle(playerid))
  320.             {
  321.                 DestroyVehicle(GetPlayerVehicleID(playerid));
  322.             }
  323.             new Float:X, Float:Y, Float:Z, Float:Ang, Int, pVeh;
  324.             Int = GetPlayerInterior(playerid);
  325.             GetPlayerPos(playerid, X, Y, Z);
  326.             GetPlayerFacingAngle(playerid, Ang);
  327.             GetPlayerInterior(playerid);
  328.             pVeh = CreateVehicle(id, X, Y, Z, Ang, 0, 0, -1);
  329.             LinkVehicleToInterior(pVeh, Int);
  330.             PutPlayerInVehicle(playerid, pVeh, 0);
  331.             EnableCarEngine(playerid);
  332.         }
  333.         else SendClientMessage(playerid, COLOR_RED, "USAGE: /vehicle [modelid]");
  334.     }
  335.     else return 0;
  336.     return 1;
  337. }
  338.  
  339. CMD:stats(playerid, params[])
  340. {
  341.     SendClientMessage(playerid, COLOR_GREEN, "__________________|Stats|_________________");
  342.     format(string, sizeof(string), "Level: %i - Skin: %i - Money: %i", Playerdata[playerid][Level], Playerdata[playerid][Skin], GetPlayerMoney(playerid));
  343.     SendClientMessage(playerid, COLOR_GREY, string);
  344.     if(Playerdata[playerid][Vip] > 0)
  345.     {
  346.         format(string, sizeof(string), "Admin: %i - Vip: Yes - Kill: %i - Death: %i", Playerdata[playerid][Adminlevel], Playerdata[playerid][Kill], Playerdata[playerid][Death]);
  347.         SendClientMessage(playerid, COLOR_GREY, string);
  348.         switch(Playerdata[playerid][Vip])
  349.         {
  350.             case 1:
  351.             {
  352.                 format(string, sizeof(string), "Vip Expert: %s - Vip Rank: Bronze", Playerdata[playerid][Vipexp]);
  353.                 SendClientMessage(playerid, COLOR_GREY, string);
  354.             }
  355.             case 2:
  356.             {
  357.                 format(string, sizeof(string), "Vip Expert: %s - Vip Rank: Gold", Playerdata[playerid][Vipexp]);
  358.                 SendClientMessage(playerid, COLOR_GREY, string);
  359.             }
  360.             case 3:
  361.             {
  362.                 format(string, sizeof(string), "Vip Expert: %s - Vip Rank: Platinum", Playerdata[playerid][Vipexp]);
  363.                 SendClientMessage(playerid, COLOR_GREY, string);
  364.             }
  365.             default:
  366.             {
  367.                 format(string, sizeof(string), "Vip Expert: %s - Vip Rank: -Error Contact a Admin-", Playerdata[playerid][Vipexp]);
  368.                 SendClientMessage(playerid, COLOR_GREY, string);
  369.             }
  370.         }
  371.     }
  372.     else
  373.     {
  374.         format(string, sizeof(string), "Admin: %f - Vip: No - Kill: %i - Death: %i", Playerdata[playerid][Adminlevel], Playerdata[playerid][Kill], Playerdata[playerid][Death]);
  375.         SendClientMessage(playerid, COLOR_GREY, string);
  376.     }
  377.     SendClientMessage(playerid, COLOR_GREEN, "___________________________________________");
  378.     return 1;
  379. }
  380.  
  381. CMD:tele(playerid, params[])
  382. {
  383.     if(Playerdata[playerid][Adminlevel] > 2)
  384.     {
  385.         new id, gotoid;
  386.         if(!sscanf(params, "uu", id, gotoid))
  387.         {
  388.             new Float:X, Float:Y, Float:Z, Int;
  389.             Int = GetPlayerInterior(gotoid);
  390.             GetPlayerPos(gotoid, X, Y, Z);
  391.            
  392.             SetPlayerInterior(id, Int);
  393.             SetPlayerPos(id, X, Y, Z+3);
  394.         }
  395.         else SendClientMessage(playerid, COLOR_RED, "USAGE: /tele [Playerid] [GotoPlayerID]");
  396.     }
  397.     else return 0;
  398.     return 1;
  399. }
  400.  
  401. CMD:setskin(playerid, params[])
  402. {
  403.     if(Playerdata[playerid][Adminlevel] >= 3)
  404.     {
  405.         new giveid, skinid;
  406.         if(!sscanf(params, "ui", giveid, skinid))
  407.         {
  408.             SetPlayerSkin(giveid, skinid);
  409.             Playerdata[giveid][Skin] = skinid;
  410.             SendClientMessage(giveid, COLOR_GREY, "Your skin is changed by an administrator");
  411.             SendClientMessage(playerid, COLOR_GREY, "Skin changed.");
  412.         }
  413.         else SendClientMessage(playerid, COLOR_RED, "USAGE: /setskin [PlayerID][SkinID]");
  414.     }
  415.     else return 0;
  416.     return 1;
  417. }
  418.  
  419. CMD:setlevel(playerid, params[])
  420. {
  421.     if(Playerdata[playerid][Adminlevel] >= 4)
  422.     {
  423.         new giveid, level;
  424.         if(!sscanf(params, "ui", giveid, level))
  425.         {
  426.             SetPlayerScore(giveid, level);
  427.             Playerdata[giveid][Level] = Level;
  428.             SendClientMessage(giveid, COLOR_GREY, "Your score is changed by an administrator.");
  429.             SendClientMessage(playerid, COLOR_GREY, "Skin changed.");
  430.         }
  431.         else SendClientMessage(playerid, COLOR_RED, "USAGE: /setlevel [PlayerID][Score]");
  432.     }
  433.     else return 0;
  434.     return 1;
  435. }
  436.  
  437. CMD:setadminlevel(playerid, params[])
  438. {
  439.     if(Playerdata[playerid][Adminlevel] >= 1338)
  440.     {
  441.         new giveid, level;
  442.         if(!sscanf(params, "ui", giveid, level))
  443.         {
  444.             Playerdata[giveid][Adminlevel] = Level;
  445.             SendClientMessage(giveid, COLOR_GREY, "Your AdminLevel is changed by an administrator.");
  446.             SendClientMessage(playerid, COLOR_GREY, "AdminLevel changed.");
  447.         }
  448.         else SendClientMessage(playerid, COLOR_RED, "USAGE: /setadminlevel [PlayerID][AdminLevel]");
  449.     }
  450.     else return 0;
  451.     return 1;
  452. }
  453.  
  454. CMD:gmx(playerid, params[])
  455. {
  456.     if(Playerdata[playerid][Adminlevel] >= 1338)
  457.     {
  458.         SendClientMessageToAll(COLOR_RED, "Server is restarting, We are back in some seconds!");
  459.         SendRconCommand("gmx");
  460.     }
  461.     else return 0;
  462.     return 1;
  463. }
  464.  
  465. CMD:jeroen(playerid, params[])
  466. {
  467.     if(Playerdata[playerid][Adminlevel] >= 2)
  468.     {
  469.         SetPlayerPos(playerid, 3459.53002930,-1600.04138184,17.99844933);
  470.     }
  471.     else return 0;
  472.     return 1;
  473. }
  474.  
  475. CMD:createpickup(playerid, params[])
  476. {
  477.     if(Playerdata[playerid][Adminlevel] >= 5)
  478.     {
  479.         new id;
  480.         if(!sscanf(params, "i", id))
  481.         {
  482.             new Float:x, Float:y, Float:z;
  483.             GetPlayerPos(playerid, x, y, z);
  484.             CreateNewPickup(id, x, y, z);
  485.             SendClientMessage(playerid, COLOR_GREY, "Pickup created.");
  486.         }
  487.         else SendClientMessage(playerid, COLOR_RED, "USAGE: /createpickup [pickupid/vehiclemodelid]");
  488.     }
  489.     else return 0;
  490.     return 1;
  491. }
  492.  
  493. CMD:deleteallpickups(playerid, params[])
  494. {
  495.     if(Playerdata[playerid][Adminlevel] >= 5)
  496.     {
  497.         DeleteallPickups();
  498.     }
  499.     else return 0;
  500.     return 1;
  501. }
  502.  
  503. CMD:deleteallvehicles(playerid, params[])
  504. {
  505.     if(Playerdata[playerid][Adminlevel] >= 1337)
  506.     {
  507.         Deleteallcars();
  508.     }
  509.     else return 0;
  510.     return 1;
  511. }
  512.  
  513. CMD:start(playerid, params[])
  514. {
  515.     StartMap();
  516.     return 1;
  517. }
  518.  
  519. CMD:ah(playerid, params[])
  520. {
  521.     if(Playerdata[playerid][Adminlevel] >= 1)
  522.     {
  523.         SendClientMessage(playerid, COLOR_GREY, "LEVEL 1: /vehicle");
  524.     }
  525.     if(Playerdata[playerid][Adminlevel] >= 2)
  526.     {
  527.         SendClientMessage(playerid, COLOR_GREY, "LEVEL 2: /jeroen");
  528.     }
  529.     if(Playerdata[playerid][Adminlevel] >= 3)
  530.     {
  531.         SendClientMessage(playerid, COLOR_GREY, "LEVEL 3: /setskin");
  532.     }
  533.     if(Playerdata[playerid][Adminlevel] >= 4)
  534.     {
  535.         SendClientMessage(playerid, COLOR_GREY, "LEVEL 4: /setlevel");
  536.     }
  537.     if(Playerdata[playerid][Adminlevel] >= 5)
  538.     {
  539.         SendClientMessage(playerid, COLOR_GREY, "LEVEL 5: /createpickup /deleteallpickups");
  540.     }
  541.     if(Playerdata[playerid][Adminlevel] >= 1337)
  542.     {
  543.         SendClientMessage(playerid, COLOR_GREY, "LEVEL 1337: /deleteallvehicles");
  544.     }
  545.     if(Playerdata[playerid][Adminlevel] >= 1338)
  546.     {
  547.         SendClientMessage(playerid, COLOR_GREY, "LEVEL 1338: /gmx /setadminlevel");
  548.     }
  549.     if(Playerdata[playerid][Adminlevel] <= 0)
  550.     {
  551.         return 0;
  552.     }
  553.     return 1;
  554. }
  555.  
  556. CMD:help(playerid, params[])
  557. {
  558.     SendClientMessage(playerid, COLOR_GREY, "/stats /engine");
  559.     return 1;
  560. }
  561.  
  562. /*---------------End-Commands----------------*/
  563.  
  564. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  565. {
  566.     return 1;
  567. }
  568.  
  569. public OnPlayerExitVehicle(playerid, vehicleid)
  570. {
  571.     return 1;
  572. }
  573.  
  574. public OnPlayerStateChange(playerid, newstate, oldstate)
  575. {
  576.     return 1;
  577. }
  578.  
  579. public OnPlayerEnterCheckpoint(playerid)
  580. {
  581.     return 1;
  582. }
  583.  
  584. public OnPlayerLeaveCheckpoint(playerid)
  585. {
  586.     return 1;
  587. }
  588.  
  589. public OnPlayerEnterRaceCheckpoint(playerid)
  590. {
  591.     return 1;
  592. }
  593.  
  594. public OnPlayerLeaveRaceCheckpoint(playerid)
  595. {
  596.     return 1;
  597. }
  598.  
  599. public OnRconCommand(cmd[])
  600. {
  601.     return 1;
  602. }
  603.  
  604. public OnPlayerRequestSpawn(playerid)
  605. {
  606.     return 1;
  607. }
  608.  
  609. public OnObjectMoved(objectid)
  610. {
  611.     return 1;
  612. }
  613.  
  614. public OnPlayerObjectMoved(playerid, objectid)
  615. {
  616.     return 1;
  617. }
  618.  
  619. public OnPlayerPickUpPickup(playerid, pickupid)
  620. {
  621.     return 1;
  622. }
  623.  
  624. public OnVehicleMod(playerid, vehicleid, componentid)
  625. {
  626.     return 1;
  627. }
  628.  
  629. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  630. {
  631.     return 1;
  632. }
  633.  
  634. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  635. {
  636.     return 1;
  637. }
  638.  
  639. public OnPlayerSelectedMenuRow(playerid, row)
  640. {
  641.     return 1;
  642. }
  643.  
  644. public OnPlayerExitedMenu(playerid)
  645. {
  646.     return 1;
  647. }
  648.  
  649. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  650. {
  651.     return 1;
  652. }
  653.  
  654. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  655. {
  656.     if(newkeys == KEY_FIRE && IsPlayerSpectating[playerid])
  657.     {
  658.         SpectatePrevious(playerid);
  659.     }
  660.     if(newkeys == KEY_AIM && IsPlayerSpectating[playerid])
  661.     {
  662.         SpectateNext(playerid);
  663.     }
  664.     return 1;
  665. }
  666.  
  667. public OnRconLoginAttempt(ip[], password[], success)
  668. {
  669.     return 1;
  670. }
  671.  
  672. public OnPlayerUpdate(playerid)
  673. {
  674.     return 1;
  675. }
  676.  
  677. public OnPlayerStreamIn(playerid, forplayerid)
  678. {
  679.     return 1;
  680. }
  681.  
  682. public OnPlayerStreamOut(playerid, forplayerid)
  683. {
  684.     return 1;
  685. }
  686.  
  687. public OnVehicleStreamIn(vehicleid, forplayerid)
  688. {
  689.     return 1;
  690. }
  691.  
  692. public OnVehicleStreamOut(vehicleid, forplayerid)
  693. {
  694.     return 1;
  695. }
  696.  
  697. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  698. {
  699.     if(dialogid == 1)
  700.     {
  701.         if(response)
  702.         {
  703.             if(!strlen(inputtext) || strlen(inputtext) > 100)
  704.             {
  705.                 ShowPlayerDialog(playerid, 15000, DIALOG_STYLE_INPUT, "Register","{FF0000}Please enter a password between 1-100 characters!","Register","Cancel");
  706.             }
  707.             else if(strlen(inputtext) > 0 && strlen(inputtext) < 100)
  708.             {
  709.                 new escpass[100];
  710.                 mysql_real_escape_string(inputtext, escpass);
  711.                 MySQL_Register(playerid, escpass);
  712.             }
  713.         }else return Kick(playerid);
  714.     }
  715.     if(dialogid == 2)
  716.     {
  717.         if(response)
  718.         {
  719.             new query[200], pname[24], escapepass[100];
  720.             GetPlayerName(playerid, pname, 24);
  721.             mysql_real_escape_string(inputtext, escapepass);
  722.             format(query, sizeof(query), "SELECT `name` FROM users WHERE name = '%s' AND password = SHA1('%s')", pname, escapepass);
  723.             mysql_query(query);
  724.             mysql_store_result();
  725.             new numrows = mysql_num_rows();
  726.             if(numrows == 1)
  727.             {
  728.                 MySQL_Login(playerid);
  729.             }
  730.             else
  731.             {
  732.                 SendClientMessage(playerid, 0xFF0000, "Incorrect password!");
  733.                 Kick(playerid);
  734.             }
  735.             mysql_free_result();
  736.             KillTimer(logintimer[playerid]);
  737.         }else Kick(playerid);
  738.     }
  739.     return 1;
  740. }
  741.  
  742. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  743. {
  744.     return 1;
  745. }
  746.  
  747. public OnPlayerShootPlayer(Shooter,Target,Float:HealthLost,Float:ArmourLost)
  748. {
  749.     return 1;
  750. }
  751.  
  752. public OnPlayerVehicleDamage(playerid,vehicleid,Float:Damage)
  753. {
  754.     return 1;
  755. }
  756.  
  757. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  758. {
  759.     if(success == 0)
  760.     {
  761.         format(string, sizeof(string), "- The command %s don't exist, use /help for all your commands.", cmdtext);
  762.         SendClientMessage(playerid, COLOR_RED, string);
  763.     }
  764.     return 1;
  765. }
  766.  
  767. stock MySQL_Register(playerid, passwordstring[])
  768. {
  769.     new query[200], pname[24], IP[15];
  770.     GetPlayerName(playerid, pname, 24);
  771.     GetPlayerIp(playerid, IP, 15);
  772.     format(query, sizeof(query), "INSERT INTO users (name, password, IP) VALUES('%s', SHA1('%s'), '%s')", pname, passwordstring, IP);
  773.     mysql_query(query);
  774.     SendClientMessage(playerid, -1, "Succesfull registered!");
  775.     MySQL_Login(playerid);
  776.     return 1;
  777. }
  778.  
  779. stock MySQL_Login(playerid)
  780. {
  781.     new query[250], pname[24], savingstring[250], money;
  782.     GetPlayerName(playerid, pname, 24);
  783.     format(query, sizeof(query), "SELECT * FROM users WHERE name='%s' LIMIT 1", pname);
  784.     mysql_query(query);
  785.     mysql_store_result();
  786.     if(mysql_fetch_row_format(savingstring))
  787.     {
  788.         sscanf(savingstring,"p<|>{is[24]s[250]}iiis[19]{s[15]}iiii",
  789.         Playerdata[playerid][Skin],
  790.         Playerdata[playerid][Adminlevel],
  791.         Playerdata[playerid][Vip],
  792.         Playerdata[playerid][Vipexp],
  793.         money,
  794.         Playerdata[playerid][Level],
  795.         Playerdata[playerid][Kill],
  796.         Playerdata[playerid][Death]);
  797.     }
  798.     mysql_free_result();
  799.     format(string, sizeof(string), "Welcome back %s!", pname);
  800.     SendClientMessage(playerid, COLOR_FADE1, string);
  801.     ResetPlayerMoney(playerid);
  802.     GivePlayerMoney(playerid, money);
  803.     SetPlayerScore(playerid, Playerdata[playerid][Level]);
  804.     if(Playerdata[playerid][Adminlevel] > 0)
  805.     {
  806.         format(string, sizeof(string), "You are a staff member, rank: %i", Playerdata[playerid][Adminlevel]);
  807.         SendClientMessage(playerid, COLOR_FADE1, string);
  808.     }
  809.     new name[MAX_PLAYER_NAME], country[MAX_COUNTRY_NAME];
  810.     GetPlayerName(playerid, name, sizeof(name));
  811.     country = GetPlayerCountryName(playerid);
  812.     format(string, sizeof(string), "[JOIN] %s (%s)", name, country);
  813.     SendClientMessageToElse(playerid, COLOR_GREEN, string);
  814.    
  815.     SetSpawnInfo(playerid, 0, Playerdata[playerid][Skin], 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  816.     SpawnPlayer(playerid);
  817.     SetPlayerColor(playerid, COLOR_WHITE);
  818.     return 1;
  819. }
  820.  
  821. stock MySQL_Save(playerid)
  822. {
  823.     new query[200], pname[24];
  824.     GetPlayerName(playerid, pname, 24);
  825.     format(query, sizeof(query), "UPDATE `users` SET `level`='%i', `money`='%i', `skin`='%i', `adminlevel`='%i', `vip`='%i', `vipexp`='%s', `kill`='%i', `death`='%i' WHERE `name`='%s'",
  826.     Playerdata[playerid][Level],
  827.     GetPlayerMoney(playerid),
  828.     Playerdata[playerid][Skin],
  829.     Playerdata[playerid][Adminlevel],
  830.     Playerdata[playerid][Vip],
  831.     Playerdata[playerid][Vipexp],
  832.     Playerdata[playerid][Kill],
  833.     Playerdata[playerid][Death],
  834.     pname);
  835.     mysql_query(query);
  836.     return 1;
  837. }
  838.  
  839. public LoginKick(playerid)
  840. {
  841.     LoginKicked[playerid] = true;
  842.     Kick(playerid);
  843.     return 1;
  844. }
  845.  
  846. public Update()
  847. {
  848.     for(new i=0; i<=MAX_PLAYERS; i++)
  849.     {
  850.         if(!IsPlayerConnected(i)) continue;
  851.         for(new p=0; p<=Aantalpickup; p++)
  852.         {
  853.             if(Aantalpickup1[p][pdeleted] == 1) continue;
  854.             if(IsPlayerInRangeOfPoint(i, 2, Aantalpickup1[p][px], Aantalpickup1[p][py], Aantalpickup1[p][pz]))
  855.             {
  856.                 if(Aantalpickup1[p][psoort] == 0)
  857.                 {
  858.                     if(PointTimer[i][0]) continue;
  859.                     if(IsPlayerInAnyVehicle(i))
  860.                     {
  861.                         new vehicleid = GetPlayerVehicleID(i);
  862.                         RepairVehicle(vehicleid);
  863.                         PlayerPlaySound(i, 1133, 0.0, 0.0, 0.0);
  864.                         PointTimer[i][0] = true;
  865.                         SetTimerEx("PickupClear", 5000, false, "ii", i, 0);
  866.                     }
  867.                 }
  868.                 else if(Aantalpickup1[p][psoort] == 1)
  869.                 {
  870.                     if(PointTimer[i][1]) continue;
  871.                     if(IsPlayerInAnyVehicle(i))
  872.                     {
  873.                         new vehicleid = GetPlayerVehicleID(i);
  874.                         AddVehicleComponent(vehicleid, 1009);
  875.                         PlayerPlaySound(i, 1133, 0.0, 0.0, 0.0);
  876.                         PointTimer[i][1] = true;
  877.                         SetTimerEx("PickupClear", 5000, false, "ii", i, 1);
  878.                     }
  879.                 }
  880.                 else if(Aantalpickup1[p][psoort] == 2)
  881.                 {
  882.                     if(PointTimer[i][2]) continue;
  883.                     if(IsPlayerInAnyVehicle(i))
  884.                     {
  885.                         new vehicleid = GetPlayerVehicleID(i);
  886.                         if(GetVehicleModel(vehicleid) == Carpickup[p][soort]) continue;
  887.                         DestroyVehicle(vehicleid);
  888.  
  889.                         new Float:X, Float:Y, Float:Z, Float:Ang, pVeh;
  890.                         GetPlayerPos(i, X, Y, Z);
  891.                         GetPlayerFacingAngle(i, Ang);
  892.                         pVeh = CreateVehicle(Carpickup[p][soort], X, Y, Z, Ang, 0, 0, -1);
  893.                         PutPlayerInVehicle(i, pVeh, 0);
  894.                         PlayerPlaySound(i, 1133, 0.0, 0.0, 0.0);
  895.                         EnableCarEngine(i);
  896.                         PointTimer[i][2] = true;
  897.                         SetTimerEx("PickupClear", 5000, false, "ii", i, 2);
  898.                     }
  899.                 }
  900.             }
  901.         }
  902.     }
  903.    
  904.     if(updateteller == 600)
  905.     {
  906.         for(new i=0; i<=MAX_PLAYERS; i++)
  907.         {
  908.             if(!IsPlayerConnected(i)) continue;
  909.             SetPlayerScore(i, Playerdata[i][Level]);
  910.             if(IsPlayerInWater(i))
  911.             {
  912.                 if(IsPlayerInAnyVehicle(i))
  913.                 {
  914.                     new vehicleid = GetPlayerVehicleID(i);
  915.                     DestroyVehicle(vehicleid);
  916.                 }
  917.                 SetPlayerHealth(i, -10);
  918.             }
  919.         }
  920.         updateteller = 0;
  921.     }
  922.     updateteller++;
  923.     return 1;
  924. }
  925.  
  926. stock IsPlayerInWater(playerid)
  927. {
  928.     new Float:FXF_wpos[3];
  929.     GetPlayerPos(playerid,FXF_wpos[0],FXF_wpos[1],FXF_wpos[2]);
  930.     if((FXF_wpos[2] > 0.00) || IsPlayerInZone(playerid,1808.2019,1424.5392,-2230.5024,-2347.7979)) { return 0; }
  931.     else if((FXF_wpos[2] < 0.00)) { return 1; }
  932.     return 0;
  933. }
  934.  
  935. stock IsPlayerInZone(playerid, Float:minX, Float:minY, Float:maxX, Float:maxY)
  936. {
  937.     new Float:FXF_ZoneX, Float:FXF_ZoneY, Float:FXF_ZoneZ;
  938.     GetPlayerPos(playerid, FXF_ZoneX, FXF_ZoneY, FXF_ZoneZ);
  939.     if((FXF_ZoneX >= minX && FXF_ZoneX <= maxX) && (FXF_ZoneY >= minY && FXF_ZoneY <= maxY) && FXF_ZoneZ <= 500)
  940.     {
  941.         return 1;
  942.     }
  943.     return 0;
  944. }
  945.  
  946. stock SpectateOn(playerid)
  947. {
  948.     new loop;
  949.     TogglePlayerSpectating(playerid, 1);
  950.     IsPlayerSpectating[playerid] = true;
  951.     SpectatedPlayer[playerid] = 0;
  952.     for(new i=SpectatedPlayer[playerid]+1; loop < 2; i++)
  953.     {
  954.         if(i >= MAX_PLAYERS)
  955.         {
  956.             i = 0;
  957.             loop++;
  958.         }
  959.         if(IsPlayerConnected(i) && i != playerid)
  960.         {
  961.             if(IsPlayerInAnyVehicle(i))
  962.             {
  963.                 PlayerSpectateVehicle(playerid, GetPlayerVehicleID(i));
  964.             }
  965.             else
  966.             {
  967.                 PlayerSpectatePlayer(playerid, i);
  968.             }
  969.             SpectatedPlayer[playerid] = i;
  970.             new str[128];
  971.             format(str, 128, "You are now spectating %s (ID:%d).", GetName(SpectatedPlayer[playerid]), SpectatedPlayer[playerid]);
  972.             SendClientMessage(playerid, COLOR_FADE1, str);
  973.             return 1;
  974.         }
  975.     }
  976.     SendClientMessage(playerid, COLOR_FADE1, "No players");
  977.     SpectateOff(playerid);
  978.     return 0;
  979. }
  980.  
  981. stock SpectateOff(playerid)
  982. {
  983.         TogglePlayerSpectating(playerid, 0);
  984.         SetSpawnInfo(playerid, 0, Playerdata[playerid][Skin], 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  985.         SpawnPlayer(playerid);
  986.         SpectatedPlayer[playerid] = 0;
  987.         TextDrawHideForPlayer(playerid, Textdraw0);
  988.         TextDrawShowForPlayer(playerid, blackTD);
  989.         IsPlayerSpectating[playerid] = false;
  990. }
  991.  
  992. stock SpectateNext(playerid)
  993. {
  994.     new loop;
  995.     for(new i=SpectatedPlayer[playerid]+1; loop < 2; i++)
  996.     {
  997.         if(i >= MAX_PLAYERS)
  998.         {
  999.             i = 0;
  1000.             loop++;
  1001.         }
  1002.         if(IsPlayerConnected(i) && i != playerid)
  1003.         {
  1004.             if(IsPlayerInAnyVehicle(i))
  1005.             {
  1006.                 PlayerSpectateVehicle(playerid, GetPlayerVehicleID(i));
  1007.             }
  1008.             else
  1009.             {
  1010.                 PlayerSpectatePlayer(playerid, i);
  1011.             }
  1012.             SpectatedPlayer[playerid] = i;
  1013.             new str[128];
  1014.             format(str, 128, "You are now spectating %s (ID:%d).", GetName(SpectatedPlayer[playerid]), SpectatedPlayer[playerid]);
  1015.             SendClientMessage(playerid, COLOR_FADE1, str);
  1016.             return 1;
  1017.         }
  1018.     }
  1019.     SendClientMessage(playerid, COLOR_FADE1, "No players");
  1020.     SpectateOff(playerid);
  1021.     return 0;
  1022. }
  1023.  
  1024. stock SpectatePrevious(playerid)
  1025. {
  1026.     new loop;
  1027.     for(new i=SpectatedPlayer[playerid]-1; loop < 2; i--)
  1028.     {
  1029.         if(i < 0)
  1030.         {
  1031.             i = MAX_PLAYERS;
  1032.             loop++;
  1033.         }
  1034.         if(IsPlayerConnected(i) && i != playerid)
  1035.         {
  1036.             if(IsPlayerInAnyVehicle(i))
  1037.             {
  1038.                 PlayerSpectateVehicle(playerid, GetPlayerVehicleID(i));
  1039.             }
  1040.             else
  1041.             {
  1042.                 PlayerSpectatePlayer(playerid, i);
  1043.             }
  1044.             SpectatedPlayer[playerid] = i;
  1045.             new str[128];
  1046.             format(str, 128, "You are now spectating %s (ID:%d).", GetName(SpectatedPlayer[playerid]), SpectatedPlayer[playerid]);
  1047.             SendClientMessage(playerid, COLOR_FADE1, str);
  1048.             return 1;
  1049.         }
  1050.     }
  1051.     SendClientMessage(playerid, COLOR_FADE1, "No players");
  1052.     SpectateOff(playerid);
  1053.     return 0;
  1054. }
  1055.  
  1056. stock GetName(i)
  1057. {
  1058.     new name[24];
  1059.     GetPlayerName(i, name, 24);
  1060.     return name;
  1061. }
  1062.  
  1063. stock CreateNewPickup(id, Float:x, Float:y, Float:z)
  1064. {
  1065.     new pickup;
  1066.     if(id==1)
  1067.     {
  1068.         new Text3D:text;
  1069.         pickup = CreatePickup(1240, 1, x, y, z, -1);
  1070.         text = Create3DTextLabel("[REPAIR]", 0x008080FF, x, y, z+0.3,40.0,0);
  1071.         Aantalpickup++;
  1072.         Aantalpickup1[Aantalpickup][pid] = pickup;
  1073.         Aantalpickup1[Aantalpickup][ptext] = text;
  1074.         Aantalpickup1[Aantalpickup][psoort] = 0;
  1075.         Aantalpickup1[Aantalpickup][px] = x;
  1076.         Aantalpickup1[Aantalpickup][py] = y;
  1077.         Aantalpickup1[Aantalpickup][pz] = z;
  1078.         Aantalpickup1[Aantalpickup][pdeleted] = 0;
  1079.     }
  1080.     else if(id==2)
  1081.     {
  1082.         new Text3D:text;
  1083.         pickup = CreatePickup(1241, 1, x, y, z, -1);
  1084.         text = Create3DTextLabel("[NITRO]", 0x008080FF, x, y, z+0.3,40.0,0);
  1085.         Aantalpickup++;
  1086.         Aantalpickup1[Aantalpickup][pid] = pickup;
  1087.         Aantalpickup1[Aantalpickup][ptext] = text;
  1088.         Aantalpickup1[Aantalpickup][psoort] = 1;
  1089.         Aantalpickup1[Aantalpickup][px] = x;
  1090.         Aantalpickup1[Aantalpickup][py] = y;
  1091.         Aantalpickup1[Aantalpickup][pz] = z;
  1092.         Aantalpickup1[Aantalpickup][pdeleted] = 0;
  1093.     }
  1094.     else
  1095.     {
  1096.         new Text3D:text;
  1097.         pickup = CreatePickup(1239, 1, x, y, z, -1);
  1098.         format(string, sizeof(string), "[%s]", VehicleNames[id-400]);
  1099.         text = Create3DTextLabel(string, 0x008080FF, x, y, z+0.3,40.0,0);
  1100.         Carpickup[pickup][pid] = pickup;
  1101.         Carpickup[pickup][soort] = id;
  1102.         Aantalpickup++;
  1103.         Aantalpickup1[Aantalpickup][pid] = pickup;
  1104.         Aantalpickup1[Aantalpickup][ptext] = text;
  1105.         Aantalpickup1[Aantalpickup][psoort] = 2;
  1106.         Aantalpickup1[Aantalpickup][px] = x;
  1107.         Aantalpickup1[Aantalpickup][py] = y;
  1108.         Aantalpickup1[Aantalpickup][pz] = z;
  1109.         Aantalpickup1[Aantalpickup][pdeleted] = 0;
  1110.     }
  1111. }
  1112.  
  1113. stock DeleteallPickups()
  1114. {
  1115.     for(new p=0; p<=Aantalpickup; p++)
  1116.     {
  1117.         DestroyPickup(p);
  1118.         Delete3DTextLabel(Aantalpickup1[p][ptext]);
  1119.         Aantalpickup1[p][pdeleted] = 1;
  1120.     }
  1121.     return 1;
  1122. }
  1123.  
  1124. stock Deleteallcars()
  1125. {
  1126.     for(new v=0; v<=MAX_VEHICLES; v++)
  1127.     {
  1128.         if(GetVehicleModel(v) == 0) continue;
  1129.         DestroyVehicle(v);
  1130.     }
  1131. }
  1132.  
  1133. public PickupClear(playerid, pickupsoort)
  1134. {
  1135.     PointTimer[playerid][pickupsoort] = false;
  1136.     return 1;
  1137. }
  1138.  
  1139. stock SendClientMessageToElse(playerid, color, string123[])
  1140. {
  1141.     for(new p=0; p<=MAX_PLAYERS; p++)
  1142.     {
  1143.         if(p==playerid) continue;
  1144.         SendClientMessage(p, color, string123);
  1145.     }
  1146.     return 1;
  1147. }
  1148.  
  1149. stock EnableCarEngine(playerid)
  1150. {
  1151.     if(IsPlayerInAnyVehicle(playerid))
  1152.     {
  1153.         new engine, lights, alarm, doors, bonnet, boot, objective;
  1154.         new vehicleid = GetPlayerVehicleID(playerid);
  1155.         GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  1156.         SetVehicleParamsEx(vehicleid, true, lights, alarm, doors, bonnet, boot, objective);
  1157.     }
  1158. }
  1159.  
  1160. stock Createnewobjects(mapid)
  1161. {
  1162.     new query[100];
  1163.     format(query, sizeof(query), "SELECT * FROM objects WHERE mapid = '%i'", mapid);
  1164.     mysql_query(query);
  1165.     mysql_store_result();
  1166.     while(mysql_fetch_row_format(query))
  1167.     {
  1168.         new Model;
  1169.         new Float:pos[6];
  1170.         sscanf(query, "p<|>{ii}ia<f>[6]", Model, pos);
  1171.         CreateDynamicObject(Model, pos[0], pos[1], pos[2], pos[3], pos[4], pos[5]);
  1172.     }
  1173.     mysql_free_result();
  1174.     return 1;
  1175. }
  1176.  
  1177. stock Createnewcars(mapid)
  1178. {
  1179.     new query[100];
  1180.     new tellen = 0;
  1181.     format(query, sizeof(query), "SELECT * FROM vehicles WHERE mapid = '%i'", mapid);
  1182.     mysql_query(query);
  1183.     mysql_store_result();
  1184.     while(mysql_fetch_row_format(query))
  1185.     {
  1186.         if(tellen >= 25)
  1187.         {
  1188.             return 1;
  1189.         }
  1190.         new Model;
  1191.         new Float:pos[4];
  1192.         new color[2];
  1193.         color[0] = random(127);
  1194.         color[1] = random(127);
  1195.        
  1196.         sscanf(query, "p<|>{ii}ia<f>[4]", Model, pos);
  1197.         SetVehicleNumberPlate(cars[tellen] = CreateVehicle(Model, pos[0], pos[1], pos[2]+3, pos[3], color[0], color[1], -1), "RDD V"#VERSION);
  1198.         tellen++;
  1199.     }
  1200.     mysql_free_result();
  1201.     return 1;
  1202. }
  1203.  
  1204. stock Createnewpickups(mapid)
  1205. {
  1206.     new query[100];
  1207.     format(query, sizeof(query), "SELECT * FROM pickups WHERE mapid = '%i'", mapid);
  1208.     mysql_query(query);
  1209.     mysql_store_result();
  1210.     while(mysql_fetch_row_format(query))
  1211.     {
  1212.         new Soort;
  1213.         new Float:pos[3];
  1214.  
  1215.         sscanf(query, "p<|>{ii}ia<f>[3]", Soort, pos);
  1216.         CreateNewPickup(Soort, pos[0], pos[1], pos[2]);
  1217.     }
  1218.     mysql_free_result();
  1219.     return 1;
  1220. }
  1221.  
  1222. stock NextMap()
  1223. {
  1224.     new query[100];
  1225.     CurrentMap++;
  1226.     format(query, sizeof(query), "SELECT * FROM map WHERE id = '%i' LIMIT 1", CurrentMap);
  1227.     mysql_query(query);
  1228.     mysql_store_result();
  1229.     new rows = mysql_num_rows();
  1230.     if(rows == 0)
  1231.     {
  1232.         CurrentMap=0;
  1233.     }
  1234.     return 1;
  1235. }
  1236.  
  1237. stock StartMap()
  1238. {
  1239.     for(new i=0; i<=MAX_PLAYERS; i++)
  1240.     {
  1241.         if(!IsPlayerConnected(i)) continue;
  1242.         SpectateOff(i);
  1243.         Ingame[i] = true;
  1244.         TogglePlayerControllable(i, false);
  1245.     }
  1246.     format(string, sizeof(string), "Wait... And....");
  1247.     GameTextForAll(string, 5500, 4);
  1248.     DestroyAllDynamicObjects();
  1249.     Deleteallcars();
  1250.     DeleteallPickups();
  1251.     NextMap();
  1252.     Createnewobjects(CurrentMap);
  1253.     Createnewcars(CurrentMap);
  1254.     Createnewpickups(CurrentMap);
  1255.     for(new i=0; i<=MAX_PLAYERS; i++)
  1256.     {
  1257.         if(!IsPlayerConnected(i)) continue;
  1258.         PutPlayerInVehicle(i, cars[i], 0);
  1259.     }
  1260.     SetTimer("DestroyUnusedCars", 5000, false);
  1261. }
  1262.  
  1263. stock GetOnlinePlayers()
  1264. {
  1265.     new aantal = 0;
  1266.     for(new i=0; i<=MAX_PLAYERS; i++)
  1267.     {
  1268.         if(!IsPlayerConnected(i)) continue;
  1269.         aantal++;
  1270.     }
  1271.     return aantal;
  1272. }
  1273.  
  1274. forward DestroyUnusedCars();
  1275. public DestroyUnusedCars()
  1276. {
  1277.     new bool:VehicleUsed[MAX_VEHICLES] = false;
  1278.     for(new i = 0; i < MAX_PLAYERS; i++)
  1279.     {
  1280.         if(IsPlayerConnected(i))
  1281.         {
  1282.         Ingame[i] = false;
  1283.         TextDrawHideForPlayer(i, blackTD);
  1284.         EnableCarEngine(i);
  1285.         format(string, sizeof(string), "GOOOOOO!");
  1286.         GameTextForPlayer(i, string, 3000, 4);
  1287.         TogglePlayerControllable(i, true);
  1288.         }
  1289.         if(IsPlayerInAnyVehicle(i)) VehicleUsed[GetPlayerVehicleID(i)] = true;
  1290.     }
  1291.     for(new i = 0; i < MAX_VEHICLES; i++)
  1292.     {
  1293.         if(VehicleUsed[i] == false) DestroyVehicle(i);
  1294.     }
  1295.     return 1;
  1296. }
  1297.  
  1298. stock GetAlivePlayers()
  1299. {
  1300.     new aantal = 0;
  1301.     for(new i=0; i<=MAX_PLAYERS; i++)
  1302.     {
  1303.         if(!IsPlayerConnected(i) || IsPlayerSpectating[i] == false) continue;
  1304.         aantal++;
  1305.     }
  1306.     return aantal;
  1307. }
Advertisement
Add Comment
Please, Sign In to add comment