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 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;
}