Raised This Month: $32 Target: $400
 8% 

[Ayuda] Switch De flags


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
MexPower
Veteran Member
Join Date: Nov 2012
Old 04-05-2013 , 18:20   [Ayuda] Switch De flags
Reply With Quote #1

Buenas gente estoy aciendo un menu de admin...
PHP Code:
public supermenu(id)
{
    switch(
get_user_flags(id))
    {
    case 
ADMIN_PASSWORDmegamenu(id)
    case 
ADMIN_IMMUNITYvipmenu(id)
    case 
ADMIN_LEVEL_Abasicmenu(id)
    case 
ADMIN_LEVEL_Bfullmenu(id)
}

Creo que se ve claro lo que quiero hacer Solo que lo cale y no me funciono :/
Alguien sabe si se puede aser? o tendria que usar else if
__________________
Allied Modders En Español

Last edited by MexPower; 04-05-2013 at 18:21.
MexPower is offline
YakumoHiratsuhi
Veteran Member
Join Date: Dec 2010
Location: Dreαmlαnd.
Old 04-05-2013 , 19:13   Re: [Ayuda] Switch De flags
Reply With Quote #2

Usa ElseIF y cachea el resultado, fuera de todo eso, cual es ADMIN_PASSWORD?
__________________
"Podra parecer ridiculo o imposible, pero este es el camino que seguimos los verdaderos hombres, si hay un muro en el camino, lo derribamos, si no hay camino, haremos uno, con nuestras propias manos, porque el magma de nuestro corazón arde en llamas."
YakumoHiratsuhi is offline
Send a message via MSN to YakumoHiratsuhi
MexPower
Veteran Member
Join Date: Nov 2012
Old 04-05-2013 , 19:30   Re: [Ayuda] Switch De flags
Reply With Quote #3

Okey
Lo sace del tutorial de Matians
PHP Code:
ADMIN_ALL        0    //Everyone
ADMIN_IMMUNITY        1    //Flag "a", immunity
ADMIN_RESERVATION    2    //Flag "b", reservation
ADMIN_KICK        4    //Flag "c", kick
ADMIN_BAN        8    //Flag "d", ban
ADMIN_SLAY        16    //Flag "e", slay
ADMIN_MAP        32    //Flag "f", map change
ADMIN_CVAR        64    //Flag "g", cvar change
ADMIN_CFG        128    //Flag "h", config execution
ADMIN_CHAT        256    //Flag "i", chat
ADMIN_VOTE        512    //Flag "j", vote
ADMIN_PASSWORD        1024    //Flag "k", sv_password
ADMIN_RCON        2048    //Flag "l", rcon access
ADMIN_LEVEL_A        4096    //Flag "m", custom
ADMIN_LEVEL_B        8192    //Flag "n", custom
ADMIN_LEVEL_C        16384    //Flag "o", custom
ADMIN_LEVEL_D        32768    //Flag "p", custom
ADMIN_LEVEL_E        65536    //Flag "q", custom
ADMIN_LEVEL_F        131072    //Flag "r", custom
ADMIN_LEVEL_G        262144    //Flag "s", custom
ADMIN_LEVEL_H        524288    //Flag "t", custom
ADMIN_MENU        1048576    //Flag "u", menus
ADMIN_ADMIN        16777216    //Flag "y", default admin
ADMIN_USER        33554432    //Flag "z", default user 
__________________
Allied Modders En Español
MexPower is offline
YakumoHiratsuhi
Veteran Member
Join Date: Dec 2010
Location: Dreαmlαnd.
Old 04-05-2013 , 23:00   Re: [Ayuda] Switch De flags
Reply With Quote #4

Negro, eso no es necesario, todos los flags estan definidos en amxconst.inc que viene ya por defecto en el core, no puedes usar switch porque estas sumando los bits y como estos son binarios puedes obtener hasta el numero 4294967296, el cual es imposible de computar por con la sentencia switch, porque da la sumatoria de todos los flags que el usuario tenga, por lo que la tabla de comparación solo queda siempre en 1 solo resultado que no esta computado.

PHP Code:
#define ADMIN_ALL        0    /* everyone */
#define ADMIN_IMMUNITY        (1<<0)    /* flag "a" */
#define ADMIN_RESERVATION    (1<<1)    /* flag "b" */
#define ADMIN_KICK        (1<<2)    /* flag "c" */
#define ADMIN_BAN        (1<<3)    /* flag "d" */
#define ADMIN_SLAY        (1<<4)    /* flag "e" */
#define ADMIN_MAP        (1<<5)    /* flag "f" */
#define ADMIN_CVAR        (1<<6)    /* flag "g" */
#define ADMIN_CFG        (1<<7)    /* flag "h" */
#define ADMIN_CHAT        (1<<8)    /* flag "i" */
#define ADMIN_VOTE        (1<<9)    /* flag "j" */
#define ADMIN_PASSWORD        (1<<10)    /* flag "k" */
#define ADMIN_RCON        (1<<11)    /* flag "l" */
#define ADMIN_LEVEL_A        (1<<12)    /* flag "m" */
#define ADMIN_LEVEL_B        (1<<13)    /* flag "n" */
#define ADMIN_LEVEL_C        (1<<14)    /* flag "o" */
#define ADMIN_LEVEL_D        (1<<15)    /* flag "p" */
#define ADMIN_LEVEL_E        (1<<16)    /* flag "q" */
#define ADMIN_LEVEL_F        (1<<17)    /* flag "r" */
#define ADMIN_LEVEL_G        (1<<18)    /* flag "s" */
#define ADMIN_LEVEL_H        (1<<19)    /* flag "t" */
#define ADMIN_MENU        (1<<20)    /* flag "u" */
#define ADMIN_ADMIN        (1<<24)    /* flag "y" */
#define ADMIN_USER        (1<<25)    /* flag "z" */ 
__________________
"Podra parecer ridiculo o imposible, pero este es el camino que seguimos los verdaderos hombres, si hay un muro en el camino, lo derribamos, si no hay camino, haremos uno, con nuestras propias manos, porque el magma de nuestro corazón arde en llamas."

Last edited by YakumoHiratsuhi; 04-05-2013 at 23:09.
YakumoHiratsuhi is offline
Send a message via MSN to YakumoHiratsuhi
shinoda
Spanish Moderator
Join Date: Nov 2009
Location: ag_crossfire
Old 04-06-2013 , 00:13   Re: [Ayuda] Switch De flags
Reply With Quote #5

Quote:
Originally Posted by MexPower View Post
Buenas gente estoy aciendo un menu de admin...
PHP Code:
public supermenu(id)
{
    switch(
get_user_flags(id))
    {
    case 
ADMIN_PASSWORDmegamenu(id)
    case 
ADMIN_IMMUNITYvipmenu(id)
    case 
ADMIN_LEVEL_Abasicmenu(id)
    case 
ADMIN_LEVEL_Bfullmenu(id)
}

Creo que se ve claro lo que quiero hacer Solo que lo cale y no me funciono :/
Alguien sabe si se puede aser? o tendria que usar else if
Depende de lo que quieres hacer.

1. Para saber si el jugador tiene algún flag, usa "if - else if" con "&"
2. Para saber si el jugador tiene el flag exacto, puede usar "switch" o "=="
__________________
Oh hell no this shit is awesome !!!
shinoda is offline
Send a message via MSN to shinoda Send a message via Skype™ to shinoda
YakumoHiratsuhi
Veteran Member
Join Date: Dec 2010
Location: Dreαmlαnd.
Old 04-06-2013 , 18:18   Re: [Ayuda] Switch De flags
Reply With Quote #6

Quote:
Originally Posted by shinoda View Post
Depende de lo que quieres hacer.

1. Para saber si el jugador tiene algún flag, usa "if - else if" con "&"
2. Para saber si el jugador tiene el flag exacto, puede usar "switch" o "=="
Para el primero puedes usar esto
PHP Code:
func(id)
{
    new 
flagies ADMIN_BAN|ADMIN_KICK|ADMIN_RESERVATIONplayerflags get_user_flags(id)
    
    if(
playerflags flagies)
        
// Esta sentencia dara true si tiene esas 3 flags

Lo segundo no se como hacerlo, deja que shinoda te oriente.
__________________
"Podra parecer ridiculo o imposible, pero este es el camino que seguimos los verdaderos hombres, si hay un muro en el camino, lo derribamos, si no hay camino, haremos uno, con nuestras propias manos, porque el magma de nuestro corazón arde en llamas."

Last edited by YakumoHiratsuhi; 04-06-2013 at 18:18.
YakumoHiratsuhi is offline
Send a message via MSN to YakumoHiratsuhi
Roccoxx
AlliedModders Donor
Join Date: Jan 2012
Location: Argentina
Old 04-06-2013 , 18:38   Re: [Ayuda] Switch De flags
Reply With Quote #7

playerflags no seria mejor que fuera static?
__________________
Tutorials here (Spanish)

Like as another Pijudo said: "Tired and retired"
Roccoxx is offline
Send a message via MSN to Roccoxx
lucas_7_94
Leche Loco
Join Date: Mar 2009
Location: Argentina
Old 04-06-2013 , 19:18   Re: [Ayuda] Switch De flags
Reply With Quote #8

Estamos hablando de que es una funcion que se llama durante un periodo largo , por lo tanto esta correcto.
__________________
ATWWMH - MiniDuels
Madness is like gravity, just need a little push.
lucas_7_94 is offline
Send a message via Skype™ to lucas_7_94
Roccoxx
AlliedModders Donor
Join Date: Jan 2012
Location: Argentina
Old 04-06-2013 , 19:28   Re: [Ayuda] Switch De flags
Reply With Quote #9

entonces ya que estamos flagies tambien e.e
__________________
Tutorials here (Spanish)

Like as another Pijudo said: "Tired and retired"
Roccoxx is offline
Send a message via MSN to Roccoxx
lucas_7_94
Leche Loco
Join Date: Mar 2009
Location: Argentina
Old 04-06-2013 , 19:30   Re: [Ayuda] Switch De flags
Reply With Quote #10

Me refiero a que el codigo que posteo con new esta correcto.
__________________
ATWWMH - MiniDuels
Madness is like gravity, just need a little push.
lucas_7_94 is offline
Send a message via Skype™ to lucas_7_94
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 23:40.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode