Allied Modders en español
[TUT] Como crear sistema de niveles - Versión para impresión

+- Allied Modders en español (https://amxmodx-es.com)
+-- Foro: AMX Mod X - Scripting (https://amxmodx-es.com/Forum-AMX-Mod-X-Scripting)
+--- Foro: Tutoriales / Guias (https://amxmodx-es.com/Forum-Tutoriales-Guias)
+--- Tema: [TUT] Como crear sistema de niveles (/Thread-TUT-Como-crear-sistema-de-niveles)



[TUT] Como crear sistema de niveles - AgusTrape - 28/05/2014

Hola, este es mi primer tutorial y espero que les guste
Les dejo un tuto de como hacer un Sistema de Niveles
Tienen que tener una base en scripting de pawn.

Creo que esta bastante bien explicado, cualquier duda consulten.

Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <colorchat>

#define siguiente_nivel(%1) ( ( %1 * 30 * %1 ) ) // Ecuacion matematica esto lo pueden modificar ustedes
new niveles33 // Aca estamos creando la variable (Base) de los niveles
new experiencia33 // Aca creamos la experienca de los niveles
new conectado[15// Aca verificaremos si el jugador esta conectado
new max_level// Aca registramos el nivel maximo mas abajo

public plugin_init()
{
    
register_plugin("Sistema de niveles""0.1""AgusTrape")
    
RegisterHamHam_Killed"player""Ham_Muertos"// Registramos el evento cuando matamos a un jugador
    
max_level register_cvar("nivel_maximo""10"// Ese 10 es el nivel maximo si quieren mas se lo suben
}

public 
client_putinserver(id)
{
    
nivelesid ] = // Cuando se conecta el jugador hacemos que su nivel sea 1
    
experienciaid ] = // Cuando se conecta el jugador hacemos que su experiencia sea 0
    
conectadoid ] = // Si el jugador esta conectado "1"
}

public 
client_disconnect(id)
{
    
conectadoid ] = // Si el jugador esta desconectado "0"
}

public 
Ham_Muertos victimattacker )
{
    if(!
conectadovictim ] || !conectadoattacker ] || victim == attacker || get_user_teamvictim ) == get_user_team attacker )) return;
    
    
experienciaattacker ] + 20 >= get_pcvar_num(max_level// Cuando matamos a un jugador , nos sumamos 20 de experiencia
    
checkear_nivelattacker // Checkeamos el nivel asi el jugador puede subir de nivel
}

public 
checkear_nivel(id)
{
    while( 
experienciaid ] >= siguiente_nivelnivelesid ] )) // Detectamos la experiencia
    
{
        
nivelesid ] ++ // Le sumamos 1 nivel
        
experienciaid ] = // Le volvemos la experiencia a 0
    
}
                
ColorChat(idGREEN"[SERVER] ^x01Subiste al nivel ^x04[%d]"nivelesid ]) //Le mandamos un mensaje


Alguien me dice como lo pongo en php ? :S soy nuevo en este foro


RE: [TUT] Como crear sistema de niveles - mongito100 - 28/05/2014

Ya hay como 20mil tut de esto primero pone bien el code en php es [php][ /php] sin el espacio
1)no verifica q sea valido la víctima y atacante por lo cual podes desfasar el vector
2)esto esta mal experiencia[ attacker ] + 20
3)saca el msj del while


RE: [TUT] Como crear sistema de niveles - h34s - 28/05/2014

No le veo el sentido al tutorial.
Por que checkeas si esta conectado con una variable de 33 celdas?


RE: [TUT] Como crear sistema de niveles - CSAxel - 28/05/2014

