Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: J-Dek en Julio 04, 2010, 05:03:52 PM

Título: M?s o menos da?o dependiendo del nivel [[[SOLUCIONADO!!!]]]
Publicado por: J-Dek en Julio 04, 2010, 05:03:52 PM
Ante todo agradecer a los usuarios del foro ya que me inic? en el juego que estoy haciendo siendo un novato y gracias a todos estoy aprendiendo mucho.

Lo que quiero hacer ahora es que dependiendo del nivel que tenga mi personaje o el personaje rival, haga yo, haga el, m?s o menos da?o.

Teniendo la vida configurada as?:

ps=45
maxps=45
expe=0
maxexpe=110
nivel=5


?c?mo podr?a hacerlo?

PD: LE HE DADO A NOTIFICAR SIN QUERER.
Título: Re: M?s o menos da?o dependiendo del nivel
Publicado por: omick en Julio 04, 2010, 05:30:57 PM
pues podrias hacerlo con

golpe=2*expe
Título: Re: M?s o menos da?o dependiendo del nivel
Publicado por: J-Dek en Julio 04, 2010, 07:17:41 PM
me ha servido, gracias!

---edit---

sigue sin servir

Ahora mismo, en vez de poner ''expe'' puse nivel, ya que el rival no tiene ''expe'' y mi ''expe'' est? a 0, por lo tanto puse ''nivel''.

sirve para quitarle yo vida al rival, dependiendo del nivel que el tenga, le quito m?s o menos pero realmente si te paras a pensar, no funcionar?a bien
*ahora mismo est? puesto para que le quite 6 de vida si el nivel es 3, fijaos en ese code, pero si ataco con mi protagonista de nivel 5 a otro mayor, de nivel 10, le quitar? el doble tambi?n, sea 20, podr?a vencerlos f?cilmente
*realmente eso no funciona muy bien
*me he parado a pensarlo, y si fuese al rev?s, si el me tuviera que quitar vida, pasar?a lo mismo, dar?a igual a que nivel estemos los dos, cuanto m?s nivel, m?s f?cil ser?a vencernos mutuamente

(en el objeto rayo, que colisiona contra el enemigo, est? esto: taillow3_vida.ps-=2*taillow3_vida.nivel)
Título: Re: M?s o menos da?o dependiendo del nivel [[[AYUDA]]]
Publicado por: MatuX en Julio 05, 2010, 05:43:17 AM
tambi?n lo podes hacer con un porcentaje al azar con una random y el porcentaje dependa del nivel que tenga el personaje y este porcentaje sume al nivel de da?o normal
Título: Re: M?s o menos da?o dependiendo del nivel [[[AYUDA]]]
Publicado por: Texic en Julio 05, 2010, 07:22:24 AM
O pod?s usar la diferencia de nivel que haya entre ambos:

global.player2vida -= floor(((global.player1nivel/2)+5)-(global.player2nivel/4))

Pero igual, es un sistema algo malo, deber?as usar ataque y defensa, como m?nimo

PD: Notificar es para que te lleguen e-mails cada vez que responden el tema en el que lo activaste
Título: Re: M?s o menos da?o dependiendo del nivel [[[AYUDA]]]
Publicado por: J-Dek en Julio 05, 2010, 11:43:14 AM
player1vida (objeto):

ps=45
maxps=45
expe=0
maxexpe=110
nivel=5


enemigo1vida (objeto):

ps=30
maxps=30
nivel=3


Cita de: Texic en Julio 05, 2010, 07:22:24 AM
O pod?s usar la diferencia de nivel que haya entre ambos:

global.player2vida -= floor(((global.player1nivel/2)+5)-(global.player2nivel/4))

Pero igual, es un sistema algo malo, deber?as usar ataque y defensa, como m?nimo

PD: Notificar es para que te lleguen e-mails cada vez que responden el tema en el que lo activaste

Pero si uso la diferencia de nivel puede pasar esto:
Si soy nivel 5 y el rival nivel 2, le quito 3 de vida. Luego, si es al rev?s, si soy nivel 2 y el rival nivel 5, le quito 3 de vida tambi?n!! :S

Mi idea ser?a que, si soy nivel 5 y el rival nivel 3. Que detecte la diferencia de nivel, y se sume, por lo tanto, (yo)nivel 5 + (el)nivel 3 = 8. Al rival le quito 8 de vida.

Si mi nivel es m?s bajo, que detecte la diferencia y se reste: (yo)nivel 3 - (el)nivel 5 = 2.

Y todo esto se aplica tambi?n cuando me ataca el rival. Pero no tengo ni idea de como hacerlo ahora mismo. Lo que yo quiero hacer es a lo que tu te refieres Texic? Pero como ves yo no uso globales para la vida :S

