Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Script by: Bullet
- Map by: jimmy
- Mission Base: Last team standing
- Mission Type: Deathrun
- Mission Type ID: 5
- */
- //==============================================================================
- // Includes
- //==============================================================================
- #include <a_samp>
- #include <crashdetect>
- #include <float>
- #include "..\filterscripts\MM\stuff\defines"
- #include "..\filterscripts\MM\stuff\serverkeymsg"
- //==============================================================================
- // Defines
- //==============================================================================
- #define MISSION_NAME "Stunt Zone Escape"
- #define Health 99.0
- #define TEAM_DEFEND_NAME "Runners"
- #define TEAM_ATTACK_NAME "Gunners"
- #define MAX_MAP_OBJECTS 121
- #define VEHICLE_HEALTH 0
- #define CLASS_POSTION 996.8776,293.4838,213.5000
- #define CLASS_CAMERA 997.1612,289.0013,213.5000
- #define CLASS_FACING_AGNLE 181.0141
- #define START_TIME 20
- //==============================================================================
- // Per mission functions
- //============================================================================== 20
- enum ped_enum
- {
- TeamID,
- Skin,
- Float:SpawnX,
- Float:SpawnY,
- Float:SpawnZ,
- Float:SpawnAngle,
- SpawnInterior,
- VirtualWorld,
- Weapon1,
- Ammo1,
- Weapon2,
- Ammo2,
- Weapon3,
- Ammo3,
- };
- new const PedInfo[][ped_enum] = {
- {TEAM_ATTACK, 21, 1049.7133,298.4508,212.7320,357.8810,0,0,WEAPON_AK47,300,0,0,0,0},
- {TEAM_DEFEND, 0,999.3862,270.1404,213.4312,356.9409,0,0,0,0,0,0,0,0}
- };
- #if MAX_MAP_OBJECTS != 0
- new Object[MAX_MAP_OBJECTS];
- CreateMap()
- {
- Object[0] = CreateObject(4550,1044.4000200,292.0000000,0.0000000,0.0000000,0.0000000,0.0000000); //
- Object[1] = CreateObject(4726,1044.4000200,291.5000000,210.3999900,0.0000000,0.0000000,0.0000000); //
- Object[2] = CreateObject(14416,1100.8000500,255.3999900,210.8000000,0.0000000,0.0000000,90.0000000); //
- Object[3] = CreateObject(11496,999.2999900,287.1000100,212.3000000,0.0000000,0.0000000,0.0000000); //
- Object[4] = CreateObject(11496,994.5000000,287.1000100,212.3000000,0.0000000,0.0000000,180.0000000); //
- Object[5] = CreateObject(11496,994.5000000,302.7999900,212.3000000,0.0000000,0.0000000,179.9950000); //
- Object[6] = CreateObject(11496,999.4000200,302.7999900,212.3000000,0.0000000,0.0000000,0.0000000); //
- Object[7] = CreateObject(16409,997.7999900,272.0000000,212.3999900,0.0000000,0.0000000,270.0000000); //
- Object[8] = CreateObject(14414,992.7999900,316.7000100,215.3999900,0.0000000,0.0000000,180.0000000); //
- Object[9] = CreateObject(14414,996.7999900,316.7000100,215.3999900,0.0000000,0.0000000,179.9950000); //
- Object[10] = CreateObject(14414,1000.7999900,316.7000100,215.3999900,0.0000000,0.0000000,179.9950000); //
- Object[11] = CreateObject(1655,996.5000000,323.2000100,220.5000000,10.0000000,0.0000000,0.0000000); //
- Object[12] = CreateObject(980,1003.5000000,285.1000100,215.1000100,0.0000000,0.0000000,270.0000000); //
- Object[13] = CreateObject(11496,998.7000100,340.7999900,220.2000000,0.0000000,0.0000000,270.0000000); //
- Object[14] = CreateObject(11496,998.7000100,345.7000100,220.2000000,0.0000000,0.0000000,90.0000000); //
- Object[15] = CreateObject(11496,1014.5999800,345.7000100,220.2000000,0.0000000,0.0000000,90.0000000); //
- Object[16] = CreateObject(11496,1014.5999800,340.7999900,220.2000000,0.0000000,0.0000000,270.0000000); //
- Object[17] = CreateObject(980,1016.7000100,336.7000100,222.8999900,0.0000000,0.0000000,180.0000000); //
- Object[18] = CreateObject(11496,1029.1999500,345.7999900,214.0000000,0.0000000,0.0000000,90.0000000); //
- Object[19] = CreateObject(11496,1029.1999500,340.8999900,214.0000000,0.0000000,0.0000000,270.0000000); //
- Object[20] = CreateObject(980,1021.9000200,343.2000100,216.8999900,0.0000000,0.0000000,269.9950000); //
- Object[21] = CreateObject(11496,1039.6999500,343.2999900,214.0000000,0.0000000,0.0000000,0.0000000); //
- Object[22] = CreateObject(3865,1048.5999800,343.2999900,215.6000100,0.0000000,0.0000000,90.0000000); //
- Object[23] = CreateObject(3865,1057.1999500,343.2000100,215.6000100,0.0000000,0.0000000,90.0000000); //
- Object[24] = CreateObject(3865,1048.5000000,338.2000100,215.6000100,0.0000000,0.0000000,90.0000000); //
- Object[25] = CreateObject(3865,1057.1999500,338.1000100,215.6000100,0.0000000,0.0000000,90.0000000); //
- Object[26] = CreateObject(3865,1048.5999800,348.3999900,215.6000100,0.0000000,0.0000000,90.0000000); //
- Object[27] = CreateObject(11102,1061.4000200,343.0000000,215.5000000,0.0000000,0.0000000,0.0000000); //
- Object[28] = CreateObject(11496,1069.3000500,340.7000100,214.0000000,0.0000000,0.0000000,270.0000000); //
- Object[29] = CreateObject(11496,1069.3000500,345.6000100,214.0000000,0.0000000,0.0000000,90.0000000); //
- Object[30] = CreateObject(2780,1053.5999800,348.5000000,211.0000000,0.0000000,0.0000000,0.0000000); //
- Object[31] = CreateObject(2780,1053.6999500,343.2999900,211.0000000,0.0000000,0.0000000,0.0000000); //
- Object[32] = CreateObject(2780,1053.8000500,338.2000100,211.0000000,0.0000000,0.0000000,0.0000000); //
- Object[33] = CreateObject(3374,1084.6999500,243.3999900,208.3999900,0.0000000,0.0000000,0.0000000); //
- Object[34] = CreateObject(3743,1082.0000000,343.8999900,218.0000000,0.0000000,0.0000000,90.0000000); //
- Object[35] = CreateObject(980,1067.3000500,336.2999900,216.6000100,0.0000000,0.0000000,179.9950000); //
- Object[36] = CreateObject(11496,1092.8000500,343.8999900,220.8000000,0.0000000,0.0000000,180.0000000); //
- Object[37] = CreateObject(11496,1097.6999500,343.8999900,220.8000000,0.0000000,0.0000000,359.9950000); //
- Object[38] = CreateObject(11496,1092.8000500,327.8999900,214.0000000,0.0000000,0.0000000,179.9950000); //
- Object[39] = CreateObject(11496,1092.8000500,311.8999900,214.0000000,0.0000000,0.0000000,179.9950000); //
- Object[40] = CreateObject(11496,1092.8000500,295.8999900,214.0000000,0.0000000,0.0000000,180.0000000); //
- Object[41] = CreateObject(11496,1105.4000200,344.1000100,218.0000000,0.0000000,0.0000000,179.9890000); //
- Object[42] = CreateObject(16501,1088.3994100,339.3994100,223.1000100,0.0000000,0.0000000,0.0000000); //
- Object[43] = CreateObject(11496,1110.3000500,344.1000100,218.0000000,0.0000000,0.0000000,359.9840100); //
- Object[44] = CreateObject(11496,1106.9000200,333.8999900,218.0000000,0.0000000,0.0000000,269.9780000); //
- Object[45] = CreateObject(16501,1092.0000000,336.0000000,223.1000100,0.0000000,0.0000000,90.0000000); //
- Object[46] = CreateObject(16501,1098.5999800,336.0000000,223.1000100,0.0000000,0.0000000,90.0000000); //
- Object[47] = CreateObject(16501,1088.4000200,332.2999900,216.3000000,0.0000000,0.0000000,0.0000000); //
- Object[48] = CreateObject(16501,1102.5000000,329.5000000,220.3000000,0.0000000,0.0000000,90.0000000); //
- Object[49] = CreateObject(16501,1109.5999800,329.5000000,220.3000000,0.0000000,0.0000000,90.0000000); //
- Object[50] = CreateObject(16501,1088.4000200,291.5000000,216.3000000,0.0000000,0.0000000,0.0000000); //
- Object[51] = CreateObject(7516,1098.3000500,270.2999900,210.0000000,0.0000000,0.0000000,0.0000000); //
- Object[52] = CreateObject(16501,1088.4000200,305.7000100,216.3000000,0.0000000,0.0000000,0.0000000); //
- Object[53] = CreateObject(14416,1042.6992200,282.0996100,208.5000000,0.0000000,0.0000000,90.0000000); //
- Object[54] = CreateObject(987,1104.4000200,257.2999900,209.8000000,270.0000000,0.0000000,270.0000000); //
- Object[55] = CreateObject(987,1110.5000000,245.3999900,209.8000000,270.0000000,180.0000000,0.0000000); //
- Object[56] = CreateObject(987,1098.5000000,245.3999900,209.8000000,270.0000000,179.9950000,0.0000000); //
- Object[57] = CreateObject(987,1082.6999500,245.3999900,209.8000000,270.0000000,179.9950000,0.0000000); //
- Object[58] = CreateObject(3374,1084.6999500,241.2000000,208.3999900,0.0000000,0.0000000,0.0000000); //
- Object[59] = CreateObject(16501,1088.5000000,256.3999900,215.5000000,0.0000000,0.0000000,0.0000000); //
- Object[60] = CreateObject(16501,1092.0999800,252.8999900,215.5000000,0.0000000,0.0000000,90.0000000); //
- Object[61] = CreateObject(16501,1110.4000200,253.7000000,212.1000100,0.0000000,0.0000000,0.0000000); //
- Object[62] = CreateObject(16501,1070.1999500,245.3999900,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[63] = CreateObject(987,1070.6999500,245.3999900,209.8000000,270.0000000,179.9950000,0.0000000); //
- Object[64] = CreateObject(1225,996.7000100,315.2999900,213.8000000,0.0000000,0.0000000,0.0000000); //
- Object[65] = CreateObject(987,1058.6999500,245.3999900,209.8000000,270.0000000,179.9950000,0.0000000); //
- Object[66] = CreateObject(3374,1044.6999500,241.2000000,208.3999900,0.0000000,0.0000000,0.0000000); //
- Object[67] = CreateObject(3374,1044.6999500,243.3999900,208.3999900,0.0000000,0.0000000,0.0000000); //
- Object[68] = CreateObject(16501,1035.1999500,245.3000000,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[69] = CreateObject(3374,1040.6999500,243.3999900,208.3999900,0.0000000,0.0000000,0.0000000); //
- Object[70] = CreateObject(3374,1040.6999500,241.2000000,208.3999900,0.0000000,0.0000000,0.0000000); //
- Object[71] = CreateObject(987,1038.6999500,245.3999900,209.8000000,270.0000000,179.9950000,0.0000000); //
- Object[72] = CreateObject(16501,1028.0999800,245.3000000,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[73] = CreateObject(987,1026.6999500,245.3999900,209.8000000,270.0000000,179.9950000,0.0000000); //
- Object[74] = CreateObject(11496,998.7000100,337.6000100,220.2000000,0.0000000,0.0000000,270.0000000); //
- Object[75] = CreateObject(16501,1011.5116600,244.9452800,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[76] = CreateObject(16501,1004.4755900,244.9367700,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[77] = CreateObject(16501,997.4755900,244.9368000,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[78] = CreateObject(16501,990.4755900,244.9368000,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[79] = CreateObject(16501,990.8943500,213.0276900,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[80] = CreateObject(16501,997.9619100,213.0519000,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[81] = CreateObject(16501,1004.9151000,213.0633500,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[82] = CreateObject(16501,1011.1902500,213.0453500,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[83] = CreateObject(16501,1015.1421500,221.6691700,212.0000000,0.0000000,0.0000000,180.0000000); //
- Object[84] = CreateObject(16501,1015.1167000,228.7147400,212.0000000,0.0000000,0.0000000,180.0000000); //
- Object[85] = CreateObject(16501,1015.1187700,235.7870300,212.0000000,0.0000000,0.0000000,180.0000000); //
- Object[86] = CreateObject(16501,1015.1779800,216.5229900,211.9406000,0.0000000,0.0000000,180.0600300); //
- Object[87] = CreateObject(16501,1018.1195700,243.7204000,212.0000000,0.0000000,0.0000000,249.3000900); //
- Object[88] = CreateObject(11496,991.8997800,236.7794200,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[89] = CreateObject(11496,991.8439900,220.9085800,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[90] = CreateObject(11496,998.9062500,220.9254500,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[91] = CreateObject(11496,998.9182700,236.7947500,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[92] = CreateObject(11496,1005.8292800,220.9652400,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[93] = CreateObject(11496,1005.8018200,237.0542300,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[94] = CreateObject(11496,1012.8113400,236.8276200,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[95] = CreateObject(11496,1012.8637700,220.7364000,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[96] = CreateObject(11496,984.9606900,220.5729400,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[97] = CreateObject(11496,984.9309700,236.6140100,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[98] = CreateObject(11496,977.9081400,236.6252100,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[99] = CreateObject(11496,977.9575200,220.5302600,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[100] = CreateObject(11496,970.8906900,220.4146000,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[101] = CreateObject(11496,970.9239500,236.5000900,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[102] = CreateObject(11496,963.9099100,236.4794500,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[103] = CreateObject(11496,963.8640100,220.3161600,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[104] = CreateObject(11496,956.8830600,220.3127600,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[105] = CreateObject(11496,956.8916000,236.4564700,209.8560900,0.0000000,0.0000000,179.9950000); //
- Object[106] = CreateObject(16501,984.0153800,213.0416100,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[107] = CreateObject(16501,977.1630900,213.0468900,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[108] = CreateObject(16501,970.1453200,213.0297400,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[109] = CreateObject(16501,963.0684800,213.0558000,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[110] = CreateObject(16501,956.0080000,213.0591100,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[111] = CreateObject(16501,983.5692700,244.9139900,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[112] = CreateObject(16501,976.5088500,244.8978900,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[113] = CreateObject(16501,969.4762000,244.8558300,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[114] = CreateObject(16501,962.6214600,244.8478900,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[115] = CreateObject(16501,955.7142900,244.7284400,212.0000000,0.0000000,0.0000000,270.0000000); //
- Object[116] = CreateObject(16501,952.5050000,216.8451400,211.9406000,0.0000000,0.0000000,180.0600300); //
- Object[117] = CreateObject(16501,952.4976200,223.9305700,211.9406000,0.0000000,0.0000000,180.0600300); //
- Object[118] = CreateObject(16501,952.4764400,230.7962000,211.9406000,0.0000000,0.0000000,180.0600300); //
- Object[119] = CreateObject(16501,952.4691800,237.5923200,211.9406000,0.0000000,0.0000000,180.0600300); //
- Object[120] = CreateObject(16501,952.4545900,241.1903100,211.9406000,0.0000000,0.0000000,180.0600300); //
- CreateVehicle(425, 989.0122, 228.2376, 210.0484, -180.0602, -1, -1, 100);
- CreateVehicle(447, 999.0698, 236.2542, 211.6155, -179.9999, -1, -1, 100);
- CreateVehicle(447, 999.6901, 223.0693, 211.6155, -179.9999, -1, -1, 100);
- CreateVehicle(425, 1007.5801, 227.8850, 210.0484, -180.0602, -1, -1, 100);
- CreateVehicle(447, 979.0840, 222.8335, 211.6155, -179.9999, -1, -1, 100);
- CreateVehicle(447, 978.2503, 235.2344, 211.6155, -179.9999, -1, -1, 100);
- CreateVehicle(425, 968.9548, 227.4397, 210.0484, -180.0602, -1, -1, 100);
- CreateVehicle(447, 959.0433, 233.8758, 211.6155, -179.9999, -1, -1, 100);
- CreateVehicle(447, 959.8760, 222.0387, 211.6155, -179.9999, -1, -1, 100);
- }
- #endif
- //==============================================================================
- // Basic vars
- //==============================================================================
- new bool:MissionStarted;
- new bool:ObjectiveStarted;
- new bool:MissionCancelled;
- native IsValidVehicle(vehicleid);
- enum teamdata
- {
- Kills,
- Name[32],
- Members
- };
- enum playerdata
- {
- UserName[MAX_PLAYER_NAME],
- bool:TeamChosen,
- TeamSelection,
- PlayerClassID,
- Counted,
- AllowedToSpawn
- };
- new Team[2][teamdata];
- new PlayerMissionInfo[MAX_PLAYERS][playerdata];
- //==============================================================================
- // Basic script
- //==============================================================================
- main()
- {
- print("----------------------------------");
- print(" Mission: "MISSION_NAME" started.");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- MissionStarted= true;
- format(Team[TEAM_DEFEND][Name],32,"%s",TEAM_DEFEND_NAME);
- format(Team[TEAM_ATTACK][Name],32,"%s",TEAM_ATTACK_NAME);
- if(CallRemoteFunction("GetCurrentMissionCJWalk","")) UsePlayerPedAnims();
- #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);
- for(new i=0; i<MAX_PLAYERS; i++) PlayerMissionInfo[i][TeamSelection]= NO_TEAM;
- SetTimer("StartMissionFunc",3000,false);
- return 1;
- }
- FUNCTION StartMissionFunc()
- {
- CallRemoteFunction("StartMission","");
- SetTimer("CloseSpawns",1000*(START_TIME-3),false);
- ObjectiveStarted= true;
- return 1;
- }
- FUNCTION CloseSpawns()
- {
- PlaySoundForAll(1057);
- if(Team[TEAM_DEFEND][Members] >= 1 && Team[TEAM_ATTACK][Members] >= 1)
- {
- GameTextForAll("~r~START THE BLOOD WAR!",1000,3);
- ObjectiveStarted= true;
- ToggleControllable(true);
- SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The last team standing deathmatch has started. KILL THE OTHER TEAM!");
- CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The last team standing deathmatch has started. KILL THE OTHER TEAM!",0);
- }
- else CallRemoteFunction("EndMission","");
- }
- public OnGameModeExit()
- {
- #if MAX_MAP_OBJECTS != 0
- for(new i=0;i<MAX_MAP_OBJECTS;i++) DestroyObject(Object[i]);
- #endif
- return 1;
- }
- public OnPlayerDisconnect(playerid)
- {
- if(PlayerMissionInfo[playerid][TeamSelection] != NO_TEAM && PlayerMissionInfo[playerid][Counted])
- {
- Team[PlayerMissionInfo[playerid][TeamSelection]][Members] --;
- CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
- if(Team[PlayerMissionInfo[playerid][TeamSelection]][Members] == 0 && ObjectiveStarted) 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("TdmHide","i",playerid);
- CallRemoteFunction("ShowClassSelection","iisiii",playerid, PedInfo[classid][TeamID],Team[PedInfo[classid][TeamID]][Name], PedInfo[classid][Weapon1], PedInfo[classid][Weapon2], PedInfo[classid][Weapon3]);
- if(PlayerMissionInfo[playerid][Counted] && PlayerMissionInfo[playerid][TeamSelection] != NO_TEAM)
- {
- Team[PlayerMissionInfo[playerid][TeamSelection]][Members]--;
- PlayerMissionInfo[playerid][Counted] = false;
- CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
- }
- PlayerMissionInfo[playerid][TeamSelection] = PedInfo[classid][TeamID];
- PlayerMissionInfo[playerid][PlayerClassID]=classid;
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- new opp_team = (PlayerMissionInfo[playerid][TeamSelection] == 1)? 0:1;
- if(Team[PlayerMissionInfo[playerid][TeamSelection]][Members] > Team[opp_team][Members])
- {
- CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,"This Team is full, choose another!",0);
- return 0;
- }
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- if(PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Skin] == 0)
- {
- back:
- new skin=random(312);
- if(skin == 74 || skin < 1) goto back;
- SetPlayerSkin(playerid,skin);
- }
- CallRemoteFunction("TdmShow","i",playerid);
- CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
- new string[124];
- if(CallRemoteFunction("GetSpectateStatus","d",playerid)) return CallRemoteFunction("SpecOffAdmin","d",playerid);
- if(!CallRemoteFunction("GetJailedStatus","d",playerid))
- {
- SetPlayerPos(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnX],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnY],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnZ]);
- SetPlayerFacingAngle(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnAngle]);
- SetPlayerInterior(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnInterior]);
- 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])
- {
- SetPlayerVirtualWorld(playerid,2);
- SetPlayerInterior(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnInterior]);
- SetPlayerColor(playerid,COLOR_GREY);
- CallRemoteFunction("OnPlayerMissionComplete","d",playerid);
- }
- else
- {
- if(!ObjectiveStarted) TogglePlayerControllable(playerid,false);
- SetPlayerVirtualWorld(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][VirtualWorld]);
- if(!PlayerMissionInfo[playerid][Counted])
- {
- Team[PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][TeamID]][Members]++;
- PlayerMissionInfo[playerid][Counted]= true;
- }
- CallRemoteFunction("updateLTS","dd",Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
- PlayerMissionInfo[playerid][TeamChosen] = true;
- new opp_team = (PlayerMissionInfo[playerid][TeamSelection] == 1)? 0:1;
- format(string,sizeof(string),"You have chosen team %s, your mission is to kill %s.",Team[PlayerMissionInfo[playerid][TeamSelection]][Name],Team[opp_team][Name]);
- CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,string,0);
- format(string,sizeof(string),"~r~~h~Eliminate ~w~%s.",Team[opp_team][Name]);
- CallRemoteFunction("ShowInfoText", "iisi", playerid, -1,string,0);
- PlayerMissionInfo[playerid][AllowedToSpawn]= false;
- SetPlayerTeam(playerid,PlayerMissionInfo[playerid][TeamSelection]);
- if(PlayerMissionInfo[playerid][TeamSelection] == TEAM_ATTACK) SetPlayerColor(playerid,COLOR_TEAM_ATTACK);
- else SetPlayerColor(playerid,COLOR_TEAM_DEFEND);
- CallRemoteFunction("UpdateAliveState","ii",playerid,1);
- }
- }
- SetPlayerHealth(playerid,Health);
- CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(!MissionStarted)
- {
- PlayerMissionInfo[playerid][AllowedToSpawn]= true;
- return 1;
- }
- if(killerid != INVALID_PLAYER_ID && PlayerMissionInfo[killerid][TeamSelection] != NO_TEAM)
- {
- Team[PlayerMissionInfo[killerid][TeamSelection]][Kills]++;
- SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
- }
- if(PlayerMissionInfo[playerid][Counted] && PlayerMissionInfo[playerid][TeamSelection] != NO_TEAM)
- {
- Team[PlayerMissionInfo[playerid][TeamSelection]][Members]--;
- PlayerMissionInfo[playerid][Counted]= false;
- if(Team[PlayerMissionInfo[playerid][TeamSelection]][Members] == 0) CallRemoteFunction("EndMission","");
- }
- CallRemoteFunction("UpdateAliveState","ii",playerid,0);
- CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
- return 1;
- }
- FUNCTION EndTheMission()
- {
- if(!MissionStarted) return 1;
- MissionStarted= false;
- if(!MissionCancelled && !ObjectiveStarted)
- {
- new string[128];
- new amount= 10000;
- new winning_team;
- if(Team[TEAM_DEFEND][Members] == Team[TEAM_ATTACK][Members]) { winning_team = 2; }
- else if(Team[TEAM_DEFEND][Members] > Team[TEAM_ATTACK][Members]) { winning_team = 0; }
- else { winning_team = 1; }
- if(winning_team != 2 && ObjectiveStarted)
- {
- amount +=Team[winning_team][Kills]*100;
- format(string,sizeof(string),""SERVER_KEY_MSG" %s has won the last team standing deathmatch! Reward: $%d",Team[winning_team][Name],amount);
- CallRemoteFunction("IRC_SendMessage","ss",string,IRC_SERVER_COLOR);
- SendClientMessageToAll(COLOR_SERVER,string);
- for(new i=0,j=GetPlayerPoolSize(); i <= j; i++)
- {
- if(PlayerMissionInfo[i][TeamSelection] == winning_team && PlayerMissionInfo[i][TeamChosen])
- {
- PlayerPlaySound(i,3200,0,0,0);
- CallRemoteFunction("GivePlayerCash","ii",i,amount);
- CallRemoteFunction("PlayerMissionStats","dd",i,0);
- }
- if(PlayerMissionInfo[i][TeamSelection] != winning_team && PlayerMissionInfo[i][TeamChosen])
- {
- PlayerPlaySound(i,17004,0,0,0);
- GameTextForPlayer(i,"~R~MISSION FAILED~w~!",3000,3);
- CallRemoteFunction("PlayerMissionStats","dd",i,1);
- }
- }
- }
- else
- {
- PlaySoundForAll(1058);
- format(string,sizeof(string),""SERVER_KEY_MSG" IT'S A DRAW! No team has won the last team standing deathmatch.");
- SendClientMessageToAll(COLOR_SERVER,string);
- CallRemoteFunction("IRC_SendMessage","ss",string,IRC_SERVER_COLOR);
- for(new i=0,j=GetPlayerPoolSize(); i <= j; i++)
- {
- if(PlayerMissionInfo[i][TeamChosen])
- {
- CallRemoteFunction("PlayerMissionStats","dd",i,2);
- }
- }
- }
- }
- 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])
- {
- Team[PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][TeamID]][Members]--;
- PlayerMissionInfo[playerid][Counted]= false;
- }
- PlayerMissionInfo[playerid][AllowedToSpawn]= true;
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement