All pastes #921799 Raw Edit

Unnamed

public text v1 · immutable
#921799 ·published 2008-02-28 10:04 UTC
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;
	}