//GameMode by (c)Denius #include #define TEAM_GROVE 1 #define TEAM_BALLA 2 #define TEAM_GROVE_COLOR 0x33AA33FF // Green #define TEAM_BALLA_COLOR 0xFF00FFAA // Purple #define COLOR_YELLOW 0xFFFF00AA // Yellow #define IN_ARENA 1 #define OUT_ARENA 2 new gTeam[MAX_PLAYERS]; new Float:rx, Float:ry, Float:rz; new player_spawned[MAX_PLAYERS]; // Teamchat new gArena[MAX_PLAYERS] = OUT_ARENA; new Float:ArenaSpawn[4][3] = { {1102.7014,-341.1859,73.9922}, {1021.0997,-303.8612,73.9931}, {1045.5071,-290.0125,83.4999}, {1118.0061,-293.5841,73.9922} }; main() { print("\n----------------------------------------------"); print(" TeamDeathMatch Grove vs Ballas by (c)Denius"); print("----------------------------------------------\n"); } public OnPlayerCommandText(playerid, cmd[]) { if(strcmp(cmd, "/arena", true) == 0){ gArena[playerid] = IN_ARENA; new randomize=random(sizeof(ArenaSpawn)); SetPlayerPos(playerid, ArenaSpawn[randomize][0],ArenaSpawn[randomize][1],ArenaSpawn[randomize][2]); //SetPlayerHealth(playerid,100); ResetPlayerWeapons(playerid); GivePlayerWeapon(playerid, 31, 1000); GivePlayerWeapon(playerid, 26, 1000); GivePlayerWeapon(playerid, 28, 1000); return 1; } if(strcmp(cmd, "/mhelp", true) == 0){ SendClientMessage(playerid,COLOR_YELLOW,"This is a TDM GameMode. Kill players of the other team to earn"); SendClientMessage(playerid,COLOR_YELLOW,"money and points. Dont' kill your teammates or you'll lose points an money"); SendClientMessage(playerid,COLOR_YELLOW,"Type /arena to go to a arena. There you can kill anyone"); SendClientMessage(playerid,COLOR_YELLOW,"GameMode by (c)Denius"); return 1; } if(strcmp(cmd, "/caida5", true) == 0) { GetPlayerPos(playerid, rx, ry, rz); SendClientMessage(playerid, 0xFFFF00AA, "Caida!"); SetPlayerPos(playerid, rx, ry, rz+5000); GivePlayerWeapon(playerid, 46, 0); return 1; } if(strcmp(cmd, "/caida1", true) == 0) { GetPlayerPos(playerid, rx, ry, rz); SendClientMessage(playerid, 0xFFFF00AA, "Caida!"); SetPlayerPos(playerid, rx, ry, rz+1500); GivePlayerWeapon(playerid, 46, 0); return 1; } if(strcmp(cmd, "/caida10", true) == 0) { GetPlayerPos(playerid, rx, ry, rz); SendClientMessage(playerid, 0xFFFF00AA, "Caida!"); SetPlayerPos(playerid, rx, ry, rz+10000); GivePlayerWeapon(playerid, 46, 0); return 1; } return 1; } public OnGameModeInit() { print("GameModeInit()"); SetGameModeText("TDM Grove-Ballas"); AddStaticVehicle(520,2752.2837,-1757.3154,44.7806,332.5389,0,0); // AddPlayerClass(105,2505.5774,-1671.5300,13.3699,79.0129,29,1000,24,1000,4,0); // Grove 1 AddPlayerClass(106,2497.8621,-1676.8077,13.3487,3.1855,29,1000,24,1000,4,0); // Grove 2 AddPlayerClass(107,2497.7009,-1660.2401,13.3359,165.1570,29,1000,24,1000,4,0); // Grove 3 AddStaticPickup(1242, 2, 2497.1272,-1667.8346,13.3438); // Grove Chaleco AddPlayerClass(102,1979.6017,-1218.3383,25.2849,90.3797,29,1000,24,1000,4,0); // Ballas 1 AddPlayerClass(103,1964.7515,-1219.3318,25.2998,277.4181,29,1000,24,1000,4,0); // Ballas 2 AddPlayerClass(104,1971.3583,-1205.0183,25.5006,176.5238,29,1000,24,1000,4,0); // Ballas 3 AddStaticPickup(1242, 2,1972.3517,-1216.4061,25.1859); // Ballas Chaleco AddStaticVehicle(492,1961.2794,-1179.9984,25.8584,182.5919,-1,-1); // Auto Balla 1 AddStaticVehicle(492,1976.8402,-1181.8344,25.8250,178.4436,-1,-1); // Auto Balla 2 AddStaticVehicle(522,1967.1414,-1162.4979,25.4689,175.0461,-1,-1); // Moto Balla 1 AddStaticVehicle(522,1971.8170,-1164.4279,25.4838,173.7589,-1,-1); // Moto Balla 2 AddStaticVehicle(492,2470.1973,-1655.0471,13.1211,89.9074,-1,-1); // Auto 1 Grove AddStaticVehicle(492,2468.5154,-1663.6798,13.0873,88.3078,-1,-1); // Auto 2 Grove AddStaticVehicle(522,2450.2046,-1660.7664,12.8748,88.7233,-1,-1); // Moto 1 Grove AddStaticVehicle(522,2455.1902,-1656.3794,12.8747,88.3118,-1,-1); // Moto 2 Grove AddStaticVehicle(487,1917.3048,-2268.3450,13.7235,184.1751,-1,-1); // AddStaticVehicle(487,1983.5732,-2267.6467,13.7235,178.8756,-1,-1); // AddStaticVehicle(487,2009.3158,-2538.3994,13.7236,264.3632,-1,-1); // AddStaticVehicle(500,1947.4094,-2126.9143,13.6532,271.0341,-1,-1); // AddStaticVehicle(500,1947.6702,-2136.5906,13.6532,271.0043,-1,-1); // AddStaticVehicle(519,2066.2896,-2593.5388,14.4658,91.1517,-1,-1); // AddStaticVehicle(519,1458.6587,-2600.8003,14.4656,267.5645,-1,-1); // AddStaticVehicle(592,1449.2347,-2494.4812,14.7488,269.2489,-1,-1); // AddStaticVehicle(593,1538.4064,-2447.0098,14.0106,272.4618,-1,-1); // AddStaticVehicle(593,1658.0879,-2455.9634,14.0129,272.3382,-1,-1); // AddStaticVehicle(425,1544.9590,-1355.5215,330.4452,265.4901,-1,-1); // AddStaticVehicle(411,1437.9011,-1605.0764,13.2740,0.5694,-1,-1); // AddStaticVehicle(411,1438.1805,-1633.1688,13.2739,0.5693,-1,-1); // AddStaticVehicle(411,1438.4573,-1661.0453,13.2739,0.5694,-1,-1); // AddStaticVehicle(411,1438.8176,-1695.0715,13.2740,0.8039,-1,-1); // AddStaticVehicle(411,899.8115,-1359.2761,13.2954,268.8387,-1,-1); // AddStaticVehicle(424,882.4846,-1376.5328,24.9817,0.0001,-1,-1); // AddStaticVehicle(424,2027.2996,-1909.6504,13.3347,181.4890,-1,-1); // AddStaticVehicle(424,2052.6599,-1903.7745,13.3266,180.5418,-1,-1); // AddStaticVehicle(429,2065.6206,-1904.0814,13.2266,181.1899,-1,-1); // AddStaticVehicle(429,2337.0354,-1367.5197,23.6872,179.0906,-1,-1); // AddStaticVehicle(429,2408.7007,-1391.0549,23.9320,88.4390,-1,-1); // AddStaticVehicle(434,2408.4470,-1380.1750,24.3469,88.3028,-1,-1); // AddStaticVehicle(434,1799.1300,-1188.9540,23.8609,266.6764,-1,-1); // AddStaticVehicle(434,1728.6616,-1280.6820,13.5089,357.4924,-1,-1); // AddStaticVehicle(473,1966.2046,-1201.8213,17.7625,265.5047,-1,-1); // AddStaticVehicle(520,2735.8801,-1759.0480,45.0141,330.9593,-1,-1); // AddStaticVehicle(446,2941.2871,-2022.9667,-0.0749,164.9100,-1,-1); // AddStaticVehicle(446,2940.0220,-2075.0122,-0.1887,316.4850,-1,-1); // AddStaticVehicle(446,792.1735,-1971.6171,-0.3872,178.1249,-1,-1); // AddStaticVehicle(446,896.2247,-1975.8102,-0.4843,329.7241,-1,-1); // AddStaticVehicle(462,846.7059,-2051.9741,12.4637,355.3906,-1,-1); // AddStaticVehicle(462,832.7809,-2055.3059,12.4635,357.1536,-1,-1); // AddStaticVehicle(571,830.2681,-2036.3802,12.1510,357.1091,-1,-1); // AddStaticVehicle(571,835.3850,-2034.9911,12.1510,0.6054,-1,-1); // AddStaticVehicle(446,442.0475,-1990.0208,-0.4288,0.3945,-1,-1); // AddStaticVehicle(446,312.2628,-2015.3440,-0.6423,27.2245,-1,-1); // AddStaticVehicle(446,99.5294,-1953.6482,-0.3856,45.6875,-1,-1); // return 1; } public WriteTeamInScreen(playerid,classid) { if(classid == 0 || classid == 1 || classid == 2) { GameTextForPlayer(playerid,"~g~GROVE STREET",1000,5); }else if(classid == 3 || classid == 4 || classid == 5) { GameTextForPlayer(playerid,"~b~BALLAS",1000,5); } return 1; } public OnPlayerRequestClass(playerid, classid) { WriteTeamInScreen(playerid,classid); printf("OnPlayerRequestClass(%d, %d)", playerid, classid); SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerFacingAngle(playerid, 95.8675); SetPlayerCameraPos(playerid, 1955.8433, 1343.0842, 15.3746); SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746); { // Set their team number based on the class they selected. if(classid == 0 || classid == 1 || classid == 2) { gTeam[playerid] = TEAM_GROVE; } else if(classid == 3 || classid == 4 || classid == 5) { gTeam[playerid] = TEAM_BALLA; } } return 1; } public SetPlayerTeamFromClass(playerid,classid) { // Set their team number based on the class they selected. if(classid == 0 || classid == 1 || classid == 2) { gTeam[playerid] = TEAM_GROVE; } else if(classid == 3 || classid == 4 || classid == 5) { gTeam[playerid] = TEAM_BALLA; } } public SetPlayerToTeamColor(playerid) { if (gTeam[playerid] == TEAM_GROVE) { SetPlayerColor(playerid, TEAM_GROVE_COLOR); } else if (gTeam[playerid] == TEAM_BALLA) { SetPlayerColor(playerid, TEAM_BALLA_COLOR); } } public OnGameModeExit() { print("GameModeExit()"); return 1; } public OnPlayerConnect(playerid) { printf("OnPlayerConnect(%d)", playerid); SendDeathMessage(playerid, INVALID_PLAYER_ID, 200); SendClientMessage(playerid,COLOR_YELLOW,"For help about the gamemode write /mhelp"); SendClientMessage(playerid, COLOR_YELLOW, "For TeamChat, write ! before message"); player_spawned[playerid] = 0; // Teamchat return 1; } public OnPlayerDisconnect(playerid) { SendDeathMessage(INVALID_PLAYER_ID, playerid, 201); printf("OnPlayerDisconnect(%d)", playerid); return 1; } public OnPlayerSpawn(playerid) { printf("OnPlayerSpawn(%d)", playerid); SetPlayerToTeamColor(playerid); player_spawned[playerid] = 1; // Teamchat return 1; } public OnPlayerDeath(playerid, killerid, reason) { if(killerid == INVALID_PLAYER_ID) { SendDeathMessage(INVALID_PLAYER_ID,playerid,reason); } else { if(gArena[killerid] == OUT_ARENA) { if(gTeam[killerid] != gTeam[playerid]) { // Valid kill SendDeathMessage(killerid,playerid,reason); SetPlayerScore(killerid,GetPlayerScore(killerid)+1); GivePlayerMoney(killerid,GetPlayerMoney(killerid)+5000); GivePlayerMoney(playerid,0); } else /*if(gTeam[killerid] = gTeam[playerid])*/ { // Team kill SendDeathMessage(killerid,playerid,reason); SetPlayerScore(killerid,GetPlayerScore(killerid)-1); GivePlayerMoney(killerid,0); } } if(gArena[killerid] == IN_ARENA) { SendDeathMessage(killerid,playerid,reason); SetPlayerScore(playerid,GetPlayerScore(killerid)+1); GivePlayerMoney(playerid,GetPlayerMoney(killerid)+5000); } } player_spawned[playerid] = 0; // Teamchat return 1; } public OnVehicleSpawn(vehicleid) { printf("OnVehicleSpawn(%d)", vehicleid); return 1; } public OnVehicleDeath(vehicleid, killerid) { printf("OnVehicleDeath(%d, %d)", vehicleid, killerid); return 1; } public OnPlayerText(playerid, text[]) { if(text[0] == '!' && player_spawned[playerid] == 1 && gArena[playerid] == OUT_ARENA) { new teamchat[256]; new playername[24]; GetPlayerName(playerid,playername,24); for(new i=0; i