SA-MP Forums Archive
[Ajuda] Loop - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Loop (/showthread.php?tid=629761)



Loop - Tuznn - 03.03.2017

Boa tarde,

Criei um timer de verificaзгo dos jogadores que estгo no evento... Ele й executado sempre que o player pega um RaceCheckpoint.

Eu gostaria que ele funcionasse da seguinte maneira:

Pegar o ID de todos os jogadores online, e depois pegasse o ID de todos os jogadores exceto o do playerid (Player que pegou o RaceCheckpoint). Ele estб funcionando normal, exceto para o ID 0, que aparece o prуprio ID e o do outro jogador no evento.

obs: Estou usando SetTimerEx.

Segue a callback do timer:

PHP код:
public VerificarPosicao(playerid){
    
Cont[playerid]++;
    
format(Strsizeof(Str), "Executou o timer: {AA0000}%d"Cont[playerid]);
    
SendClientMessage(playerid, -1Str);
    for(new 
IMAX_PLAYERSI++){
        if(!
IsPlayerConnected(I)) continue;
        
format(Strsizeof(Str), "** Loop ID jogadores no evento: {AA0000}%d"I);
        
SendClientMessage(playerid, -1Str);
        
        for(new 
XIX++){ // Se X for menor que o nє de jogadores no evento, adiciona +1 ao X
            
if(== playerid) continue; // Se X for igual ao ID do player ele ignora
            
format(Strsizeof(Str), "** {FFFFFF}Loop ID jogadores exceto playerid: {AA0000}%d"X);
            
SendClientMessage(playeridRedStr);
        }
        
    }
    return 
1;




Re: Loop - klap - 03.03.2017

Era isso que queria? eu nгo entendi bem a duvida...

PHP код:
for(new i=0MAX_PLAYERSi++) {
    if ( ! 
IsPlayerConnected(i)) continue; //tem que melhorar essa condiзao para saber se estб no evento ou nao...
    
format(Strsizeof(Str), "** ID de um jogador no evento: {AA0000}%d"i);
    
SendClientMessage(playerid, -1Str);
}
for(new 
i=0MAX_PLAYERSi++) {
    if (
== playerid) continue;
    
format(Strsizeof(Str), "** {FFFFFF}ID do um jogador exceto playerid: {AA0000}%d"i);
    
SendClientMessage(playeridRedStr);




Re: Loop - Tuznn - 03.03.2017

Quote:
Originally Posted by klap
Посмотреть сообщение
Era isso que queria? eu nгo entendi bem a duvida...

PHP код:
for(new i=0MAX_PLAYERSi++) {
    if ( ! 
IsPlayerConnected(i)) continue; //tem que melhorar essa condiзao para saber se estб no evento ou nao...
    
format(Strsizeof(Str), "** ID de um jogador no evento: {AA0000}%d"i);
    
SendClientMessage(playerid, -1Str);
}
for(new 
i=0MAX_PLAYERSi++) {
    if (
== playerid) continue;
    
format(Strsizeof(Str), "** {FFFFFF}ID do um jogador exceto playerid: {AA0000}%d"i);
    
SendClientMessage(playeridRedStr);

Funcionou!

"//tem que melhorar essa condiзao para saber se estб no evento ou nao..." Eu sei disso, tenho a variбvel booleana se ele estiver no evento ou nгo. Sу nгo coloquei ainda porque estou testando outras coisas.

Grato pelo ajuda... Nгo sei porque fiz uma loop dentro da outra '-' asuhasu

Enfim, +REP!


Re: Loop - klap - 03.03.2017

de nada '-'


Re: Loop - renatog - 03.03.2017

Para que vocк tб usando dois loops assim? Totalmente desnecessбrio.
PHP код:
for(new i=0MAX_PLAYERSi++) { 
    if ( ! 
IsPlayerConnected(i)) continue; //tem que melhorar essa condiзao para saber se estб no evento ou nao...
    
if(== playerid) continue; //Sу adicionar essa linha neste loop e o segundo torna-se desnecessбrio
    
format(Strsizeof(Str), "** ID de um jogador no evento: {AA0000}%d"i); 
    
SendClientMessage(playerid, -1Str); 




Re: Loop - klap - 03.03.2017

Quote:
Originally Posted by renatog
Посмотреть сообщение
Para que vocк tб usando dois loops assim? Totalmente desnecessбrio.
PHP код:
for(new i=0MAX_PLAYERSi++) { 
    if ( ! 
IsPlayerConnected(i)) continue; //tem que melhorar essa condiзao para saber se estб no evento ou nao...
    
if(== playerid) continue; //Sу adicionar essa linha neste loop e o segundo torna-se desnecessбrio
    
format(Strsizeof(Str), "** ID de um jogador no evento: {AA0000}%d"i); 
    
SendClientMessage(playerid, -1Str); 

PHP код:
for(new i=0MAX_PLAYERSi++) { 
    if ( ! 
IsPlayerConnected(i)) continue; //tem que melhorar essa condiзao para saber se estб no evento ou nao...
    
format(Strsizeof(Str), "** ID de um jogador no evento: {AA0000}%d"i); 
    
SendClientMessage(playerid, -1Str); 
    if (
== playerid) continue;
    
format(Strsizeof(Str), "** {FFFFFF}ID do um jogador exceto playerid: {AA0000}%d"i); 
    
SendClientMessage(playerid, -1Str); 

para o que ele quer, seria assim...
eu so tentei simplificar ne '-' (para mais fбcil compreensгo, deu para ver que ele nгo й experiente nem lб perto)


PS: "if" nгo й uma funзгo ou um mйtodo, evite juntar o parкnteses ao "if" , faзa "if (" e nao "if(" ...
nгo й que esteja errado fazer junto... mas sгo standards da programaзгo