Si apartir de lo que tengo sabeis una manera efectiva de hacerlo, soy todo oidos.
Título: Re: M?s o menos da?o dependiendo del nivel [[[AYUDA]]]
Publicado por: Texic en Julio 05, 2010, 06:19:19 PM
Pues la f?rmula hace lo que dijiste, no trabaja estrictamente con la diferencia, sino que la utiliza en forma de ataque y defensa, es una f?rmula que saqu? del rpg maker 2003, quiz?s necesita peque?os ajustes en esas divisiones de nivel, pero fijate hasta que te quede c?modo. Y que no uses globales no importa, cambia las globales de la f?rmula por las variables que uses. Yo anduve jugando un poco y llegue a esta f?rmula, creo que est? bastante precisa
global.player2vida-=max(floor(((global.player1nivel))-(global.player2nivel/2)),1)

PD: Esta es la f?rmula real, ni se acerca a la que te d?, ni a una que puedas hacer manualmente: F?rmula (http://www.pokexperto.net/index2.php?seccion=mecanica/formula_ataque_rze)
Esta es algo m?s simple, pero para ambas te faltan variables: F?rmula 2 (http://es.pokemon.wikia.com/wiki/Da?o)
Título: Re: M?s o menos da?o dependiendo del nivel [[[AYUDA]]]
Publicado por: J-Dek en Julio 06, 2010, 03:11:26 AM
Bien, segun ahi dices ese code indica que mi ataque le quite vida en relacion al nivel como he dicho.

Ahora lo tengo as?:

taillow3_vida.ps-=max(floor(((pokemon1vida.nivel))-(taillow3_vida.nivel/2)),1)

Taillow es el enemigo, suponiendo que ahora es el el que me ataca a mi, solamente tendr?a que cambiar los objetos de lugar en ese c?digo. Unas pregunta m?s, al final del c?digo, ?que indican el 2 y el 1? ?Funcionar?a bien si la diferencia de nivel fuera m?s grande?

---EDIT---

Acabo de probarlo variando los niveles, evidentemente si el rival est? al nivel 3 le quito mas vida que si est? al nivel 50, pero tanto si est? al nivel 50, al 70 o al 100, tampoco hay mucha diferencia, le quito m?s o menos lo mismo de vida.
Título: Re: M?s o menos da?o dependiendo del nivel [[[AYUDA]]]
Publicado por: Texic en Julio 06, 2010, 03:18:18 AM
El /2 significa dividido 2. El 1 es parte de la funcion max(), es para asegurarse de que nunca saque menos de 1, sino le sumar?a vida al oponente. Si la diferencia fuera m?s grande funciona si, fijate, en este ejemplo ta implementado para probar. Si no te gusta la proporci?n, prob? multiplicando y dividiendo los niveles, asi como yo dividi el nivel del enemigo en 2. O rest? y/o sum? valores, es ajustable
Título: Re: M?s o menos da?o dependiendo del nivel [[[AYUDA]]]
Publicado por: Texic en Julio 06, 2010, 03:26:57 AM
Bueno, si esa es poco fiable, tengo esta otra, es la que us? para el plore (Con m?s stats, pero la adapt? al tuyo)
global.danio=((((((2*global.player1nivel/5)+2)*global.player1nivel*30)/global.player2nivel)/50)+2)
Título: Re: M?s o menos da?o dependiendo del nivel [[[AYUDA]]]
Publicado por: J-Dek en Julio 06, 2010, 03:47:11 AM
Pero creo que me sirve el otro, ya que en esa ?ltima formula ya vienen los niveles por defecto por lo qu veo, entonces, no s? si me servir?a porque si pongo es code, y el pok?mon cambia de nivel, no funcionar?a, o si? :S que lio...

pD: con la wiki de game maker estoy aprendiendo mucho tambi?n! xD
Título: Re: M?s o menos da?o dependiendo del nivel [[[AYUDA]]]
Publicado por: Robin28 en Julio 06, 2010, 04:46:37 AM
Si las dem?s f?rmulas no te sirven, puedes usar esta:
PS_ENEMIGO-=ceil(SUS_MAX_PS/100*POTENCIA_DEL_ATAQUE*TU_NIVEL/NIVEL_ENEMIGO)
y para cuando te ataque
TUS_PS-=ceil(TUS_MAX_PS/100*POTENCIA_DEL_ATAQUE*NIVEL_ENEMIGO/TU_NIVEL)

por ejemplo:
tu: nivel 5 ps 45 potencia del ataque 25
enemigo: nivel 3 ps 30
al tu atacar le quitar?as (ceil es un redondeo hacia arriba)
ceil(30/100*25*5/3)
=ceil(0.3*25*5/3)=ceil(7.5*5/3)=ceil(37.5/3)=ceil(12.5)=13
entonces quedaria con 17 ps (30-13)
Título: Re: M?s o menos da?o dependiendo del nivel [[[SOLUCIONADO!!!]]]
Publicado por: omick en Julio 12, 2010, 03:18:26 AM
aqui esta un ejemplo aber si funciona lo hice muy rapido 8)