Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Script by: Sasuke_Uchiha
- Map by: Alby_JJ (JimmySpaceTravel1337)
- Mission Base: Parkour
- Mission Type: Parkour
- Mission Type ID: 7
- */
- //==============================================================================
- // Includes
- //==============================================================================
- #include <a_samp>
- #include <crashdetect>
- #include <fixes2>
- #include "..\filterscripts\MM\stuff\defines"
- #include "..\filterscripts\MM\stuff\serverkeymsg"
- //==============================================================================
- // Defines
- //==============================================================================
- #define MISSION_NAME "Fun Time"
- #define Health Float:0x7F800000
- #define MAX_MAP_OBJECTS 113
- #define CLASS_POSTION 2616.1108,-4505.2510,2158.3503
- #define CLASS_CAMERA 2604.8989,-4505.3247,2158.3503
- #define CLASS_FACING_AGNLE 88.9138
- #define Z_LIMIT 2000.0
- #define START_TIME 20
- //==============================================================================
- // Per mission functions
- //==============================================================================
- enum cp_enum
- {
- Float:cp_x,
- Float:cp_y,
- Float:cp_z,
- cp_type,
- Float:cp_size
- };
- new const cp[][cp_enum] =
- {
- {2626.5720,-4505.3071,2160.8850,0,10.0},
- {2654.8147,-4497.6084,2149.2883,0,10.0},
- {2670.3845,-4503.0879,2149.3657,0,10.0},
- {2692.0068,-4511.6392,2160.0840,0,10.0},
- {2713.0894,-4519.4375,2155.9114,0,10.0},
- {2741.3845,-4549.5542,2139.2004,0,10.0},
- {2760.4976,-4596.8174,2144.8005,0,10.0},
- {2778.9275,-4629.0806,2137.3696,0,10.0},
- {2843.8213,-4685.2490,2128.0310,0,10.0},
- {2809.6458,-4731.1270,2114.8474,0,10.0},
- {2768.5547,-4765.3989,2133.0498,0,10.0},
- {2715.4482,-4809.3843,2169.7141,0,10.0},
- {2652.7800,-4878.9702,2115.0950,0,10.0},
- {2606.1255,-4924.8882,2101.0776,0,10.0},
- {2547.3240,-4907.8828,2104.7410,0,10.0},
- {2488.6003,-4957.2959,2086.4873,0,10.0},
- {2516.3975,-5070.4673,2077.9915,0,10.0},
- {2525.2683,-5121.3096,2074.5986,1,10.0}
- };
- enum ped_enum
- {
- TeamID,
- Skin,
- Float:SpawnX,
- Float:SpawnY,
- Float:SpawnZ,
- Float:SpawnAngle,
- SpawnInterior,
- VirtualWorld,
- Weapon1,
- Ammo1,
- Weapon2,
- Ammo2,
- Weapon3,
- Ammo3,
- };
- new PedInfo[][ped_enum] = {
- {TEAM_DEFEND,0,2585.1868,-4504.6265,2158.5146,270.1673,0,0,0,0,0,0,0,0}
- };
- #if MAX_MAP_OBJECTS != 0
- new Object[MAX_MAP_OBJECTS];
- CreateMap()
- {
- Object[0] = CreateObject(8040,2579.3750000,-4505.0947266,2158.1083984,0.0000000,0.0000000,0.0000000); //object(airprtcrprk02_lvs)(1)
- Object[1] = CreateObject(619,2574.6298828,-4521.9575195,2156.5400391,0.0000000,0.0000000,219.0000000); //object(veg_palwee03)(1)
- Object[2] = CreateObject(619,2578.2006836,-4521.8725586,2156.5400391,0.0000000,0.0000000,218.9959717); //object(veg_palwee03)(8)
- Object[3] = CreateObject(619,2581.4472656,-4521.7939453,2156.5400391,0.0000000,0.0000000,218.9959717); //object(veg_palwee03)(9)
- Object[4] = CreateObject(619,2584.4453125,-4521.7207031,2156.5400391,0.0000000,0.0000000,218.9959717); //object(veg_palwee03)(10)
- Object[5] = CreateObject(619,2587.5180664,-4521.6459961,2156.5400391,0.0000000,0.0000000,218.9959717); //object(veg_palwee03)(11)
- Object[6] = CreateObject(619,2590.7148438,-4521.5683594,2156.5400391,0.0000000,0.0000000,218.9959717); //object(veg_palwee03)(12)
- Object[7] = CreateObject(619,2594.0375977,-4521.4873047,2156.5400391,0.0000000,0.0000000,218.9959717); //object(veg_palwee03)(13)
- Object[8] = CreateObject(619,2597.1347656,-4521.4121094,2156.5400391,0.0000000,0.0000000,218.9959717); //object(veg_palwee03)(14)
- Object[9] = CreateObject(619,2600.0058594,-4521.3437500,2156.5400391,0.0000000,0.0000000,218.9959717); //object(veg_palwee03)(15)
- Object[10] = CreateObject(619,2600.3029785,-4488.9848633,2156.5400391,0.0000000,0.0000000,55.4959412); //object(veg_palwee03)(16)
- Object[11] = CreateObject(619,2597.1162109,-4489.0590820,2156.5400391,0.0000000,0.0000000,55.4919434); //object(veg_palwee03)(17)
- Object[12] = CreateObject(619,2593.6936035,-4489.0048828,2156.5400391,0.0000000,0.0000000,55.4919434); //object(veg_palwee03)(18)
- Object[13] = CreateObject(619,2590.0957031,-4488.9448242,2156.5400391,0.0000000,0.0000000,55.4919434); //object(veg_palwee03)(19)
- Object[14] = CreateObject(619,2587.1987305,-4488.8608398,2156.5400391,0.0000000,0.0000000,55.4919434); //object(veg_palwee03)(20)
- Object[15] = CreateObject(619,2584.1994629,-4488.8471680,2156.5400391,0.0000000,0.0000000,55.4919434); //object(veg_palwee03)(21)
- Object[16] = CreateObject(619,2581.3229981,-4488.8881836,2156.5400391,0.0000000,0.0000000,55.4919434); //object(veg_palwee03)(22)
- Object[17] = CreateObject(619,2577.8999023,-4488.8422852,2156.5400391,0.0000000,0.0000000,55.4919434); //object(veg_palwee03)(23)
- Object[18] = CreateObject(619,2574.4511719,-4488.7978516,2156.5400391,0.0000000,0.0000000,55.4919434); //object(veg_palwee03)(24)
- Object[19] = CreateObject(3253,2621.0136719,-4505.6025391,2157.1013184,0.0000000,0.0000000,0.0000000); //object(des_westrn11_)(1)
- Object[20] = CreateObject(3253,2628.5234375,-4505.4213867,2157.1013184,0.0000000,0.0000000,0.0000000); //object(des_westrn11_)(2)
- Object[21] = CreateObject(4639,2618.2373047,-4512.4609375,2159.0393066,0.0000000,0.0000000,89.4946289); //object(paypark_lan02)(2)
- Object[22] = CreateObject(4639,2618.3286133,-4498.9023438,2159.0393066,0.0000000,0.0000000,89.9946289); //object(paypark_lan02)(3)
- Object[23] = CreateObject(2653,2632.5585938,-4505.2744141,2160.6567383,357.9949951,0.0000000,89.4946289); //object(cj_aircon3)(1)
- Object[24] = CreateObject(2653,2632.5732422,-4503.6269531,2160.6567383,357.9895019,0.0000000,89.4891357); //object(cj_aircon3)(2)
- Object[25] = CreateObject(2653,2632.5244141,-4506.9218750,2160.6567383,357.9949951,0.0000000,89.4946289); //object(cj_aircon3)(4)
- Object[26] = CreateObject(2653,2640.0351562,-4502.5644531,2160.9057617,357.9895019,0.0000000,106.7431641); //object(cj_aircon3)(5)
- Object[27] = CreateObject(2653,2639.9013672,-4508.3378906,2160.9057617,357.9895019,0.0000000,68.7414551); //object(cj_aircon3)(6)
- Object[28] = CreateObject(3502,2648.0109863,-4499.9716797,2163.2871094,0.0000000,0.0000000,108.0000000); //object(vgsn_con_tube)(1)
- Object[29] = CreateObject(3502,2654.5100098,-4497.5961914,2157.3149414,278.6180420,196.9232788,304.7382812); //object(vgsn_con_tube)(2)
- Object[30] = CreateObject(3502,2645.6623535,-4510.3940430,2157.3090820,274.2715759,200.5760498,268.2689209); //object(vgsn_con_tube)(4)
- Object[31] = CreateObject(3631,2645.6857910,-4510.1303711,2148.5075684,0.0000000,0.0000000,66.0000000); //object(oilcrat_las)(1)
- Object[32] = CreateObject(3631,2647.4677734,-4510.9165039,2148.5065918,0.0000000,0.0000000,65.9948730); //object(oilcrat_las)(2)
- Object[33] = CreateObject(3631,2654.9580078,-4497.7861328,2147.7087402,0.0000000,0.0000000,337.7448731); //object(oilcrat_las)(3)
- Object[34] = CreateObject(3631,2655.6520996,-4496.1000977,2147.6818848,0.0000000,0.0000000,337.7416992); //object(oilcrat_las)(4)
- Object[35] = CreateObject(3631,2654.2919922,-4499.4584961,2147.7116699,0.0000000,0.0000000,337.7416992); //object(oilcrat_las)(5)
- Object[36] = CreateObject(2653,2650.5844727,-4504.5854492,2147.9990234,6.2402344,0.0000000,151.2432861); //object(cj_aircon3)(8)
- Object[37] = CreateObject(2653,2654.1306152,-4498.0947266,2147.3017578,4.4902344,0.0000000,151.2432861); //object(cj_aircon3)(10)
- Object[38] = CreateObject(2653,2649.0334473,-4503.6733398,2147.9990234,6.2402344,0.0000000,151.2432861); //object(cj_aircon3)(12)
- Object[39] = CreateObject(2653,2652.6931152,-4497.0488281,2147.2270508,6.2402344,0.0000000,151.2432861); //object(cj_aircon3)(13)
- Object[40] = CreateObject(3418,2670.3889160,-4502.8403320,2147.2360840,0.0000000,0.0000000,68.0000000); //object(ce_oldhut02)(1)
- Object[41] = CreateObject(3418,2677.4892578,-4505.6728516,2150.7360840,0.0000000,0.0000000,67.9998779); //object(ce_oldhut02)(2)
- Object[42] = CreateObject(3418,2683.4912109,-4507.8793945,2153.4841309,0.0000000,0.0000000,67.9998779); //object(ce_oldhut02)(3)
- Object[43] = CreateObject(3418,2689.7133789,-4510.2753906,2157.4792481,0.0000000,0.0000000,67.9998779); //object(ce_oldhut02)(4)
- Object[44] = CreateObject(3418,2699.1560059,-4513.9028320,2155.3845215,39.9981690,0.6526794,69.3303833); //object(ce_oldhut02)(5)
- Object[45] = CreateObject(3418,2705.9001465,-4515.8911133,2153.3874512,39.9957275,0.6481934,69.3292236); //object(ce_oldhut02)(6)
- Object[46] = CreateObject(3585,2710.2778320,-4518.1357422,2153.4487305,3.4988098,1.5028076,70.6582947); //object(lastran1_la02)(1)
- Object[47] = CreateObject(3585,2712.5305176,-4518.9677734,2153.2993164,3.4936523,1.4996338,70.6530762); //object(lastran1_la02)(2)
- Object[48] = CreateObject(3585,2714.5400391,-4519.7353516,2153.1748047,3.4936523,1.4996338,70.6530762); //object(lastran1_la02)(3)
- Object[49] = CreateObject(16008,2721.9277344,-4522.8510742,2144.0219727,0.0000000,6.2500000,72.5000000); //object(des_nbrstruct)(1)
- Object[50] = CreateObject(3623,2737.5402832,-4554.7221680,2136.8403320,0.0000000,0.0000000,28.0000000); //object(rdwarhus2)(1)
- Object[51] = CreateObject(3623,2751.1867676,-4547.4633789,2136.8403320,0.0000000,0.0000000,27.9986572); //object(rdwarhus2)(2)
- Object[52] = CreateObject(3644,2760.6188965,-4579.7094727,2138.3664551,0.0000000,0.0000000,28.0000000); //object(idlebuild01_lax)(1)
- Object[53] = CreateObject(3644,2769.0158691,-4596.8544922,2144.2370606,322.0000000,0.0000000,29.7486572); //object(idlebuild01_lax)(2)
- Object[54] = CreateObject(18553,2770.0363769,-4573.6010742,2140.1264648,0.0000000,90.0000000,298.0007324); //object(count_ammundoor)(1)
- Object[55] = CreateObject(18553,2750.5996094,-4584.4692383,2140.1264648,0.0000000,90.0000000,297.9986572); //object(count_ammundoor)(2)
- Object[56] = CreateObject(3586,2766.9291992,-4608.4160156,2137.5039062,8.0000000,0.0000000,208.5000000); //object(escl_la)(1)
- Object[57] = CreateObject(3586,2780.5249023,-4604.1372070,2138.2827148,7.9980469,0.0000000,209.2485352); //object(escl_la)(2)
- Object[58] = CreateObject(13649,2774.3916016,-4621.6137695,2135.7602539,0.0000000,0.0000000,0.0000000); //object(ramplandpad01)(1)
- Object[59] = CreateObject(13649,2778.9152832,-4629.0849609,2135.7602539,0.0000000,0.0000000,0.0000000); //object(ramplandpad01)(2)
- Object[60] = CreateObject(13649,2782.9218750,-4636.3222656,2135.7602539,0.0000000,0.0000000,0.0000000); //object(ramplandpad01)(4)
- Object[61] = CreateObject(13649,2787.7475586,-4616.3789062,2135.5859375,0.0000000,0.0000000,0.0000000); //object(ramplandpad01)(5)
- Object[62] = CreateObject(13649,2792.3317871,-4623.8491211,2135.5859375,0.0000000,0.0000000,0.0000000); //object(ramplandpad01)(6)
- Object[63] = CreateObject(13649,2796.0195312,-4630.2963867,2135.5859375,0.0000000,0.0000000,0.0000000); //object(ramplandpad01)(7)
- Object[64] = CreateObject(13649,2788.3200684,-4640.8491211,2135.7602539,0.0000000,0.0000000,0.0000000); //object(ramplandpad01)(8)
- Object[65] = CreateObject(5138,2786.6547852,-4633.2783203,2127.5229492,0.0000000,0.0000000,37.5000000); //object(snpdoldwrhs2_las2)(1)
- Object[66] = CreateObject(5177,2833.3239746,-4702.0537109,2123.7011719,0.0000000,0.0000000,39.0000000); //object(las2stripsshp1)(1)
- Object[67] = CreateObject(3586,2821.0991211,-4716.1391602,2124.9936523,7.9925537,0.0000000,129.7456055); //object(escl_la)(3)
- Object[68] = CreateObject(3586,2824.5512695,-4720.8842773,2124.9936523,7.9870605,0.0000000,129.7430420); //object(escl_la)(4)
- Object[69] = CreateObject(5154,2809.2888184,-4730.4584961,2110.6752930,0.0000000,0.0000000,39.5000000); //object(dk_cargoshp03d)(1)
- Object[70] = CreateObject(5154,2799.0827637,-4738.5209961,2109.2500000,0.0000000,0.0000000,39.2458496); //object(dk_cargoshp03d)(2)
- Object[71] = CreateObject(6189,2748.5043945,-4783.1323242,2129.8464356,332.0000000,0.0000000,310.0000000); //object(gaz_pier1)(1)
- Object[72] = CreateObject(6189,2676.4030762,-4847.7397461,2122.7966309,34.7152100,357.2624207,313.3056030); //object(gaz_pier1)(2)
- Object[73] = CreateObject(3665,2619.1608887,-4903.0976562,2099.9409180,8.0000000,0.0000000,310.7500000); //object(airyelrm_las)(1)
- Object[74] = CreateObject(13638,2604.4584961,-4918.5703125,2098.5385742,0.0000000,0.0000000,39.5000000); //object(stunt1)(1)
- Object[75] = CreateObject(13638,2593.5532227,-4902.2666016,2099.1860352,0.0000000,0.0000000,42.7458496); //object(stunt1)(2)
- Object[76] = CreateObject(13647,2565.8945312,-4903.8295898,2102.7163086,0.0000000,0.0000000,12.2500000); //object(wall1)(1)
- Object[77] = CreateObject(13647,2528.0773926,-4912.0551758,2102.7163086,0.0000000,0.0000000,12.2497559); //object(wall1)(2)
- Object[78] = CreateObject(16304,2482.0371094,-4925.9262695,2083.0988769,0.0000000,0.0000000,20.0000000); //object(des_gravelpile05)(1)
- Object[79] = CreateObject(16304,2488.1684570,-4957.8940430,2083.0988769,0.0000000,0.0000000,19.9951172); //object(des_gravelpile05)(2)
- Object[80] = CreateObject(16304,2494.8540039,-4991.5966797,2082.5759277,0.0000000,0.0000000,19.9951172); //object(des_gravelpile05)(3)
- Object[81] = CreateObject(16304,2504.8198242,-5023.2368164,2083.0988769,0.0000000,0.0000000,19.9951172); //object(des_gravelpile05)(4)
- Object[82] = CreateObject(16304,2513.9741211,-5054.7207031,2083.0988769,0.0000000,0.0000000,19.9951172); //object(des_gravelpile05)(5)
- Object[83] = CreateObject(3663,2516.4252930,-5070.4853516,2076.9702148,0.0000000,0.0000000,278.0000000); //object(lasstepsa_las)(1)
- Object[84] = CreateObject(8040,2524.8708496,-5118.7153320,2074.1923828,0.0000000,0.0000000,102.2499695); //object(airprtcrprk02_lvs)(2)
- Object[85] = CreateObject(2993,2529.3088379,-5120.6127930,2073.2026367,0.0000000,357.7500000,14.0000000); //object(kmb_goflag)(1)
- Object[86] = CreateObject(2993,2530.9304199,-5120.1542969,2073.2026367,0.0000000,357.7478027,13.9965820); //object(kmb_goflag)(2)
- Object[87] = CreateObject(2993,2527.2385254,-5121.1220703,2073.2026367,0.0000000,357.7478027,13.9965820); //object(kmb_goflag)(3)
- Object[88] = CreateObject(2993,2521.7934570,-5122.0654297,2073.2026367,0.0000000,357.7478027,13.9965820); //object(kmb_goflag)(4)
- Object[89] = CreateObject(2993,2519.5754394,-5122.4506836,2073.2026367,0.0000000,357.7478027,13.9965820); //object(kmb_goflag)(5)
- Object[90] = CreateObject(2993,2517.6779785,-5122.7797852,2073.2026367,0.0000000,357.7478027,13.9965820); //object(kmb_goflag)(6)
- Object[91] = CreateObject(2993,2517.6777344,-5122.7792969,2074.1767578,0.0000000,357.7478027,13.9965820); //object(kmb_goflag)(7)
- Object[92] = CreateObject(2993,2527.2382812,-5121.1220703,2074.1020508,0.0000000,357.7478027,13.9965820); //object(kmb_goflag)(8)
- Object[93] = CreateObject(2993,2615.6845703,-4517.0195312,2157.3427734,0.0000000,0.0000000,0.0000000); //object(kmb_goflag)(9)
- Object[94] = CreateObject(2993,2616.4360352,-4495.6547852,2157.3427734,0.0000000,0.0000000,0.0000000); //object(kmb_goflag)(10)
- Object[95] = CreateObject(2992,2612.5478516,-4505.8046875,2157.3503418,0.0000000,0.0000000,0.0000000); //object(roulette_marker)(1)
- Object[96] = CreateObject(3494,2617.2995606,-4509.9067383,2159.7080078,0.0000000,0.0000000,0.0000000); //object(luxorpillar04_lvs)(1)
- Object[97] = CreateObject(3494,2617.0566406,-4499.9521484,2159.7080078,0.0000000,0.0000000,0.0000000); //object(luxorpillar04_lvs)(2)
- Object[98] = CreateObject(3524,2616.8027344,-4496.4052734,2160.2280273,0.0000000,0.0000000,287.9999695); //object(skullpillar01_lvs)(1)
- Object[99] = CreateObject(3524,2616.6198731,-4515.0825195,2160.2280273,0.0000000,0.0000000,219.9955902); //object(skullpillar01_lvs)(2)
- Object[100] = CreateObject(16778,2612.8249512,-4492.3637695,2157.3427734,0.0000000,0.0000000,0.0000000); //object(des_ufosign)(1)
- Object[101] = CreateObject(16778,2610.0515137,-4520.0639648,2157.3427734,0.0000000,0.0000000,0.0000000); //object(des_ufosign)(2)
- Object[102] = CreateObject(4206,2606.6997070,-4505.3095703,2157.3674316,0.0000000,0.0000000,1.7500000); //object(pershingpool_lan)(1)
- Object[103] = CreateObject(2653,2635.7126465,-4505.2875977,2160.8049316,357.9895019,0.0000000,359.4591064); //object(cj_aircon3)(2)
- Object[104] = CreateObject(2653,2634.2927246,-4505.2753906,2160.7807617,357.9895019,0.0000000,359.4891357); //object(cj_aircon3)(2)
- Object[105] = CreateObject(2653,2632.3161621,-4505.2060547,2160.6975098,357.9895019,0.0000000,359.4891357); //object(cj_aircon3)(2)
- Object[106] = CreateObject(2653,2630.7265625,-4505.1708984,2160.6062012,357.9895019,0.0000000,359.4891357); //object(cj_aircon3)(2)
- Object[107] = CreateObject(2653,2725.9973144,-4522.2563477,2151.0441894,357.9895019,0.0000000,68.7414551); //object(cj_aircon3)(6)
- Object[108] = CreateObject(2653,2718.9916992,-4519.5356445,2150.7822266,357.9895019,0.0000000,68.7414551); //object(cj_aircon3)(6)
- Object[109] = CreateObject(2653,2718.4050293,-4521.3964844,2151.0041504,357.9895019,0.0000000,68.7431641); //object(cj_aircon3)(6)
- Object[110] = CreateObject(2653,2722.0920410,-4522.8286133,2151.2856445,357.9895019,0.0000000,68.7414551); //object(cj_aircon3)(6)
- Object[111] = CreateObject(3084,2722.1669922,-4521.8774414,2151.4577637,90.0000000,0.0000000,338.0000000); //object(trdcsgrgdoor_lvs)(1)
- Object[112] = CreateObject(3084,2748.5270996,-4572.6591797,2139.9414062,84.0000000,0.0000000,297.9998779); //object(trdcsgrgdoor_lvs)(2)
- }
- #endif
- //==============================================================================
- // Basic vars
- //==============================================================================
- new bool:MissionStarted;
- new bool:ObjectiveStarted;
- new bool:MissionCancelled;
- new GMTimer;
- new GMSec;
- new TotalPlayers;
- new CurrentRacePos;
- new MAX_CPs;
- new RaceMin,RaceSec,RaceMili;
- new randA;
- native IsValidVehicle(vehicleid);
- enum playersdata
- {
- UserName[MAX_PLAYER_NAME],
- rSec,
- rMin,
- rMili,
- CurrentCheckpoint,
- MissionFinished,
- PlayerClassID,
- PlayerCounted,
- rBestMin,
- rBestSec,
- rBestMili
- };
- new PlayerMissionInfo[MAX_PLAYERS][playersdata];
- //==============================================================================
- // Basic script
- //==============================================================================
- main()
- {
- print("----------------------------------");
- print(" Mission: "MISSION_NAME" started.");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- MissionStarted= true;
- #if MAX_MAP_OBJECTS != 0
- CreateMap();
- #endif
- for(new i=0; i<sizeof(PedInfo); i++)
- {
- AddPlayerClassEx(PedInfo[i][TeamID],PedInfo[i][Skin],PedInfo[i][SpawnX],PedInfo[i][SpawnY],PedInfo[i][SpawnZ],PedInfo[i][SpawnAngle],0,0,0,0,0,0);
- }
- if(CallRemoteFunction("GetCurrentMissionCJWalk","")) UsePlayerPedAnims();
- GMTimer = SetTimer("GMClock",1000,true);
- MAX_CPs = sizeof(cp);
- randA=random(2);
- CallRemoteFunction("UpdateRaceRecordsFunc","dd",INVALID_PLAYER_ID,0);
- return 1;
- }
- public OnGameModeExit()
- {
- #if MAX_MAP_OBJECTS != 0
- for(new i=0;i<MAX_MAP_OBJECTS;i++) DestroyObject(Object[i]);
- #endif
- KillTimer(GMTimer);
- return 1;
- }
- FUNCTION GMClock()
- {
- GMSec++;
- switch(ObjectiveStarted)
- {
- case false:
- {
- switch(GMSec)
- {
- case 1:
- {
- new string[40];
- format(string,sizeof(string),"The parkour will start in %d seconds.",START_TIME);
- CallRemoteFunction("ShowInfoBox", "iisi", -1, -1, string,0);
- }
- case START_TIME-4:
- {
- GameTextForAll("~r~~h~GET READY!",1000,3);
- PlaySoundForAll(1056);
- }
- case START_TIME-3:
- {
- GameTextForAll("~r~~h~~h~3",1000,3);
- PlaySoundForAll(1056);
- }
- case START_TIME-2:
- {
- GameTextForAll("~r~~h~~h~~h~2",1000,3);
- PlaySoundForAll(1056);
- }
- case START_TIME-1:
- {
- GameTextForAll("~y~1",1000,3);
- PlaySoundForAll(1056);
- }
- case START_TIME:
- {
- PlaySoundForAll(1057);
- CallRemoteFunction("StartMission","");
- GameTextForAll("~g~~h~~h~RUN!",1000,3);
- ObjectiveStarted= true;
- ToggleControllable(true);
- SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" DAZZZ! The parkour has started. Good luck.");
- CallRemoteFunction("ShowInfoText", "iisi", -1, -1,"DAZZZ! The parkour has started. Good luck.",0);
- RaceMili=GetTickCount();
- }
- }
- }
- case true:
- {
- for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
- {
- if(IsPlayerConnected(i) && CallRemoteFunction("GetAliveState","i",i) && !PlayerMissionInfo[i][MissionFinished])
- {
- GetPlayerPosition(i);
- new Float:x,Float:y,Float:z;
- GetPlayerPos(i,x,y,z);
- if(z <= Z_LIMIT)
- {
- SpawnPlayer(i);
- CallRemoteFunction("UpdateAliveState","ii",i,0);
- CallRemoteFunction("UpdateLastCheckpoint","dfff",i,-1.0,-1.0,-1.0);
- }
- }
- }
- RaceSec++;
- if(RaceSec == 60)
- {
- RaceSec=0;
- RaceMin++;
- }
- }
- }
- }
- public OnPlayerDisconnect(playerid,reason)
- {
- if(!PlayerMissionInfo[playerid][MissionFinished])
- {
- if(PlayerMissionInfo[playerid][PlayerCounted])
- {
- TotalPlayers--;
- PlayerMissionInfo[playerid][PlayerCounted]= false;
- }
- }
- else PlayerMissionInfo[playerid][MissionFinished] = false;
- RemovePlayerMapIcon(playerid,MAP_ICON_NEXT_CP);
- DisablePlayerRaceCheckpoint(playerid);
- CallRemoteFunction("PlayerRaceRecords","dd",playerid,1);
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerPos(playerid,CLASS_POSTION);
- SetPlayerCameraPos(playerid,CLASS_CAMERA);
- SetPlayerCameraLookAt(playerid,CLASS_POSTION);
- SetPlayerFacingAngle(playerid,CLASS_FACING_AGNLE);
- CallRemoteFunction("ShowClassSelection","ddsddd",playerid, 2,"Parkour Artist", PedInfo[classid][Weapon1], PedInfo[classid][Weapon2], PedInfo[classid][Weapon3]);
- SetPlayerColor(playerid,COLOR_SERVER);
- PlayerMissionInfo[playerid][PlayerClassID]=classid;
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- CallRemoteFunction("UpdateRaceRecordsFunc","dd",INVALID_PLAYER_ID,0);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- new string[124];
- CallRemoteFunction("UpdateAliveState","ii",playerid,1);
- SetPlayerHealth(playerid,Health);
- if(PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Skin] == 0)
- {
- back:
- new skin=random(312);
- if(skin == 74 || skin < 1) goto back;
- SetPlayerSkin(playerid,skin);
- }
- if(CallRemoteFunction("GetSpectateStatus","d",playerid)) return CallRemoteFunction("SpecOffAdmin","d",playerid);
- SetPlayerColor(playerid,(randA == TEAM_ATTACK) ? COLOR_TEAM_ATTACK : COLOR_TEAM_DEFEND);
- SetPlayerTeam(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][TeamID]);
- switch(ObjectiveStarted)
- {
- case false:
- {
- TogglePlayerControllable(playerid,false);
- format(string,sizeof(string),"The parkour will start in %d seconds. Get ready.",(GMSec-START_TIME)*-1);
- CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,string,100);
- }
- case true:
- {
- TogglePlayerControllable(playerid,true);
- CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,"HURRY UP! The parkour has already started.",2000);
- }
- }
- CallRemoteFunction("ShowInfoText", "iisi", playerid, -1,"Try to finish first!",2000);
- if(CallRemoteFunction("GetJailedStatus","d",playerid)) CallRemoteFunction("SetJailed","d",playerid);
- else
- {
- SetPlayerInterior(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnInterior]);
- SetPlayerPos(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnX]-(random(3)),PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnY],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnZ]+5);
- SetPlayerFacingAngle(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnAngle]);
- SetPlayerVirtualWorld(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][VirtualWorld]);
- SetCameraBehindPlayer(playerid);
- CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon1],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo1]);
- CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon2],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo2]);
- CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon3],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo3]);
- if(!PlayerMissionInfo[playerid][MissionFinished])
- {
- PlayerMissionInfo[playerid][CurrentCheckpoint]= 0;
- SetPlayerVirtualWorld(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][VirtualWorld]);
- SetPlayerRaceCheckpoint(playerid,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_type],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_z],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_z],10.0);
- SetPlayerMapIcon(playerid, MAP_ICON_NEXT_CP,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_z], 0, 0xFF000033, MAPICON_LOCAL);
- }
- else
- {
- SetPlayerVirtualWorld(playerid,2);
- CallRemoteFunction("OnPlayerMissionComplete","d",playerid);
- }
- if(!PlayerMissionInfo[playerid][PlayerCounted])
- {
- TotalPlayers++;
- PlayerMissionInfo[playerid][PlayerCounted]= true;
- }
- }
- CallRemoteFunction("GetPlayerPersonalBest","d",playerid);
- CallRemoteFunction("UpdateMissionHud","iiiiiiiiiiii",playerid,4,GetPlayerPosition(playerid),TotalPlayers,RaceMin,PlayerMissionInfo[playerid][rSec],PlayerMissionInfo[playerid][CurrentCheckpoint],MAX_CPs,PlayerMissionInfo[playerid][rBestMin],PlayerMissionInfo[playerid][rBestSec],PlayerMissionInfo[playerid][rBestMili],-1);
- CallRemoteFunction("PlayerRaceRecords","dd",playerid,2);
- return 1;
- }
- public OnPlayerDeath(playerid,killerid,reason)
- {
- CallRemoteFunction("UpdateAliveState","ii",playerid,0);
- if(!PlayerMissionInfo[playerid][MissionFinished]) PlayerMissionInfo[playerid][CurrentCheckpoint]= 0;
- CallRemoteFunction("PlayerRaceRecords","dd",playerid,1);
- CallRemoteFunction("UpdateLastCheckpoint","dfff",playerid,-1.0,-1.0,-1.0);
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- if(!MissionStarted || !ObjectiveStarted) return 0;
- new string[124],type;
- PlayerPlaySound(playerid,1139,0,0,0);
- CallRemoteFunction("UpdateLastCheckpoint","dfff",playerid,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_z]);
- if(PlayerMissionInfo[playerid][CurrentCheckpoint] != MAX_CPs-1)
- {
- type=cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_type];
- }
- if(PlayerMissionInfo[playerid][CurrentCheckpoint] == MAX_CPs-2)
- {
- SetPlayerRaceCheckpoint(playerid,type,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_z],0.0,0.0,0.0,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_size]);
- RemovePlayerMapIcon(playerid,MAP_ICON_NEXT_CP);
- }
- else if(PlayerMissionInfo[playerid][CurrentCheckpoint] == MAX_CPs-1)
- {
- PlaySoundForAll(1058);
- PlayerMissionInfo[playerid][MissionFinished]= true;
- DisablePlayerRaceCheckpoint(playerid);
- RemovePlayerMapIcon(playerid,MAP_ICON_NEXT_CP);
- new Pos=GetPlayerPosition(playerid);
- CurrentRacePos++;
- PlayerMissionInfo[playerid][rMin]=RaceMin;
- PlayerMissionInfo[playerid][rSec]=RaceSec;
- new Prize=floatround(20000/Pos, floatround_round)+(1000*TotalPlayers);
- PlayerMissionInfo[playerid][rMili]=(((GetTickCount()-RaceMili)-(1000*PlayerMissionInfo[playerid][rSec]))-((1000*60)*PlayerMissionInfo[playerid][rMin]));
- while(PlayerMissionInfo[playerid][rMili] >= 1000)
- {
- PlayerMissionInfo[playerid][rMili]-=1000;
- PlayerMissionInfo[playerid][rSec]++;
- if(PlayerMissionInfo[playerid][rSec] == 60)
- {
- PlayerMissionInfo[playerid][rSec]=0;
- PlayerMissionInfo[playerid][rMin]++;
- }
- }
- CallRemoteFunction("UpdateMissionHud","iiiiiiiiiiii",playerid,4,Pos,TotalPlayers,PlayerMissionInfo[playerid][rMin],PlayerMissionInfo[playerid][rSec],PlayerMissionInfo[playerid][CurrentCheckpoint]+1,MAX_CPs,PlayerMissionInfo[playerid][rBestMin],PlayerMissionInfo[playerid][rBestSec],PlayerMissionInfo[playerid][rBestMili],-1);
- CallRemoteFunction("GivePlayerCash","ii",playerid,Prize);
- if(Pos == 1)
- {
- CallRemoteFunction("PlayerMissionStats","dd",playerid,3);
- format(string,sizeof(string),""SERVER_KEY_MSG" %s (%d) has finished 1st in the parkour. Time Taken: %02d:%02d:%03d | Prize: $%d + Token.",PlayerMissionInfo[playerid][UserName],playerid,PlayerMissionInfo[playerid][rMin],PlayerMissionInfo[playerid][rSec],PlayerMissionInfo[playerid][rMili],Prize);
- CallRemoteFunction("GivePlayerToken","dd",playerid,1);
- CallRemoteFunction("CheckForBetWinners","d",playerid);
- }
- else format(string,sizeof(string),""SERVER_KEY_MSG" %s (%d) has finished %d%s in the parkour. Time Taken: %02d:%02d:%03d | Prize: $%d.",PlayerMissionInfo[playerid][UserName],playerid,Pos,GetEndStyle(Pos),PlayerMissionInfo[playerid][rMin],PlayerMissionInfo[playerid][rSec],PlayerMissionInfo[playerid][rMili],Prize);
- if(Pos == 2) CallRemoteFunction("PlayerMissionStats","dd",playerid,4);
- if(Pos == 3) CallRemoteFunction("PlayerMissionStats","dd",playerid,5);
- CallRemoteFunction("PlayerMissionStats","dd",playerid,0);
- CallRemoteFunction("IRC_SendMessage","ss",string,IRC_SERVER_COLOR);
- new time = ((PlayerMissionInfo[playerid][rMin]*60000)+(PlayerMissionInfo[playerid][rSec]*1000)+(PlayerMissionInfo[playerid][rMili]));
- CallRemoteFunction("CheckRaceRecord","dd",playerid,time);
- SetPlayerVirtualWorld(playerid,2);
- SendClientMessageToAll(COLOR_SERVER,string);
- CallRemoteFunction("OnPlayerMissionComplete","d",playerid);
- CallRemoteFunction("UpdateLastCheckpoint","dfff",playerid,-2.0,-2.0,-2.0);
- CallRemoteFunction("PlayerMissionStats","dd",playerid,11);
- }
- else if(PlayerMissionInfo[playerid][CurrentCheckpoint] < MAX_CPs-1)
- {
- SetPlayerRaceCheckpoint(playerid,type,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_z],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+2][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+2][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+2][cp_z],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_size]);
- SetPlayerMapIcon(playerid, MAP_ICON_NEXT_CP,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+2][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+2][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+2][cp_z], 0, 0xFF000033, MAPICON_LOCAL);
- }
- PlayerMissionInfo[playerid][CurrentCheckpoint]++;
- return 1;
- }
- FUNCTION EndTheMission()
- {
- if(!MissionStarted) return 1;
- MissionStarted= false;
- KillTimer(GMTimer);
- if(!MissionCancelled && ObjectiveStarted)
- {
- SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The parkour has ended.");
- CallRemoteFunction("IRC_SendMessage","ss",""SERVER_KEY_MSG" The parkour has ended.",IRC_SERVER_COLOR);
- CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The parkour has ended.",0);
- for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
- {
- if(IsPlayerConnected(i) && !PlayerMissionInfo[i][MissionFinished])
- {
- PlayerPlaySound(i,17004,0,0,0);
- GameTextForPlayer(i,"~R~MISSION FAILED~w~!",3000,3);
- DisablePlayerCheckpoint(i);
- CallRemoteFunction("PlayerMissionStats","dd",i,1);
- }
- }
- }
- else
- {
- PlaySoundForAll(1058);
- SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The mission has been cancelled.");
- CallRemoteFunction("IRC_SendMessage","ss",""SERVER_KEY_MSG" The mission has been cancelled.",IRC_SERVER_COLOR);
- CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The mission has been cancelled.",0);
- for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
- {
- if(IsPlayerConnected(i))
- {
- GameTextForPlayer(i,"~R~MISSION CANCELLED~w~!",3000,3);
- DisablePlayerCheckpoint(i);
- RemovePlayerMapIcon(i,MAP_ICON_NEXT_CP);
- }
- }
- }
- return 1;
- }
- //==============================================================================
- // Mission functions
- //==============================================================================
- GetPlayerPosition(playerid)
- {
- if(!IsPlayerConnected(playerid)) return 0;
- if(PlayerMissionInfo[playerid][MissionFinished]) return GetPlayerScore(playerid);
- new PlayerPositon=CurrentRacePos+1;
- new Float:PlayerDistance=GetPlayerDistanceFromPoint(playerid,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_z]);
- new Float:OtherPlayerDistance;
- for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
- {
- if(!IsPlayerConnected(i)) continue;
- if(!CallRemoteFunction("GetAliveState","i",i) || !ObjectiveStarted || PlayerMissionInfo[i][MissionFinished]) continue;
- if(PlayerMissionInfo[playerid][CurrentCheckpoint] < PlayerMissionInfo[i][CurrentCheckpoint])
- {
- PlayerPositon++;
- continue;
- }
- else if(PlayerMissionInfo[playerid][CurrentCheckpoint] == PlayerMissionInfo[i][CurrentCheckpoint])
- {
- OtherPlayerDistance=GetPlayerDistanceFromPoint(i,cp[PlayerMissionInfo[i][CurrentCheckpoint]][cp_x],cp[PlayerMissionInfo[i][CurrentCheckpoint]][cp_y],cp[PlayerMissionInfo[i][CurrentCheckpoint]][cp_z]);
- if(PlayerDistance > OtherPlayerDistance)
- {
- PlayerPositon++;
- continue;
- }
- }
- }
- SetPlayerScore(playerid,PlayerPositon);
- CallRemoteFunction("UpdateMissionHud","iiiiiiiiiiii",playerid,4,PlayerPositon,TotalPlayers,RaceMin,RaceSec,PlayerMissionInfo[playerid][CurrentCheckpoint],MAX_CPs,PlayerMissionInfo[playerid][rBestMin],PlayerMissionInfo[playerid][rBestSec],PlayerMissionInfo[playerid][rBestMili],-1);
- return PlayerPositon;
- }
- GetEndStyle(pos)
- {
- new end[3];
- if(pos == 11 || pos == 12 || pos == 13) { end = "TH"; }
- else if(pos - (pos / 10) * 10 == 1) { end = "ST"; }
- else if(pos - (pos / 10) * 10 == 2) { end = "ND"; }
- else if(pos - (pos / 10) * 10 == 3) { end = "RD"; }
- else { end = "TH"; }
- return end;
- }
- PlaySoundForAll(sound)
- {
- for (new i=0,j=GetPlayerPoolSize(); i <=j ; i++)
- {
- if(IsPlayerConnected(i)) PlayerPlaySound(i,sound,0,0,0);
- }
- }
- ToggleControllable(control)
- {
- for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(CallRemoteFunction("GetAliveState","i",i)) TogglePlayerControllable(i,control);
- }
- }
- return 1;
- }
- //==============================================================================
- // Important functions required
- //==============================================================================
- FUNCTION OnPlayerGetPersonalBest(playerid,Min,Sec,Mili)
- {
- PlayerMissionInfo[playerid][rBestMin]=Min;
- PlayerMissionInfo[playerid][rBestSec]=Sec;
- PlayerMissionInfo[playerid][rBestMili]=Mili;
- CallRemoteFunction("UpdateMissionHud","iiiiiiiiiiii",playerid,2,GetPlayerPosition(playerid),TotalPlayers,PlayerMissionInfo[playerid][rMin],PlayerMissionInfo[playerid][rSec],PlayerMissionInfo[playerid][CurrentCheckpoint]+1,MAX_CPs,PlayerMissionInfo[playerid][rBestMin],PlayerMissionInfo[playerid][rBestSec],PlayerMissionInfo[playerid][rBestMili],0);
- return 1;
- }
- FUNCTION CancelTheMission()
- {
- MissionCancelled= true;
- return 1;
- }
- FUNCTION OnPlayerNameRecieve(playerid,name[])
- {
- format(PlayerMissionInfo[playerid][UserName],MAX_PLAYER_NAME,"%s",name);
- return 1;
- }
- FUNCTION MissionObjectiveStarted() return ObjectiveStarted;
Advertisement
Add Comment
Please, Sign In to add comment