#include <a_samp>
#define COLOR_RED 0xFF0000FF
#define COLOR_GREEN 0x33AA33FF
//-------------------------------
main(){}
//-------------------------------
enum Team
{
BALLAS,
GROVE
}
enum e_Player
{
pName[MAX_PLAYER_NAME],
Team:pTeam,
pKills,
pDeaths,
bool:pFirstSpawn
}
//-------------------------------
stock
members[Team],
pInfo[MAX_PLAYERS][e_Player];
stock const
Float:spawns[Team][][] =
{
{
{-92.5665, -359.0368, 1.4297, 284.8226},
{-91.7508, -355.1365, 1.4297, 284.8226},
{-91.1126, -349.8121, 1.4297, 284.8226}
},
{
{-6.6407, -320.0028, 5.4297, 90.5539},
{-7.4725, -317.0150, 5.4297, 90.5539},
{-8.2477, -314.3397, 5.4297, 90.5539}
}
};
//-------------------------------
stock AddPlayerToTeam(playerid, Team:teamid)
{
pInfo[playerid][pTeam] = teamid;
members[teamid]++;
SetPlayerTeam(playerid, _:teamid);
static const
skins[Team][3] =
{
{102, 103, 104},
{105, 106, 107}
};
SetPlayerSkin(playerid, skins[teamid][random(3)]);
return 1;
}
//-------------------------------
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, pInfo[playerid][pName], MAX_PLAYER_NAME);
//------------------
pInfo[playerid][pFirstSpawn] = true;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
static const
reasonMsg[][] =
{
"Crash",
"Déconnexion",
"Kick/Ban"
};
//----------------------
new
str[64];
format(str, sizeof(str), "%s a quitté le serveur. (%s)", pInfo[playerid][pName], reasonMsg[reason]);
SendClientMessageToAll(-1, str);
//----------------------
members[ pInfo[playerid][pTeam] ]--;
//----------------------
static const
eBlank[e_Player];
pInfo[playerid] = eBlank;
return 1;
}
public OnPlayerSpawn(playerid)
{
if(pInfo[playerid][pFirstSpawn])
{
pInfo[playerid][pFirstSpawn] = false;
if(members[BALLAS] > members[GROVE])
AddPlayerToTeam(playerid, GROVE);
else if(members[BALLAS] < members[GROVE])
AddPlayerToTeam(playerid, BALLAS);
else
AddPlayerToTeam(playerid, Team:random(_:Team));
}
//----------------------
GivePlayerWeapon(playerid, WEAPON_DEAGLE, 500);
new
Team:teamid = pInfo[playerid][pTeam],
rand = random( sizeof(spawns[]) );
SetPlayerPos(playerid, spawns[teamid][rand][0], spawns[teamid][rand][1], spawns[teamid][rand][2]);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid == INVALID_PLAYER_ID) return 1;
//----------------------
pInfo[playerid][pDeaths]++;
pInfo[killerid][pKills]++;
//----------------------
new
str[2][64],
Team:teamid = pInfo[playerid][pTeam];
format(str[0], sizeof(str[]), "Un allié (%s) a été tué.", pInfo[playerid][pName]);
format(str[1], sizeof(str[]), "Un adversaire a été tué par %s.", pInfo[killerid][pName]);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(teamid == pInfo[i][pTeam])
{
if(playerid == i) continue;
SendClientMessage(i, COLOR_RED, str[0]);
}
else
{
if(killerid == i) continue;
SendClientMessage(i, COLOR_GREEN, str[1]);
}
}
format(str[0], sizeof(str[]), "Vous avez été tué par %s.", pInfo[killerid][pName]);
SendClientMessage(playerid, -1, str[0]);
format(str[0], sizeof(str[]), "Vous avez tué %s.", pInfo[playerid][pName]);
SendClientMessage(killerid, -1, str[0]);
return 1;
}
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