SA-MP Forums Archive
[Pedido] Comando de convidar player - 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: [Pedido] Comando de convidar player (/showthread.php?tid=628473)



Comando de convidar player - Fix3r - 10.02.2017

To querendo um comando que faзa um convite aos players para vir ao local que eu estou.
Exemplo:

/convidartodos

//Na tela do player

O admin **** estб convidado todos do servidor para ir ao local
/aceitar conviteadm ou /rejeitar conviteadm


Re: Comando de convidar player - 1sbedx - 10.02.2017

PHP код:
CMD:convidartodos(playeridparams[])
{
    new 
        
Float:x,
        
Float:y,
        
Float:z;
    
GetPlayerPos(playeridxyz);
    for (new 
0MAX_PLAYERS++) if (!GetPVarFloat(i"AdmX")) {
        
SendClientMessage(i, -1"Um Administrador estб convidado todos do servidor para ir atй ele.");
        
SetPVarFloat(i"AdmX"x);
        
SetPVarFloat(i"AdmY"y);
        
SetPVarFloat(i"AdmZ"z);
    }
    return 
1;
}
CMD:aceitar(playeridparams[])
{
    if (!
GetPVarFloat(playerid"AdmX"))
        return 
1;
    
SetPlayerPos(playeridGetPVarFloat(playerid"AdmX"), GetPVarFloat(playerid"AdmY"), GetPVarFloat(playerid"AdmZ"));
    
DeletePVar(playerid"AdmX"); 
    
DeletePVar(playerid"AdmY");
    
DeletePVar(playerid"AdmZ");    
    return 
1;    
}
CMD:negar(playeridparams[])
{
    if (!
GetPVarFloat(playerid"AdmX"))
        return 
1;
    
DeletePVar(playerid"AdmX"); 
    
DeletePVar(playerid"AdmY");
    
DeletePVar(playerid"AdmZ");
    return 
1;    
}
CMD:cancelarconvite(playeridparams[])
{
    for (new 
0MAX_PLAYERS++) if (GetPVarFloat(i"AdmX")) {
        
DeletePVar(i"AdmX"); 
        
DeletePVar(i"AdmY");
        
DeletePVar(i"AdmZ");
    }
    return 
1;    

Nгo sei se vai funcionar, fica como base.


Re: Comando de convidar player - Fix3r - 10.02.2017

O comando estб funcionando super bem.
Mas tem um probleminha.
Quando eu mando /convidartodos
E em seguida /cancelarconvite
Aqueles que nгo mandaram /aceitar
Pode mandar novamente o comando /aceitar mesmo depois do comando /cancelarconvite.

Serб que poderia me ajudar? '-'


Re: Comando de convidar player - TheBob - 11.02.2017

Com base no cуdigo do amigo acima:
Код:
new bool:CANCELADO;
CMD:convidartodos(playerid, params[]) 
{ 
    new  
        Float:x, 
        Float:y, 
        Float:z; 

    GetPlayerPos(playerid, x, y, z); 

    for (new i = 0; i < MAX_PLAYERS; i ++) if (!GetPVarFloat(i, "AdmX")) { 
        SendClientMessage(i, -1, "Um Administrador estб convidado todos do servidor para ir atй ele."); 

        SetPVarFloat(i, "AdmX", x); 
        SetPVarFloat(i, "AdmY", y); 
        SetPVarFloat(i, "AdmZ", z); 
        CANCELADO = false;
    } 
    return 1; 
} 

CMD:aceitar(playerid, params[]) 
{ 
    if(CANCELADO == true) return SendClientMessage(playerid, -1, "Convites cancelados pelo Admin");
    if (!GetPVarFloat(playerid, "AdmX")) 
        return 1; 

    SetPlayerPos(playerid, GetPVarFloat(playerid, "AdmX"), GetPVarFloat(playerid, "AdmY"), GetPVarFloat(playerid, "AdmZ")); 

    DeletePVar(playerid, "AdmX");  
    DeletePVar(playerid, "AdmY"); 
    DeletePVar(playerid, "AdmZ");     
    return 1;     
} 

CMD:negar(playerid, params[]) 
{ 
    if (!GetPVarFloat(playerid, "AdmX")) 
        return 1; 

    DeletePVar(playerid, "AdmX");  
    DeletePVar(playerid, "AdmY"); 
    DeletePVar(playerid, "AdmZ"); 
    return 1;     
} 

CMD:cancelarconvite(playerid, params[]) 
{ 
    for (new i = 0; i < MAX_PLAYERS; i ++) if (GetPVarFloat(i, "AdmX")) { 
        DeletePVar(i, "AdmX");  
        DeletePVar(i, "AdmY"); 
        DeletePVar(i, "AdmZ"); 
        CANCELADO = true;
    } 
    return 1;     
}
vc pode fazer uma variavel para guardar valores booleanos que sгo True e False.
Algoritimo: se a bool cancelado, estiver true. Ngm poderб mais dar o comando


Re: Comando de convidar player - Fix3r - 11.02.2017

Quote:
Originally Posted by TheBob
Посмотреть сообщение
Com base no cуdigo do amigo acima:
Код:
new bool:CANCELADO;
CMD:convidartodos(playerid, params[]) 
{ 
    new  
        Float:x, 
        Float:y, 
        Float:z; 

    GetPlayerPos(playerid, x, y, z); 

    for (new i = 0; i < MAX_PLAYERS; i ++) if (!GetPVarFloat(i, "AdmX")) { 
        SendClientMessage(i, -1, "Um Administrador estб convidado todos do servidor para ir atй ele."); 

        SetPVarFloat(i, "AdmX", x); 
        SetPVarFloat(i, "AdmY", y); 
        SetPVarFloat(i, "AdmZ", z); 
        CANCELADO = false;
    } 
    return 1; 
} 

CMD:aceitar(playerid, params[]) 
{ 
    if(CANCELADO == true) return SendClientMessage(playerid, -1, "Convites cancelados pelo Admin");
    if (!GetPVarFloat(playerid, "AdmX")) 
        return 1; 

    SetPlayerPos(playerid, GetPVarFloat(playerid, "AdmX"), GetPVarFloat(playerid, "AdmY"), GetPVarFloat(playerid, "AdmZ")); 

    DeletePVar(playerid, "AdmX");  
    DeletePVar(playerid, "AdmY"); 
    DeletePVar(playerid, "AdmZ");     
    return 1;     
} 

CMD:negar(playerid, params[]) 
{ 
    if (!GetPVarFloat(playerid, "AdmX")) 
        return 1; 

    DeletePVar(playerid, "AdmX");  
    DeletePVar(playerid, "AdmY"); 
    DeletePVar(playerid, "AdmZ"); 
    return 1;     
} 

CMD:cancelarconvite(playerid, params[]) 
{ 
    for (new i = 0; i < MAX_PLAYERS; i ++) if (GetPVarFloat(i, "AdmX")) { 
        DeletePVar(i, "AdmX");  
        DeletePVar(i, "AdmY"); 
        DeletePVar(i, "AdmZ"); 
        CANCELADO = true;
    } 
    return 1;     
}
vc pode fazer uma variavel para guardar valores booleanos que sгo True e False.
Algoritimo: se a bool cancelado, estiver true. Ngm poderб mais dar o comando
Cara vocк nгo sabe o quanto estou agradecido XD
Achei que iria precisar de um TextDraw Clicбvel... Valeu Mesmo