rendered paste body#define SCM SendClientMessage
new arenaplayers;
new arenastart;
new arenamatch;
new IsInArena[MAX_PLAYERS];
new Float:RandomSpawn[5][3] = {
{2152.8801,1403.3760,11.1328},
{2270.3093,1388.8362,42.8203},
{2406.9092,1022.0391,10.8203},
{2629.1868,1824.4720,11.0234},
{2834.6626,2331.5835,10.8203}
};
forward LoadArena();
public LoadArena()
{
print("Arena by RazvaN. Loaded // sa-mp.ro");
CreatePickup(1279, 23, 1952.1698,1343.0109,15.3746, 0);
Create3DTextLabel("{00FF00}Arena\n{FFFFFF}Type {FF0000}/join{FFFFFF} to enter.", -1, 1952.1698,1343.0109,15.3746, 10, 0, 0);
arenamatch = 0;
arenastart = 0;
arenaplayers = 0;
return 1;
}
CMD:join(playerid, params[])
{
if(!IsPlayerInRangeOfPoint(playerid, 5.0, 1952.1698,1343.0109,15.3746)) return SCM(playerid, -1, "{FF0000}Nu te afli langa Arena.");
if(IsInArena[playerid] == 1) return SCM(playerid, -1, "Esti deja in arena, nu mai poti intra inca odata.");
if(arenamatch == 1) return SCM(playerid, -1, "Un meci este deja in desfasurare.");
if(arenaplayers > 1)
{
SetPlayerVirtualWorld(playerid, playerid+1);
ClearAnimations(playerid, 0);
SetPlayerPos(playerid, 1930.8248,1344.9260,9.9688);
IsInArena[playerid] = 1;
arenaplayers++;
arenastart = 180;
SCM(playerid, -1, "Meciul incepe in {FF0000}180{FFFFFF} de secunde.");
SetTimer("ArenaStart", 18000, 1);
}
else
{
SetPlayerVirtualWorld(playerid, playerid+1);
ClearAnimations(playerid, 0);
IsInArena[playerid] = 1;
SetPlayerPos(playerid, 1930.8248,1344.9260,9.9688);
SCM(playerid, -1, "Jocul incepe la minim 2 jucatori.");
arenaplayers++;
}
return 1;
}
CMD:leave(playerid, params[])
{
if(IsInArena[playerid] == 0) return SCM(playerid, -1, "Nu esti in arena!");
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, 1952.1698,1343.0109,15.3746);
arenaplayers--;
IsInArena[playerid] = 0;
return 1;
}
forward Death(playerid, killerid);
public Death(playerid, killerid)
{
if(IsInArena[playerid] == 1)
{
arenaplayers--;
new playername[30], killername[30];
GetPlayerName(playerid, playername, 30);
GetPlayerName(killerid, killername, 30);
IsInArena[playerid] = 0;
new string[128];
format(string, sizeof(string), "%s a fost omorat de %s.", playername, killername);
ArenaMessage(-1, string);
}
return 1;
}
forward ArenaMessage(color, message[]);
public ArenaMessage(color, message[])
{
foreach(new i : Player)
{
if(IsInArena[i] == 1)
{
SCM(i, color, message);
}
}
return 1;
}
forward ArenaStart();
public ArenaStart()
{
if(arenastart > 0)
{
arenastart--;
}
if(arenaplayers > 1 && arenastart == 0 && arenamatch == 0)
{
arenamatch = 1;
foreach(new i : Player)
{
GivePlayerWeapon(i, 24, 10000);
GivePlayerWeapon(i, 31, 10000);
new spawn;
SetPlayerHealth(i, 100);
spawn = random(sizeof(RandomSpawn));
SetPlayerPos(i, RandomSpawn[spawn][0], RandomSpawn[spawn][1], RandomSpawn[spawn][2]);
IsInArena[i] = 1;
SCM(i, -1, "Omoara ceilalti jucatori pentru a castiga meciul!");
}
}
if(arenamatch == 1 && arenaplayers == 1)
{
foreach(new k : Player)
{
if(IsInArena[k] == 1)
{
new winner[30];
GetPlayerName(k, winner, sizeof(winner));
new string[90];
format(string, sizeof(string), "Castigatorul este %s.", winner);
SendClientMessageToAll(-1, string);
SpawnPlayer(k);
arenaplayers = 0;
arenamatch = 0;
IsInArena[k] = 0;
arenastart = 0;
return 1;
}
else return 1;
}
}
if(arenamatch == 0 && arenaplayers <= 1 && arenastart >= 0) return 1;
return 1;
}