Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $imported = {} if $imported == nil
- $imported["H87_Escape"] = true
- #===============================================================================
- # ** Probabilità di fuga **
- # Versione: 1.0 (15/04/2013)
- # Difficoltà utente: ★★
- #===============================================================================
- # DESCRIZIONE:
- # Questo script permette di modificare le probabilità di fuga grazie ad
- # equipaggiamenti e stati alterati.
- #===============================================================================
- # UTILIZZO:
- # Installare lo script sotto Materials e prima del Main.
- # Inserire, nel riquadro delle note dello stato o dell'equipaggiamento, la
- # seguente etichetta:
- # <fuga: x> dove x è il valore (valori positivi aumentano le probabilità, valori
- # negativi le diminuiscono) (max 100: probabilità sicura).
- # I bonus sono cumulativi.
- # Se vuoi far fuggire il gruppo, basta che scrivi in un chiama script:
- # force_escape
- # puoi creare abilità che chiamano un evento comune con questa skill. La fuga
- # non funzionerà contro i boss.
- # force_escape(true) fa fuggire gli eroi dall'incontro anche se si tratta di un
- # boss.
- #===============================================================================
- # COMPATIBILITA':
- # Compatibile con quasi tutti gli script.
- #===============================================================================
- module H87_Escape
- # IMPOSTAZIONI
- #Cambia il valore di questa costante per aggiustare il valore base delle
- #probabilità di fuga:
- Adjuster = 15
- #===============================================================================
- # ** FINE CONFIGURAZIONE **
- # Attenzione: Non modificare ciò che c'è oltre, a meno che tu non sappia ciò che
- # fai!
- #===============================================================================
- EB = /<(?:FUGA|fuga):[ ]*(\d+)>/i
- end
- #===============================================================================
- # ** Game_Actor
- #===============================================================================
- class Game_Actor < Game_Battler
- def get_escape_bonus
- bonus = 0
- weapons.each{|weapon|
- next if weapon == nil
- bonus += weapon.escape_bonus
- }
- armors.each{|armor|
- next if armor == nil
- bonus += armor.escape_bonus
- }
- states.each{|state|
- next if state == nil
- bonus += state.escape_bonus
- }
- return bonus
- end
- end # game_actor
- #===============================================================================
- # ** Classe Armi
- #===============================================================================
- class RPG::Weapon
- attr_reader :escape_bonus
- def escape_bonus
- return @escape_bonus
- end
- def carica_cache_personale_esc
- return if @cache_caricatae
- @cache_caricatae=true
- @escape_bonus = 0
- self.note.split(/[\r\n]+/).each { |riga|
- case riga
- when H87_Escape::EB
- @escape_bonus += $1.to_i
- end
- }
- end
- end
- #===============================================================================
- # ** Classe Armature
- #===============================================================================
- class RPG::Armor
- attr_reader :escape_bonus
- def escape_bonus
- return @escape_bonus
- end
- def carica_cache_personale_esc
- return if @cache_caricatae
- @cache_caricatae=true
- @escape_bonus = 0
- self.note.split(/[\r\n]+/).each { |riga|
- case riga
- when H87_Escape::EB
- @escape_bonus += $1.to_i
- end
- }
- end
- end
- #===============================================================================
- # ** Classe Status
- #===============================================================================
- class RPG::State
- attr_reader :escape_bonus
- def escape_bonus
- return @escape_bonus
- end
- def carica_cache_personale_esc
- return if @cache_caricatae
- @cache_caricatae=true
- @escape_bonus = 0
- self.note.split(/[\r\n]+/).each { |riga|
- case riga
- when H87_Escape::EB
- @escape_bonus += $1.to_i
- end
- }
- end
- end
- #==============================================================================
- # ** Scene_Title
- #==============================================================================
- class Scene_Title < Scene_Base
- #-----------------------------------------------------------------------------
- # *Alias metodo load_bt_database
- #-----------------------------------------------------------------------------
- alias l_bt_de load_bt_database unless $@
- def load_bt_database
- l_bt_de
- setup_escape_states
- setup_escape_armors
- setup_escape_weapons
- end
- #-----------------------------------------------------------------------------
- # *Alias metodo load_database
- #-----------------------------------------------------------------------------
- alias ld_de load_database unless $@
- def load_database
- ld_de
- setup_escape_states
- setup_escape_armors
- setup_escape_weapons
- end
- #-----------------------------------------------------------------------------
- # *Inizializza nel caricamento
- #-----------------------------------------------------------------------------
- def setup_escape_states
- for state in $data_states
- next if state == nil
- state.carica_cache_personale_esc
- end
- end
- #-----------------------------------------------------------------------------
- # *setup_escape_armors
- #-----------------------------------------------------------------------------
- def setup_escape_armors
- for armor in $data_armors
- next if armor == nil
- armor.carica_cache_personale_esc
- end
- end
- #-----------------------------------------------------------------------------
- # *setup_escape_weapons
- #-----------------------------------------------------------------------------
- def setup_escape_weapons
- for weapon in $data_weapons
- next if weapon == nil
- weapon.carica_cache_personale_esc
- end
- end
- end # scene_title
- #==============================================================================
- # ** Scene_Battle
- #==============================================================================
- class Scene_Battle < Scene_Base
- #-----------------------------------------------------------------------------
- # *Alias metodo start
- #-----------------------------------------------------------------------------
- alias re_start start unless $@
- def start
- re_start
- @sure_escape = false
- end
- #-----------------------------------------------------------------------------
- # * cambia le prob. di fuga
- #-----------------------------------------------------------------------------
- alias remake_escape make_escape_ratio unless $@
- def make_escape_ratio
- remake_escape
- @escape_ratio += H87_Escape::Adjuster
- @escape_ratio += actors_escape_bonus
- end
- #-----------------------------------------------------------------------------
- # * controlla il bonus di fuga degli eroi
- #-----------------------------------------------------------------------------
- def actors_escape_bonus
- bonus = 0
- for member in $game_party.members
- bonus += member.get_escape_bonus
- end
- bonus += 999999 if @sure_escape
- return bonus
- end
- #-----------------------------------------------------------------------------
- # * viene eseguito quando la fuga è obbligata da eventi.
- #-----------------------------------------------------------------------------
- def ensure_escape
- @sure_escape = true
- make_escape_ratio
- process_escape
- end
- end # scene_battle
- #==============================================================================
- # ** Game_Interpreter
- #==============================================================================
- class Game_Interpreter
- def force_escape(boss_also = false)
- if $scene.is_a?(Scene_Battle)
- $scene.ensure_escape if boss_also or $game_troop.can_escape
- end
- end
- end #game_interpreter
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement