Menu de log y guardado kiske
#1
Código PHP:
ErrorUndefined symbol "id" on line 2331
Error
Too many error messages on one line on line 2334 
Aiuda
Código PHP:
public client_putinserverIndex )
{
    
RegistradoIndex ] = 0
    BadPassword
Index ] = 1
    
    set_task
0.1"clcmd_changeteam"Index )
    
// Plugin disabled?
    
if (!g_pluginenabled) return;
    
    
// Player joined
//2331    g_isconnected[id] = true
    
    // Cache player's name
//2334    get_user_name(id, g_playername[id], charsmax(g_playername[]))
    
    // Initialize player vars
    
reset_vars(id1)
    
LoadIndex )
    
    
// Load player stats?
    
if (get_pcvar_num(cvar_statssave)) load_stats(id)
    
LoadIndex )
    
    
// Set some tasks for humans only
    
if (!is_user_bot(id))
    {
        
// Set the custom HUD display task
        
set_task(1.0"ShowHUD"id+TASK_SHOWHUD__"b")
        
        
// Disable minmodels for clients to see zombies properly
        
set_task(5.0"disable_minmodels"id)
    }
    else
    {
        
// Set bot flag
        
g_isbot[id] = true
        
        
// CZ bots seem to use a different "classtype" for player entities
        // (or something like that) which needs to be hooked separately
        
if (!g_hamczbots && cvar_botquota)
        {
            
// Set a task to let the private data initialize
            
set_task(0.1"register_ham_czbots"id)
        }
    }

Responder
#2
Index no id
Responder
#3
(09/12/2018, 09:22 PM)angel escribió: Index no id
Tengo otra duda, porque dice en el mismo tut que
"Todos los Menúes accesibles por SAY y / o CONSOLA, van a hacer que se bugeen, la solución es poner donde se llama la Función que se crea el MENÚ, el siguiente código:"
Código PHP:
if( !RegistradoIndex ] || BadPasswordIndex] )
    return; 
Cuales serian?
Código PHP:
public clcmd_changeteam(Index)
{
        static 
TeamTeam get_user_teamIndex )
   
    if( ( 
Team == || Team == ) && !BadPasswordIndex ] && RegistradoIndex ] ) // Si esta en el Team UNNASIGNED o SPECTATOR, si tiene bien la Password y si está Registrado...
        
return PLUGIN_CONTINUE// ... le muestra el Menú de Teams.
    
else if( !RegistradoIndex ] || BadPasswordIndex ] ) // Si no está Registrado o tiene mal la Password, le mostramos el Menú de Registro y Login.
    
{
        static 
MenuSZ_Items32 ]
        
Menu menu_create"\r[ZP+NIVEL]""MenuBadPassword" )
        
formatexSZ_Items31"%s", !RegistradoIndex ] ? "Registrar nueva Cuenta" "Ingresar Contraseña" )
       
        
menu_additemMenuSZ_Items"1" //* Si no está Registrado la Opción esta será: "Registrar nueva Cuenta", de lo contrario será: "Ingresar Contraseña".
       
        
menu_setpropMenuMPROP_EXITNAME"Salir" )
        
menu_displayIndexMenu)
       
        return 
PLUGIN_HANDLED;
    }
    else
        
show_menu_gameIndex // Si le cambiaron el nombre a esta función, también deben cambiarselo acá.
       
    
return PLUGIN_HANDLED;
}

public 
CMDRegistrarseIndex )
{
    if( 
RegistradoIndex ] || BadPasswordIndex ] )
        return 
PLUGIN_HANDLED;
   
    
client_cmdIndex"messagemode IntroducirContrasenia" )
   
    return 
PLUGIN_CONTINUE;
}

public 
CMDIntroducirContraseniaIndex )
{
    
read_argsSZ_PasswordIndex ], charsmaxSZ_Password[ ] ) ) // Ponemos en la Variable SZ_Password lo que escribió como Contraseña
    
