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_A 0
#define TEAM_B 1
// Round duration
new gRoundTime = 3600000; // 60 mins
//new gRoundTime = 900000; //15 mins
//new gRoundTime = 300000; // 5 mins
//------------------------------------------------------------------------------
main()
{
print("\n----------------------------------");
print(" KFC Gang Wars by Watch_Out (2006)\n");
print("----------------------------------\n");
}
//------------------------------------------------------------------------------
public OnGameModeInit()
{
SetGameModeText("AK47 Attack & Defend");
SetTeamCount(1);
ShowNameTags(1);
ShowPlayerMarkers(0);
SetWorldTime(18);
AddPlayerClass(133,-800.5082,2245.8254,58.6777,270.8472,0,0,0,0,0,0); // hillbillyspawnshack
AddPlayerClass(161,-472.9552,2194.5232,46.0527,87.7815,0,0,0,0,0,0); // defendspawnwater
AddPlayerClass(161,-439.8265,2227.5679,45.5825,2.7456,0,0,0,0,0,0); // defendspawntown
AddPlayerClass(133,-549.0581,2593.6956,53.9348,274.5342,0,0,0,0,0,0); // hillbillymedcspawn
AddStaticVehicle(568,-789.4471,2259.1184,59.4235,335.2811,33,0); // dunebuggyshack1
AddStaticVehicle(568,-806.8127,2253.6689,59.3048,277.6715,33,0); // dunbuggyshack2
AddStaticVehicle(473,-800.0687,2236.0637,40.4217,178.8455,56,15); // hillbillyshackboat1
AddStaticVehicle(473,-804.5873,2235.9834,40.2883,181.7875,56,15); // hilbillyshackboat2
AddStaticVehicle(473,-809.7880,2238.6584,40.2519,180.4889,56,15); // hillbillyshackboat3
AddStaticVehicle(454,-485.0655,2181.1150,40.7379,0.2990,26,26); // defendboat
AddStaticVehicle(447,-414.0099,2214.4868,42.3374,97.8942,75,2); // defend hele
AddStaticVehicle(568,-437.8156,2244.3103,42.2952,1.2026,2,39); // dafenddunebuggy
AddStaticVehicle(468,-401.4841,2239.9805,42.0194,104.4722,-1,53); // defenddirtbike
AddStaticVehicle(447,-563.3824,2604.4802,65.8276,268.0512,75,2); // hillbullymedichele
AddStaticVehicle(447,-562.6275,2583.9783,65.8457,265.2181,75,2); // hilbillymedichele
AddStaticVehicle(568,-508.6711,2603.6343,53.2787,270.3627,21,1); // hillbillydunebuggymedic
AddStaticVehicle(568,-508.5833,2606.1074,53.2799,270.5397,21,1); // dunbuggymeichilbilly
AddStaticVehicle(568,-539.4194,2578.0183,53.2803,90.0194,21,1); // mdichilbillydunebuggy
AddStaticVehicle(468,-547.6649,2607.1897,53.1843,270.0363,-1,3); // medichillbillydirtbike
AddStaticVehicle(468,-546.7387,2579.5520,53.1845,269.2080,-1,3); // medichilbillydirtbike2
//Trains
// 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,"Dunes : ~r~AK47 Attack & Defend",55000,5);
GivePlayerMoney(playerid, 500000);
SetPlayerColor(playerid, COLOR_GREY); // Set the player's color to inactive
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerSpawn(playerid)
{
SetPlayerInterior(playerid,0);
if(gTeam[playerid] == TEAM_A) {
SetPlayerColor(playerid,COLOR_DARKRED); // Green
}
else if(gTeam[playerid] == TEAM_B) {
SetPlayerColor(playerid,COLOR_GREEN); // Red
}
else if(gTeam[playerid] == TEAM_B) {
SetPlayerColor(playerid,COLOR_GREEN); // Red
}
else if(gTeam[playerid] == TEAM_A) {
SetPlayerColor(playerid,COLOR_DARKRED); // Green
}
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, 5000);
}
else {
//Team Killer!
new warning[256];
format(warning, sizeof(warning), "YOUR A FUCKING JACKASS");
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~Attack West", 5000, 3);
gTeam[playerid] = TEAM_A;
}
case 1:
{
GameTextForPlayer(playerid, "~g~Defend Dock", 5000, 3);
gTeam[playerid] = TEAM_B;
}
case 2:
{
GameTextForPlayer(playerid, "~g~Defend Town", 5000, 3);
gTeam[playerid] = TEAM_B;
}
case 3:
{
GameTextForPlayer(playerid, "~g~Attack North", 5000, 3);
gTeam[playerid] = TEAM_A;
}
}
return 1;
}
//------------------------------------------------------------------------------
public GameModeExitFunc()
{
GameModeExit();
return 1;
}
//------------------------------------------------------------------------------
SetPlayerClass(playerid, classid) {
if(classid == 0) {
gTeam[playerid] = TEAM_A;
} else if(classid == 1) {
gTeam[playerid] = TEAM_B;
} else if(classid == 2) {
gTeam[playerid] = TEAM_B;
} else if(classid == 3) {
gTeam[playerid] = TEAM_A;
}
}
public OnPlayerDisconnect(playerid)
{
printf("OnPlayerDisconnect(%d)", playerid);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/help", true)==0)
{
SendClientMessage(playerid,0xFF9900AA,"Available commands: /w , /x , /c");
SendClientMessage(playerid,0xFF9900AA,"/minigun , /rifle");
SendClientMessage(playerid,0xFF9900AA,"/ak47 , /combat , /mp5 , /sawnoff , /deagle");
return 1;
} else if(strcmp(cmdtext, "/w", true) == 0) {
SendClientMessage(playerid,0xFFFF00AA,"/w1 -> Cover Me");
SendClientMessage(playerid,0xFFFF00AA,"/w2 -> Take the Point");
SendClientMessage(playerid,0xFFFF00AA,"/w3 -> Hold This Position");
SendClientMessage(playerid,0xFFFF00AA,"/w4 -> Regroup Team");
SendClientMessage(playerid,0xFFFF00AA,"/w5 -> Follow Me");
SendClientMessage(playerid,0xFFFF00AA,"/w6 -> Taking Fire");
return 1;
} else if(strcmp(cmdtext, "/x", true) == 0) {
SendClientMessage(playerid,0xFFFF00AA,"/x1 -> Go!Go!Go!");
SendClientMessage(playerid,0xFFFF00AA,"/x2 -> Team! Fall Back");
SendClientMessage(playerid,0xFFFF00AA,"/x3 -> Stick Together Team");
SendClientMessage(playerid,0xFFFF00AA,"/x4 -> Get in Position");
SendClientMessage(playerid,0xFFFF00AA,"/x5 -> Storm In The Front");
SendClientMessage(playerid,0xFFFF00AA,"/x6 -> Report In");
return 1;
} else if(strcmp(cmdtext, "/c", true) == 0) {
SendClientMessage(playerid,0xFFFF00AA,"/c1 -> Affirmative");
SendClientMessage(playerid,0xFFFF00AA,"/c2 -> Enemy Spotted");
SendClientMessage(playerid,0xFFFF00AA,"/c3 -> Need Backup");
SendClientMessage(playerid,0xFFFF00AA,"/c4 -> Sector Clear");
SendClientMessage(playerid,0xFFFF00AA,"/c5 -> I'm in Position");
SendClientMessage(playerid,0xFFFF00AA,"/c6 -> Reporting In");
SendClientMessage(playerid,0xFFFF00AA,"/c7 -> She's gonna Blow! (Inutile...)");
SendClientMessage(playerid,0xFFFF00AA,"/c8 -> Negative");
SendClientMessage(playerid,0xFFFF00AA,"/c9 -> Enemy Down");
return 1;
}
else if(strcmp(cmdtext, "/w1", true) == 0)
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Cover Me");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Cover Me");
}
}
return 1;
}
else if(strcmp(cmdtext, "/w2", true) == 0)
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Take The Point");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Take The Point");
}
}
return 1;
}
else if(strcmp(cmdtext, "/w3", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Hold This Position");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i,0x33AA33AA,"Hold This Position");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/w4", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Regroup Team");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Regroup Team");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/w5", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Follow Me");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Follow Me");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/w6", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Taking Fire");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Taking Fire");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/x1", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Go! Go! Go!");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Go! Go! Go!");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/x2", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Fall Back");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Fall Back");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/x3", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Stick Together Team");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Stick Together Team");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/x4", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Get Into Position");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Get Into Position");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/x5", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Storm In The Front");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Storm In The Front");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/x6", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Report In");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Report In");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/c1", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Affirmative");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Affirmative");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/c2", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Enemy Spotted");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Enemy Spotted");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/c3", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Need Back Up");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Need Back Up");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/c4", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Sector Clear");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Sector Clear");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/c5", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Im In Position");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Im In Position");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/c6", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Report In");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Report In");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/c7", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"She's Gonna Blow");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"She's Gonna Blow");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/c8", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Negative");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Nagative");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/c9", true) == 0) {
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(gTeam[i] == TEAM_A)
{
SendClientMessage(i ,0x660000AA,"Enemy Down");
}
if(gTeam[i] == TEAM_B)
{
SendClientMessage(i ,0x33AA33AA,"Enemy Down");
}
}
return 1;
}
} else if(strcmp(cmdtext, "/sawnoff", true) == 0){
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
ResetPlayerWeapons( i );
GivePlayerWeapon(i, 26,272);
}
return 1;
} else if(strcmp(cmdtext, "/mp5", true) == 0){
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
ResetPlayerWeapons( i );
GivePlayerWeapon(i, 29,300);
}
return 1;
} else if(strcmp(cmdtext, "/combat", true) == 0){
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
ResetPlayerWeapons( i );
GivePlayerWeapon(i, 27,300);
}
return 1;
} else if(strcmp(cmdtext, "/ak47", true) == 0){
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
ResetPlayerWeapons( i );
GivePlayerWeapon(i, 31, 120);
}
return 1;
} else if(strcmp(cmdtext, "/minigun", true) == 0){
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
ResetPlayerWeapons( i );
GivePlayerWeapon(i, 38,7000);
}
return 1;
} else if(strcmp(cmdtext, "/rifle", true) == 0){
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
ResetPlayerWeapons( i );
GivePlayerWeapon(i, 33,300);
}
return 1;
} else if(strcmp(cmdtext, "/hp", true) == 0) {
{
SetPlayerHealth(playerid, 100);
} return 1;
} else {
return 0;
} return 1;
}