All pastes #3954137 Raw Edit

Something

public unlisted text v1 · immutable
#3954137 ·published 2018-01-01 13:29 UTC
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;
}