[Pedido] Comando de convidar player
#1

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
Reply
#2

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.
Reply
#3

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? '-'
Reply
#4

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
Reply
#5

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
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)