rendered paste body//------------------------------------------------------------------------------
//
// San Fierro TDM. A Team Deathmtach script for SA-MP 0.1
//
//------------------------------------------------------------------------------
#include <a_samp>
#include <core>
#include <float>
//Global stuff and defines for our gamemode
static gTeam[MAX_PLAYERS]; // Tracks the team assignment for each player
new gPlayerClass[MAX_PLAYERS];
//Color Defines
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_PINK 0xFF66FFAA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_DARKRED 0x660000AA
#define COLOR_ORANGE 0xFF9900AA
//Team Defines
#define TEAM_WORKER 0
#define TEAM_PIMP 1
#define TEAM_GOLFER 2
#define TEAM_TRIAD 3
#define TEAM_MECHANIC 4
#define TEAM_VALET 5
#define TEAM_MEDIC 6
#define TEAM_FBI 7
new Poort1;
new Poort2;
// Round duration
new gRoundTime = 3600000; // 60 mins
//new gRoundTime = 900000; //15 mins
//new gRoundTime = 300000; // 5 mins
//------------------------------------------------------------------------------
main()
{
print("\n----------------------------------");
print(" SFTDM by CAM (2006)\n");
print(" Edited by Ghost_NL (2008)\n");
print("----------------------------------\n");
}
//------------------------------------------------------------------------------
public OnGameModeInit()
{
SetGameModeText("San Fierro TDM");
SetTeamCount(7);
ShowNameTags(1);
ShowPlayerMarkers(1);
SetWorldTime(18);
AddPlayerClass(260,-2062.5583,237.4662,35.7149,268.8936,22,272,25,40,4,1); //Worker
AddPlayerClass(249,-2653.6443,1388.2767,7.1301,212.8453,23,272,29,270,5,1); //Pimp
AddPlayerClass(259,-2642.2583,-274.9985,7.5393,135.0036,25,40,32,250,9,1); //Golfer
AddPlayerClass(118,-2157.2119,649.5484,52.3672,267.0820,24,70,31,250,4,1); //Triad
AddPlayerClass(50,-1377.4271,466.0897,7.1875,1.0348,22,272,30,300,9,1); //Mechanic
AddPlayerClass(253,-1754.9976,958.5851,24.8828,163.2550,25,40,24,70,4,1); //Valet
AddPlayerClass(274,-2665.4282,635.6348,14.4531,179.8403,33,40,23,272,4,1); //Medic
AddPlayerClass(286,-1635.0077,665.8105,7.1875,264.2244,29,300,22,170,3,1); //FBI
//vehicles
AddStaticVehicle(411, -1989.706, 256.069, 34.898, 65.76, 0, 0); // infernus
AddStaticVehicle(515, -1992.147, 214.903, 28.707, 89.28, 0, 0); // roadtrain
AddStaticVehicle(515, -1992.228, 210.040, 28.707, 89.05, 0, 0); // roadtrain2
AddStaticVehicle(584, -1977.815, 176.195, 28.704, 359.58, -1, -1); // olitanker
AddStaticVehicle(584, -1972.075, 176.079, 28.692, 357.75, -1, -1); // olitanker2
AddStaticVehicle(406, -2095.837, 172.662, 36.585, 357.33, -1, -1); // dumper
AddStaticVehicle(406, -2103.103, 173.220, 36.593, 355.08, -1, -1); // dumper
AddStaticVehicle(431, -1994.750, 162.060, 28.624, 180.52, 1, 1); // bus
AddStaticVehicle(437, -1994.367, 135.480, 28.618, 181.08, 0, 7); // bus2
AddStaticVehicle(437, -1987.312, 126.722, 28.625, 358.35, 7, 0); // bus3
AddStaticVehicle(420, -1987.044, 153.669, 27.315, 358.66, 6, 6); // taxi
AddStaticVehicle(420, -1986.720, 113.503, 27.316, 178.48, 6, 6); // taxi2
//objects
Poort1 = CreateObject(974, -2124.8786, -80.5648, 35.3203, 0.0,0.0,0.0);
Poort2 = CreateObject(974, -2129.4243, -80.5648, 35.3203, 0.0,0.0,0.0);
//Trains (SF, building site)
AddStaticVehicle(537,-1943.3127,158.0254,27.0006,357.3614,121,1);
AddStaticVehicle(569,-1943.3127,158.0254,27.0006,357.3614,121,1);
AddStaticVehicle(569,-1943.3127,158.0254,27.0006,357.3614,121,1);
AddStaticVehicle(569,-1943.3127,158.0254,27.0006,357.3614,121,1);
//Pickups
//AddStaticPickup(370, 15, -2209.4707,294.1174,35.1172); // jetpack
//AddStaticPickup(370, 15, -1765.4392,-174.7473,3.5547); // jetpack
SetTimer("GameModeExitFunc", gRoundTime, 0);
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerConnect(playerid)
{
GameTextForPlayer(playerid,"San Fierro: ~r~TDM",2500,5);
GivePlayerMoney(playerid, 1000);
SetPlayerColor(playerid, COLOR_GREY); // Set the player's color to inactive
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerSpawn(playerid)
{
SetPlayerInterior(playerid,0);
if(gTeam[playerid] == TEAM_WORKER) {
SetPlayerColor(playerid,COLOR_GREEN); // Green
}
else if(gTeam[playerid] == TEAM_PIMP) {
SetPlayerColor(playerid,COLOR_RED); // Red
}
else if(gTeam[playerid] == TEAM_GOLFER) {
SetPlayerColor(playerid,COLOR_YELLOW); // Yellow
}
else if(gTeam[playerid] == TEAM_TRIAD) {
SetPlayerColor(playerid,COLOR_PINK); // Pink
}
else if(gTeam[playerid] == TEAM_MECHANIC) {
SetPlayerColor(playerid,COLOR_BLUE); // Blue
}
else if(gTeam[playerid] == TEAM_VALET) {
SetPlayerColor(playerid,COLOR_LIGHTBLUE); // Light Blue
}
else if(gTeam[playerid] == TEAM_MEDIC) {
SetPlayerColor(playerid,COLOR_DARKRED); // Dark Red
}
else if(gTeam[playerid] == TEAM_FBI) {
SetPlayerColor(playerid,COLOR_ORANGE); // Orange
}
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid == INVALID_PLAYER_ID) {
SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
} else {
if(gTeam[killerid] != gTeam[playerid]) {
// Valid kill
SendDeathMessage(killerid,playerid,reason);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
GivePlayerMoney(killerid, 1000);
}
else {
//Team Killer!
new warning[256];
format(warning, sizeof(warning), "Be careful! You have been punished for teamkilling.");
SendClientMessage(killerid, 0xFFFF00AA, warning);
SendDeathMessage(killerid,playerid,reason);
GivePlayerMoney(killerid, -1000);
SetPlayerScore(killerid, GetPlayerScore(killerid) - 1);
}
}
return 1;
}
//------------------------------------------------------------------------------
public SetupPlayerForClassSelection(playerid)
{
SetPlayerInterior(playerid,14);
SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
SetPlayerFacingAngle(playerid, 90.0);
SetPlayerCameraPos(playerid,256.0815,-43.0475,1003.0234);
SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
}
//------------------------------------------------------------------------------
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerClass(playerid, classid);
SetupPlayerForClassSelection(playerid);
gPlayerClass[playerid] = classid;
switch (classid) {
case 0:
{
GameTextForPlayer(playerid, "~g~Worker", 500, 3);
}
case 1:
{
GameTextForPlayer(playerid, "~g~Pimp", 500, 3);
}
case 2:
{
GameTextForPlayer(playerid, "~g~Golfer", 500, 3);
}
case 3:
{
GameTextForPlayer(playerid, "~g~Triad", 500, 3);
}
case 4:
{
GameTextForPlayer(playerid, "~g~Mechanic", 500, 3);
}
case 5:
{
GameTextForPlayer(playerid, "~g~Valet", 500, 3);
}
case 6:
{
GameTextForPlayer(playerid, "~g~Medic", 500, 3);
}
case 7:
{
GameTextForPlayer(playerid, "~g~FBI", 500, 3);
}
}
return 1;
}
//------------------------------------------------------------------------------
if (strcmp("/open", cmdtext, true, 10) == 0) //Invoer van het commando
{
MoveObject(Poort1, -2114.8786, -80.5648, 35.3203, 3); //verplaatsing X
MoveObject(Poort2, -2139.4243, -80.5648, 35.3203, 3); //verplaatsing X
SendClientMessage(playerid, COLOR_GREEN, "De poort is nu geopend."); //Verzend een bericht naar de speler
return 1;
}
if (strcmp("/close", cmdtext, true, 10) == 0)
{
MoveObject(Poort1, -2124.8786, -80.5648, 35.3203, 3); //terug naar oude positie
MoveObject(Poort2, -2129.4243, -80.5648, 35.3203, 3); //terug naar oude positie
SetObjectRot(Poort1, 0, 0, 0); //terug naar oude rotatie
SetObjectRot(Poort2, 0, 0, 0); //terug naar oude rotatie
SendClientMessage(playerid, COLOR_GREEN, "De poort is nu gesloten.");
return 1;
}
//------------------------------------------------------------------------------
public GameModeExitFunc()
{
GameModeExit();
return 1;
}
//------------------------------------------------------------------------------
SetPlayerClass(playerid, classid) {
if(classid == 0) {
gTeam[playerid] = TEAM_WORKER;
} else if(classid == 1) {
gTeam[playerid] = TEAM_PIMP;
} else if(classid == 2) {
gTeam[playerid] = TEAM_GOLFER;
} else if(classid == 3) {
gTeam[playerid] = TEAM_TRIAD;
} else if(classid == 4) {
gTeam[playerid] = TEAM_MECHANIC;
} else if(classid == 5) {
gTeam[playerid] = TEAM_VALET;
} else if(classid == 6) {
gTeam[playerid] = TEAM_MEDIC;
} else if(classid == 7) {
gTeam[playerid] = TEAM_FBI;
}
}
//------------------------------------------------------------------------------