[AJUDA] Variбveis
#1

Eu queria saber como faзo para setar uma variavel nгo sу para o playerid mas para todo o server que tem uma outra variavel = 1. Obrigado.
Reply
#2

use um loop.

pawn Код:
new variavel[MAX_PLAYERS];

for(new ii; jj = GetMaxPlayers(); ii != jj; ii++)
{
    variavel[ii] = 1;
}
Reply
#3

Quote:
Originally Posted by [Y]Falcon
Посмотреть сообщение
use um loop.

pawn Код:
new variavel[MAX_PLAYERS];

for(new ii; jj = GetMaxPlayers(); ii != jj; ii++)
{
    variavel[ii] = 1;
}
Falcon qual a diferenзa desse pra um

pawn Код:
for(new x; x< GetMaxPlayers();x++)
Pode me tirar essa dъvida?
Reply
#4

Quote:
Originally Posted by Exploit
Посмотреть сообщение
Simples, vai guardar o valor na variбvel, e nгo vai precisar ficar chamando a funзгo toda hora.
Nгo entendi,
se eu fizesse
pawn Код:
new var[MAX_PLAYERS];
for(new x; x<GetMaxPlayers();x++)
{
    var[x] = 1;
}
Nгo guardaria o valor da mesma forma? '-'
Reply
#5

Obrigado. Mas vocкs poderiam adaptar essa funзao loop ao meu codigo? eu preciso entregar o GM a um amigo mais tarde e nao vou ter tempo para estudar essa funзгo loop
Code:
public OnPlayerEnterRaceCheckpoint(playerid)
{
DisablePlayerCheckpoint(playerid);
RemovePlayerAttachedObject(playerid, 0);
alimento[MAX_PLAYERS] = 4;
SendClientMessageToAll(0x99FFFFAA, "[ZRP] Os Humanos receberam um suprimento de alimentos e nгo passam mais fome.");
}
eu quero que a variavel alimento seja setada para 4 para todos os players que tenho a variavel PlayerInfo[playerid][pOrgh] = 1 ou = 2 e somente para eles. Obrigado
Reply
#6

pawn Код:
new variavel[MAX_PLAYERS];

for(new ii, jj = GetMaxPlayers(); ii != jj; ii++)
{
    variavel[ii] = 1;
}
Assim que iniciar o loop, ele irб pegar a quantidade de player com a funзгo GetMaxPlayers(); e irб armazenar na variavel jj.

Em seguida irб realizar o loop, e nгo irб chamar a parte em vermelho do loop, somente a verde:

for(new ii; jj = GetMaxPlayers(); ii != jj; ii++)

Assim irб comparar o valor entre as duas variбveis oque й mais rбpido do que ficar usar assim:

pawn Код:
new var[MAX_PLAYERS];
for(new x; x<GetMaxPlayers();x++)
{
    var[x] = 1;
}
Pois irб sempre chamar esta parte do loop:

for(new x; x<GetMaxPlayers();x++)


entгo irб ficar pegando o valor de maxplayers sempre que iniciar um novo ciclo no loop.

Agora й sу parar para pensar oque й mais rбpido, comparar duas variaveis com os valores estabelecidos, ou comparar uma variavel e executar uma funзгo para pegar um valor

-----------------------------------------

EDIT:

aqui estб pimentgabriel:

pawn Код:
public OnPlayerEnterRaceCheckpoint(playerid)
{
    DisablePlayerCheckpoint(playerid);
    RemovePlayerAttachedObject(playerid, 0);
    for(new ii, jj = GetMaxPlayers(); ii != jj; ii++) alimento[ii] = 4;
    SendClientMessageToAll(0x99FFFFAA, "[ZRP] Os Humanos receberam um suprimento de alimentos e nгo passam mais fome.");
}

Atenciosamente,
Falcon.
Reply
#7

Quote:
Originally Posted by [Y]Falcon
Посмотреть сообщение
pawn Код:
new variavel[MAX_PLAYERS];

for(new ii; jj = GetMaxPlayers(); ii != jj; ii++)
{
    variavel[ii] = 1;
}
Assim que iniciar o loop, ele irб pegar a quantidade de player com a funзгo GetMaxPlayers(); e irб armazenar na variavel jj.

Em seguida irб realizar o loop, e nгo irб chamar a parte em vermelho do loop, somente a verde:

for(new ii; jj = GetMaxPlayers(); ii != jj; ii++)

Assim irб comparar o valor entre as duas variбveis oque й mais rбpido do que ficar usar assim:

pawn Код:
new var[MAX_PLAYERS];
for(new x; x<GetMaxPlayers();x++)
{
    var[x] = 1;
}
Pois irб sempre chamar esta parte do loop:

for(new x; x<GetMaxPlayers();x++)


entгo irб ficar pegando o valor de maxplayers sempre que iniciar um novo ciclo no loop.

Agora й sу parar para pensar oque й mais rбpido, comparar duas variaveis com os valores estabelecidos, ou comparar uma variavel e executar uma funзгo para pegar um valor


Atenciosamente,
Falcon.
Entendi, obrigado Falcon & Exploit (:
Reply
#8

AH! acho que entendi... vou tentar colocar o comando aqui
Reply
#9

[/QUOTE]
pawn Код:
public OnPlayerEnterRaceCheckpoint(playerid)
{
    DisablePlayerCheckpoint(playerid);
    RemovePlayerAttachedObject(playerid, 0);
    for(new ii, jj = GetMaxPlayers(); ii != jj; ii++) alimento[ii] = 4;
    SendClientMessageToAll(0x99FFFFAA, "[ZRP] Os Humanos receberam um suprimento de alimentos e nгo passam mais fome.");
}
[/QUOTE]

OK falcon mas esse comando sу estб setando a variavel de todos para 4... mas eu quero setar a variavel para quatro somente para quem tem a variavel PlayerInfo[playerid][pOrgh] = 1 ou = 2 nao quero que os outros players tambem recebam essa variavel = 4
Obrigado.
Reply
#10

Olб pimentgabriel,

aqui estб:

pawn Код:
public OnPlayerEnterRaceCheckpoint(playerid)
{
    DisablePlayerCheckpoint(playerid);
    RemovePlayerAttachedObject(playerid, 0);
    for(new ii, jj = GetMaxPlayers(); ii != jj; ii++)
    {
        if(!IsPlayerConnected(ii)) continue;
        if(PlayerInfo[ii][pOrgh] == 1 || PlayerInfo[ii][pOrgh] == 2) alimento[ii] = 4;
    }
    SendClientMessageToAll(0x99FFFFAA, "[ZRP] Os Humanos receberam um suprimento de alimentos e nгo passam mais fome.");
}

Atenciosamente,
Falcon.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)