[TUT] Como crear sistema de niveles
#1
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
Responder
#2
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
[TUT] Carnage

Fight

"El limite de los backdoors de gente q sabe programar como nostros lo impone nuestra maldad interior y creeme q soy muy malo en el interior"

Anónimo
Responder
#3
No le veo el sentido al tutorial.
Por que checkeas si esta conectado con una variable de 33 celdas?
Responder
#4
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
Free agent - Vendo plugins, mods o apps del foro IPB (Invision community)
Contactarme vía Discord >>> AtselTV#8202
Responder
#5
mongito100

El php no anda :S y ahora estoy viendo eso que me dijiste pero igual ya lo arregle Gracias.
Responder
#6
Gracias por el pugluin.
[Imagen: jrXxqRT.png]
*Maper Del Cstrike* - *Estudiante De Sistema*
(03/09/2018, 08:32 PM)Skylar escribió: Obviamente, no va a hablar con super pro para que le mueva el thread
(04/01/2019, 05:12 PM)Pan Bimbo (? escribió: QUE HICISTE QUE??????? YO QUERIA LA PLACA DE VIDEO PORQUE LA TIRASTE CTM
(15/01/2019, 04:08 AM)FreDDy escribió:
(15/01/2019, 03:45 AM)Hernandez escribió: Qué más dan las palabras si a donde vayas están en tetas protestando sin sentido

No todas salen en tetas y no todas protestan sin sentido. Estás generalizando algo que sólo unas pocas lo hacen a diferencia de las muchas que realmente tienen un motivo para protestar.
(17/01/2019, 12:34 PM)totopizza escribió: el orden de los factores no altera el producto xD
(23/01/2019, 01:10 AM)GoldenCosta escribió:
Cita:E visto que este ZP , ESTA AQUI EN EL FORO PERO NO ES EL ORIGINAL POR QUE? , LE FALTAN MILES DE COSAS ESTA BUGEADO , LE FALTAN CÓDIGOS NI SE IMAGINAN , BUENO EL MOD ESTE SE VENDE POR 70 DOLARES , ACEPTO PAYPAL Y EN PESOS CHILENOS $42.584
ya esta publicado.... y 70 us en arg son 2625,35 pesos... estas loco con esa guita neel mantiene el foro por 2 años
(23/01/2019, 01:17 AM)Skylar escribió:
(22/01/2019, 10:30 PM)el_juan_fail escribió:
(22/01/2019, 10:03 AM)Neeeeeeeeeel.- escribió: Por favor subir las cosas al foro y no links a blogs externos. Solamente en caso de que haya recursos que no se pudiesen subir por un tema de tamaño, poenr un link de descarga directo (tipo mega) de los recursos y subir los plugins y demás archivos livianos al foro.

deberia ponerle en un link mediante el mediafire o mega o link externo lo que sea pero no es bueno dejar cosa agregada sin descargar solo por el blog no se puede se puede bajar el recurso o que haya sido creado disculpa neeeeel. estaba leyendose las reglas u.uMario

Dijiste lo mismo que dijo Neeel!
(27/02/2019, 08:00 PM)Sugisaki escribió:
(27/02/2019, 05:37 PM)Pan Bimbo (? escribió:
(27/02/2019, 12:06 AM)luxor xD escribió: Hola, si precacheo algo en un plugin, no es necesario precachearlo en otro plugin?

Si yo cargo una caja en un camion, mi amigo puede cargar la MISMA caja en el camion?, y no porque ya esta cargada.
[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
(14/03/2019, 10:26 PM)KrR10VnZl escribió: en Venezuela aprendes a ser desde bombas molotov hasta velas, es algo así como supervivencia al desnudo jaja
(18/04/2019, 11:04 PM)Jose88 escribió:
(18/04/2019, 09:55 PM)Hypnotize escribió: arriba marica

papa me va perdonar pero aquí no sale ningún download. solo sale esto

Código PHP:
PDNiños Ratas eviten sacar el autor jaja.
REMOVIDO POR TUTOR Y SLOWHACK
(21/04/2019, 09:38 AM)SHENK! =D escribió: ASDASD

Si nos organizamos cojemos todos.
(11/08/2019, 05:11 PM)Cr3470r escribió: Todo Software es crackeable ... No importa cuantas validaciones hagan, la ventaja siempre la tenemos nosotros ...
(28/07/2015, 09:34 PM)Nazi.- escribió: :ohgodwhy buen aporte

PD: situación sentimental: Sin internetOh god why

Sigue así Proud

(28/02/2020, 12:23 AM)Skylar escribió:
(27/02/2020, 11:28 PM)4evergaming escribió: Ya me puse como autor y lo subi a mi empresa


Abrazos

FIX
Responder
#7
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).
Responder
#8
(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
Responder
#9
Excelente!
[Imagen: banner_560x95.png?random=616875]

-..SVL | Programando mi Zombie Plague..-
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)