//------------------------------------------------------------------------------ // // San Fierro TDM. A Team Deathmtach script for SA-MP 0.1 // //------------------------------------------------------------------------------ #include #include #include //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