ayuda stock jugadoradmin
#1

Buenas, tratando de hacer una stock para tratar de recortar codigo, me realize esta stock que verifica si el administrador, el problema es que siempre deja utilizar el comando aunque no sea admin a pesar de que sale el mensaje.

PHP код:
stock JugadorAdmin(sJugadorID,sNivel,bool:MsgAuto=true)
{
    if(
infJugador[sJugadorID][Admin] >= sNivel
        return 
true;
    if(
MsgAuto==true
    return 
SendClientMsg(sJugadorID,COLOR_FRED,"ERROR",sprintf("{FFFFFF}Necesitas ser administrador nivel {BBFF8D}%d{FFFFFF} para utilizar este comando.",sNivel));
}
// EJEMPLO COMANDO
CMD:pjetpack(playerid,params[])
{
    if(
JugadorAdmin(playerid,2))
    {
        new 
p_jid;
        if(
sscanf(params,sprintf("R",p_jid))
            return 
ModoUso("Modo de uso: /pjetpack [JugadorID/Nombre]");
        if(!
IsPlayerConnected(p_jid))
            return 
SendClientMsg(playerid,COLOR_FRED,"ERROR","El jugador no esta conectado.");
        
SetPlayerSpecialAction(p_jid,SPECIAL_ACTION_USEJETPACK);
        if(
p_jid != playeridSendClientMsg(playerid,COLOR_ANNADMIN,"",sprintf("Has equipado con una jetpack a %s.",jNombre(p_jid))),SendClientMsg(playerid,COLOR_ANNADMIN,"",sprintf("Administrador %s te ha equipado con un jetpack.",jNombre(playerid)));
        if(
p_jid == playeridSendClientMsg(playerid,COLOR_ANNADMIN,"","Te has equipado con una jetpacket. ЎNO ABUSES!");
    }
    return 
true;

Reply
#2

Lo hice de otra manera y me funciono, pero si hay una manera mas eficiente & optimizada, avisenme.
PHP код:
stock JugadorAdmin(sJugadorID,sNivel,bool:MsgAuto=true)
{
    ForEach(
aMAX_PLAYERS)
    {
        if(
== sJugadorID
        {
            if(
infJugador[a][Admin] >= sNivel)
                return 
true;
            if(
MsgAuto == true && infJugador[a][Admin] < sNivel)
            {
                
SendClientMsg(sJugadorID,COLOR_FRED,"ERROR",sprintf("{FFFFFF}Necesitas ser administrador nivel {BBFF8D}%d{FFFFFF} para utilizar este comando.",sNivel));
            }

        }
    }
    return 
false;

Reply
#3

Que mala costumbre de retornar funciones

PHP код:
stock JugadorAdmin(sJugadorID,sNivel,bool:MsgAuto=true) {
    if(
infJugador[sJugadorID][Admin] >= sNivel)
        return 
true//Retornamos verdadero.. (el jugador es admin)
    
if(MsgAuto==true)
        
SendClientMsg(sJugadorID,COLOR_FRED,"ERROR",sprintf("{FFFFFF}Necesitas ser administrador nivel {BBFF8D}%d{FFFFFF} para utilizar este comando.",sNivel));
    return 
false//Retornamos falso

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)