[Ajuda] Ajuda Comando
#1

PHP Code:
new pedirajuda[MAX_PLAYERS];
CMD:pajuda(playerid,params[])
{
SendClientMessage(playerid,-1,"Vocк estб na fila /Verfila");
pedirajuda[playerid] = 1;
return 
1;
}
CMD:verfila(playerid,params[])
{
new 
str[144];
for(new 
iMAX_PLAYERS; ++i)
{
if(
IsPlayerConnected(i))
{
if(
pedirajuda[i] == 1)
{
new 
name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(str,sizeof(str),"1° - %s \n 2° - %s \n 3° - %s \n 4° - %s \n 5° - %s ",name);
ShowPlayerDialog(playerid,Fila,DIALOG_STYLE_MSGBOX,"           -- Fila De Ajuda --",str,"Ok","");
}else{
ShowPlayerDialog(playerid,Fila,DIALOG_STYLE_MSGBOX,"         -- Fila De Ajuda --","Nгo Hб Ninguem Na Fila de Ajuda","Ok","");
}
}
}
return 
1;

Alguйm me ajuda a ver ser esse comando estб certo.
Reply
#2

Como assim certo? O que vocк deseja fazer com esse comando?
Reply
#3

Bem neste cуdigo vocк deveria fazer uma condicional para verificar se o jogador jб possui uma senha...
Ex:
PHP Code:
CMD:pajuda(playerid,params[])
{
if(
pedirajuda[playerid] == 1) return SendClientMessage(playerid,-1,"Vocк jб possui uma senha");
SendClientMessage(playerid,-1,"Vocк estб na fila /Verfila");
pedirajuda[playerid] = 1;
return 
1;

Й importante ressaltar que quando o player for atendido estб variбvel deve ser zerada.
Creio que este cуdigo nгo vai funcionar perfeitamente :
PHP Code:
CMD:verfila(playerid,params[])
{
new 
str[144];
for(new 
iMAX_PLAYERS; ++i)
{
if(
IsPlayerConnected(i))
{
if(
pedirajuda[i] == 1)
{
new 
name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(str,sizeof(str),"1° - %s \n 2° - %s \n 3° - %s \n 4° - %s \n 5° - %s ",name);
ShowPlayerDialog(playerid,Fila,DIALOG_STYLE_MSGBOX,"           -- Fila De Ajuda --",str,"Ok","");
}else{
ShowPlayerDialog(playerid,Fila,DIALOG_STYLE_MSGBOX,"         -- Fila De Ajuda --","Nгo Hб Ninguem Na Fila de Ajuda","Ok","");
}
}

Vocк estб fazendo o seguinte a cada passagem do looping vai verificar se o id x pediu ajuda caso contrбrio ira mostrar que nгo hб ninguйm na fila de ajuda,vamos supor que o id 1 nгo pediu ajuda mas o id 2 pediu ajuda acho que haveria um conflito aн.
O mais correto a se fazer й declarar uma variбvel externa,e a cada passagem do looping se a condiзгo
pawn Code:
if(pedirajuda[i] == 1)
for verdadeira vocк incrementa mais 1 a variбvel,e no final vocк verifica se a variбvel й igual a 0, caso for ninguйm pediu ajuda.
Ex:
PHP Code:
CMD:verfila(playerid,params[])
{
    new 
str[144],Contadora;
    for(new 
iMAX_PLAYERS; ++i)
    {
        if(
IsPlayerConnected(i))
        {
            if(
pedirajuda[i] == 1)
            {
                
Contadora++;
                new 
name[MAX_PLAYER_NAME];
                
GetPlayerName(playerid,name,sizeof(name));
                
format(str,sizeof(str),"1° - %s \n 2° - %s \n 3° - %s \n 4° - %s \n 5° - %s ",name);
                
ShowPlayerDialog(playerid,Fila,DIALOG_STYLE_MSGBOX,"           -- Fila De Ajuda --",str,"Ok","");
            }
        }        
    }
    if(
Contadora == 0) return ShowPlayerDialog(playerid,Fila,DIALOG_STYLE_MSGBOX,"         -- Fila De Ajuda --","Nгo Hб Ninguem Na Fila de Ajuda","Ok","");
    return 
1;

pawn Code:
format(str,sizeof(str),"1° - %s \n 2° - %s \n 3° - %s \n 4° - %s \n 5° - %s ",name);
Nгo estou lembrado mas creio que vocк devera colocar name de acordo com a quantidade de especificadores (%s).
Reply
#4

Vlw man +rep
Reply
#5

Й bom sempre zerar a "Contadora", sempre й bom zerar !

Code:
new 
    Contadora = 0
;
Code:
new 
    Contadora = 0, 
    str[144]
;
Reply
#6

Pelo que entendi, vocк quer agrupar uma lista dos jogadores certo? Como FerrariL disse, vocк precisa fazer uma condicional, use bolean, true para 1; false 0; jб que os valores atribuнdos utilizam essa mesma lуgica.


PHP Code:
new bool:pedirajuda[MAX_PLAYERS]; 
Quote:

if( pedirajuda[playerid] ) // 1 / true
if( !pedirajuda[playerid] )// 0 / false

Este loop listarб todos os jogadores em ordem de ID que pediram a ajuda naquele comando. Vгo aparecer numerados pela variбvel contadora;

Code:
COMMAND:verfila(playerid, params[]) 
{ 
    new str[144], contadora = 0, xname[23];

    for(new j=GetPlayerPoolSize(),i; i!=j; ++i)
    { 
        if(IsPlayerConnected(i)) 
        { 
            if( pedirajuda[i] )// 
            { 
               	contadora++; 
                
       	        GetPlayerName(i, xname, sizeof(xname));

                format(str,sizeof(str),"%s%i° - %s(ID:%i) \n\r", str, contadora, xname, i);      
            } 
        }         
    } 

    if( !contadora) //0
    { 
    	
    	ShowPlayerDialog(playerid, Fila, DIALOG_STYLE_MSGBOX,"         -- Fila De Ajuda --","Nгo Hб Ninguem Na Fila de Ajuda","Ok",""); 
    }
    else
    { // sucesso

        ShowPlayerDialog(playerid,Fila,DIALOG_STYLE_MSGBOX,"           -- Fila De Ajuda --",str,"Ok",""); 
    }
    return 1; 
}
exemplo:

Code:
1° - Joгo(ID:3)
2° - Rafael(ID:9)
3° - Nando(ID:34)
4° - Pedro(ID:37)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)