Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #===============================================================================
- # SET EQUIPAGGIAMENTI
- #===============================================================================
- # Autore: Holy87
- # Versione: 2.0
- # Difficoltà utente: ★★
- #-------------------------------------------------------------------------------
- # In molti giochi di ruolo occidentali, se riesci a trovare ed a indossare
- # tutti i pezzi di uno stesso equipaggiamento ottieni svariati bonus. Ad esempio,
- # trovare l'armatura del drago + guanti del drago + elmo del drago + scudo del
- # drago potrebbe conferirti immunità al fuoco e maggiore attacco se indossati
- # tutti insieme. In questo modo si dà più importanza alle armors di quanto se
- # ne fosse data in passato.
- # È anche possibile fare un set se due armi specifiche sono equipaggiate insieme
- # (ovviamente il personaggio deve poter equipaggiare due armi).
- # Lo script assegna uno stato alterato specifico all'eroe quando viene attivato
- # uno specifico set. Installare uno script che estende le possibilità degli
- # stati alterati renderebbe molto più utile questo script.
- # * ATTENZIONE * lo script è stato concepito per attivare 1 solo bonus set
- # armatura, per bonus set multipli viene preso quello con ID più alto.
- #-------------------------------------------------------------------------------
- # Istruzioni:
- # Copiare lo script sotto Materials, prima del Main.
- # Configurare in basso i set con i relativi equipaggiamenti richiesti. Ricordati
- # che se vengono soddisfatte le condizioni per due set diversi, solo quello con
- # ID più alto viene soddisfatto.
- # In questo modo puoi impostare diversi bonus a seconda se l'equipaggiamento è
- # completo oppure no.
- #
- #-------------------------------------------------------------------------------
- # Compatibilità:
- # Game_Battler -> Alias del metodo states
- # Game_Actor -> Alias del metodo change_equip
- #-------------------------------------------------------------------------------
- #===============================================================================
- # ** Impostazioni
- #===============================================================================
- module SETS
- Armors = {
- #Configura i vari set. A sinistra lo stato da attivare, nell'array tutti gli
- #equipaggiamenti necessari.
- #Stato => [Armatura1,Armatura2,Armatura3,...]
- 17 => [32, 37], # Elmo e Armatura di Ferro attivano Corpo di Ferro
- }
- #Configura le coppie di armi. A sinistra lo stato da attivare, nell'array
- #le coppie di armi necessarie per attivare il bonus.
- #Stato => [Arma1, Arma2]
- Weapons = {
- }
- end #configurazione
- $imported = {} if $imported == nil
- $imported["H87_EquipArmorss"] = 2.0
- #===============================================================================
- # ** classe Game_Actor
- #===============================================================================
- class Game_Actor < Game_Battler
- alias change_equip_set change_equip unless $@
- # restituisce il set soddisfatto o nil.
- def armor_set
- armor_ids = armors.compact.map{|a| a.id}
- SETS::Armors.select{|k,v| (v - armor_ids).empty? }.keys.max
- end
- # restituisce il set soddisfatto dell'arma con maggiore priorità
- # o nil se nessuno è soddisfatto
- def weapon_set
- weapon_ids = weapons.compact.map { |w| w.id }
- SETS::Weapons.select{|k,v| (v - weapon_ids).empty? }.keys.max
- end
- # cambia l'equipaggiamento dell'eroe
- # @param [Integer] slot_id
- # @param [RPG::Weapon, RPG::Armor] item
- def change_equip(slot_id, item)
- change_equip_set(slot_id, item,)
- apply_bonus_set
- end
- # ricalcola i bonus set dopo il cambio equipaggiamenti
- def apply_bonus_set
- init_bonus_sets
- add_set_bonus(armor_set)
- add_set_bonus(weapon_set)
- end
- # aggiunge il bonus del set all'eroe. Ignora se bonus è nil
- # @param [Integer] bonus
- def add_set_bonus(bonus)
- return if bonus.nil?
- return if @set_bonuses.include?(bonus)
- @set_bonuses.push(bonus)
- end
- # inizializza i bonus set e cancella tutti
- def init_bonus_sets
- @set_bonuses = []
- end
- # restituisce i bonus set attivati
- # @return [Array<RPG::State>]
- def set_bonuses
- init_bonus_sets if @set_bonuses.nil?
- @set_bonuses.compact.map { |state_id| $data_states[state_id] }
- end
- end #game_actor
- #===============================================================================
- # ** classe Game_Enemy
- #===============================================================================
- class Game_Enemy < Game_Battler
- # restituisce i bonus set attivati
- # @return [Array<RPG::State>]
- def set_bonuses
- [] # array vuoto perché non hanno equip
- end
- end
- #===============================================================================
- # ** classe Game_Battler
- #===============================================================================
- class Game_BattlerBase
- alias no_set_states states unless $@
- # restituisce gli status attuali + bonus set attivati
- # @return [Array<RPG::State>]
- def states
- no_set_states + set_bonuses
- end
- end #game_battler
Add Comment
Please, Sign In to add comment