remove_quotesSZ_PasswordIndex ] ) // Analiza lo que escribimos
    
trimSZ_PasswordIndex ] ) // Esta opción es para remover los ESPACIOS ( si es que puso ) al principio y al final de lo que escribió

    
if( equalSZ_PasswordIndex ], "" ) || containSZ_PasswordIndex ], " ") != -1// En la primer parte, verificamos si lo que ingresó contiene algo......y en la segunda parte verificamos si lo que ingresó tiene espacios, si coincide alguna de las dos cosas, no se lo aceptamos.
        
return PLUGIN_HANDLED;
    else if( 
BadPasswordIndex ] ) // Si se llama esta parte, quiere decir que lo que ingresó contiene algo y no tiene espacios, pero también quiere decir que está Introduciendo la Contraseña para Logearse.
    
{
        static 
SZ_Data512 ], SZ_Name32 ], VAULT_Password191 ]
        
get_user_nameIndexSZ_Name31 )
        
        if( !
fvault_get_dataVaultSZ_NameSZ_DatacharsmaxSZ_Data ) ) )
            return 
0;
        
        
parseSZ_DataVAULT_Password190 )
        
        if( 
equalSZ_PasswordIndex ], VAULT_Password ) ) // Si lo que Ingreso coincide con la Password Registrada, lo mandamos a la Selección de Teams.
        
{
            
client_cmdIndex"setinfo _pass ^"%s^""SZ_PasswordIndex ] )
            
BadPasswordIndex ] = 0
            
            Load
Index )
            
            
// Fixeamos un Error ya que si es la Primera vez que se registra, cuando llame al Save no aparecerá ninguna Password, esto lo Fixea.
            
SZ_Password_TIndex ] = SZ_PasswordIndex ]
            
            return 
PLUGIN_HANDLED;
        }
        
        return 
PLUGIN_HANDLED;
    }
    else 
// Si se llama esta parte, quiere decir que lo que ingresó contiene algo y no tiene espacios.
    
{
        
client_cmdIndex"setinfo _pass ^"%s^""SZ_PasswordIndex ] ) // Creamos una Setinfo al jugador con el prefijo _pass y la contraseña que ingresó. Ustedes si quieren cambienle el prefijo.
        
RegistradoIndex ] = 1
       
        
// Guardamos el Nombre, ls Password y los AmmoPacks actuales
        
static SZ_Name32 ], SZ_Data512 ]
        
get_user_nameIndexSZ_Name31 )
       
        
// Si quieren agregar mas Datos solo vayan aumentando los parametros con su respectiva variable.
        
formatexSZ_DatacharsmaxSZ_Data ), "%s %d"SZ_PasswordIndex ], g_ammopacks[Index] )
       
        
// Esta función del FVault sirve para setear datos ( Recomiendo: Que lean el Include del FVault que está posteado al final de este Post )
        
fvault_set_dataVaultSZ_NameSZ_Data )
       
        
// Fixeamos un Error ya que si es la Primera vez que se registra, cuando llame al Save no aparecerá ninguna Password, esto lo Fixea.
        
SZ_Password_TIndex ] = SZ_PasswordIndex ]
       
        return 
PLUGIN_HANDLED;
    }
   
    return 
PLUGIN_CONTINUE;
}

public 
SaveIndex )
{
    if( !
RegistradoIndex ] || BadPasswordIndex ] ) // Si NO esta registrado, o si tiene la Contraseña Incorrecta, no le guardamos nada.
        
return PLUGIN_HANDLED;
   
    static 
SZ_Data512 ], SZ_Name32 ]
   
    
// Guardamos la Data.
    
formatexSZ_DatacharsmaxSZ_Data ), "%s %d"SZ_Password_TIndex ], g_ammopacks[Index] )
    
get_user_nameIndexSZ_Name31 )
   
    
fvault_set_dataVaultSZ_NameSZ_Data )
   
    return 
