Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Script by: Bullet
- Map by: IDK
- Mission Base: Last man standing
- Mission Type: Last man standing
- Mission Type ID: 4
- */
- //==============================================================================
- // Includes
- //==============================================================================
- #include <a_samp>
- #include <crashdetect>
- #include <float>
- #include <fixes2>
- #include "..\filterscripts\MM\stuff\defines"
- #include "..\filterscripts\MM\stuff\serverkeymsg"
- //==============================================================================
- // Defines
- //==============================================================================
- #define MISSION_NAME "H2O"
- #define Health 99.0
- #define VEHICLE_HEALTH 999.0
- #define CLASS_POSTION -3707.8735,-3.6701,1.5306
- #define CLASS_CAMERA -3708.7627,-1.4937,1.5306
- #define CLASS_FACING_AGNLE 27.4554
- #define MAX_MAP_OBJECTS 140
- #define START_TIME 20
- //==============================================================================
- // Per mission functions
- //==============================================================================
- 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] = {
- {NO_TEAM, 0, -784.0209, 494.7463, 1376.1953, 88.6274,0,0, WEAPON_DEAGLE, 500, WEAPON_AK47, 250, 0, 0}
- };
- new Float:gSpawns[][] =
- {
- {-3747.3698, -46.0332, 3.3839, 358.4608},
- {-3739.9975, -46.5202, 3.3839, 356.5808},
- {-3732.5119, -45.7969, 3.5145, 358.4608},
- {-3725.4741, -46.6061, 3.3839, 1.2808},
- {-3746.3742, 22.7724, 3.3839, 178.0026},
- {-3739.0229, 22.6071, 3.3839, 178.6525},
- {-3731.6289, 22.3061, 3.3839, 177.7126},
- {-3724.6774, 22.1306, 3.3839, 185.2326},
- {-3720.2011, 74.3678, 2.0562, 176.7727},
- {-3716.7937, 49.8118, 2.0562, 263.5668},
- {-3675.0617, 53.0439, 2.0627, 125.6987},
- {-3718.8066, 38.8433, 2.0562, 233.1731},
- {-3678.1940, 20.8610, 2.0627, 84.3383},
- {-3621.1391, 70.3876, 11.2140, 179.2558},
- {-3638.2172, -1.3781, 1.6031, 5.3542},
- {-3627.2639, -14.1797, 1.4534, 86.7982},
- {-3630.8225, -58.5006, 1.8782, 26.3243},
- {-3631.9992, -88.0434, 4.5124, 51.3912},
- {-3667.6345, -87.8406, 1.3303, 28.5177},
- {-3717.7724, -56.6394, 1.2186, 0.9437}
- };
- #if MAX_MAP_OBJECTS != 0
- new Object[MAX_MAP_OBJECTS];
- CreateMap()
- {
- Object[0] = CreateObject(5835,-3774.5000000,-12.0000000,5.9000000,0.0000000,0.0000000,0.0000000); //
- Object[1] = CreateObject(10832,-3745.6999500,-22.9000000,0.0000000,0.0000000,0.0000000,0.0000000); //
- Object[2] = CreateObject(10832,-3745.8000500,-12.5000000,0.0000000,0.0000000,0.0000000,0.0000000); //
- Object[3] = CreateObject(10832,-3745.8999000,-2.1000000,0.0000000,0.0000000,0.0000000,0.0000000); //
- Object[4] = CreateObject(3458,-3739.5000000,-11.0000000,0.0000000,0.0000000,0.0000000,90.0000000); //
- Object[5] = CreateObject(3458,-3734.3999000,-11.0000000,0.0000000,0.0000000,0.0000000,90.0000000); //
- Object[6] = CreateObject(3458,-3729.8000500,-11.1000000,0.0000000,0.0000000,0.0000000,90.0000000); //
- Object[7] = CreateObject(3776,-3735.6992200,-36.0000000,0.0000000,0.0000000,0.0000000,0.0000000); //
- Object[8] = CreateObject(3776,-3735.1001000,14.2000000,0.0000000,0.0000000,0.0000000,0.0000000); //
- Object[9] = CreateObject(16367,-3724.3999000,-22.4000000,1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[10] = CreateObject(16367,-3724.5000000,-9.0000000,1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[11] = CreateObject(16367,-3724.5000000,-15.8000000,1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[12] = CreateObject(16367,-3724.1992200,-2.0000000,1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[13] = CreateObject(8838,-3707.8999000,-23.2000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[14] = CreateObject(8838,-3707.8000500,-18.1000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[15] = CreateObject(8838,-3707.8000500,-13.0000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[16] = CreateObject(8838,-3707.6999500,-8.0000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[17] = CreateObject(8838,-3707.6999500,-3.2000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[18] = CreateObject(8838,-3707.6001000,1.8000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[19] = CreateObject(8838,-3708.0000000,-28.3000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[20] = CreateObject(3577,-3707.7004400,-14.1800100,1.3000000,0.0000000,0.0000000,0.0000000); //
- Object[21] = CreateObject(3796,-3698.5000000,-11.3000000,0.5000000,0.0000000,0.0000000,287.9999700); //
- Object[22] = CreateObject(8838,-3675.0000000,-28.3000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[23] = CreateObject(8838,-3674.5000000,1.7998000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[24] = CreateObject(10789,-3676.6999500,-12.8000000,-2.0000000,0.0000000,0.0000000,0.0000000); //
- Object[25] = CreateObject(8838,-3641.0996100,1.7998000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[26] = CreateObject(8838,-3641.5996100,-28.2998000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[27] = CreateObject(3458,-3622.5000000,-13.0000000,-1.0000000,0.0000000,0.0000000,269.9890100); //
- Object[28] = CreateObject(11088,-3699.5000000,48.5996100,6.4000000,0.0000000,0.0000000,0.0000000); //
- Object[29] = CreateObject(10829,-3668.1999500,37.4000000,-2.5000000,0.0000000,0.0000000,0.0000000); //
- Object[30] = CreateObject(10829,-3714.6001000,75.1000000,1.1000000,0.0000000,0.0000000,0.0000000); //
- Object[31] = CreateObject(10829,-3714.6001000,65.3000000,1.1000000,0.0000000,0.0000000,0.0000000); //
- Object[32] = CreateObject(3458,-3668.3000500,17.6000000,-1.0000000,0.0000000,0.0000000,269.9999400); //
- Object[33] = CreateObject(974,-3697.8000500,59.2000000,3.8000000,0.0000000,0.0000000,0.0000000); //
- Object[34] = CreateObject(974,-3705.6999500,59.4000000,3.8000000,0.0000000,0.0000000,0.0000000); //
- Object[35] = CreateObject(974,-3684.3000500,59.4000000,3.8000000,0.0000000,0.0000000,0.0000000); //
- Object[36] = CreateObject(974,-3678.6999500,59.5000000,3.8000000,0.0000000,0.0000000,0.0000000); //
- Object[37] = CreateObject(3578,-3663.1001000,-20.6000000,1.4000000,0.0000000,0.0000000,90.0000000); //
- Object[38] = CreateObject(3578,-3663.1001000,-10.3000000,1.4000000,0.0000000,0.0000000,90.0000000); //
- Object[39] = CreateObject(3578,-3663.1001000,-5.9000000,1.4000000,0.0000000,0.0000000,90.0000000); //
- Object[40] = CreateObject(3578,-3624.5996100,-20.3994100,1.4000000,0.0000000,0.0000000,270.0000000); //
- Object[41] = CreateObject(3578,-3624.6001000,-10.1000000,1.4000000,0.0000000,0.0000000,270.0000000); //
- Object[42] = CreateObject(3578,-3624.6001000,-6.0000000,1.4000000,0.0000000,0.0000000,270.0000000); //
- Object[43] = CreateObject(2932,-3626.5000000,-4.4000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[44] = CreateObject(2932,-3626.5000000,-11.5996100,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[45] = CreateObject(2932,-3626.5000000,-18.7000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[46] = CreateObject(2932,-3626.5000000,-23.0000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[47] = CreateObject(2934,-3660.8999000,-22.4000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[48] = CreateObject(2934,-3660.8999000,-15.6000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[49] = CreateObject(2934,-3660.8999000,-8.9000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[50] = CreateObject(2934,-3660.8999000,-4.1000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[51] = CreateObject(2935,-3623.5000000,-32.4000000,-0.9000000,0.0000000,0.0000000,90.0000000); //
- Object[52] = CreateObject(3458,-3622.5000000,19.2000000,-1.0000000,0.0000000,0.0000000,269.9890100); //
- Object[53] = CreateObject(3865,-3629.3999000,37.9000000,2.0000000,0.0000000,0.0000000,267.9950000); //
- Object[54] = CreateObject(3865,-3638.6001000,38.3000000,2.0000000,0.0000000,0.0000000,267.9950000); //
- Object[55] = CreateObject(3865,-3647.5000000,38.7000000,2.0000000,0.0000000,0.0000000,267.9950000); //
- Object[56] = CreateObject(3865,-3655.1999500,39.1000000,2.0000000,0.0000000,0.0000000,267.9950000); //
- Object[57] = CreateObject(1503,-3661.2998000,39.5000000,-0.3000000,0.0000000,0.0000000,93.9990200); //
- Object[58] = CreateObject(2935,-3623.5000000,-35.5000000,-0.9000000,0.0000000,0.0000000,90.0000000); //
- Object[59] = CreateObject(18245,-3622.0000000,74.0000000,3.3000000,0.0000000,0.0000000,87.7500000); //
- Object[60] = CreateObject(3776,-3736.5000000,-59.2000000,8.5000000,0.0000000,0.0000000,0.0000000); //
- Object[61] = CreateObject(3776,-3735.5000000,36.9000000,8.3000000,0.0000000,0.0000000,0.0000000); //
- Object[62] = CreateObject(3776,-3760.5000000,-38.1000000,9.5000000,0.0000000,0.0000000,0.0000000); //
- Object[63] = CreateObject(3776,-3760.0000000,17.8000000,8.3000000,0.0000000,0.0000000,0.0000000); //
- Object[64] = CreateObject(10166,-3678.6091300,-92.5729600,-10.8000000,0.0000000,349.9969500,29.9981700); //
- Object[65] = CreateObject(901,-3641.0000000,-48.2998000,-1.5000000,0.0000000,0.0000000,0.0000000); //
- Object[66] = CreateObject(10166,-3663.6001000,-110.3000000,-11.3000000,0.0000000,349.9969500,29.9981700); //
- Object[67] = CreateObject(901,-3630.6999500,-65.2000000,-1.5000000,0.0000000,0.0000000,0.0000000); //
- Object[68] = CreateObject(901,-3633.3000500,-46.7000000,-2.3000000,0.0000000,0.0000000,0.0000000); //
- Object[69] = CreateObject(901,-3626.9914600,-42.9819400,-2.3000000,0.0000000,0.0000000,0.0000000); //
- Object[70] = CreateObject(901,-3623.1001000,-41.3000000,-2.3000000,0.0000000,0.0000000,36.0000000); //
- Object[71] = CreateObject(901,-3630.3000500,-55.1000000,-2.3000000,0.0000000,0.0000000,0.0000000); //
- Object[72] = CreateObject(8356,-3801.7998000,1.0996100,15.6000000,0.0000000,270.0000000,0.0000000); //
- Object[73] = CreateObject(17011,-3691.1999500,-33.1000000,-2.5000000,0.0000000,0.0000000,0.0000000); //
- Object[74] = CreateObject(17011,-3705.8000500,-33.1000000,-2.5000000,0.0000000,0.0000000,0.0000000); //
- Object[75] = CreateObject(8356,-3707.6999500,-92.2000000,15.6000000,0.0000000,270.0000000,89.9993600); //
- Object[76] = CreateObject(8356,-3607.3999000,1.2000000,15.6000000,0.0000000,270.0000000,175.9939600); //
- Object[77] = CreateObject(8356,-3709.2998000,91.7998000,15.6000000,0.0000000,270.0000000,267.9950000); //
- Object[78] = CreateObject(8356,-3684.3999000,92.3000000,15.6000000,0.0000000,270.0000000,267.9949600); //
- Object[79] = CreateObject(8356,-3684.3999000,92.3000000,-22.7000000,0.0000000,270.0000000,267.9949300); //
- Object[80] = CreateObject(8356,-3684.3999000,92.3000000,-62.3000000,0.0000000,270.0000000,267.9950000); //
- Object[81] = CreateObject(8356,-3607.3999000,1.2000000,-22.5000000,0.0000000,270.0000000,175.9899900); //
- Object[82] = CreateObject(8356,-3607.3994100,1.1992200,-51.8000000,0.0000000,270.0000000,175.9899900); //
- Object[83] = CreateObject(8356,-3707.6999500,-92.2000000,-19.6000000,0.0000000,270.0000000,89.9944800); //
- Object[84] = CreateObject(8356,-3707.6999500,-92.2000000,-56.6000000,0.0000000,270.0000000,89.9945100); //
- Object[85] = CreateObject(8356,-3801.8000500,1.1000000,-22.9000000,0.0000000,270.0000000,0.0000000); //
- Object[86] = CreateObject(8356,-3801.8000500,1.1000000,-50.9000000,0.0000000,270.0000000,0.0000000); //
- Object[87] = CreateObject(8356,-3709.3000500,91.8000000,-21.9000000,0.0000000,270.0000000,267.9949300); //
- Object[88] = CreateObject(8356,-3709.6001000,92.2000000,-51.4000000,0.0000000,270.0000000,267.9950000); //
- Object[89] = CreateObject(17015,-3671.3999000,-90.3000000,33.6000000,0.0000000,0.0000000,0.0000000); //
- Object[90] = CreateObject(17022,-3604.8999000,37.0000000,29.6000000,0.0000000,0.0000000,0.0000000); //
- Object[91] = CreateObject(17016,-3720.1999500,91.8000000,9.8000000,0.0000000,0.0000000,0.0000000); //
- Object[92] = CreateObject(17016,-3745.3000500,88.8000000,9.8000000,0.0000000,0.0000000,34.0000000); //
- Object[93] = CreateObject(17015,-3802.0000000,-31.6000000,11.0000000,0.0000000,0.0000000,0.0000000); //
- Object[94] = CreateObject(17015,-3802.3000500,-38.1000000,15.8000000,0.0000000,0.0000000,46.0000000); //
- Object[95] = CreateObject(3585,-3698.6001000,-21.0000000,2.3000000,0.0000000,0.0000000,334.0000000); //
- Object[96] = CreateObject(703,-3641.8994100,-15.5000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
- Object[97] = CreateObject(3631,-3686.8000500,-38.4000000,0.2000000,0.0000000,0.0000000,0.0000000); //
- Object[98] = CreateObject(3631,-3694.3000500,-38.4000000,0.2000000,0.0000000,0.0000000,0.0000000); //
- Object[99] = CreateObject(3631,-3701.6999500,-38.4000000,0.2000000,0.0000000,0.0000000,0.0000000); //
- Object[100] = CreateObject(3631,-3708.3999000,-38.4000000,0.2000000,0.0000000,0.0000000,0.0000000); //
- Object[101] = CreateObject(901,-3683.3000500,-35.1000000,-3.6000000,0.0000000,0.0000000,0.0000000); //
- Object[102] = CreateObject(901,-3698.8000500,-35.6000000,-3.6000000,0.0000000,0.0000000,0.0000000); //
- Object[103] = CreateObject(901,-3703.0000000,-35.7000000,-3.6000000,0.0000000,0.0000000,0.0000000); //
- Object[104] = CreateObject(901,-3708.0000000,-36.2000000,-3.6000000,0.0000000,0.0000000,0.0000000); //
- Object[105] = CreateObject(12990,-3669.0000000,-45.0000000,0.6000000,0.0000000,0.0000000,0.0000000); //
- Object[106] = CreateObject(703,-3647.8999000,-68.8000000,1.8000000,0.0000000,0.0000000,0.0000000); //
- Object[107] = CreateObject(11495,-3636.1001000,-1.6000000,0.4000000,0.0000000,0.0000000,269.7500000); //
- Object[108] = CreateObject(11495,-3651.8000500,-1.5000000,0.4000000,0.0000000,0.0000000,269.7473100); //
- Object[109] = CreateObject(11495,-3636.1001000,-25.2000000,0.4000000,0.0000000,0.0000000,91.4972800); //
- Object[110] = CreateObject(11495,-3652.1999500,-25.6000000,0.4000000,0.0000000,0.0000000,91.4941400); //
- Object[111] = CreateObject(1503,-3661.3999000,-25.7000000,0.6000000,0.0000000,0.0000000,1.9990200); //
- Object[112] = CreateObject(1503,-3661.3999000,-21.3000000,0.6000000,0.0000000,0.0000000,179.9940200); //
- Object[113] = CreateObject(1503,-3661.1001000,-1.8000000,0.6000000,0.0000000,0.0000000,179.9890100); //
- Object[114] = CreateObject(1503,-3661.1001000,-6.0000000,0.6000000,0.0000000,0.0000000,1.9890100); //
- Object[115] = CreateObject(1503,-3626.3000500,-5.9000000,0.6000000,0.0000000,0.0000000,1.9885300); //
- Object[116] = CreateObject(1503,-3626.1999500,-1.6000000,0.6000000,0.0000000,0.0000000,179.9890100); //
- Object[117] = CreateObject(1503,-3626.6001000,-21.8000000,0.6000000,0.0000000,0.0000000,179.9890100); //
- Object[118] = CreateObject(1503,-3626.6001000,-25.9000000,0.6000000,0.0000000,0.0000000,1.9885300); //
- Object[119] = CreateObject(2991,-3654.3999000,-15.3000000,0.0000000,0.0000000,0.0000000,64.0000000); //
- Object[120] = CreateObject(2991,-3647.8000500,-22.1000000,0.0000000,0.0000000,0.0000000,135.9953600); //
- Object[121] = CreateObject(2991,-3649.3999000,-7.1000000,0.0000000,0.0000000,0.0000000,181.9942500); //
- Object[122] = CreateObject(2991,-3632.3999000,-9.7000000,0.0000000,0.0000000,0.0000000,219.9942500); //
- Object[123] = CreateObject(2991,-3641.5000000,18.1000000,0.0000000,0.0000000,0.0000000,217.9890300); //
- Object[124] = CreateObject(2991,-3651.6999500,12.0000000,0.0000000,0.0000000,0.0000000,293.9852300); //
- Object[125] = CreateObject(2991,-3647.6999500,22.4000000,0.0000000,0.0000000,0.0000000,359.9831500); //
- Object[126] = CreateObject(922,-3631.1999500,14.9000000,0.8000000,0.0000000,0.0000000,58.0000000); //
- Object[127] = CreateObject(3378,-3649.6001000,-39.2000000,-0.8000000,0.0000000,0.0000000,110.0000000); //
- Object[128] = CreateObject(18260,-3678.9824200,1.5732400,1.6271800,0.0000000,0.0000000,0.0000000); //
- Object[129] = CreateObject(1431,-3638.3999000,10.4000000,0.0000000,0.0000000,0.0000000,0.0000000); //
- Object[130] = CreateObject(2567,-3648.3000500,19.5000000,-0.3000000,72.9395800,290.0285000,69.1274700); //
- Object[131] = CreateObject(3569,-3648.5000000,49.9000000,-1.5000000,0.0000000,0.0000000,233.9966700); //
- Object[132] = CreateObject(3594,-3633.1001000,-18.3000000,0.0000000,0.0000000,0.0000000,80.0000000); //
- Object[133] = CreateObject(11443,-3659.1001000,20.7000000,0.0000000,0.0000000,0.0000000,60.0000000); //
- Object[134] = CreateObject(11458,-3635.8000500,28.8000000,0.0000000,0.0000000,0.0000000,38.0000000); //
- Object[135] = CreateObject(11420,-3711.6001000,-55.2000000,1.0000000,0.0000000,0.0000000,35.0000000); //
- Object[136] = CreateObject(9237,-3712.1001000,-55.9000000,9.6000000,0.0000000,0.0000000,243.2500300); //
- Object[137] = CreateObject(12990,-3685.6001000,-55.3000000,0.6000000,0.0000000,0.0000000,272.0000000); //
- Object[138] = CreateObject(1503,-3669.6999500,30.4000000,-0.3000000,0.0000000,0.0000000,357.9990200); //
- Object[139] = CreateObject(1503,-3667.1999500,30.3000000,-0.3000000,0.0000000,0.0000000,357.9950000); //
- }
- #endif
- //==============================================================================
- // Basic vars
- //==============================================================================
- new bool:MissionStarted;
- new bool:ObjectiveStarted;
- new bool:MissionCancelled;
- native IsValidVehicle(vehicleid);
- enum playersdata {
- UserName[MAX_PLAYER_NAME],
- Kills,
- bool:Counted,
- PlayerClassID,
- bool:AllowedToSpawn
- };
- new PlayerMissionInfo[MAX_PLAYERS][playersdata];
- new PlayersAlive;
- new GMTimer;
- new GMSec;
- new RandomColor;
- new MaxSpawns;
- //==============================================================================
- // Basic script
- //==============================================================================
- main()
- {
- print("----------------------------------");
- print(" Mission: "MISSION_NAME" started.");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- MissionStarted= true;
- MaxSpawns=sizeof(gSpawns);
- GMTimer = SetTimer("GMClock",1000,true);
- RandomColor=random(2);
- #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);
- }
- for(new i=0; i<MAX_VEHICLES; i++) if(IsValidVehicle(i)) SetVehicleHealth(i,VEHICLE_HEALTH);
- if(CallRemoteFunction("GetCurrentMissionCJWalk","")) UsePlayerPedAnims();
- return 1;
- }
- public OnGameModeExit()
- {
- #if MAX_MAP_OBJECTS != 0
- for(new i=0;i<MAX_MAP_OBJECTS;i++) DestroyObject(Object[i]);
- #endif
- for(new i=0; i<MAX_VEHICLES; i++)
- {
- DestroyVehicle(i);
- }
- return 1;
- }
- FUNCTION GMClock()
- {
- GMSec++;
- switch(ObjectiveStarted)
- {
- case false:
- {
- switch(GMSec)
- {
- case 1:
- {
- new string[100];
- format(string,sizeof(string),"The last man standing deathmatch will start in %d seconds.",START_TIME);
- CallRemoteFunction("ShowInfoBox", "iisi", -1, -1, string,0);
- }
- case START_TIME-3:
- {
- PlaySoundForAll(1056);
- GameTextForAll("~r~~h~3",1000,3);
- }
- case START_TIME-2:
- {
- PlaySoundForAll(1056);
- GameTextForAll("~r~~h~~h~2",1000,3);
- }
- case START_TIME-1:
- {
- PlaySoundForAll(1056);
- GameTextForAll("~y~1",1000,3);
- }
- case START_TIME:
- {
- PlaySoundForAll(1057);
- if(PlayersAlive > 1)
- {
- CallRemoteFunction("StartMission","");
- GameTextForAll("~r~Fight!",1000,3);
- ObjectiveStarted= true;
- ToggleControllable(true);
- SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The last man standing deathmatch has started. KILL OR BE KILLED!");
- CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The last man standing deathmatch has started. KILL OR BE KILLED!",0);
- }
- else CallRemoteFunction("EndMission","");
- KillTimer(GMTimer);
- }
- }
- }
- }
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(PlayerMissionInfo[playerid][Counted])
- {
- PlayersAlive --;
- CallRemoteFunction("LmsUpdate","d",PlayersAlive);
- PlayerMissionInfo[playerid][Counted]= false;
- if(PlayersAlive < 2) CallRemoteFunction("EndMission","");
- }
- return 1;
- }
- public OnPlayerRequestClass(playerid,classid)
- {
- SetPlayerPos(playerid,CLASS_POSTION);
- SetPlayerCameraPos(playerid,CLASS_CAMERA);
- SetPlayerCameraLookAt(playerid,CLASS_POSTION);
- SetPlayerFacingAngle(playerid,CLASS_FACING_AGNLE);
- CallRemoteFunction("LmsHide","i",playerid);
- CallRemoteFunction("ShowClassSelection","iisiii",playerid, 2,"Deathmatcher", PedInfo[classid][Weapon1], PedInfo[classid][Weapon2], PedInfo[classid][Weapon3]);
- PlayerMissionInfo[playerid][PlayerClassID]=classid;
- if(PlayerMissionInfo[playerid][Counted])
- {
- PlayersAlive --;
- CallRemoteFunction("LmsUpdate","d",PlayersAlive);
- PlayerMissionInfo[playerid][Counted]= false;
- if(PlayersAlive < 2) CallRemoteFunction("EndMission","");
- }
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- new string[124];
- CallRemoteFunction("LmsShow","i",playerid);
- CallRemoteFunction("LmsUpdate","d",PlayersAlive);
- 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);
- new rand=random(MaxSpawns);
- if(!CallRemoteFunction("GetJailedStatus","d",playerid))
- {
- SetPlayerPos(playerid,gSpawns[rand][0],gSpawns[rand][1],gSpawns[rand][2]);
- //SetPlayerFacingAngle(playerid,gSpawns[rand][3]);
- SetPlayerTeam(playerid,NO_TEAM);
- SetPlayerColor(playerid,COLOR_GREY);
- 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(ObjectiveStarted && !PlayerMissionInfo[playerid][AllowedToSpawn])
- {
- if(PlayerMissionInfo[playerid][Counted])
- {
- PlayersAlive --;
- CallRemoteFunction("LmsUpdate","d",PlayersAlive);
- PlayerMissionInfo[playerid][Counted]= false;
- if(PlayersAlive < 2) CallRemoteFunction("EndMission","");
- }
- CallRemoteFunction("OnPlayerMissionComplete","d",playerid);
- SetPlayerVirtualWorld(playerid,2);
- }
- else
- {
- PlayerMissionInfo[playerid][AllowedToSpawn]= false;
- SetPlayerPos(playerid,gSpawns[rand][0],gSpawns[rand][1],gSpawns[rand][2]);
- //SetPlayerFacingAngle(playerid,gSpawns[rand][3]);
- SetPlayerTeam(playerid,NO_TEAM);
- SetPlayerColor(playerid,(RandomColor == TEAM_ATTACK) ? COLOR_TEAM_ATTACK : COLOR_TEAM_DEFEND);
- SetPlayerVirtualWorld(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][VirtualWorld]);
- CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,"Your mission is to kill other players and survive till the last.",2000);
- CallRemoteFunction("ShowInfoText", "iisi", playerid, -1,"~r~~h~Eliminate ~w~others!",2000);
- if(!ObjectiveStarted)
- {
- format(string,sizeof(string),""SERVER_KEY_MSG" The last man standing deathmatch will start in %d seconds.",(GMSec-START_TIME)*-1);
- SendClientMessage(playerid,COLOR_SERVER,string);
- CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,string,0);
- TogglePlayerControllable(playerid,false);
- }
- if(!PlayerMissionInfo[playerid][Counted])
- {
- PlayersAlive++;
- PlayerMissionInfo[playerid][Counted]= true;
- CallRemoteFunction("LmsUpdate","d",PlayersAlive);
- }
- CallRemoteFunction("UpdateAliveState","ii",playerid,1);
- }
- }
- else CallRemoteFunction("SetJailed","d",playerid);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(!MissionStarted)
- {
- PlayerMissionInfo[playerid][AllowedToSpawn]= true;
- return 1;
- }
- if(killerid != INVALID_PLAYER_ID)
- {
- PlayerMissionInfo[killerid][Kills]++;
- SetPlayerScore(killerid,PlayerMissionInfo[killerid][Kills]);
- }
- if(ObjectiveStarted && PlayerMissionInfo[playerid][Counted])
- {
- GameTextForPlayer(playerid,"~R~MISSION FAILED~w~!",3000,3);
- CallRemoteFunction("PlayerMissionStats","dd",playerid,1);
- }
- if(PlayerMissionInfo[playerid][Counted])
- {
- PlayersAlive--;
- PlayerMissionInfo[playerid][Counted]= false;
- }
- CallRemoteFunction("LmsUpdate","d",PlayersAlive);
- CallRemoteFunction("UpdateAliveState","ii",playerid,0);
- if(PlayersAlive < 2) CallRemoteFunction("EndMission","");
- return 1;
- }
- FUNCTION EndTheMission()
- {
- if(!MissionStarted) return 1;
- MissionStarted= false;
- KillTimer(GMTimer);
- if(!MissionCancelled && ObjectiveStarted)
- {
- new string[124];
- new winner = INVALID_PLAYER_ID;
- new bool:MoreThan1;
- if(PlayersAlive == 1)
- {
- for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
- {
- if(CallRemoteFunction("GetAliveState","i",i) && IsPlayerConnected(i) && PlayerMissionInfo[i][Counted])
- {
- winner=i;
- }
- }
- }
- else if(PlayersAlive > 1)
- {
- new MostKills;
- for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
- {
- if(CallRemoteFunction("GetAliveState","i",i) && IsPlayerConnected(i) && PlayerMissionInfo[i][Counted])
- {
- if(PlayerMissionInfo[MostKills][Kills] < PlayerMissionInfo[i][Kills])
- {
- MostKills=i;
- MoreThan1=false;
- continue;
- }
- if(PlayerMissionInfo[MostKills][Kills] == PlayerMissionInfo[i][Kills])
- {
- MoreThan1= true;
- }
- }
- }
- new Float:TopHealth;
- new Float:OtherHealth;
- if(MoreThan1)
- {
- for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
- {
- if(CallRemoteFunction("GetAliveState","i",i) && IsPlayerConnected(i) && PlayerMissionInfo[i][Counted])
- {
- if(PlayerMissionInfo[winner][Kills] == PlayerMissionInfo[i][Kills])
- {
- GetPlayerHealth(winner,TopHealth);
- GetPlayerHealth(i,OtherHealth);
- if(OtherHealth > TopHealth)
- {
- winner=i;
- MoreThan1= false;
- continue;
- }
- else if(OtherHealth == TopHealth)
- {
- MoreThan1= true;
- }
- }
- }
- }
- }
- if(MoreThan1)
- {
- SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The last man standing deathmatch has been drawn.");
- CallRemoteFunction("IRC_SendMessage","ss",""SERVER_KEY_MSG" The last man standing deathmatch has been drawn.",IRC_SERVER_COLOR);
- for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
- {
- if(CallRemoteFunction("GetAliveState","i",i) && IsPlayerConnected(i) && PlayerMissionInfo[i][Counted])
- {
- CallRemoteFunction("PlayerMissionStats","dd",i,2);
- }
- }
- }
- }
- if(PlayersAlive > 0 && !MoreThan1 && winner != INVALID_PLAYER_ID)
- {
- new amount= (PlayerMissionInfo[winner][Kills]*1000)+(10000);
- format(string,sizeof(string),""SERVER_KEY_MSG" %s (%d) has won the last man standing deathmatch. Reward: $%d + Token.",PlayerMissionInfo[winner][UserName],winner,amount);
- CallRemoteFunction("GivePlayerToken","dd",winner,1);
- CallRemoteFunction("IRC_SendMessage","ss",string,IRC_SERVER_COLOR);
- SendClientMessageToAll(COLOR_SERVER,string);
- CallRemoteFunction("GivePlayerCash","ii",winner,amount);
- CallRemoteFunction("PlayerMissionStats","dd",winner,0);
- CallRemoteFunction("PlayerMissionStats","dd",winner,12);
- CallRemoteFunction("CheckForBetWinners","d",winner);
- }
- }
- 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);
- GameTextForAll("~R~MISSION CANCELLED~w~!",3000,3);
- }
- return 1;
- }
- //==============================================================================
- // Mission functions
- //==============================================================================
- 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 CancelTheMission()
- {
- MissionCancelled= true;
- return 1;
- }
- FUNCTION OnPlayerNameRecieve(playerid,name[])
- {
- format(PlayerMissionInfo[playerid][UserName],MAX_PLAYER_NAME,"%s",name);
- return 1;
- }
- FUNCTION MissionObjectiveStarted() return ObjectiveStarted;
- FUNCTION OnPlayerRespawned(playerid)
- {
- if(PlayerMissionInfo[playerid][Counted])
- {
- PlayersAlive--;
- PlayerMissionInfo[playerid][Counted]= false;
- }
- PlayerMissionInfo[playerid][AllowedToSpawn]= true;
- return 1;
- }
Add Comment
Please, Sign In to add comment