Registrarse

[Scripts] Script de batalla invencible

Estado
Cerrado para nuevas respuestas.

DFusion

Leyenda de WaH
Buen dia comunidad!

Como podran ver en titulo, ocupo un script para tener una o varias batallas que sean imposibles de ganar.

Creo que seria de interes de muchos un script como tal porque en los juegos se ven personajes que siempre salen victoriosos y no creo que eso sea asi todo el tiempo.

Al final de la batalla quiero que el personaje tenga algo de dialogo con su adversario porque va a ser parte de la historia que el prota pierda y el antagonista hable con el sobre la situacion actual(Parte de la historia de mi juego) y para evitar ir al hospital/centro pokemon, que su salud sea restaurada.

Existe un script como tal? O alguien puede ayudarme?

Muchas gracias de antemano :D
 
Última edición:

fghtids

Usuario de platino
En Pokebattle_Move deberás buscar y pegar lo siguiente (mas o menos en la línea 1174)

Código:
    def pbReduceHPDamage(damage,attacker,opponent)
    endure=false
    if opponent.effects[PBEffects::Substitute]>0 && !ignoresSubstitute?(attacker) &&
       (!attacker || attacker.index!=opponent.index)
      PBDebug.log("[Lingering effect triggered] #{opponent.pbThis}'s Substitute took the damage")
      damage=opponent.effects[PBEffects::Substitute] if damage>opponent.effects[PBEffects::Substitute]
      opponent.effects[PBEffects::Substitute]-=damage
      opponent.damagestate.substitute=true
      @battle.scene.pbDamageAnimation(opponent,0)
      @battle.pbDisplayPaused(_INTL("The substitute took damage for {1}!",opponent.name))
      if opponent.effects[PBEffects::Substitute]<=0
        opponent.effects[PBEffects::Substitute]=0
        @battle.pbDisplayPaused(_INTL("{1}'s substitute faded!",opponent.name))
        PBDebug.log("[End of effect] #{opponent.pbThis}'s Substitute faded")
      end
      opponent.damagestate.hplost=damage
      damage=0
       else
      opponent.damagestate.substitute=false
      if damage>=opponent.hp
        damage=opponent.hp
        if @function==0xE9 # False Swipe
          damage=damage-1
       [COLOR="red"] elsif opponent.hasWorkingAbility(:JAJAXD)
          damage=damage-1
        elsif opponent.hasWorkingItem(:INMORTAL)
          damage=damage-1[/COLOR]
        elsif opponent.effects[PBEffects::Endure]
          damage=damage-1
          opponent.damagestate.endured=true
          PBDebug.log("[Lingering effect triggered] #{opponent.pbThis}'s Endure")
        elsif damage==opponent.totalhp
          if opponent.hasWorkingAbility(:STURDY) && !attacker.hasMoldBreaker
            opponent.damagestate.sturdy=true
            damage=damage-1
            PBDebug.log("[Ability triggered] #{opponent.pbThis}'s Sturdy")
          elsif opponent.hasWorkingItem(:FOCUSSASH) && opponent.hp==opponent.totalhp
            opponent.damagestate.focussash=true
            damage=damage-1
            PBDebug.log("[Item triggered] #{opponent.pbThis}'s Focus Sash")
          elsif opponent.hasWorkingItem(:FOCUSBAND) && @battle.pbRandom(10)==0
            opponent.damagestate.focusband=true
            damage=damage-1
            PBDebug.log("[Item triggered] #{opponent.pbThis}'s Focus Band")
          end
        end
        damage=0 if damage<0
      end

Añadiendo esto lo que haces es definir que el objeto "INMORTAL" que también tendrás que crear en la PBS hace a quien lo lleve inmortal al daño directo. Ten en cuenta que deberás equipárselo a uno de los pokémon del entrenador. También podrías cambiar la habilidad del pokemon por la "JAJAXD", si no quieres problemas con pokémon salvajes de este tipo basta con poner dicha habilidad como la habilidad oculta. Rompemoldes ignorará esta habilidad al igual que Desarme hará que el objeto se desactive, analiza bien cual es mas adecuada para los recursos que has proporcionado al jugador.

Has de tener en cuenta que eso no bloquea daño de veneno, tormenta arena,quemadura,etc... y podría morir con una de estas.
 

DFusion

Leyenda de WaH
Muchas gracias @Rainsis voy a probarlo

Realmente lo que ocupo es una batalla evento, entonces al encontrarse en dicho evento con dicho antagonista(Black) el prota(Red) va a pelear con el, pero el manda a un pokemon controlado y que es invencible. Al finalizar la pele, en la que Red pierde, no va a ir al hospital, sino que la pelea queda ahi y tienen un dialogo explicandole su plan y bla bla bla.
 
Última edición:

Jeisbel

Desarrollador avanzado de RPG
Muchas gracias @Rainsis voy a probarlo

Realmente lo que ocupo es una batalla evento, entonces al encontrarse en dicho evento con dicho antagonista(Black) el prota(Red) va a pelear con el, pero el manda a un pokemon controlado y que es invencible. Al finalizar la pele, en la que Red pierde, no va a ir al hospital, sino que la pelea queda ahi y tienen un dialogo explicandole su plan y bla bla bla.
Si quieres que se queden y tu prota no vaya al centro Pokémon es fácil.
En condiciones y efectos, en la cajita dónde colocas el script de combate, colocas al final dos false, quedaría tal que así: pbTrainerBattle(PBTrainers::RIVAL,"PEPITO",_I("..."),false,0,true,0)

Luego, colocas una excepción en condiciones y efectos. Ahora tienes 2 situaciones: Continuar el evento después del script, es lo que hará al ganar el combate.
En excepción es lo que pasará después de perder.

Espero haber ayudado.

Saludos.
 

DFusion

Leyenda de WaH
Si quieres que se queden y tu prota no vaya al centro Pokémon es fácil.
En condiciones y efectos, en la cajita dónde colocas el script de combate, colocas al final dos false, quedaría tal que así: pbTrainerBattle(PBTrainers::RIVAL,"PEPITO",_I("..."),false,0,true,0)

Luego, colocas una excepción en condiciones y efectos. Ahora tienes 2 situaciones: Continuar el evento después del script, es lo que hará al ganar el combate.
En excepción es lo que pasará después de perder.

Espero haber ayudado.

Saludos.
Voy a probar, no me ha dado tiempo, pero gracias
 
Estado
Cerrado para nuevas respuestas.
Arriba