rendered paste body#include <a_samp>#include <float>#include <core>#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 0x00FF00AAforward SetPlayerToTeamColor(playerid);forward SetupPlayerForClassSelection(playerid);forward SetPlayerTeamFromClass(playerid,classid);forward ExitTheGameMode();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); 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,classid){ if(classid == 0 && 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 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]) { // The PM was killed } }}