Welcome Soldier.



[Tutorial] Crear niveles por frags.

Sky^^ Sin conexión
User
#1
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.
[Imagen: 76561198095047868.png]

Perfil de amxmodx-es: Skylar
Responder





Usuarios navegando en este tema:
2 invitado(s)



Sobre M X E M E X I C O

Comunidad MxE © 2020 - La mejorar comunidad de Counter Strike 1.6 .