Guest User

Sandra

a guest
Feb 15th, 2009
665
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 20.68 KB | None | 0 0
  1. #include <a_samp>
  2. #include <dini>
  3.  
  4. #define OVERALLFILE "JumpHighscores.cfg"
  5. #define PERSONALFILE "PersonalJumpHighscores.cfg"
  6. #define DEFAULT_BIKEMODEl 522   //NRG-500
  7.  
  8. new Timer1, Timer2, Timer3, MaxTimer;
  9. new Racer = -1;
  10. new Motor;
  11.  
  12. new Float:HS[3], HSN[3][MAX_PLAYER_NAME];
  13. new Text:TD0;
  14. new Text:TD1;
  15. new Text:TD2;
  16. new Text:TD3;
  17. new Text:TD4;
  18. new TDS1[128] = " ";
  19. new TDS2[128] = " ";
  20. new TDS4[128] = " ";
  21. new TDS5[40] = " ";
  22. new LasttmpX;
  23. new Count;
  24. new TimeLeft;
  25. new Float:Distance;
  26. new Menu:AdminMenu;
  27. new Menu:MotorMenu;
  28. new Menu:YesNoGlobal;
  29. new Menu:YesNoPersonal;
  30. new BikeModel = DEFAULT_BIKEMODEl;
  31.  
  32. public OnFilterScriptInit()
  33. {
  34.     CreateObject(1655, 54.348621, 2502.778076, 16.792294, 0.0000, 0.0000, 90.0000);
  35.     CreateObject(979, 61.964684, 2510.659912, 16.324594, 0.0000, 0.0000, 225.0000);
  36.     CreateObject(979, 68.574669, 2517.179688, 16.324594, 0.0000, 0.0000, 224.1406);
  37.     CreateObject(979, 74.838379, 2523.267090, 16.324594, 0.0000, 0.0000, 224.1406);
  38.     CreateObject(978, 61.268669, 2494.687256, 16.324594, 0.0000, 0.0000, 303.7500);
  39.     CreateObject(978, 66.452194, 2486.926514, 16.324594, 0.0000, 0.0000, 303.7500);
  40.     CreateObject(978, 71.637367, 2479.152832, 16.324596, 0.0000, 0.0000, 303.7500);
  41.     CreateObject(982, 37.394611, 2497.127930, 16.167931, 0.0000, 0.0000, 270.0000);
  42.     CreateObject(982, 37.501751, 2508.678711, 16.167931, 0.0000, 0.0000, 270.0000);
  43.     CreateObject(982, 11.898752, 2508.676514, 16.167931, 0.0000, 0.0000, 270.0000);
  44.     CreateObject(982, 11.785603, 2497.133789, 16.167931, 0.0000, 0.0000, 270.0000);
  45.     CreateObject(982, -13.819443, 2497.136475, 16.167931, 0.0000, 0.0000, 270.0000);
  46.     CreateObject(982, -13.738670, 2508.645752, 16.175739, 0.0000, 0.0000, 270.0000);
  47.     CreateObject(982, -39.338737, 2508.623291, 16.167931, 0.0000, 0.0000, 270.0000);
  48.     CreateObject(982, -64.946236, 2508.630859, 16.175737, 0.0000, 0.0000, 270.0000);
  49.     CreateObject(982, -39.422119, 2497.141602, 16.167931, 0.0000, 0.0000, 270.0000);
  50.     CreateObject(982, -65.034653, 2497.131348, 16.167931, 0.0000, 0.0000, 270.0000);
  51.     CreateObject(3461, -77.754257, 2508.626709, 17.059387, 0.0000, 0.0000, 0.0000);
  52.     CreateObject(3461, -77.824821, 2497.134033, 17.240005, 0.0000, 0.0000, 0.0000);
  53.     CreateObject(3461, -60.153984, 2508.603760, 17.067196, 0.0000, 0.0000, 0.0000);
  54.     CreateObject(3461, -60.245415, 2497.100830, 17.059387, 0.0000, 0.0000, 0.0000);
  55.     CreateObject(3461, -42.536339, 2508.615723, 17.059387, 0.0000, 0.0000, 0.0000);
  56.     CreateObject(3461, -42.645630, 2497.122314, 17.059387, 0.0000, 0.0000, 0.0000);
  57.     CreateObject(3461, -24.953836, 2508.633301, 17.059387, 0.0000, 0.0000, 0.0000);
  58.     CreateObject(3461, -25.054081, 2497.136963, 17.059387, 0.0000, 0.0000, 0.0000);
  59.     CreateObject(3461, -7.358308, 2508.621338, 17.067196, 0.0000, 0.0000, 0.0000);
  60.     CreateObject(3461, -7.405560, 2497.130371, 17.059387, 0.0000, 0.0000, 0.0000);
  61.     CreateObject(3461, 10.270878, 2508.671143, 17.059387, 0.0000, 0.0000, 0.0000);
  62.     CreateObject(3461, 10.190086, 2497.112305, 17.059387, 0.0000, 0.0000, 0.0000);
  63.     CreateObject(3461, 27.894892, 2508.682861, 17.059387, 0.0000, 0.0000, 0.0000);
  64.     CreateObject(3461, 27.788519, 2497.122070, 17.059387, 0.0000, 0.0000, 0.0000);
  65.     CreateObject(3461, 45.501919, 2508.674316, 17.059387, 0.0000, 0.0000, 0.0000);
  66.     CreateObject(3461, 45.367653, 2497.103027, 17.059387, 0.0000, 0.0000, 0.0000);
  67.     CreateObject(3568, -49.846252, 2485.552002, 18.097994, 0.0000, 0.0000, 213.7501);
  68.     CreateObject(3568, 23.495960, 2515.677979, 18.097994, 0.0000, 0.0000, 90.0001);
  69.     CreateObject(3566, -56.099358, 2517.848389, 18.097994, 0.0000, 0.0000, 303.7500);
  70.     CreateObject(3819, -37.348824, 2512.810303, 16.482134, 0.0000, 0.0000, 90.0000);
  71.     CreateObject(3819, -28.746914, 2512.851074, 16.482134, 0.0000, 0.0000, 90.0000);
  72.     CreateObject(3819, -20.126209, 2512.839844, 16.489943, 0.0000, 0.0000, 90.0000);
  73.     CreateObject(3819, -11.508772, 2512.832764, 16.489943, 0.0000, 0.0000, 90.0000);
  74.     CreateObject(3819, -37.340233, 2493.169189, 16.482134, 0.0000, 0.0000, 270.0000);
  75.     CreateObject(3819, -28.750528, 2493.177734, 16.482134, 0.0000, 0.0000, 270.0000);
  76.     CreateObject(3819, -20.152523, 2493.154785, 16.482134, 0.0000, 0.0000, 270.0000);
  77.     CreateObject(3819, -11.532024, 2493.193115, 16.482134, 0.0000, 0.0000, 270.0000);
  78.    
  79.     TD0 = TextDrawCreate(325.000000,137.000000,"Highscores:");
  80.     TD1 = TextDrawCreate(157.000000,179.000000, TDS1);
  81.     TD2 = TextDrawCreate(308.000000,179.000000, TDS2);
  82.     TD3 = TextDrawCreate(205.000000,411.000000, TDS4);
  83.     TD4 = TextDrawCreate(326.000000,240.000000,TDS5);
  84.     TextDrawUseBox(TD1,1);
  85.     TextDrawUseBox(TD4,1);
  86.     TextDrawBoxColor(TD1,0x00000066);
  87.     TextDrawBoxColor(TD3,0x00000066);
  88.     TextDrawBoxColor(TD4,0x00000066);
  89.     TextDrawTextSize(TD1,492.000000,-37.000000);
  90.     TextDrawTextSize(TD3,490.000000,1.000000);
  91.     TextDrawTextSize(TD4,470.000000,337.000000);
  92.     TextDrawAlignment(TD0,2);
  93.     TextDrawAlignment(TD1,1);
  94.     TextDrawAlignment(TD2,0);
  95.     TextDrawAlignment(TD3,0);
  96.     TextDrawAlignment(TD4,2);
  97.     TextDrawBackgroundColor(TD0,0x000000ff);
  98.     TextDrawBackgroundColor(TD1,0x000000ff);
  99.     TextDrawBackgroundColor(TD2,0x000000ff);
  100.     TextDrawBackgroundColor(TD3,0x000000ff);
  101.     TextDrawBackgroundColor(TD4,0x000000ff);
  102.     TextDrawFont(TD0,3);
  103.     TextDrawLetterSize(TD0,1.0, 3.000005);
  104.     TextDrawFont(TD1,3);
  105.     TextDrawLetterSize(TD1,0.499999,1.400000);
  106.     TextDrawFont(TD2,3);
  107.     TextDrawLetterSize(TD2,0.499999,1.400000);
  108.     TextDrawFont(TD3,3);
  109.     TextDrawLetterSize(TD3,0.799999,1.800000);
  110.     TextDrawFont(TD4,3);
  111.     TextDrawLetterSize(TD4,0.599999,1.900000);
  112.     TextDrawColor(TD0,0xffffffff);
  113.     TextDrawColor(TD1,0xffffffff);
  114.     TextDrawColor(TD2,0xffffffff);
  115.     TextDrawColor(TD3,0xffffffff);
  116.     TextDrawColor(TD4,0xffffffff);
  117.     TextDrawSetOutline(TD0,1);
  118.     TextDrawSetOutline(TD1,1);
  119.     TextDrawSetOutline(TD2,1);
  120.     TextDrawSetOutline(TD3,1);
  121.     TextDrawSetOutline(TD4,1);
  122.     TextDrawSetProportional(TD0,1);
  123.     TextDrawSetProportional(TD1,1);
  124.     TextDrawSetProportional(TD2,1);
  125.     TextDrawSetProportional(TD3,1);
  126.     TextDrawSetProportional(TD4,1);
  127.     TextDrawSetShadow(TD0,1);
  128.     TextDrawSetShadow(TD1,1);
  129.     TextDrawSetShadow(TD2,1);
  130.     TextDrawSetShadow(TD3,1);
  131.     TextDrawSetShadow(TD4,1);
  132.    
  133.     AdminMenu = CreateMenu("Jump-AdminOptions:", 1, 157.000000,179.000000, 290.0);
  134.     AddMenuItem(AdminMenu, 0, "Reset Global Highscores");
  135.     AddMenuItem(AdminMenu, 0, "Reset Personal Highscores");
  136.     AddMenuItem(AdminMenu, 0, "Change BikeModel");
  137.     AddMenuItem(AdminMenu, 0, "Cancel");
  138.     MotorMenu = CreateMenu("Select Bike:", 1, 157.000000,179.000000, 290.0);
  139.     AddMenuItem(MotorMenu, 0, "NRG-500");
  140.     AddMenuItem(MotorMenu, 0, "BF-400");
  141.     AddMenuItem(MotorMenu, 0, "FCR-900");
  142.     AddMenuItem(MotorMenu, 0, "Freeway");
  143.     AddMenuItem(MotorMenu, 0, "PCJ-600");
  144.     AddMenuItem(MotorMenu, 0, "Sanchez");
  145.     AddMenuItem(MotorMenu, 0, "Cancel");
  146.     YesNoGlobal = CreateMenu("Are You Sure?", 1, 157.000000,179.000000, 290.0);
  147.     AddMenuItem(YesNoGlobal, 0, "No");
  148.     AddMenuItem(YesNoGlobal, 0, "Yes");
  149.     YesNoPersonal = CreateMenu("Are You Sure?", 1, 157.000000,179.000000, 290.0);
  150.     AddMenuItem(YesNoPersonal, 0, "No");
  151.     AddMenuItem(YesNoPersonal, 0, "Yes");
  152.  
  153.     if(!dini_Exists(OVERALLFILE))
  154.     {
  155.         dini_Create(OVERALLFILE);
  156.         printf("[File Created]: %s", OVERALLFILE);
  157.         dini_FloatSet(OVERALLFILE, "S1", 0.0000);
  158.         dini_FloatSet(OVERALLFILE, "S2", 0.0000);
  159.         dini_FloatSet(OVERALLFILE, "S3", 0.0000);
  160.         dini_Set(OVERALLFILE, "N1", "Empty");
  161.         dini_Set(OVERALLFILE, "N2", "Empty");
  162.         dini_Set(OVERALLFILE, "N3", "Empty");
  163.     }
  164.     if(!dini_Exists(PERSONALFILE))
  165.     {
  166.         dini_Create(PERSONALFILE);
  167.         printf("[File Created]: %s", PERSONALFILE);
  168.     }
  169.     HS[0] = dini_Float(OVERALLFILE, "S1");
  170.     HS[1] = dini_Float(OVERALLFILE, "S2");
  171.     HS[2] = dini_Float(OVERALLFILE, "S3");
  172.     format(HSN[0], MAX_PLAYER_NAME, "%s", dini_Get(OVERALLFILE, "N1"));
  173.     format(HSN[1], MAX_PLAYER_NAME, "%s", dini_Get(OVERALLFILE, "N2"));
  174.     format(HSN[2], MAX_PLAYER_NAME, "%s", dini_Get(OVERALLFILE, "N3"));
  175.     print("-------------------------------------");
  176.     print(" Jump Minigame by =>Sandra<= Loaded! ");
  177.     print("-------------------------------------");
  178.     return 1;
  179. }
  180.  
  181. public OnFilterScriptExit()
  182. {
  183.     if(Racer != -1)
  184.     {
  185.         EndRace();
  186.     }
  187.     if(dini_Exists(OVERALLFILE))
  188.     {
  189.         dini_FloatSet(OVERALLFILE, "S1", HS[0]);
  190.         dini_FloatSet(OVERALLFILE, "S2", HS[1]);
  191.         dini_FloatSet(OVERALLFILE, "S3", HS[2]);
  192.         dini_Set(OVERALLFILE, "N1", HSN[0]);
  193.         dini_Set(OVERALLFILE, "N2", HSN[1]);
  194.         dini_Set(OVERALLFILE, "N3", HSN[2]);
  195.     }
  196.     TextDrawHideForAll(TD0);
  197.     TextDrawHideForAll(TD1);
  198.     TextDrawHideForAll(TD2);
  199.     TextDrawHideForAll(TD3);
  200.     TextDrawHideForAll(TD4);
  201.     TextDrawDestroy(TD0);
  202.     TextDrawDestroy(TD1);
  203.     TextDrawDestroy(TD2);
  204.     TextDrawDestroy(TD3);
  205.     TextDrawDestroy(TD4);
  206.     return 1;
  207. }
  208.  
  209. public OnPlayerConnect(playerid)
  210. {
  211.     SendClientMessage(playerid, 0x00FF00AA, "This server has a Jump-Minigame. Type /jump to play!");
  212.     return 1;
  213. }
  214.  
  215. public OnPlayerDisconnect(playerid, reason)
  216. {
  217.     if(Racer == playerid)
  218.     {
  219.         EndRace();
  220.     }
  221.     return 1;
  222. }
  223.  
  224. public OnPlayerDeath(playerid, killerid, reason)
  225. {
  226.     if(Racer == playerid)
  227.     {
  228.         EndRace();
  229.     }
  230.     return 1;
  231. }
  232.  
  233.  
  234. public OnPlayerCommandText(playerid, cmdtext[])
  235. {
  236.  
  237.     if (strcmp("/jumphelp", cmdtext, true) == 0)
  238.     {
  239.         if(IsPlayerAdmin(playerid))
  240.         {
  241.             SendClientMessage(playerid, 0x7CFC00AA, "[COMMANDS]: /jump  **  /stopjump  **  /jumphighscore(s) (or /jhs)  **  /jumpadmin");
  242.         }
  243.         else
  244.         {
  245.             SendClientMessage(playerid, 0x7CFC00AA, "[COMMANDS]: /jump  **  /stopjump  **  /jumphighscore(s) (or /jhs)");
  246.         }
  247.         return 1;
  248.     }
  249.     if (strcmp("/jump", cmdtext, true) == 0)
  250.     {
  251.         if(Racer != -1) return SendClientMessage(playerid, 0xFF0000AA, "Race not available! Wait untill ohter player is finished!");
  252.         Racer = playerid;
  253.         Motor = CreateVehicle(BikeModel, 424.0586,2502.778076,16.2115, 90.0000, 0, 6, -1);
  254.         PutPlayerInVehicle(playerid, Motor, 0);
  255.         SetCameraBehindPlayer(playerid);
  256.         Timer1 = SetTimer("Countdown", 1000, 1);
  257.         GameTextForPlayer(Racer, "~b~5", 3000, 3);
  258.         TogglePlayerControllable(playerid, 0);
  259.         Count = 0;
  260.         Distance = 0.0;
  261.         format(TDS4, sizeof(TDS4), "Distance : 0.0000~n~Time Left: 0:20");
  262.         TextDrawSetString(TD3, TDS4);
  263.         TextDrawShowForPlayer(Racer, TD3);
  264.         return 1;
  265.     }
  266.    
  267.     if (strcmp("/stopjump", cmdtext, true) == 0)
  268.     {
  269.         EndRace();
  270.         return 1;
  271.     }
  272.    
  273.     if ((strcmp("/jumphighscore", cmdtext, true) == 0) || (strcmp("/jumphighscore", cmdtext, true) == 0) || (strcmp("/jhs", cmdtext, true) == 0))
  274.     {
  275.         new str[128];
  276.         SendClientMessage(playerid, 0x32CD32AA, "-------[JUMP MINIGAME HIGHSCORES]-------");
  277.         format(str, 128, "#1:   %.4f     %s", HS[0], HSN[0]);
  278.         SendClientMessage(playerid, 0x7CFC00AA, str);
  279.         format(str, 128, "#2:   %.4f     %s", HS[1], HSN[1]);
  280.         SendClientMessage(playerid, 0x7CFC00AA, str);
  281.         format(str, 128, "#3:   %.4f     %s", HS[2], HSN[2]);
  282.         SendClientMessage(playerid, 0x7CFC00AA, str);
  283.         SendClientMessage(playerid, 0x7CFC00AA, " ");
  284.         format(str, 128, "Your Personal Highscore:    %.4f", dini_Float(PERSONALFILE, PlayerName(playerid)));
  285.         SendClientMessage(playerid, 0x7CFC00AA, str);
  286.         SendClientMessage(playerid, 0x32CD32AA, "--------------------------------------------------------------");
  287.         return 1;
  288.     }
  289.    
  290.     if (strcmp("/jumpadmin", cmdtext, true) == 0)
  291.     {
  292.         if(!IsPlayerAdmin(playerid)) return 0;
  293.         TogglePlayerControllable(playerid, 0);
  294.         ShowMenuForPlayer(AdminMenu, playerid);
  295.         return 1;
  296.     }
  297.    
  298.     return 0;
  299. }
  300.  
  301. forward Countdown();
  302. public Countdown()
  303. {
  304.     if(Racer != -1 && IsPlayerInVehicle(Racer, Motor))
  305.     {
  306.         Count++;
  307.         if(Count == 1) GameTextForPlayer(Racer, "~b~4", 3000, 3);
  308.         if(Count == 2) GameTextForPlayer(Racer, "~b~3", 3000, 3);
  309.         if(Count == 3) GameTextForPlayer(Racer, "~g~2", 3000, 3);
  310.         if(Count == 4) GameTextForPlayer(Racer, "~g~1", 3000, 3);
  311.         if(Count == 5)
  312.         {
  313.             KillTimer(Timer1);
  314.             Timer1 = -1;
  315.             GameTextForPlayer(Racer, "~y~Go!", 2000, 3);
  316.             TogglePlayerControllable(Racer, 1);
  317.             MaxTimer = SetTimer("MaxTime", 1000, 1);
  318.             Timer2 = SetTimer("CheckForLine", 100, 1);
  319.             TimeLeft = 20;
  320.         }
  321.     }
  322. }
  323.  
  324. forward CheckForLine();
  325. public CheckForLine()
  326. {
  327.     if(Racer != -1 && IsPlayerInVehicle(Racer, Motor))
  328.     {
  329.         new Float:X, Float:Y, Float:Z;
  330.         GetPlayerPos(Racer, X, Y, Z);
  331.         if(X < 51.191391)
  332.         {
  333.             if(IsBikeInArea(Motor, -100.0912, 2497.1504, 55.191391, 2508.6316))
  334.             {
  335.                 KillTimer(Timer2);
  336.                 Timer2 = -1;
  337.                 KillTimer(MaxTimer);
  338.                 MaxTimer = -1;
  339.                 Timer3 = SetTimer("CheckForLanding", 20, 1);
  340.             }
  341.         }
  342.     }
  343. }
  344.  
  345.  
  346. forward CheckForLanding();
  347. public CheckForLanding()
  348. {
  349.     if(Racer != -1 && IsPlayerInVehicle(Racer, Motor))
  350.     {
  351.         new Float:X, Float:Y, Float:Z, tmpX;
  352.         GetPlayerPos(Racer, X, Y, Z);
  353.         tmpX = floatround(X);
  354.         if(tmpX != LasttmpX)
  355.         {
  356.             LasttmpX = tmpX;
  357.             ExplotionCheck(tmpX);
  358.         }
  359.         if(!IsBikeInArea(Motor, -100.0912, 2497.1504, 55.191391, 2508.6316))
  360.         {
  361.             GameTextForPlayer(Racer, "~r~Failed!", 5000, 3);
  362.             KillTimer(Timer3);
  363.             SetTimer("EndRace", 5000, 0);
  364.         }
  365.         format(TDS4, sizeof(TDS4), "Distance : %.4f~n~Time Left: 0:%02d", floatsub(51.191391, X), TimeLeft);
  366.         TextDrawHideForPlayer(Racer, TD3);
  367.         TextDrawSetString(TD3, TDS4);
  368.         TextDrawShowForPlayer(Racer, TD3);
  369.         if(Z < 17.53)
  370.         {
  371.             KillTimer(Timer3);
  372.             Timer3 = -1;
  373.             Distance = floatsub(51.191391, X);
  374.             if(Distance > HS[0]) //Player = 1st
  375.             {
  376.                 HS[2] = HS[1];
  377.                 HS[1] = HS[0];
  378.                 HS[0] = Distance;
  379.                 HSN[2] = HSN[1];
  380.                 HSN[1] = HSN[0];
  381.                 GetPlayerName(Racer, HSN[0], MAX_PLAYER_NAME);
  382.             }
  383.             else if(Distance > HS[1] && Distance <= HS[0]) //Player = 2nd
  384.             {
  385.                 HS[2] = HS[1];
  386.                 HS[1] = Distance;
  387.                 HSN[2] = HSN[1];
  388.                 GetPlayerName(Racer, HSN[1], MAX_PLAYER_NAME);
  389.             }
  390.             else if(Distance > HS[2] && Distance <= HS[1]) //Player = 3rd
  391.             {
  392.                 HS[2] = Distance;
  393.                 GetPlayerName(Racer, HSN[2], MAX_PLAYER_NAME);
  394.             }
  395.             if(Distance > dini_Float(PERSONALFILE, PlayerName(Racer)))
  396.             {
  397.                 dini_FloatSet(PERSONALFILE, PlayerName(Racer), Distance);
  398.             }
  399.             format(TDS1, 128, "#1:  %.4f~n~#2:  %.4f~n~#3:  %.4f", HS[0], HS[1], HS[2]);
  400.             TextDrawSetString(TD1, TDS1);
  401.             format(TDS2, 128, "%s~n~%s~n~%s", HSN[0], HSN[1], HSN[2]);
  402.             TextDrawSetString(TD2, TDS2);
  403.             format(TDS5, 40, "Your Personal Highscore:~n~%.4f", dini_Float(PERSONALFILE, PlayerName(Racer)));
  404.             TextDrawSetString(TD4, TDS5);
  405.             TextDrawShowForPlayer(Racer, TD0);
  406.             TextDrawShowForPlayer(Racer, TD1);
  407.             TextDrawShowForPlayer(Racer, TD2);
  408.             TextDrawShowForPlayer(Racer, TD4);
  409.             SetTimer("EndRace", 10000, 0);
  410.             SetPlayerCameraPos(Racer, -121.3866, 2504.7371, 30.0306);
  411.             SetPlayerCameraLookAt(Racer, X, Y, Z);
  412.         }
  413.     }
  414.     return 1;
  415. }
  416.  
  417. IsBikeInArea(Bike, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
  418. {
  419.     new Float:X1, Float:Y1, Float:Z1;
  420.  
  421.     GetVehiclePos(Bike, X1, Y1, Z1);
  422.     if(X1 >= MinX && X1 <= MaxX&& Y1 >= MinY && Y1 <= MaxY)
  423.     {
  424.         return 1;
  425.     }
  426.     return 0;
  427. }
  428.  
  429. stock RemoveAllPlayersFromVehicle(vehicleID)
  430. {
  431.     for(new i; i<MAX_PLAYERS; i++)
  432.     {
  433.         if(IsPlayerConnected(i))
  434.         {
  435.             if(IsPlayerInVehicle(i, vehicleID))
  436.             {
  437.                 RemovePlayerFromVehicle(i);
  438.             }
  439.         }
  440.     }
  441. }
  442.  
  443. forward EndRace();
  444. public EndRace()
  445. {
  446.     if(Timer1 != -1)
  447.     {
  448.         KillTimer(Timer1);
  449.         Timer1 = -1;
  450.     }
  451.     if(Timer2 != -1)
  452.     {
  453.         KillTimer(Timer2);
  454.         Timer2 = -1;
  455.     }
  456.     if(Timer3 != -1)
  457.     {
  458.         KillTimer(Timer3);
  459.         Timer3 = -1;
  460.     }
  461.     if(MaxTimer != -1)
  462.     {
  463.         KillTimer(MaxTimer);
  464.         MaxTimer = -1;
  465.     }
  466.     GameTextForPlayer(Racer, " ", 10, 3);
  467.     RemoveAllPlayersFromVehicle(Motor);
  468.     DestroyVehicle(Motor);
  469.     TextDrawHideForPlayer(Racer, TD0);
  470.     TextDrawHideForPlayer(Racer, TD1);
  471.     TextDrawHideForPlayer(Racer, TD2);
  472.     TextDrawHideForPlayer(Racer, TD3);
  473.     TextDrawHideForPlayer(Racer, TD4);
  474.     SetCameraBehindPlayer(Racer);
  475.     Racer = -1;
  476. }
  477.  
  478. forward MaxTime();
  479. public MaxTime()
  480. {
  481.     TimeLeft--;
  482.     format(TDS4, sizeof(TDS4), "Distance : 0.0000~n~Time Left: 0:%02d", TimeLeft);
  483.     TextDrawHideForPlayer(Racer, TD3);
  484.     TextDrawSetString(TD3, TDS4);
  485.     TextDrawShowForPlayer(Racer, TD3);
  486.     if(TimeLeft == 0)
  487.     {
  488.         KillTimer(MaxTimer);
  489.         MaxTimer = -1;
  490.         KillTimer(Timer3);
  491.         GameTextForPlayer(Racer, "~r~Time's Up!", 5000, 3);
  492.         SetTimer("EndRace", 5000, 0);
  493.     }
  494. }
  495. ExplotionCheck(XX)
  496. {
  497.     if(48 < XX < 52){ CreateExplosion(XX-30, 2508.6316, 18.0, 11, 5); CreateExplosion(XX-30, 2497.1504, 18.0, 11, 5); }
  498.     else if(38 < XX < 42){ CreateExplosion(XX-30, 2508.6316, 18.0, 11, 5); CreateExplosion(XX-30, 2497.1504, 18.0, 11, 5);}
  499.     else if(28 < XX < 32){ CreateExplosion(XX-30, 2508.6316, 18.0, 11, 5); CreateExplosion(XX-30, 2497.1504, 18.0, 11, 5); }
  500.     else if(18 < XX < 22){ CreateExplosion(XX-30, 2508.6316, 18.0, 11, 5); CreateExplosion(XX-30, 2497.1504, 18.0, 11, 5); }
  501.     else if(8 < XX < 12){ CreateExplosion(XX-30, 2508.6316, 18.0, 11, 5); CreateExplosion(XX-30, 2497.1504, 18.0, 11, 5); }
  502.     else if(-2 < XX < 2){ CreateExplosion(XX-30, 2508.6316, 18.0, 11, 5); CreateExplosion(XX-30, 2497.1504, 18.0, 11, 5); }
  503.     else if(-12 < XX < -8){ CreateExplosion(XX-30, 2508.6316, 18.0, 11, 5); CreateExplosion(XX-30, 2497.1504, 18.0, 11, 5); }
  504.     else if(-22 < XX < -18){ CreateExplosion(XX-30, 2508.6316, 18.0, 11, 5); CreateExplosion(XX-30, 2497.1504, 18.0, 11, 5); }
  505.     else if(-32 < XX < -28){ CreateExplosion(XX-30, 2508.6316, 18.0, 11, 5); CreateExplosion(XX-30, 2497.1504, 18.0, 11, 5); }
  506.     else if(-42 < XX < -38){ CreateExplosion(XX-30, 2508.6316, 18.0, 11, 5); CreateExplosion(XX-30, 2497.1504, 18.0, 11, 5); }
  507.     else if(-52 < XX < -48){ CreateExplosion(XX-30, 2508.6316, 18.0, 11, 5); CreateExplosion(XX-30, 2497.1504, 18.0, 11, 5); }
  508.     else if(-62 < XX < -58){ CreateExplosion(XX-30, 2508.6316, 18.0, 11, 5); CreateExplosion(XX-30, 2497.1504, 18.0, 11, 5); }
  509.     else if(-72 < XX < -68){ CreateExplosion(XX-30, 2508.6316, 18.0, 11, 5); CreateExplosion(XX-30, 2497.1504, 18.0, 11, 5); }
  510.     else if(-82 < XX < -78){ CreateExplosion(XX-30, 2508.6316, 18.0, 11, 5); CreateExplosion(XX-30, 2497.1504, 18.0, 11, 5); }
  511. }
  512.  
  513. stock PlayerName(playerid)
  514. {
  515.     new pName[MAX_PLAYER_NAME];
  516.     GetPlayerName(playerid, pName, sizeof(pName));
  517.     return pName;
  518. }
  519.  
  520. public OnPlayerSelectedMenuRow(playerid, row)
  521. {
  522.     new Menu:Current = GetPlayerMenu(playerid);
  523.     if(Current == AdminMenu)
  524.     {
  525.         switch(row)
  526.         {
  527.             case 0:
  528.             {
  529.                 ShowMenuForPlayer(YesNoGlobal, playerid);
  530.             }
  531.             case 1:
  532.             {
  533.                 ShowMenuForPlayer(YesNoPersonal, playerid);
  534.             }
  535.             case 2:
  536.             {
  537.                 ShowMenuForPlayer(MotorMenu, playerid);
  538.             }
  539.             case 3:
  540.             {
  541.                 TogglePlayerControllable(playerid, 1);
  542.             }
  543.         }
  544.         return 1;
  545.     }
  546.     if(Current == MotorMenu)
  547.     {
  548.         switch(row)
  549.         {
  550.             case 0: {BikeModel = 522; SendClientMessage(playerid, 0x00FF00AA, "Bikemodel set to: NRG-500");}
  551.             case 1: {BikeModel = 581; SendClientMessage(playerid, 0x00FF00AA, "Bikemodel set to: BF-400");}
  552.             case 2: {BikeModel = 521; SendClientMessage(playerid, 0x00FF00AA, "Bikemodel set to: FCR-900");}
  553.             case 3: {BikeModel = 463; SendClientMessage(playerid, 0x00FF00AA, "Bikemodel set to: Freeway");}
  554.             case 4: {BikeModel = 461; SendClientMessage(playerid, 0x00FF00AA, "Bikemodel set to: PCJ-600");}
  555.             case 5: {BikeModel = 468; SendClientMessage(playerid, 0x00FF00AA, "Bikemodel set to: Sanchez");}
  556.             case 6: {ShowMenuForPlayer(AdminMenu, playerid);}
  557.         }
  558.         ShowMenuForPlayer(AdminMenu, playerid);
  559.     }
  560.     if(Current == YesNoGlobal)
  561.     {
  562.         switch(row)
  563.         {
  564.             case 0: {ShowMenuForPlayer(AdminMenu, playerid);}
  565.             case 1:
  566.             {
  567.                 if(!dini_Exists(OVERALLFILE))
  568.                 {
  569.                     dini_Create(OVERALLFILE);
  570.                 }
  571.                 dini_FloatSet(OVERALLFILE, "S1", 0.0000);
  572.                 dini_FloatSet(OVERALLFILE, "S2", 0.0000);
  573.                 dini_FloatSet(OVERALLFILE, "S3", 0.0000);
  574.                 dini_Set(OVERALLFILE, "N1", "Empty");
  575.                 dini_Set(OVERALLFILE, "N2", "Empty");
  576.                 dini_Set(OVERALLFILE, "N3", "Empty");
  577.                 HS[0] = 0.0;
  578.                 HS[1] = 0.0;
  579.                 HS[2] = 0.0;
  580.                 format(HSN[0], MAX_PLAYER_NAME, "Empty");
  581.                 format(HSN[1], MAX_PLAYER_NAME, "Empty");
  582.                 format(HSN[2], MAX_PLAYER_NAME, "Empty");
  583.                 SendClientMessage(playerid, 0x00FF00AA, "Global Jump-Highscores Reset!");
  584.                 TogglePlayerControllable(playerid, 1);
  585.             }
  586.         }
  587.     }
  588.     if(Current == YesNoPersonal)
  589.     {
  590.         switch(row)
  591.         {
  592.             case 0: {ShowMenuForPlayer(AdminMenu, playerid);}
  593.             case 1:
  594.             {
  595.                 if(dini_Exists(PERSONALFILE))
  596.                 {
  597.                     dini_Remove(PERSONALFILE);
  598.                 }
  599.                 dini_Create(PERSONALFILE);
  600.                 SendClientMessage(playerid, 0x00FF00AA, "Personal Jump-Highscores Reset!");
  601.                 TogglePlayerControllable(playerid, 1);
  602.             }
  603.         }
  604.     }
  605.     return 1;
  606. }
  607.  
  608. public OnPlayerExitedMenu(playerid)
  609. {
  610.     TogglePlayerControllable(playerid, 1);
  611.     return 1;
  612. }
Advertisement
Add Comment
Please, Sign In to add comment