SHARE
TWEET

Escape VX

Holy87 Jul 12th, 2013 63 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $imported = {} if $imported == nil
  2. $imported["H87_Escape"] = true
  3. #===============================================================================
  4. # ** Probabilità di fuga **
  5. # Versione: 1.0 (15/04/2013)
  6. # Difficoltà utente: ★★
  7. #===============================================================================
  8. # DESCRIZIONE:
  9. # Questo script permette di modificare le probabilità di fuga grazie ad
  10. # equipaggiamenti e stati alterati.
  11. #===============================================================================
  12. # UTILIZZO:
  13. # Installare lo script sotto Materials e prima del Main.
  14. # Inserire, nel riquadro delle note dello stato o dell'equipaggiamento, la
  15. # seguente etichetta:
  16. # <fuga: x> dove x è il valore (valori positivi aumentano le probabilità, valori
  17. # negativi le diminuiscono) (max 100: probabilità sicura).
  18. # I bonus sono cumulativi.
  19. # Se vuoi far fuggire il gruppo, basta che scrivi in un chiama script:
  20. # force_escape
  21. # puoi creare abilità che chiamano un evento comune con questa skill. La fuga
  22. # non funzionerà contro i boss.
  23. # force_escape(true) fa fuggire gli eroi dall'incontro anche se si tratta di un
  24. # boss.
  25. #===============================================================================
  26. # COMPATIBILITA':
  27. # Compatibile con quasi tutti gli script.
  28. #===============================================================================
  29. module H87_Escape
  30.   # IMPOSTAZIONI
  31.  
  32.   #Cambia il valore di questa costante per aggiustare il valore base delle
  33.   #probabilità di fuga:
  34.   Adjuster = 15
  35.  
  36. #===============================================================================
  37. # ** FINE CONFIGURAZIONE **
  38. # Attenzione: Non modificare ciò che c'è oltre, a meno che tu non sappia ciò che
  39. # fai!
  40. #===============================================================================
  41.  
  42.   EB = /<(?:FUGA|fuga):[ ]*(\d+)>/i
  43. end
  44.  
  45. #===============================================================================
  46. # ** Game_Actor
  47. #===============================================================================
  48. class Game_Actor < Game_Battler
  49.   def get_escape_bonus
  50.     bonus = 0
  51.     weapons.each{|weapon|
  52.       next if weapon == nil
  53.       bonus += weapon.escape_bonus
  54.     }
  55.     armors.each{|armor|
  56.       next if armor == nil
  57.       bonus += armor.escape_bonus
  58.     }
  59.     states.each{|state|
  60.       next if state == nil
  61.       bonus += state.escape_bonus
  62.     }
  63.     return bonus
  64.   end
  65. end # game_actor
  66.  
  67. #===============================================================================
  68. # ** Classe Armi
  69. #===============================================================================
  70. class RPG::Weapon
  71.   attr_reader :escape_bonus
  72.  
  73.   def escape_bonus
  74.     return @escape_bonus
  75.   end
  76.  
  77.   def carica_cache_personale_esc
  78.       return if @cache_caricatae
  79.       @cache_caricatae=true
  80.       @escape_bonus = 0
  81.       self.note.split(/[\r\n]+/).each { |riga|
  82.       case riga
  83.       when H87_Escape::EB
  84.         @escape_bonus += $1.to_i
  85.       end
  86.     }
  87.   end
  88.  
  89. end
  90.  
  91. #===============================================================================
  92. # ** Classe Armature
  93. #===============================================================================
  94. class RPG::Armor
  95.   attr_reader :escape_bonus
  96.  
  97.   def escape_bonus
  98.     return @escape_bonus
  99.   end
  100.  
  101.   def carica_cache_personale_esc
  102.       return if @cache_caricatae
  103.       @cache_caricatae=true
  104.       @escape_bonus = 0
  105.       self.note.split(/[\r\n]+/).each { |riga|
  106.       case riga
  107.       when H87_Escape::EB
  108.         @escape_bonus += $1.to_i
  109.       end
  110.     }
  111.   end
  112. end
  113.  
  114. #===============================================================================
  115. # ** Classe Status
  116. #===============================================================================
  117. class RPG::State
  118.   attr_reader :escape_bonus
  119.  
  120.   def escape_bonus
  121.     return @escape_bonus
  122.   end
  123.  
  124.   def carica_cache_personale_esc
  125.       return if @cache_caricatae
  126.       @cache_caricatae=true
  127.       @escape_bonus = 0
  128.       self.note.split(/[\r\n]+/).each { |riga|
  129.       case riga
  130.       when H87_Escape::EB
  131.         @escape_bonus += $1.to_i
  132.       end
  133.     }
  134.   end
  135. end
  136.  
  137. #==============================================================================
  138. # ** Scene_Title
  139. #==============================================================================
  140. class Scene_Title < Scene_Base
  141.  
  142.   #-----------------------------------------------------------------------------
  143.   # *Alias metodo load_bt_database
  144.   #-----------------------------------------------------------------------------
  145.   alias l_bt_de load_bt_database unless $@
  146.   def load_bt_database
  147.     l_bt_de
  148.     setup_escape_states
  149.     setup_escape_armors
  150.     setup_escape_weapons
  151.   end
  152.  
  153.   #-----------------------------------------------------------------------------
  154.   # *Alias metodo load_database
  155.   #-----------------------------------------------------------------------------
  156.   alias ld_de load_database unless $@
  157.   def load_database
  158.     ld_de
  159.     setup_escape_states
  160.     setup_escape_armors
  161.     setup_escape_weapons
  162.   end
  163.  
  164.   #-----------------------------------------------------------------------------
  165.   # *Inizializza nel caricamento
  166.   #-----------------------------------------------------------------------------
  167.   def setup_escape_states
  168.     for state in $data_states
  169.       next if state == nil
  170.       state.carica_cache_personale_esc
  171.     end
  172.   end
  173.  
  174.   #-----------------------------------------------------------------------------
  175.   # *setup_escape_armors
  176.   #-----------------------------------------------------------------------------
  177.   def setup_escape_armors
  178.     for armor in $data_armors
  179.       next if armor == nil
  180.       armor.carica_cache_personale_esc
  181.     end
  182.   end
  183.  
  184.   #-----------------------------------------------------------------------------
  185.   # *setup_escape_weapons
  186.   #-----------------------------------------------------------------------------
  187.   def setup_escape_weapons
  188.     for weapon in $data_weapons
  189.       next if weapon == nil
  190.       weapon.carica_cache_personale_esc
  191.     end
  192.   end
  193.  
  194. end # scene_title
  195.  
  196. #==============================================================================
  197. # ** Scene_Battle
  198. #==============================================================================
  199. class Scene_Battle < Scene_Base
  200.  
  201.   #-----------------------------------------------------------------------------
  202.   # *Alias metodo start
  203.   #-----------------------------------------------------------------------------
  204.   alias re_start start unless $@
  205.   def start
  206.     re_start
  207.     @sure_escape = false
  208.   end
  209.  
  210.   #-----------------------------------------------------------------------------
  211.   # * cambia le prob. di fuga
  212.   #-----------------------------------------------------------------------------
  213.   alias remake_escape make_escape_ratio unless $@
  214.   def make_escape_ratio
  215.     remake_escape
  216.     @escape_ratio += H87_Escape::Adjuster
  217.     @escape_ratio += actors_escape_bonus
  218.   end
  219.  
  220.   #-----------------------------------------------------------------------------
  221.   # * controlla il bonus di fuga degli eroi
  222.   #-----------------------------------------------------------------------------
  223.   def actors_escape_bonus
  224.     bonus = 0
  225.     for member in $game_party.members
  226.       bonus += member.get_escape_bonus
  227.     end
  228.     bonus += 999999 if @sure_escape
  229.     return bonus
  230.   end
  231.  
  232.   #-----------------------------------------------------------------------------
  233.   # * viene eseguito quando la fuga è obbligata da eventi.
  234.   #-----------------------------------------------------------------------------
  235.   def ensure_escape
  236.     @sure_escape = true
  237.     make_escape_ratio
  238.     process_escape
  239.   end
  240. end # scene_battle
  241.  
  242. #==============================================================================
  243. # ** Game_Interpreter
  244. #==============================================================================
  245. class Game_Interpreter
  246.   def force_escape(boss_also = false)
  247.     if $scene.is_a?(Scene_Battle)
  248.       $scene.ensure_escape if boss_also or $game_troop.can_escape
  249.     end
  250.   end
  251. end #game_interpreter
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top