Podrías hacer el Checkeio así
Código PHP:
public Checkear_Nivel(idexp)
{
    
experiencia[id] += exp
    
    
static nivelnivel 0
    
while (experiencia[id] >= siguiente_nivel(niveles[id]))
    {
        
niveles[id]++
        
nivel++
        
experiencia[id] = 0
    
}
    if (
nivelclient_print(idprint_center"Subiste %d nivel"nivelnivel "es" "")

Y cuando checkeas y das la xp pones asi
Código PHP:
Checkear_Nivel(id15
15 sería la cantidad de experiencia que das en vez de usar experiencia[id] += 15


RE: [TUT] Como crear sistema de niveles - AgusTrape - 28/05/2014

mongito100

El php no anda :S y ahora estoy viendo eso que me dijiste pero igual ya lo arregle Gracias.


RE: [TUT] Como crear sistema de niveles - El pirucho XP-007 - 19/01/2018

Gracias por el pugluin.


RE: [TUT] Como crear sistema de niveles - Juan_peripuchin - 26/12/2018

tengo un pequeño problema con el plugins siguiendo paso al final me tira un error solo 1 es el colorchat
[/Codigo php]
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <hamsandwich>
#include <ColorChat>

#define siguiente_nivel(%1) ( ( %1 * 30 * %1 ) ) // Ecuacion matematica esto lo pueden modificar ustedes
new niveles[ 33 ] // Aca estamos creando la variable (Base) de los niveles
new experiencia[ 33 ] // Aca creamos la experienca de los niveles
new conectado[15] // Aca verificaremos si el jugador esta conectado
new max_level; // Aca registramos el nivel maximo mas abajo

public plugin_init()
{
register_plugin("Sistema de niveles", "0.1", "AgusTrape")
RegisterHam( Ham_Killed, "player", "Ham_Muertos") // Registramos el evento cuando matamos a un jugador
max_level = register_cvar("nivel_maximo", "10") // Ese 10 es el nivel maximo si quieren mas se lo suben
}

public client_putinserver(id)
{
niveles[ id ] = 1 // Cuando se conecta el jugador hacemos que su nivel sea 1
experiencia[ id ] = 0 // Cuando se conecta el jugador hacemos que su experiencia sea 0
conectado[ id ] = 1 // Si el jugador esta conectado "1"
}

public client_disconnect(id)
{
conectado[ id ] = 0 // Si el jugador esta desconectado "0"
}

public Ham_Muertos ( victim, attacker )
{
if(!conectado[ victim ] || !conectado[ attacker ] || victim == attacker || get_user_team( victim ) == get_user_team ( attacker )) return;

experiencia[ attacker ] + 20 >= get_pcvar_num(max_level) // Cuando matamos a un jugador , nos sumamos 20 de experiencia
checkear_nivel( attacker ) // Checkeamos el nivel asi el jugador puede subir de nivel
}

public checkear_nivel(id)
{
while( experiencia[ id ] >= siguiente_nivel( niveles[ id ] )) // Detectamos la experiencia
{
niveles[ id ] ++ // Le sumamos 1 nivel
experiencia[ id ] = 0 // Le volvemos la experiencia a 0
}
ColorChat(id, GREEN, "[SERVER] ^x01Subiste al nivel ^x04[%d]", niveles[ id ]) //Le mandamos un mensaje
}
______________________________________________________________________
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2013 ITB CompuPhase, AMX Mod X Team

Error: Cannot read from file: "ColorChat" on line 5

Compilation aborted.
1 Error.
Could not locate output file C:\Users\usuario\Desktop\Sitema_niveles.amx (compile failed).


RE: [TUT] Como crear sistema de niveles - GoldenCosta - 26/12/2018

(26/12/2018, 12:20 PM)Juan_peripuchin escribió: tengo un pequeño problema con el plugins siguiendo paso al final me tira un error solo 1 es el colorchat
[/Codigo php]
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <hamsandwich>
#include <ColorChat>

#define siguiente_nivel(%1) ( ( %1 * 30 * %1 ) ) // Ecuacion matematica esto lo pueden modificar ustedes
new niveles[ 33 ] // Aca estamos creando la variable (Base) de los niveles
new experiencia[ 33 ] // Aca creamos la experienca de los niveles
new conectado[15] // Aca verificaremos si el jugador esta conectado
new max_level; // Aca registramos el nivel maximo mas abajo

public plugin_init()
{
register_plugin("Sistema de niveles", "0.1", "AgusTrape")
RegisterHam( Ham_Killed, "player", "Ham_Muertos") // Registramos el evento cuando matamos a un jugador
max_level = register_cvar("nivel_maximo", "10") // Ese 10 es el nivel maximo si quieren mas se lo suben
}

public client_putinserver(id)
{
niveles[ id ] = 1 // Cuando se conecta el jugador hacemos que su nivel sea 1
experiencia[ id ] = 0 // Cuando se conecta el jugador hacemos que su experiencia sea 0
conectado[ id ] = 1 // Si el jugador esta conectado "1"
}

public client_disconnect(id)
{
conectado[ id ] = 0 // Si el jugador esta desconectado "0"
}

public Ham_Muertos ( victim, attacker )
{
if(!conectado[ victim ] || !conectado[ attacker ] || victim == attacker || get_user_team( victim ) == get_user_team ( attacker )) return;

experiencia[ attacker ] + 20 >= get_pcvar_num(max_level) // Cuando matamos a un jugador , nos sumamos 20 de experiencia
checkear_nivel( attacker ) // Checkeamos el nivel asi el jugador puede subir de nivel
}

public checkear_nivel(id)
{
while( experiencia[ id ] >= siguiente_nivel( niveles[ id ] )) // Detectamos la experiencia
{
niveles[ id ] ++ // Le sumamos 1 nivel
experiencia[ id ] = 0 // Le volvemos la experiencia a 0
}
ColorChat(id, GREEN, "[SERVER] ^x01Subiste al nivel ^x04[%d]", niveles[ id ]) //Le mandamos un mensaje
}
______________________________________________________________________
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2013 ITB CompuPhase, AMX Mod X Team

Error: Cannot read from file: "ColorChat" on line 5

Compilation aborted.
1 Error.
Could not locate output file C:\Users\usuario\Desktop\Sitema_niveles.amx (compile failed).

por que tu #include <ColorChat> no es la misma, abrila y modificala o usa los nombres que trae

y te recomiendo que en vez de revivir crees un thread en scriptig explicando tu problema para ayudarte


RE: [TUT] Como crear sistema de niveles - [SVL]Kevin - 06/01/2020

Excelente!