#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 ):
2. Ahora registraremos el evento DeathMsg y las cvars, en plugin_init ponemos lo siguiente:
3. En client_putinserver, cuando se conecta un usuario le daremos 0 frags y 0 niveles.
4. Al final o donde ustedes quieran de su plugin o mod, registraremos el evento DeathMsg y la función UpdateLevel.
Eso es todo, es adaptable a cualquier cosa y sencillo de hacer.
Salu2.
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 sLevels[ 33 ]; // Variable que almacena los niveles.
new sFrags[ 33 ]; // Variable que almacena los frags.
new cvarFragsUser, cvarFragsAdmin; // 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.
sLevels[ id ] = 0; // Al entrar el usuario empezará con 0 niveles.
sFrags[ id ] = 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( 1 );
new iVictim = read_data( 2 );
new iAdmin = is_user_admin( iAttacker );
if( iVictim == iAttacker || !is_user_alive( iAttacker ) ) return;
sFrags[ iAttacker ] += iAdmin ? get_pcvar_num( cvarFragsAdmin ) : get_pcvar_num( cvarFragsUser ); // Sumamos la cantidad de frags dependiendo de las cvars
// y si el usuario es admin o no.
UpdateLevel( iAttacker ); // Acá llamará a la public para subir de nivel. Chequear cuantos frags tiene y subir de nivel al usuario.
}
public UpdateLevel( id )
{
new iUploaded = false;
while( sFrags[ id ] >= LevelNext( sLevels[ id ] ) && sLevels[ id ] < 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.
{
++sLevels[ id ]; // Sumamos un nivel.
iUploaded = true;
}
if( iUploaded )
{
client_print( id, print_chat, "%s Felicidades subiste al nivel: %d.", __PREFIX, sLevels[ id ] ); // Un lindo mensajito:3
iUploaded = false;
}
}
Eso es todo, es adaptable a cualquier cosa y sencillo de hacer.
Salu2.