Registrarse

[RPG - Otros] Probabilidad de sobrevivir al veneno

Estado
Cerrado para nuevas respuestas.

Diego Mertens

Dartrix Joven
¡Alola! Y ¡Feliz 2018!:D;):p:awesome:
Esta no solo es la primera duda del 2018 si no que es una que he estado pensando desde hace mucho, y que quería publicar hoy.
Es, ¿Se puede hacer que haya cierta posibilidad de que un Pokémon sobreviva al envenenamiento fuera de combate, con un PS? Osea, por ejemplo un 40% de probabilidades de que el Pokémon sobreviva y un 60% de que no lo haga. ¿Es posible?¿:.
 

frangs

Trabajando duro en Pokémon Dark Light
Feliz 2018 :D
La verdad es que eso no lo sé pero lo que sí que sé es que puedes desactivar la opción en el editor de scripts para que el pokemon no se debilite con el veneno y se quede a un PS
Espero que te haya servido. :pacman:
 

Diego Mertens

Dartrix Joven
Pos es que eso no es lo que quiero hacer, y además ya lo sabía, lo que quiero es que pase aveces, no siempre...
 

Jessie

What goes around, comes around
Puedes modificar esto en la parte PField_Field.

Buscas esta parte :

Código:
# Poison event on each step taken
Events.onStepTakenTransferPossible+=proc {|sender,e|
  handled=e[0]
  next if handled[0]
  if $PokemonGlobal.stepcount % 4 == 0 && POISONINFIELD
    flashed=false
    for i in $Trainer.party
      if i.status==PBStatuses::POISON && i.hp>0 && !i.isEgg? &&
         !isConst?(i.ability,PBAbilities,:POISONHEAL)
        if !flashed
          $game_screen.start_flash(Color.new(255,0,0,128), 4)
          flashed=true
        end
        if i.hp==1 && !POISONFAINTINFIELD
          i.status=0
          Kernel.pbMessage(_INTL("{1} survived the poisoning.\\nThe poison faded away!\\1",i.name))
          next
        end
        i.hp-=1
        if i.hp==1 && !POISONFAINTINFIELD
          i.status=0
          Kernel.pbMessage(_INTL("{1} survived the poisoning.\\nThe poison faded away!\\1",i.name))
        end
        if i.hp==0
          i.changeHappiness("faint")
          i.status=0
          Kernel.pbMessage(_INTL("{1} fainted...\\1",i.name))
        end
        handled[0]=true if pbAllFainted
        pbCheckAllFainted()
      end
    end
  end
}


Y solo lo modificas un poco para que quede como quieres, por ejemplo algo así :

Código:
# Poison event on each step taken
Events.onStepTakenTransferPossible+=proc {|sender,e|
  handled=e[0]
  next if handled[0]
  if $PokemonGlobal.stepcount % 4 == 0
    flashed=false
    for i in $Trainer.party
      if i.status==PBStatuses::POISON && i.hp>0 && !i.isEgg? &&
         !isConst?(i.ability,PBAbilities,:POISONHEAL)
        if !flashed
          $game_screen.start_flash(Color.new(255,0,0,128), 4)
          flashed=true
        end
        if i.hp==1
          rnd=rand(9)
          if rnd<=3
            i.status=0
            Kernel.pbMessage(_INTL("{1} Se ha curado del envenenamiento.",i.name))
          next
          end
        end
        i.hp-=1  
        if i.hp==0
          i.changeHappiness("faint")
          i.status=0
          Kernel.pbMessage(_INTL("{1} se ha debilitado...\\1",i.name))
        end
      handled[0]=true if pbAllFainted
      pbCheckAllFainted()
    end
   end
  end
}

Eliminé las variables de POISONFIELD y coloqué una variable random, que produce un número del 0 al 9 cuando los PS de un pokémon envenenado bajan a 1PS, si el número es 0, 1, 2, o 3 se salvará del veneno y si el número es 4, 5, 6, 7, 8 o 9 se debilitará.

Espero que te sirva, suerte.
 
Estado
Cerrado para nuevas respuestas.
Arriba