#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; }