Abril 30, 2016, 12:22:38 PM Ultima modificación: Enero 14, 2019, 01:42:03 AM por Marth
Autor: Marth
Versión:  :GMS: (aunque deberia servir para cualquier versión)
Descripción: Determinar cuanta experiencia ganara tu personaje al derrotar un enemigo y subir de nivel en caso de haber acumulado la cantidad suficiente.

Os muestro aqui un script para determinar cuanta experiencia ganaría un personaje, siguiendo el estilo de subida de nivel de juegos como Paper Mario o Fire Emblem.
La variable poder indica el nivel de tu personaje. other.poder es el nivel del enemigo abatido.
Se le pasa al script 2 argumentos: La experiencia base que debe proporcionarse a tu personaje y un factor. Ese factor influira en cuanta experiencia extra ganas o pierdes segun si el nivel de tu rival era menor que el tuyo, o al reves.
Por ultimo, tenemos la variable siguiente, que indica el límite de experiencia que hay que rebasar para subir un nivel.
En este script, como minimo siempre ganaras 1 punto, y como máximo tendras la experiencia exacta para una subida de nivel.

[gml]
i=argument0+(other.poder-poder)*argument1
if(i<1) i=1
else if(i>siguiente) i=siguiente
experiencia+=i

if(experiencia>=siguiente){
experiencia-=siguiente // Reseteo del contador de experiencia.
poder++

/* Las mejoras de atributos que quieras añadir */
}[/gml]

amigo me enseñarias a usar eso para un personaje mio.. que por ejemplo a nivel 1 haga 200 de daño pero que a nivel 2 haga 245.. algo asi amigo porfa
Reyko500

#2 Septiembre 30, 2017, 03:47:31 PM Ultima modificación: Septiembre 30, 2017, 03:50:55 PM por Marth
Cita de: Reyko500 en Septiembre 30, 2017, 02:52:04 AM
amigo me enseñarias a usar eso para un personaje mio.. que por ejemplo a nivel 1 haga 200 de daño pero que a nivel 2 haga 245.. algo asi amigo porfa

Ya eso depende de como se monte las estadisticas cada juego, por lo que deberias mostrarme el codigo de tu juego (Pokemon y Fire Emblem, por ejemplo, tienen sistemas de mejora de estadisticas muy opuestos), pero por lo que entiendo de tu ejemplo, veo que cada parametro tiene 3 partes:
Inicio: El valor de las estadisticas al inicio, en el nivel 1.
Crecimiento: Cuanto ganara tras cada subida de nivel.
Total: La cantidad actual del personaje.


Visto esto, en tu ejemplo, la estadistica de ataque es 200 en nivel 1, y su crecimiento es 45 (cifras bastante bestias, debo admitir).
Llamaremos respectivamente "ataque" y "creAtaque" a tu ataque total y al crecimiento de tu ataque.

Esto ocurriria en tu ejemplo:
i=argument0+(other.poder-poder)*argument1
if(i<1) i=1
else if(i>siguiente) i=siguiente
experiencia+=i

if(experiencia>=siguiente){
experiencia-=siguiente // Reseteo del contador de experiencia.
poder++

ataque+=creAtaque
}

gracias por tu ayuda amigazo
Reyko500