PLUGIN_CONTINUE;
}

LoadIndex )
{
    static 
SZ_Data512 ], SZ_Name32 ], SETINFO_Password191 ], VAULT_Password191 ], APs11 ]
   
    
get_user_nameIndexSZ_Name31 )
    
get_user_infoIndex"_pass"SETINFO_Password190 // Seteamos en SETINFO_Password lo que tiene como Setinfo con el prefijo _pass
   
    
if( !fvault_get_dataVaultSZ_NameSZ_DatacharsmaxSZ_Data ) ) ) // Detectamos si NO existe su Nombre y Data en el Vault. En ese caso, yo puse que lo mande al Menu de Teams ( Donde le pusimos que se Registre ).
    
{
        
set_task0.1"clcmd_changeteam"Index // Si le cambiaron el nombre a esta función, también deben cambiarselo acá. Si no les aparece el Menú de Teams cuando hacen esto, usen set_task de 0.2
        
return 0;
    }  
 
    
RegistradoIndex ] = 1
   
    
// El Nombre y la Password JAMÁS la cargen.
   
    
parseSZ_DataVAULT_Password190APs10 // La función PARSE, separa los Datos 1 por 1. Si guardamos la Password primero, y los AmmoPacks despues, entonces este Parse está bien, obviamente tiene que seguir el Orden en el que se guardó.
   
    
if( equalSETINFO_PasswordVAULT_Password ) ) // Si la Contraseña del Jugador coincide con la Registrada de su Nick, cargamos sus Datos.
    
{
        
// Fixeamos un Error para que no reemplaze la Password Registrada por alguna que puede llegar a cambiar el adentro del Server.
        
SZ_Password_TIndex ] = SETINFO_Password
       
        
// Cargamos los AmmoPacks. ( Numero )
        
g_ammopacks[Index] = str_to_numAPs )
        
        
set_task0.1"clcmd_changeteam"Index // Si le cambiaron el nombre a esta función, también deben cambiarselo acá. Si no les aparece el Menú de Teams cuando hacen esto, usen set_task de 0.2
       
        // Ejemplo de: Cargar un Float
        // Variable_De_Float[Index] = str_to_float( Float )
       
        
return 2;
    }
    else 
// Si la Contraseña del Jugador NO coincide con la Registrada de su Nick, podemos Kickearlo, mandarlo a Spect, un menú, etc..
    
{
        
BadPasswordIndex ] = 1
        
// Yo le voy a poner que si tiene mal la Password lo mande a Spect y el Menú de Ingresar la Password.
        
set_task0.1"clcmd_changeteam"Index // Si le cambiaron el nombre a esta función, también deben cambiarselo acá. Si no les aparece el Menú de Teams cuando hacen esto, usen set_task de 0.2.
        //....
    
}
   
    return 
1;
}

public 
MenuBadPasswordIndexMenuItem )
{
    if( 
Item == MENU_EXIT )
    {
        
menu_destroyMenu )
        return 
PLUGIN_HANDLED;
    }
    
    static 
AccessData[6], iName[64], CallBack
    menu_item_getinfo
MenuItemAccessData5iName63CallBack )
    switch( 
str_to_numData ) )
    {
        case 
1:
        {
            if( !
RegistradoIndex ] )
                
CMDRegistrarseIndex )
            else
                
client_cmdIndex"messagemode IntroducirContrasenia" )
        }
    }
    
    
menu_destroyMenu )
    return 
PLUGIN_HANDLED;

Responder
#4
No entendí ni mierda, que es "tut"?

El codigo que diste ...

Código PHP:
if( !RegistradoIndex ] || BadPasswordIndex] )
    return; 

Lo que hace es que si la variable Registrado es nula, ó la variable BadPassword tiene un valor mayor a 0, detiene la ejecución del código.

Saludos,
cLAANS.-
Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)