#include //----VARIABLES// new gTeam[MAX_PLAYERS]; new ObjectiveAttackPlayer=(-1); new ObjectiveReached=0; //----Useless----// #pragma unused ObjectiveAttackPlayer //----TEAMS----// #define TEAM_DEFENDERS 0 #define TEAM_ATTACKERS 1 //----COLOR TEAMS----// #define Attack_Color (0xFF0000AA) #define Defend_Color (0x0000FFAA) //----FORWARDS----// forward Finshed(); forward Finshed2(playerid); forward EnableTDAttack(playerid); forward EnableTDDefend(playerid); forward DisableTDS(playerid); //----COLOR DEFINES----// #define COLOR_SYSTEM 0xEFEFF7AA #define COLOR_WHITE 0xFFFFFFFF #define COLOR_RED 0xFF3333AA #define OBJECTIVE_COLOR 0xAA0000FF //----CAR STOLEN----// #define OBJECTIVE_VEHICLE 1 //----Objectives Textdraw----// new Text:ObjectiveTD[MAX_PLAYERS]; main() { print("\n----------------------------------"); print("Grand Theft Heli"); print("----------------------------------\n"); } public OnGameModeInit() { SetGameModeText("Grand Theft Heli"); UsePlayerPedAnims(); SetTimer("Finshed2",300000,false); // Teams Spawn AddPlayerClass(200,-1943.3949,562.1638,35.1795,336.0581,0,0,0,0,0,0); // Attackers AddPlayerClass(280,-1669.3516,693.7178,30.6016,67.0087,0,0,0,0,0,0); // Defenders //Objective Car AddStaticVehicleEx(487,-1678.68040000,704.98970000,30.80830000,87.06310000,0,1,10); //Maverick // Other Cars AddStaticVehicleEx(597,-1708.51730000,705.01540000,24.50220000,179.34580000,-1,1,8); //Police Car (SFPD) AddStaticVehicleEx(597,-1708.69560000,687.22030000,24.50290000,182.52010000,-1,1,8); //Police Car (SFPD) AddStaticVehicleEx(597,-1708.66360000,678.13560000,24.49810000,180.49480000,-1,1,8); //Police Car (SFPD) AddStaticVehicleEx(597,-1708.53820000,663.58940000,24.50220000,180.49480000,-1,1,8); //Police Car (SFPD) AddStaticVehicleEx(597,-1713.61780000,648.69490000,24.50660000,269.94740000,-1,1,8); //Police Car (SFPD) AddStaticVehicleEx(491,-1926.39590000,584.81790000,34.88930000,358.51820000,-1,1,8); //Virgo AddStaticVehicleEx(491,-1929.39450000,584.68380000,34.89120000,358.92720000,-1,1,8); //Virgo AddStaticVehicleEx(491,-1932.38670000,585.06610000,34.88210000,0.15180000,-1,1,8); //Virgo AddStaticVehicleEx(491,-1935.28920000,584.99550000,34.88280000,2.12450000,-1,1,8); //Virgo AddStaticVehicleEx(491,-1937.96880000,585.79300000,34.86920000,359.60750000,-1,1,8); //Virgo AddStaticVehicleEx(491,-1941.28190000,585.69310000,34.86910000,358.64710000,-1,1,8); //Virgo AddStaticVehicleEx(491,-1944.20040000,585.01780000,34.88630000,358.94910000,-1,1,8); //Virgo AddStaticVehicleEx(491,-1947.36080000,585.55220000,34.87620000,359.83590000,-1,1,8); //Virgo AddStaticVehicleEx(491,-1950.03970000,584.98730000,34.88230000,1.19830000,-1,1,8); //Virgo AddStaticVehicleEx(491,-1916.08730000,599.34470000,34.77190000,267.63570000,-1,1,8); //Virgo //Objectives for(new playerid = 0; playerid < MAX_PLAYERS; playerid++) { ObjectiveTD[playerid] = TextDrawCreate(128.000000, 344.000000, " "); TextDrawBackgroundColor(ObjectiveTD[playerid], 255); TextDrawFont(ObjectiveTD[playerid], 1); TextDrawLetterSize(ObjectiveTD[playerid], 0.429999, 1.000000); TextDrawColor(ObjectiveTD[playerid], -16776961); TextDrawSetOutline(ObjectiveTD[playerid], 0); TextDrawSetProportional(ObjectiveTD[playerid], 1); TextDrawSetShadow(ObjectiveTD[playerid], 1); } return 1; } public OnGameModeExit() { for(new playerid = 0; playerid < MAX_PLAYERS; playerid++) { TextDrawDestroy(ObjectiveTD[playerid]); } return 1; } public OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid, 1644.4078,-1133.8214,58.2172); SetPlayerCameraPos(playerid, 1647.6301,-1134.5725,58.2489); SetPlayerCameraLookAt(playerid, 1644.4078,-1133.8214,58.2172); SetPlayerFacingAngle(playerid,258.5584); if(classid == 0) { GameTextForPlayer(playerid,"~r~Attackers",5000,4); gTeam[playerid] = TEAM_ATTACKERS; } else if(classid == 1) { GameTextForPlayer(playerid,"~b~Defenders",5000,4); gTeam[playerid] = TEAM_DEFENDERS; } return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { new vehicleid; if(newstate == PLAYER_STATE_DRIVER) { vehicleid = GetPlayerVehicleID(playerid); if(gTeam[playerid] == TEAM_ATTACKERS && vehicleid == OBJECTIVE_VEHICLE) { SetPlayerColor(playerid,OBJECTIVE_COLOR); GameTextForPlayer(playerid,"~w~Take the ~r~helicopter ~w~back to the spawn!",3000,5); ObjectiveAttackPlayer = playerid; } else if(gTeam[playerid] == TEAM_DEFENDERS && vehicleid == OBJECTIVE_VEHICLE) { GameTextForPlayer(playerid,"~r~ HELICOPTER IS BEING STOLEN ~n~~w~ SHOOT IT",3000,5); } } return 1; } public OnPlayerConnect(playerid) { SetPlayerColor(playerid,0x888888FF); SendClientMessage(playerid,COLOR_WHITE,"Mission: Grand Theft Heli 1"); TextDrawSetString(ObjectiveTD[playerid]," " ); return 1; } public OnPlayerDisconnect(playerid, reason) { return 1; } public OnPlayerSpawn(playerid) { SetPlayerCheckpoint(playerid,-1981.0564,579.5828,35.4741,5.0); SetPlayerWorldBounds(playerid, -1579.656, -2004.552, 767.6402, 562.5021); SetPlayerWeather(playerid,0); SetPlayerTime(playerid,0,0); if(gTeam[playerid] == TEAM_ATTACKERS) { SetPlayerColor(playerid,Attack_Color); SetPlayerTeam(playerid,TEAM_ATTACKERS); TextDrawSetString(ObjectiveTD[playerid],"~r~Attacker: ~w~Steal the helicopter"); SetTimerEx("EnableTDDefend", 2000, false, "i", playerid); GivePlayerWeapon(playerid,24,30); GivePlayerWeapon(playerid,30,200); } else if(gTeam[playerid] == TEAM_DEFENDERS) { SetPlayerColor(playerid,Defend_Color); SetPlayerTeam(playerid,TEAM_DEFENDERS); TextDrawSetString(ObjectiveTD[playerid],"~g~Defender: ~w~Dont let the attackers steal the helicopter ~n~~r~Defend it for 5 min to win"); SetTimerEx("EnableTDDefend", 2000, false, "i", playerid); GivePlayerWeapon(playerid,24,30); GivePlayerWeapon(playerid,31,1000); } return 1; } public OnVehicleStreamIn(vehicleid, forplayerid) { if(gTeam[forplayerid] == TEAM_ATTACKERS) { SetVehicleParamsForPlayer(OBJECTIVE_VEHICLE,forplayerid,1,0); } else if(gTeam[forplayerid] == TEAM_DEFENDERS) { SetVehicleParamsForPlayer(OBJECTIVE_VEHICLE,forplayerid,1,1); } return 1; } public EnableTDDefend(playerid) { TextDrawShowForPlayer(playerid,ObjectiveTD[playerid]); SetTimer("DisableTDS",6000,false); return 1; } public DisableTDS(playerid) { TextDrawHideForPlayer(playerid,ObjectiveTD[playerid]); return 1; } public OnPlayerDeath(playerid, killerid, reason) { SendDeathMessage(killerid,playerid,reason); SetPlayerScore(killerid,GetPlayerScore(killerid)+1); GivePlayerMoney(killerid, 3000); return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/kill", cmdtext, true, 10) == 0) { SetPlayerHealth(playerid,0); return 1; } return 0; } public OnPlayerEnterCheckpoint(playerid) { new playervehicleid = GetPlayerVehicleID(playerid); if(ObjectiveReached) return; if(playervehicleid == OBJECTIVE_VEHICLE && gTeam[playerid] == TEAM_ATTACKERS) { SendClientMessageToAll(COLOR_WHITE,"Attackers Win!"); ObjectiveReached = 1; for(new i = 0; playerid < MAX_PLAYERS; playerid++) { if(IsPlayerConnected(playerid)) { if(gTeam[playerid] == TEAM_ATTACKERS) { GameTextForPlayer(i, "~g~ YOUR TEAM WON ~n~~y~+1000", 6000, 4); GivePlayerMoney(i, 5000); } else if(gTeam[playerid] == TEAM_DEFENDERS) { GameTextForPlayer(i, "~r~ YOUR TEAM LOST ~n~~y~-1000", 6000, 4); GivePlayerMoney(i, -1000); } } } SetPlayerScore(playerid,GetPlayerScore(playerid)+5); SetTimer("Finshed", 8000, 0); return; } } public Finshed() { SendRconCommand("gmx"); SendClientMessageToAll(COLOR_WHITE,"Server: Restarting Mode"); return 1; } public Finshed2(playerid) { SendClientMessageToAll(COLOR_WHITE,"Defenders Win!"); for(new i = 0; playerid < MAX_PLAYERS; playerid++) { if(IsPlayerConnected(i)) { if(gTeam[playerid] == TEAM_ATTACKERS) { GameTextForPlayer(i, "~g~ YOUR TEAM LOST ~n~~y~-1000", 6000, 4); GivePlayerMoney(i, -1000); } else if(gTeam[playerid] == TEAM_DEFENDERS) { GameTextForPlayer(i, "~r~ YOUR TEAM WON ~n~~y~+5000", 6000, 4); GivePlayerMoney(i, 5000); } } } SetTimer("Finshed", 8000, 0); return 1; }