[Ajuda] Variбveis
#1

1 є Duvida; Bom, como faзo para puxar, para dar armas e etc, sу para os players que estгo setados a uma variбvel. Exemplo :

pawn Код:
CMD:pqp(playerid)
{
    pqp = 1;
    return 1;
}
Entгo, eu queria dar dinheiro, dar armas para todos que estivessem pqp =1; mais tipo eu fazer assim /armaspqp [id][quantia] ai so iam receber todos que tivessem pqp = 1; (OBS: Eu nгo quero que faзam o comando /armaspqp, sim dizer como dar as armas sу para eles, puxar so eles e etc.

---------------------------------------------------------------------------------------------------------------
2 є Duvida; Eu queria que aos players digitassem /guerra, ai eles entrariam na guerra, sу que 4 vгo ser exercito, e 4 terrorista, ou seja, definir eles de acordo com a quantia que ja existe, ou seja, se ja tem 4 exercito, ir + 4 pra terrorista, e se tiver no total 8, nгo pode entrar mais.
Reply
#2

Da uma olhada e ve se entende

PHP код:
new boolpqp[MAX_PLAYERS];
CMD:puxartodos(playeridparams[])
{
    new
        
FloatpX,
        
FloatpY,
        
FloatpZ
    
;
    
GetPlayerPos(playeridpXpYpZ);
    for(new 
xGetMaxPlayers(); x++)
    {
        if(
pqp[x] == true)
        {
            
SetPlayerPos(xpXpYpZ);
        }
    }
    return 
true;

Reply
#3

pawn Код:
new bool: pqp[MAX_PLAYERS];

CMD:armastodos(playerid, params[])
{
    for(new i, j = GetMaxPlayers(); i ! = j; i++)
        if(pqp[i] == true)
            //RecebeArmas

    return true;
}
Reply
#4

Me explica uma coisa, qual a diferenзa de um para o outro ;

pawn Код:
for(new i, j = GetMaxPlayers();i++)
   //
for(new x; x < GetMaxPlayers(); x++)
Reply
#5

Eu cometi um pequeno erro, olhe lб emcima o modo correto.

Quote:
Originally Posted by luizfel2
Посмотреть сообщение
Me explica uma coisa, qual a diferenзa de um para o outro ;

pawn Код:
for(new i, j = GetMaxPlayers(); i != j; i++)
   //
for(new x; x < GetMaxPlayers(); x++)
Na primeira a funзгo GetMaxPlayers й usada apenas no inнcio do loop, e seu valor й armazenado na variбvel j.

Na segunda, a funзгo GetMaxPlayers й usada durante todo o loop, a cada vez que a variбvel i й incrementada.
Reply
#6

Quote:
Originally Posted by Viniborn
Посмотреть сообщение
Eu cometi um pequeno erro, olhe lб emcima o modo correto.



Na primeira a funзгo GetMaxPlayers й usada apenas no inнcio do loop, e seu valor й armazenado na variбvel j.

Na segunda, a funзгo GetMaxPlayers й usada durante todo o loop, a cada vez que a variбvel i й incrementada.
Entгo da minha maneira й mais lenta? ou tanto faz?
Reply
#7

Quote:
Originally Posted by luizfel2
Посмотреть сообщение
---------------------------------------------------------------------------------------------------------------
2 є Duvida; Eu queria que aos players digitassem /guerra, ai eles entrariam na guerra, sу que 4 vгo ser exercito, e 4 terrorista, ou seja, definir eles de acordo com a quantia que ja existe, ou seja, se ja tem 4 exercito, ir + 4 pra terrorista, e se tiver no total 8, nгo pode entrar mais.
Essa funзгo divide todo o servidor em duas equipes

pawn Код:
new bool:Equipe[MAX_PLAYERS];

stock DuasEquipes(t1,t2)
{
    static bool:loop;
    for(new i, j = GetMaxPlayers(); i != j; i++)
    {
        if(loop == true)
        {
            Equipe[i] = true;
            loop = false;
            SendClientMessage(i,-1,"Vocк foi para a Equipe 1.");
            SetPlayerTeam(i,t1);
        }
        else
        {
            Equipe[i] = false;
            loop = true;
            SendClientMessage(i,-1,"Vocк foi para a Equipe 2.");
            SetPlayerTeam(i,t2);
        }
    }
}
Quote:
Originally Posted by [R] ousenber [K]
Посмотреть сообщение
Entгo da minha maneira й mais lenta? ou tanto faz?
Й mais lenta. Imagine sу um servidor com 500 slots definidos.
A funзгo GetMaxPlayers seria executada 500 vezes ...
Reply
#8

Quote:
Originally Posted by Viniborn
Посмотреть сообщение
Essa funзгo divide todo o servidor em duas equipes

pawn Код:
new bool:Equipe[MAX_PLAYERS];

stock DuasEquipes(t1,t2)
{
    static bool:loop;
    for(new i, j = GetMaxPlayers(); i != j; i++)
    {
        if(loop == true)
        {
            Equipe[i] = true;
            loop = false;
            SendClientMessage(i,-1,"Vocк foi para a Equipe 1.");
            SetPlayerTeam(i,t1);
        }
        else
        {
            Equipe[i] = false;
            loop = true;
            SendClientMessage(i,-1,"Vocк foi para a Equipe 2.");
            SetPlayerTeam(i,t2);
        }
    }
}
Mais eu nгo queria todo servidor, й tipo um evento, que so vai entrar no mбximo 8 players, e vai dividir os times.
Reply
#9

Use o que vocк aprendeu na sua primeira pergunta e aplique na segunda : )
Reply
#10

Jб consegui, rep + pra vocк e pro [R] ousenber [K]
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)