Han ocurrido los siguientes errores:
Warning [2] Undefined variable $unreadreports - Line: 119 - File: global.php(961) : eval()'d code PHP 8.1.27 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/global.php(961) : eval()'d code 119 errorHandler->error_callback
/global.php 961 eval
/printthread.php 16 require_once



MxEMexico
[Tutorial] Crear niveles por frags. - Versión para impresión

+- MxEMexico (https://www.mxemexico.com)
+-- Foro: Extras (https://www.mxemexico.com/forumdisplay.php?fid=162)
+--- Foro: Pawn/Scripting. (https://www.mxemexico.com/forumdisplay.php?fid=100)
+--- Tema: [Tutorial] Crear niveles por frags. (/showthread.php?tid=1694)



Crear niveles por frags. - Sky^^ - 08-26-2017

Algún error o algo que no entiendan me avisan, cada cosa está explicada en el código.

1. Al principio de su plugin o mod( debajo de los includes ):
Código PHP:
#define LevelNext(%1) (%1 * 55 + 20) // Macro para definír cuantos Frags se van a necesitar para cada nivel. Solo deberán modíficar el número 20.
// Es el nivel del usuario multiplicado por 55 mas 20.
// Ejemplo del macro: Si soy nivel 1: 1x55+20 = 75.
#define LevelMax 25 // Esto definirá cual es el nivel máximo.

new const __PREFIX[ ] = "[ SkylarK }"// Prefijo para los mensajes.
new sLevels33 ]; // Variable que almacena los niveles.
new sFrags33 ]; // Variable que almacena los frags.
new cvarFragsUsercvarFragsAdmin// Cvars para registrar cuantos frags ganará un usuario y un admin. 

2. Ahora registraremos el evento DeathMsg y las cvars, en plugin_init ponemos lo siguiente:
Código PHP:
cvarFragsUser register_cvar"sky_frags_user""1" ); // Cantidad de frags que ganará un usuario que no es admin.
cvarFragsAdmin register_cvar"sky_frags_admin""2" ); // Cantidad de frags que ganará un usuario admin.
    
register_event"DeathMsg""fw_Death""a" ); // Registraremos el evento donde se registran los atacantes y las victimas, evento para sumar los frags al atacante. 

3. En client_putinserver, cuando se conecta un usuario le daremos 0 frags y 0 niveles.
Código PHP:
// Su código..
// Nota: en caso de que tengan un sistema de cuentas no les recomiendo que pongan esto.

sLevelsid ] = 0// Al entrar el usuario empezará con 0 niveles.
sFragsid ] = 0// Al entrar el usuario empezará con 0 frags. 


4. Al final o donde ustedes quieran de su plugin o mod, registraremos el evento DeathMsg y la función UpdateLevel.
Código PHP:
public fw_Death( )
{
    new 
iAttacker read_data);
    new 
iVictim read_data);
    new 
iAdmin is_user_adminiAttacker );

    if( 
iVictim == iAttacker || !is_user_aliveiAttacker ) ) return;

    
sFragsiAttacker ] += iAdmin get_pcvar_numcvarFragsAdmin ) : get_pcvar_numcvarFragsUser ); // Sumamos la cantidad de frags dependiendo de las cvars
    // y si el usuario es admin o no.
    
UpdateLeveliAttacker ); // Acá llamará a la public para subir de nivel. Chequear cuantos frags tiene y subir de nivel al usuario.
}

public 
UpdateLevelid )
{
    new 
iUploaded false;

    while( 
sFragsid ] >= LevelNextsLevelsid ] ) && sLevelsid ] < LevelMax // While que chequea si tiene los frags que se necesitan para subir de                                                               // nivel y que el nivel sea menor al nivel máximo, así podrá subir de nivel la persona.
    
{
        ++
sLevelsid ]; // Sumamos un nivel.
        
iUploaded true
    }

    if( 
iUploaded )
    {
        
client_printidprint_chat"%s Felicidades subiste al nivel: %d."__PREFIXsLevelsid ] ); // Un lindo mensajito:3
        
iUploaded false;
    }



Eso es todo, es adaptable a cualquier cosa y sencillo de hacer.
Salu2.