Guest User

Sandra

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