Registrarse

problema con un nuevo movimiento

Estado
Cerrado para nuevas respuestas.

super luisuto

Miutu hizo unas zapatillas con mi stunfisk
hola, quiero crear un nuevo movimiento, se llama "rompecorazones", es de tipo hada, tiene 65 de poder y quiero que haga el doble de daño si el rival esta enamorado, curándole del enamoramiento. Sin embargo he leido todos los codigos de funciones y no hay ni uno solo que cause un efecto parecido...:(
¿alguien sabe que puede hacerse? gracias a priori.
 
Última edición:

Diego Mertens

Dartrix Joven
Sólamente busca un código que defina enamoramiento, luego copia el nombre del enamoramiento en un block de notas, para usarlo luego, luego busca pesadilla el efecto de pesadilla, y cambia cada vez que diga sleep o algo asi por el nombre del enamoramiento que tenias anotado.
Si quieres saber una forma fácil de encontrar el enamoramiento sólo busca el efecto que cause el movimiento atracción.
 

Lon

Tirana de Wah
hola, quiero crear un nuevo movimiento, se llama "rompecorazones", es de tipo hada, tiene 65 de poder y quiero que haga el doble de daño si el rival esta enamorado, curándole del enamoramiento. Sin embargo he leido todos los codigos de funciones y no hay ni uno solo que cause un efecto parecido...:(
¿alguien sabe que puede hacerse? gracias a priori.
Sí existe un movimiento con un efecto prácticamente igual.
Se llama "Espabila". Es un movimiento de tipo lucha, el cual hace el doble de daño si impacta contra un Pokémon dormido.
Imagino que con buscar su código ya tendrás suficiente.

The Necromancer~
 

super luisuto

Miutu hizo unas zapatillas con mi stunfisk
Lon洋子;404614 dijo:
Sí existe un movimiento con un efecto prácticamente igual.
Se llama "Espabila". Es un movimiento de tipo lucha, el cual hace el doble de daño si impacta contra un Pokémon dormido.
Imagino que con buscar su código ya tendrás suficiente.

The Necromancer~
se parece en que hace el doble de daño pero en realidad no es lo mismo, porque espabila es si esta dormido, rompecorazones es si esta enamorado. y todos los movimientos de enamoramiento solo enamoran, no tienen nigun efecto de ataque... :(

Sólamente busca un código que defina enamoramiento, luego copia el nombre del enamoramiento en un block de notas, para usarlo luego, luego busca pesadilla el efecto de pesadilla, y cambia cada vez que diga sleep o algo asi por el nombre del enamoramiento que tenias anotado.
Si quieres saber una forma fácil de encontrar el enamoramiento sólo busca el efecto que cause el movimiento atracción.
Diego, perdon pero no te he entendido nada xD... el codigo de los ataques de enamorar solo causan el efecto de enamorar, pero no el hacer doble de daño cuando esta enamorado, no es el mismo codigo de funcion :s
 

Lon

Tirana de Wah
se parece en que hace el doble de daño pero en realidad no es lo mismo, porque espabila es si esta dormido, rompecorazones es si esta enamorado. y todos los movimientos de enamoramiento solo enamoran, no tienen nigun efecto de ataque... :(



Diego, perdon pero no te he entendido nada xD... el codigo de los ataques de enamorar solo causan el efecto de enamorar, pero no el hacer doble de daño cuando esta enamorado, no es el mismo codigo de funcion :s
Pero a ver, imagino que podrás sacarlo del estado de enamoramiento del propio pokémon.
No tengo realmente ni idea de cómo hacerlo, pero tirando un poco de intuición, podría sacar una frase dentro del estado que sería algo así como:
"If [enamorado] 50% of attack" o para que nos entendamos, pillas el "si está enamorado, tiene un 50% de probabilidades de atacar" tal y como esté (que imagino que en inglés) y extraes de ahí el "[enamorado]" para hacer un copia-pega del código con el de Espabila.
Cambias el [enamorado] por el [dormido] del código de éste último, que sería algo así como "Si el objetivo está [dormido], 100% más de daño" y lo pones para que surta eficacia con tu movimiento.

De lo poco que sé de scripting por haber escuchado.

The Necromancer~
 

super luisuto

Miutu hizo unas zapatillas con mi stunfisk
pero dormido no es lo mismo que enamorado... :( pero gracias igualmente por la atencion.
 

Diego Mertens

Dartrix Joven
¿No entiendes aún? Sólo debes cambiar las lineas que digan el estado de sueño y reemplazarlas con el estado de enamoramiento, lo he estado buscando, y sé que son algo distintos, pero funcionan igual, por eso te lo digo...
Código:
class PokeBattle_Move_07D < PokeBattle_Move
  def pbBaseDamage(basedmg,attacker,opponent)
    if opponent.status==PBStatuses::SLEEP &&
       (opponent.effects[PBEffects::Substitute]==0 || ignoresSubstitute?(attacker))
      return basedmg*2
    end
    return basedmg
  end

  def pbEffectAfterHit(attacker,opponent,turneffects)
    if !opponent.isFainted? && opponent.damagestate.calcdamage>0 &&
       !opponent.damagestate.substitute && opponent.status==PBStatuses::SLEEP
      opponent.pbCureStatus
    end
  end
end
reemplazas cada parte del opponent.status==PBStatuses::SLEEP por PBEffects::Attract
Y quedaría así
opponent.status==PBEffects::Attract
almenos eso debería servir...
 

super luisuto

Miutu hizo unas zapatillas con mi stunfisk
¿No entiendes aún? Sólo debes cambiar las lineas que digan el estado de sueño y reemplazarlas con el estado de enamoramiento, lo he estado buscando, y sé que son algo distintos, pero funcionan igual, por eso te lo digo...
Código:
class PokeBattle_Move_07D < PokeBattle_Move
  def pbBaseDamage(basedmg,attacker,opponent)
    if opponent.status==PBStatuses::SLEEP &&
       (opponent.effects[PBEffects::Substitute]==0 || ignoresSubstitute?(attacker))
      return basedmg*2
    end
    return basedmg
  end

  def pbEffectAfterHit(attacker,opponent,turneffects)
    if !opponent.isFainted? && opponent.damagestate.calcdamage>0 &&
       !opponent.damagestate.substitute && opponent.status==PBStatuses::SLEEP
      opponent.pbCureStatus
    end
  end
end
reemplazas cada parte del opponent.status==PBStatuses::SLEEP por PBEffects::Attract
Y quedaría así
opponent.status==PBEffects::Attract
almenos eso debería servir...

sigo sin entender... :sleepy: ¿de donde saco todos esos scripts y donde los pongo? ¿esos escripts son para el movimiento que me invente o es solo un ejemplo?
 

Lon

Tirana de Wah
pero dormido no es lo mismo que enamorado... :( pero gracias igualmente por la atencion.
...

Lo explicaré paso a paso, a ver si esta vez sí.
Existe la opción de modificar un código ya existente para crear uno nuevo a partir de ahí que se adecúe a nuestras necesidades.
En este caso, el movimiento Espabila, tiene un código definido en el cual se especifica que si el pokémon oponente está [dormido] y el movimiento impacta contra él, Espabila pasará a hacer el doble de daño.
La mecánica es exactamente la misma que tu nuevo movimiento, Rompecorazones, con la diferencia de que este nuevo movimiento de tipo hada, haría el doble de daño si el pokémon está `[enamorado] y no [dormido].
¡Pero esto no es problema! porque a ti eso te da igual mientras la mecánica sea la misma. Como decía al principio, puedes copiar códigos ya existentes y modificarlos. En este caso, como la mecánica es la misma, lo que tienes que hacer es simplemente copiar el código de Espabila y cambiar en él donde ponga o haga referencia al estado de sueño o [dormido] y cambiarlo por el del amor o [enamorado].
Intentaré ponerte un ejemplo gráfico simplificado, pero creo que el aporte de @Diego Mertens ya lo especifica bastante bien.

Ejemplo de código de Espabila:

Espabila: Si el pokémon oponente está [dormido], 100% más de daño

Una vez teniendo esto, copias el código y cambias el nombre del movimiento y su tipo y blah blah para adecuarlo y cambias el estado [dormido] por [enamorado] quedándote así:

Rompecorazones: Si el pokémon oponente está [enamorado], 100% más de daño

Espero haber sido lo suficientemente clara.

The Fresita~
 

Berserker1523

2-Intentando discernir qué es lo más importante...
Mira, casi no he usado essentials, pero fue muy fácil buscar eso.

Abres el editor de Scripts. Aquí me pregunté ¿Dónde podría estar el código que busco? Por intuición me imaginé que podía estar donde se escribió el código de las batallas, entonces busqué la "sección" donde empezaban tales códigos (con sección me refiero a lo que está separado con "=======" en el editor de Scripts), luego entre a cada una y presionando Ctrl + F sale un recuadro en donde puedes poner un fragmento del Script que estás buscando (que no hace falta) y le das a "siguiente" si sale un sonido y no pasa nada, en esa página no está lo que buscas, sigue intentando con las que están más abajo. Para ahorrarte el trabajo, ese script lo encontré en "PokeBattle_MoveEffects".

Se puede ver que al principio dice "PokeBattle_Move_07D " 07D es el código de función del movimiento en cuestión (esto por la essentials wiki).

Baja hasta que no puedas más en la página del Script que te dije más arriba y verás una nota que dice "NOTE: If you're inventing new move effects, use function code 159 and onwards.", entonces ese usaremos (o cualquier otro más alto si ya agregaste otros movimientos). Es muy fácil, empieza el Script en los más abajo para mantener el orden, copia y pega el que te pasaron y solo cambia ese 07D por el número en Hex que viene después de la función del último movimiento, en mi caso lo cambiaría por 159.

Luego, como bien te dijo Diego:
Diego Mertens dijo:
reemplazas cada parte del opponent.status==PBStatuses::SLEEP por PBEffects::Attract
Y quedaría así
opponent.status==PBEffects::Attract
-------------------------
EDITO:

Lo que te dijo Diego no creo sea cierto, en vez de cambiar opponent.status==PBStatuses::SLEEP por opponent.status==PBEffects::Attract, intenta con opponent.effects[PBEffects::Attract]>=0

También, cambia el opponent.pbCureStatus por opponent.pbCureAttract

Esto lo deduje del script de la "mental herb", también gracias a Caeles de Pokéliberty por recordarme que el enamoramiento no es un status sino un efecto. Puedes buscar el discord de su comunidad en su blog y unirte ya que allí resuelven dudas.
-----------------------------

Y ya está, muy sencillo, y no te olvides de agregar el movimiento también en el bloc de notas de la carpeta de PBS que mencioné al principio, puedes ver cómo hacerlo aquí: Defining a move | Pokémon Essentials Wiki | FANDOM powered by Wikia

(Tampoco te olvides de documentar el código como lo está con cada Script)

PD: básicamente lo mismo que dijo @Lon洋子 (solo que aquí era tan simple como "basedmg*2" xD)
 
Última edición:

super luisuto

Miutu hizo unas zapatillas con mi stunfisk
gracias por vuestra atencion. ahora entendi el proceso, voy a intentar hacerlo en la practica. pero... para añadir un nuevo movimiento , no me refieron en la carpeta PBS si no en el editor de scritps (Ya que estoy creando un nuevo codigo de funciones) ¿donde tendria que ponerlo?
 

super luisuto

Miutu hizo unas zapatillas con mi stunfisk
ah vale perdon, ya lo lei. Cuando haga el nuevo codigo de funcion... ¿que letras tendria que poner en la carpeta PBS para ese movimiento nuevo? es decir, espabila tiene un codigo de funcion llamado 07D. ¿como se llamaria el nuevo movimiento? tampoco quiero elminar el efecto de "espabila". y otra cosa; mirando los script me lleve la sorpresa de que habian movmientos de la sexta generacion que sin embargo, no estan en la carpeta PBS ¿como se cual es su codigo de funcion para poner tambien estos movimientos?
 

Berserker1523

2-Intentando discernir qué es lo más importante...
Puedes ahorrarte el preguntar cada cosa sin antes leer todo lo que debas. Te pido el favor de pasar los ojos por cada letra y palabra de mi comentario y comprendas lo que dice, cuando hayas terminado sí puedes preguntar. Allí explico explícitamente, y hasta te cuento cómo lo hallé, qué número debes poner para el código de función.
 
  • Me gusta
Reacciones : Lon

super luisuto

Miutu hizo unas zapatillas con mi stunfisk
lo lei y lo relei pero no lo entiendo. no veo el codigo de funcion por ninguna parte y en el bloc de notas pulse ctrl + b pero no pasa nada ... :(
 

super luisuto

Miutu hizo unas zapatillas con mi stunfisk
puedo crear un nuevo movimiento a partir del 159, de hecho ya he creado unos cuantos, ¿pero un nuevo codigo de funcion? ¿como hago el siguiente codigo de funcion en hex?

ah vale ya lo entendi XD El codigo de funciones es el nombre que tiene para diferenciarlo del resto. entonces tendría que ser 159. yo pensaba que cada letra o numero tenia su importancia.
 
Última edición:

Berserker1523

2-Intentando discernir qué es lo más importante...
Sí wey solo sumale 1 al número en Hex, recuerda que los número en hexadecimal son 16: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Si ya tienes ocupado el 159, entonces debes usar 15A, si ya tienes ocupado el 15F, debes usar el 160 y así.
 
Estado
Cerrado para nuevas respuestas.
Arriba