#include #include #include #define TEAM_PM 1 #define TEAM_BG 2 #define TEAM_TER 3 #define COLOR_YELLOW 0xFFFF00AA #define COLOR_PINK 0xFF66FFAA #define COLOR_GREY 0xAFAFAFAA #define OBJECTIVE_COLOR 0xFFFF00AA #define COLOR_RED 0xCD5C5CAA #define COLOR_LIGHTBLUE 0x48D1CCAA #define COLOR_BLACK 0x000000AA #define COLOR_ERROR 0x800000AA #define COLOR_GREEN 0x00FF00AA forward SetPlayerToTeamColor(playerid); forward SetupPlayerForClassSelection(playerid); forward SetPlayerTeamFromClass(playerid,classid); forward ExitTheGameMode(); forward RestartGameMode(); static gTeam[MAX_PLAYERS]; new IsPM[MAX_PLAYERS]; new PMSpawned; main() { print("\n----------------------------------"); print(" PTPM by Jeroen\n"); print("----------------------------------\n"); } //OnGameModeInit---------------------------------------------------------------- public OnGameModeInit() { SetGameModeText("Protect the Prime Minister!"); SetWorldTime(12); ShowNameTags(1); ShowPlayerMarkers(1); SetTimer("RestartGameMode", 200000, 1); AddStaticVehicle(522,1452.0675,-1026.3822,23.3920,182.9263,6,25); // NRG500PmlocBike AddStaticVehicle(522,1456.3346,-1025.3716,23.3999,180.5356,6,25); // NRG500 Pmloc bike AddStaticVehicle(522,1118.2413,-1474.4971,15.3594,0.0000,6,25); // terroristlocnrg500 AddStaticVehicle(522,1116.0920,-1474.0149,15.3677,356.7872,6,25); // terroristlocnrg500 2 AddStaticVehicle(522,1113.4436,-1475.1360,15.3676,0.7135,6,25); // terroristlocnrg500 3 AddPlayerClass(113,1460.8209,-1013.0995,26.8438,181.2402,9,1,23,500,26,500); // pm loc AddPlayerClass(48,1128.0642,-1483.2211,22.7690,359.9126,9,1,23,500,26,500); // Terrorist Loc AddPlayerClass(73,1128.0642,-1483.2211,22.7690,359.9126,9,1,23,500,26,500); // Terrorist Loc AddPlayerClass(121,1460.8209,-1013.0995,26.8438,181.2402,9,1,23,500,26,500); //bodyguard AddPlayerClass(147,1460.8209,-1013.0995,26.8438,181.2402,9,1,23,500,26,500); //bodyguard AddPlayerClass(124,1460.8209,-1013.0995,26.8438,181.2402,9,1,23,500,26,500); //bodyguard return 1; } public SetupPlayerForClassSelection(playerid) { SetPlayerInterior(playerid,0); SetPlayerPos(playerid,1297.3607,-993.8829,148.6437); SetPlayerCameraPos(playerid,1292.3607,-998.8829,148.6437); SetPlayerCameraLookAt(playerid,1297.3607,-993.8829,148.6437); SetPlayerFacingAngle(playerid,91.5127); } public SetPlayerTeamFromClass(playerid,classid) { if(classid == 0) { gTeam[playerid] = TEAM_PM; } else if(classid == 1 || classid == 2) { gTeam[playerid] = TEAM_TER; } else if(classid == 3 || classid == 4 || classid == 5) { gTeam[playerid] = TEAM_BG; } } public SetPlayerToTeamColor(playerid) { if(gTeam[playerid] == TEAM_PM) { SetPlayerColor(playerid,0xFF66FFAA); } else if(gTeam[playerid] == TEAM_TER) { SetPlayerColor(playerid,0xFFFF00AA); } else if(gTeam[playerid] == TEAM_BG) { SetPlayerColor(playerid,0x00FF00AA); } } public OnPlayerRequestClass(playerid, classid) { SetupPlayerForClassSelection(playerid); SetPlayerTeamFromClass(playerid,classid); if(classid == 0) { GameTextForPlayer(playerid,"~y~Prime Minister",1000,5); } else if(classid == 1 || classid == 2) { GameTextForPlayer(playerid,"~r~Terrorist",1000,5); } else if(classid == 3 || classid == 4 || classid == 5) { GameTextForPlayer(playerid,"~g~Bodyguard",1000,5); } } public OnPlayerConnect(playerid) { return 1; } public OnPlayerDisconnect(playerid, reason) { return 1; } public OnPlayerRequestSpawn(playerid) { if(gTeam[playerid] == TEAM_PM && PMSpawned == 1) { SendClientMessage(playerid,COLOR_RED,"Someone has already gone Prime Minister, choose someone else"); return false; } return 1; } public OnPlayerSpawn(playerid) { SetPlayerTeamFromClass(playerid, GetPlayerSkin(playerid)); SetPlayerToTeamColor(playerid); SetPlayerInterior(playerid,0); if(gTeam[playerid] == TEAM_PM) { GameTextForPlayer(playerid,"Avoid the Terrorists!", 6000,5); IsPM[playerid] = 1; PMSpawned = 1; } else if(gTeam[playerid] == TEAM_TER) { GameTextForPlayer(playerid,"Kill the ~y~Minister!", 6000,5); } else if(gTeam[playerid] == TEAM_BG) { GameTextForPlayer(playerid,"Defend the ~y~Minister!", 6000,5); } return 1; } public ExitTheGameMode() { GameModeExit(); } public OnPlayerDeath(playerid, killerid, reason) { new deathstr[256]; new whodiedname[MAX_PLAYER_NAME+1]; new whokilledname[MAX_PLAYER_NAME+1]; new deathreasonstr[256]; GetPlayerName(playerid,whodiedname,MAX_PLAYER_NAME); GetWeaponName(reason,deathreasonstr,255); if(killerid == INVALID_PLAYER_ID) { if(strlen(deathreasonstr)) { format(deathstr,256,"%s died (%s)",whodiedname,deathreasonstr); } else { format(deathstr,256,"%s died",whodiedname); } SendClientMessageToAll(OBJECTIVE_COLOR, deathstr); } else { GetPlayerName(killerid,whokilledname,MAX_PLAYER_NAME); if(gTeam[killerid] != gTeam[playerid]) { // Valid kill if(strlen(deathreasonstr)) { format(deathstr,256,"%s was killed by %s (%s)",whodiedname,whokilledname,deathreasonstr); } else { format(deathstr,256,"%s was killed by %s",whodiedname,whokilledname); } SendClientMessageToAll(OBJECTIVE_COLOR, deathstr); SetPlayerScore(killerid,GetPlayerScore(killerid)+1); } else { // Team kill format(deathstr,256,"%s killed team-mate %s (%s)",whokilledname,whodiedname,deathreasonstr); SendClientMessageToAll(OBJECTIVE_COLOR, deathstr); } if(IsPM[playerid]) { GameTextForAll("The prime minister is dead! Finaly!", 2000, 5); GameModeExit(); } } } public RestartGameMode() { GameTextForAll("We see you the next game!", 2000,5); GameModeExit(); return 1; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { SendClientMessage(playerid, COLOR_GREEN, "You are now driving an vehicle"); return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if(strcmp(cmdtext, "/kill", true) == 0) { SetPlayerHealth(playerid, 0.0); SendClientMessage(playerid, COLOR_GREEN, "Oh boy! Your dieing!"); return 1; } return 0; }