SA-MP Forums Archive
ayuda stock jugadoradmin - 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: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: ayuda stock jugadoradmin (/showthread.php?tid=614445)



ayuda stock jugadoradmin - mcreed - 08.08.2016

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;




Respuesta: ayuda stock jugadoradmin - mcreed - 08.08.2016

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;




Re: ayuda stock jugadoradmin - Daniel-92 - 08.08.2016

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