Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Script by: Bullet
- Map by: Mr.Pink
- Mission Base: Last team standing
- Mission Type: Last team standing
- 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 "Kargo"
- #define Health 100
- #define TEAM_DEFEND_NAME "Refugee"
- #define TEAM_ATTACK_NAME "Police"
- #define MAX_MAP_OBJECTS 99
- #define VEHICLE_HEALTH 0
- #define CLASS_POSTION -2370.4465,1554.1389,32.2490
- #define CLASS_CAMERA -2365.8547,1554.1437,28.0459
- #define CLASS_FACING_AGNLE 268.1401
- #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_DEFEND, 128, -2303.1013,1544.5839,18.7734,91.2735,0,0,WEAPON_M4,400, WEAPON_DEAGLE,180,0,0},
- {TEAM_ATTACK, 165, -2475.2566,1547.6030,23.6484,271.1911,0,0,WEAPON_M4,400, WEAPON_DEAGLE,180,0,0}
- };
- #if MAX_MAP_OBJECTS != 0
- new Object[MAX_MAP_OBJECTS];
- CreateMap()
- {
- Object[0] = CreateObject(1345,-2451.9555700,1559.8518100,28.4232700,0.0000000,0.0000000,269.7591900); //
- Object[1] = CreateObject(1345,-2422.2287600,1534.7260700,25.4920200,0.0000000,359.1405900,180.3774000); //
- Object[2] = CreateObject(1345,-2427.0759300,1540.0612800,25.4920200,0.0000000,359.1405900,180.3774000); //
- Object[3] = CreateObject(1345,-2451.9650900,1555.5007300,28.4232700,0.0000000,0.0000000,90.1365000); //
- Object[4] = CreateObject(1345,-2451.5800800,1538.5448000,28.4415100,0.0000000,0.0000000,136.5461000); //
- Object[5] = CreateObject(1345,-2450.5002400,1536.2210700,28.4165200,0.0000000,0.0000000,92.7151000); //
- Object[6] = CreateObject(14875,-2434.2111800,1529.6003400,31.6771300,0.0000000,0.0000000,90.9963000); //
- Object[7] = CreateObject(3798,-2384.3112800,1537.5362500,25.0434200,0.0000000,0.0000000,0.0000000); //
- Object[8] = CreateObject(3798,-2384.3085900,1535.5097700,25.0434200,0.0000000,0.0000000,0.0000000); //
- Object[9] = CreateObject(3798,-2384.3195800,1535.5384500,27.0434200,0.0000000,0.0000000,0.0000000); //
- Object[10] = CreateObject(1345,-2416.8029800,1558.0339400,31.3045200,0.0000000,0.0000000,90.1365000); //
- Object[11] = CreateObject(1345,-2418.5266100,1556.6900600,31.2795200,0.0000000,0.0000000,359.8959000); //
- Object[12] = CreateObject(1345,-2420.2890600,1557.9814500,31.2795200,0.0000000,0.0000000,269.6553000); //
- Object[13] = CreateObject(1345,-2348.5422400,1553.6441700,25.5170200,0.0000000,0.0000000,90.1365000); //
- Object[14] = CreateObject(1345,-2427.1320800,1552.8104200,25.4420200,0.0000000,359.1405900,180.3774000); //
- Object[15] = CreateObject(3798,-2426.9743700,1548.0009800,22.1371700,0.0000000,0.0000000,0.0000000); //
- Object[16] = CreateObject(3798,-2422.6931200,1548.0053700,22.1371700,0.0000000,0.0000000,0.0000000); //
- Object[17] = CreateObject(1345,-2434.6474600,1561.0704300,28.2732700,0.0000000,0.0000000,270.5147100); //
- Object[18] = CreateObject(1345,-2451.4025900,1533.7902800,28.4165200,0.0000000,0.0000000,48.0245000); //
- Object[19] = CreateObject(1472,-2431.9355500,1557.4392100,19.6495400,10.3132000,0.0000000,270.6185900); //
- Object[20] = CreateObject(1472,-2430.9116200,1557.4482400,20.6719000,10.3132000,0.0000000,270.6185900); //
- Object[21] = CreateObject(1473,-2429.0397900,1557.4742400,21.6153500,1.7189000,0.0000000,271.4780900); //
- Object[22] = CreateObject(1472,-2453.3090800,1546.7817400,22.5557900,10.3132000,0.0000000,268.8998100); //
- Object[23] = CreateObject(1472,-2452.0041500,1546.8071300,23.5838300,10.3132000,0.0000000,269.7591900); //
- Object[24] = CreateObject(1472,-2450.5820300,1546.7899200,24.0702000,29.2208000,0.0000000,269.8366100); //
- Object[25] = CreateObject(3798,-2445.3542500,1553.8530300,19.2309200,0.0000000,0.0000000,0.0000000); //
- Object[26] = CreateObject(3798,-2445.3425300,1553.9303000,21.2309200,0.0000000,0.0000000,0.0000000); //
- Object[27] = CreateObject(3798,-2445.3542500,1551.8668200,19.2309200,0.0000000,0.0000000,0.0000000); //
- Object[28] = CreateObject(1345,-2346.6828600,1551.9901100,25.5170200,0.0000000,0.0000000,179.5182000); //
- Object[29] = CreateObject(12839,-2367.1135300,1554.2373000,28.6161800,0.0000000,0.0000000,269.7590900); //
- Object[30] = CreateObject(1470,-2362.0351600,1554.1914100,24.7370500,0.0000000,7.7349000,0.0000000); //
- Object[31] = CreateObject(1470,-2371.0000000,1552.7786900,30.5634200,0.0000000,0.0000000,0.0000000); //
- Object[32] = CreateObject(1345,-2376.9550800,1560.5330800,31.3545200,0.0000000,0.0000000,90.1365000); //
- Object[33] = CreateObject(1345,-2351.1616200,1533.5494400,25.4920200,0.0000000,0.0000000,252.5704000); //
- Object[34] = CreateObject(1698,-2363.6660200,1536.2003200,25.1539100,0.0000000,0.0000000,270.6185900); //
- Object[35] = CreateObject(1698,-2360.3962400,1536.2094700,25.1596900,0.0000000,0.0000000,269.7590900); //
- Object[36] = CreateObject(1698,-2366.6350100,1536.1781000,25.1481400,0.0000000,0.0000000,270.6185900); //
- Object[37] = CreateObject(1698,-2369.7392600,1536.1191400,25.0423600,3.4377000,0.0000000,270.6185900); //
- Object[38] = CreateObject(1345,-2376.9704600,1558.3536400,31.3545200,0.0000000,0.0000000,90.1369000); //
- Object[39] = CreateObject(1345,-2385.9885300,1538.5051300,31.2045200,0.0000000,0.0000000,89.2774000); //
- Object[40] = CreateObject(3798,-2422.0861800,1556.8459500,21.8121700,0.0000000,0.0000000,0.0000000); //
- Object[41] = CreateObject(1345,-2400.7036100,1549.3350800,25.5920100,0.0000000,359.1405900,180.3774000); //
- Object[42] = CreateObject(1345,-2389.8513200,1541.6009500,25.4920200,0.0000000,359.1405900,89.2772000); //
- Object[43] = CreateObject(2047,-2340.2172900,1532.8049300,20.5820900,0.0000000,0.0000000,89.3814000); //
- Object[44] = CreateObject(2047,-2337.0483400,1547.8891600,20.6371500,0.0000000,0.0000000,89.3814000); //
- Object[45] = CreateObject(2048,-2458.9389600,1549.7563500,26.6770100,0.0000000,0.0000000,269.7590900); //
- Object[46] = CreateObject(2048,-2435.4575200,1548.1610100,26.7039500,0.0000000,0.0000000,269.7590900); //
- Object[47] = CreateObject(2048,-2424.5969200,1531.0501700,29.3304900,0.0000000,0.0000000,183.8154000); //
- Object[48] = CreateObject(2047,-2389.0253900,1540.3297100,28.0450800,0.0000000,0.0000000,181.2371100); //
- Object[49] = CreateObject(3578,-2393.2287600,1545.6427000,31.0624200,0.0000000,0.0000000,269.7590900); //
- Object[50] = CreateObject(1345,-2352.3220200,1541.4738800,25.4920200,0.0000000,0.0000000,90.1365000); //
- Object[51] = CreateObject(1472,-2333.3559600,1532.9393300,16.7432900,1.7189000,359.1405900,87.5586000); //
- Object[52] = CreateObject(1472,-2334.5444300,1532.9956100,17.6094800,6.8755000,359.1405900,87.5586000); //
- Object[53] = CreateObject(1221,-2336.1516100,1542.0328400,16.7899200,0.0000000,0.0000000,0.0000000); //
- Object[54] = CreateObject(1221,-2336.2133800,1542.0692100,17.7075700,0.0000000,0.0000000,0.0000000); //
- Object[55] = CreateObject(1472,-2338.8955100,1546.8867200,22.5557900,6.8755000,358.2811000,0.7557000); //
- Object[56] = CreateObject(1472,-2338.9284700,1548.1632100,23.5231700,6.8755000,358.2811000,359.8963000); //
- Object[57] = CreateObject(1472,-2335.9238300,1533.0555400,18.5890400,6.8755000,0.0000000,87.5586000); //
- Object[58] = CreateObject(1345,-2384.5366200,1544.6446500,31.1734800,0.0000000,0.0000000,90.1369000); //
- Object[59] = CreateObject(1345,-2382.6918900,1544.3016400,31.1484800,0.0000000,0.0000000,0.7557000); //
- Object[60] = CreateObject(1345,-2384.5446800,1546.8652300,31.1734800,0.0000000,0.0000000,270.5151100); //
- Object[61] = CreateObject(1345,-2384.5832500,1549.0456500,31.1484800,0.0000000,0.0000000,270.5151100); //
- Object[62] = CreateObject(1345,-2382.6857900,1549.4908400,31.1984800,0.0000000,0.0000000,180.2745100); //
- Object[63] = CreateObject(1472,-2470.1259800,1559.1353800,33.4854800,6.8755000,359.1405900,269.6557000); //
- Object[64] = CreateObject(1472,-2468.9531300,1559.1532000,34.4593400,6.8755000,359.1405900,269.6557000); //
- Object[65] = CreateObject(1472,-2468.1057100,1559.1781000,34.6386000,4.2972000,359.1405900,268.7963000); //
- Object[66] = CreateObject(1472,-2468.4831500,1557.9836400,35.4867000,6.8755000,359.1405900,167.3830000); //
- Object[67] = CreateObject(1472,-2468.7246100,1556.8896500,36.4540100,6.8755000,359.1405900,167.3830000); //
- Object[68] = CreateObject(1345,-2380.7014200,1546.8190900,31.1734800,0.0000000,0.0000000,90.1365000); //
- Object[69] = CreateObject(1345,-2407.6687000,1542.6878700,31.2795200,0.0000000,0.0000000,90.1369000); //
- Object[70] = CreateObject(1345,-2407.6789600,1544.8944100,31.3045200,0.0000000,0.0000000,90.9963000); //
- Object[71] = CreateObject(1345,-2407.6040000,1557.3846400,31.2295200,0.0000000,0.0000000,89.2774000); //
- Object[72] = CreateObject(1345,-2398.6743200,1532.4730200,31.3795100,0.0000000,0.0000000,90.9963000); //
- Object[73] = CreateObject(1345,-2424.7910200,1530.2114300,31.1045200,0.0000000,0.0000000,359.8963000); //
- Object[74] = CreateObject(1345,-2420.3559600,1541.8513200,31.3045200,0.0000000,0.0000000,270.5151100); //
- Object[75] = CreateObject(1345,-2469.6897000,1535.6197500,36.3248100,0.0000000,0.0000000,270.5151100); //
- Object[76] = CreateObject(1345,-2469.6811500,1544.2352300,36.3748100,0.0000000,0.0000000,268.7962000); //
- Object[77] = CreateObject(970,-2399.6301300,1560.4877900,31.3358600,0.0000000,0.0000000,270.6185900); //
- Object[78] = CreateObject(970,-2399.6923800,1529.3034700,31.4108600,0.0000000,0.0000000,270.6185900); //
- Object[79] = CreateObject(1345,-2428.9858400,1544.9628900,31.2795200,0.0000000,0.0000000,89.2771000); //
- Object[80] = CreateObject(1345,-2429.0092800,1554.4469000,31.2795200,0.0000000,0.0000000,90.1365000); //
- Object[81] = CreateObject(1345,-2358.0454100,1538.5783700,25.4920200,0.0000000,0.0000000,90.1369000); //
- Object[82] = CreateObject(972,-2440.2268100,1544.1281700,12.7703500,180.3775900,90.2409000,359.1405900); //
- Object[83] = CreateObject(1345,-2407.7077600,1550.7352300,31.2795200,0.0000000,0.0000000,231.8401000); //
- Object[84] = CreateObject(1698,-2449.5600600,1531.7783200,28.0649600,19.7670000,0.0000000,271.4780000); //
- Object[85] = CreateObject(1698,-2446.4621600,1531.8703600,29.1918400,19.7670000,0.0000000,271.4780000); //
- Object[86] = CreateObject(1698,-2443.5134300,1531.9502000,30.1936000,18.0482000,0.0000000,271.4780000); //
- Object[87] = CreateObject(1698,-2440.3522900,1532.0267300,30.8973800,7.7349000,0.0000000,271.4780000); //
- Object[88] = CreateObject(1698,-2437.0832500,1532.1203600,31.0920000,359.1405900,0.0000000,271.4780000); //
- Object[89] = CreateObject(1215,-2476.7500000,1544.4502000,55.0151400,0.0000000,0.0000000,0.0000000); //
- Object[90] = CreateObject(1215,-2373.1323200,1543.4140600,25.4188500,0.0000000,0.0000000,0.0000000); //
- Object[91] = CreateObject(3578,-2321.1142600,1544.6242700,18.5514700,0.0000000,0.0000000,269.7590900); //
- Object[92] = CreateObject(1698,-2322.5673800,1554.4272500,18.4217100,334.2168900,0.0000000,270.6185900); //
- Object[93] = CreateObject(1698,-2324.9660600,1554.3918500,19.5842300,334.2168900,0.0000000,270.6185900); //
- Object[94] = CreateObject(1698,-2327.7575700,1554.3529100,20.9430800,334.2168900,0.0000000,270.6185900); //
- Object[95] = CreateObject(1698,-2330.6621100,1554.3190900,22.3539800,334.2168900,0.0000000,270.6185900); //
- Object[96] = CreateObject(1698,-2333.5830100,1554.2865000,23.7663200,334.2168900,0.0000000,270.6185900); //
- Object[97] = CreateObject(1698,-2336.6054700,1554.2480500,24.8155300,347.1084000,0.0000000,270.6185900); //
- Object[98] = CreateObject(1698,-2339.7519500,1554.2115500,25.1035700,1.7189000,0.0000000,270.6185900); //
- }
- #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)
- {
- 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