Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================#
- # KZM - Limit #
- #==============================================================#
- # Quest'opera è stata rilasciata con licenza Creative Commons #
- # Attribuzione - Condividi allo stesso modo 3.0 Italia. Per #
- # leggere una copia della licenza visita il sito web #
- # http://creativecommons.org/licenses/by-sa/3.0/it/ #
- # o spedisci una lettera a #
- # Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. #
- #==============================================================#
- # Versione: 1.0 #
- # Autore: KenzoMe92 #
- #==============================================================#
- # Storia #
- # 18/05/2015 Script iniziato e finito #
- #==============================================================#
- # Descrizione #
- # Questo script aggiunge la barra del limit e le #
- # abilità usate con questa barra in stile FFVII #
- #==============================================================#
- # Istruzioni #
- # Installare sotto "▼ Materials" e sopra "▼ Main", #
- # dopodiché nel database creare un nuovo tipo di #
- # tecniche, chiamato limit e per ogni tecnica #
- # inserita in quel tipo, mettere il seguente tag: #
- # <limit> #
- # per farla riconoscere dallo script e permetterne #
- # l'uso solo a barra completamente carica. #
- #==============================================================#
- class RPG::Skill
- #------------------------------------------#
- # Restituisce true se l'abilità è un limit #
- #------------------------------------------#
- def use_with_limit?
- self.note.split(/[\r\n]+/).each { |line|
- case line
- when /<limit>/
- return true
- end
- }
- return false
- end
- end
- class Game_BattlerBase
- #------------------------#
- # Alias delle condizioni #
- #------------------------#
- alias normal_condition_met skill_conditions_met?
- def skill_conditions_met?(skill)
- return false if limit_not_allowed(skill)
- return normal_condition_met(skill)
- end
- #--------------------------------------------------------------------------#
- # Reastituisce true se la skill è un limit e il limit accumulato non è max #
- #--------------------------------------------------------------------------#
- def limit_not_allowed(skill)
- return true if skill.use_with_limit? && self.limit < limit_max
- return false
- end
- end
- class Game_Battler
- #------------------------------#
- # Alias per resettare il limit #
- #------------------------------#
- alias normal_cons_item use_item
- def use_item(item)
- @limit = 0 if item.is_a?(RPG::Skill) && item.use_with_limit?
- normal_cons_item(item)
- end
- end
- class Game_Actor < Game_Battler
- attr_reader :limit #parametro limit, solo in lettura per sicurezza
- #------------------------------------------------------#
- # Aggiungo l'inizializzazione del limit dei personaggi #
- #------------------------------------------------------#
- alias limit_setup setup
- def setup(actor_id)
- limit_setup(actor_id)
- @limit = 0
- end
- #---------------------------------------------#
- # Metodo che assegna un nuovo valore al limit #
- #---------------------------------------------#
- def limit=(valore)
- @limit = [[0, valore].max, limit_max].min
- end
- #--------------------------------------------------#
- # Metodo che restituisce il valore del limit pieno #
- #--------------------------------------------------#
- def limit_max
- return 100
- end
- #---------------------------#
- # Metodo di reset del limit #
- #---------------------------#
- def reset_limit
- @limit = 0
- end
- #---------------------------------------#
- # Metodo che aumenta la barra del limit #
- #---------------------------------------#
- alias limit_damage execute_damage
- def execute_damage(user)
- limit_damage(user)
- self.limit += 5 if result.hp_damage > 0
- end
- end
- class Window_BattleStatus < Window_Selectable
- #------------------#
- # Disegno la barra #
- #------------------#
- alias draw_basic_area_lt draw_basic_area
- def draw_basic_area(rect, actor)
- draw_limit_bar(rect, actor)
- draw_basic_area_lt(rect, actor)
- end
- def draw_limit_bar(rect, actor)
- #la posizione x della barra è quella all'inizio
- x = rect.x
- #la posizione y è sul fondo del rettangolo
- y = rect.y
- #la larghezza della barra è quanto quella del rettangolo
- width = rect.width
- #questa è la proporzione tra limit accumulato e massimo
- rate = actor.limit.to_f/actor.limit_max
- #i colori della bara sono il colore 2 e 10 del testo
- #(quelli nella windowskin) partendo da 0
- color1 = text_color(10)
- color2 = text_color(2)
- #chiamo il metodo draw_gauge(vedi dichiarazione)
- draw_gauge(x, y, width, rate, color1, color2)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement