rendered paste body//GameMode by (c)Denius
#include <a_samp>
#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<MAX_PLAYERS; i++)
{
if(gTeam[i] == gTeam[playerid] && player_spawned[i] == 1)
{
format(teamchat,sizeof(teamchat),"%s(Team):%s",playername,text[1]);
SendClientMessage(i,0xFFFF00AA,teamchat);
}
}
}
return 1;
}
public OnPlayerInfoChange(playerid)
{
printf("OnPlayerInfoChange(%d)");
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
printf("OnPlayerEnterVehicle(%d, %d, %d)", playerid, vehicleid, ispassenger);
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
printf("OnPlayerExitVehicle(%d, %d)", playerid, vehicleid);
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
printf("OnPlayerStateChange(%d, %d, %d)", playerid, newstate, oldstate);
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
printf("OnPlayerEnterCheckpoint(%d)", playerid);
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
printf("OnPlayerLeaveCheckpoint(%d)", playerid);
return 1;
}