Registrarse

[RPG - Scripting] Cambiar resistencias de tipos a problemas de estado

Estado
Cerrado para nuevas respuestas.

Nyaruko

Pinchando ruedas de trenes
¿Qué script tendría que modificar para poner que un tipo fuese resistente por ejemplo a la parálisis o al veneno?

Gracias de antemano
 

White

--------------------------------------------------
No se exactamente donde estará, pero el tipo veneno y el acero son inmunes al envenenamiento, por lo que si encuentras ese script solo agrega el tipo o estado que quieras.

Si lo encuentro te digo.

Saludos! White~
 

White

--------------------------------------------------
Creo que acabo de encontrarlo.
En PokeBattle_Battler esta este script:

Código:
override=true if USENEWBATTLEMECHANICS && thismove.function==0x06 &&     # Tóxico
                    thismove.basedamage==0 && user.pbHasType?(:POISON)
      override=true if !miss && turneffects[PBEffects::SkipAccuracyCheck] # Called by another move
      if !override && (miss || !thismove.pbAccuracyCheck(user,target))         # Incluye Contraataque/Manto Espejo
        PBDebug.log(sprintf("[Movimiento falló] Falló pbAccuracyCheck (código de función %02X) o el objetivo es semi-invulnerable",thismove.function))
Si no me equivoco es el script que buscábamos.
Prueba a copiar y pega este script justo debajo y cambia el tipo y el efecto.

Espero que te sirva.

Saludos! White~
 

Jessie

What goes around, comes around
Creo que sería más fácil si agregan un condicional adicional en la sección PokeBattle_BattlerEffects, solo buscas el efecto que deseas cambiar, por ejemplo el veneno, entonces buscamos el def pbCanPoison?

Código:
 def pbCanPoison?(showMessages)
    return false if isFainted?
    if status==PBStatuses::POISON
      @battle.pbDisplay(_INTL("{1} ya se ha envenenado",pbThis)) if showMessages
      return false
    end
    if self.status!=0 || @effects[PBEffects::Substitute]>0
      @battle.pbDisplay(_INTL("But it failed!")) if showMessages
      return false
    end


#AQUI ESTA LA PARTE DE "INMUNIDAD"


    if (pbHasType?(:POISON) || pbHasType?(:STEEL)) && !hasWorkingItem(:RINGTARGET)
      @battle.pbDisplay(_INTL("It doesn't affect {1}...",pbThis(true))) if showMessages
      return false
    end
Si quieres que por ejemplo que los tipos insecto no puedan ser envenenados, solo agregas el condicional asi :

Código:
    if ( pbHasType?(:POISON) || pbHasType?(:STEEL)  || pbHasType?(:BUG) ) && !hasWorkingItem(:RINGTARGET)
      @battle.pbDisplay(_INTL("It doesn't affect {1}...",pbThis(true))) if showMessages
      return false
    end
Mas abajo de este mismo script, estarán otros condicionales adicionales, por ejemplo en el caso del veneno, están los condicionales para el efecto de Synchronize y PoisonSpikes, solo es cuestion de agregar ahí también la inmunidad para el tipo insecto.

Código:
def pbCanPoisonSynchronize?(opponent)
    return false if isFainted?
# AL IGUAL QUE EL ANTERIOR SOLO AGREGAN EL TIPO ADICIONAL

    if ( pbHasType?(:POISON) || pbHasType?(:STEEL)  ||  pbHasType?(:BUG) ) && !hasWorkingItem(:RINGTARGET)
      @battle.pbDisplay(_INTL("{1}'s {2} had no effect on {3}!",
         opponent.pbThis,PBAbilities.getName(opponent.ability),pbThis(true)))
      return false
    end

Código:
 def pbCanPoisonSpikes?
    return false if isFainted?
    return false if self.status!=0
    return false if pbHasType?(:POISON) || pbHasType?(:STEEL) || pbHasType?(:BUG)
De está manera será un poco más sencillo para todos los tipos de cambios de estado, solo revisar bien todos los condicionales y ver si aplican con lo que desean hacer.

Espero que les sirva, saludos.
 
Estado
Cerrado para nuevas respuestas.
Arriba