Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $imported = {} if $imported == nil
- $imported["H87_Golds"] = true
- #===============================================================================
- # DENARO SUDDIVISO IN MONETE
- #===============================================================================
- # Autore: Holy87
- # Versione: 1.2
- # Difficoltà utente: ★
- #-------------------------------------------------------------------------------
- # In molti giochi di ruolo, come World of Warcraft e Dragon Age, il denaro
- # posseduto viene calcolato in monete di bronzo, monete d'argento e monete d'oro.
- # Questo script convertirà il denaro da semplice numero e valuta in monete con
- # relativa icona.
- # *fix valori negativi
- # *Novità versione 1.1: compatibilità YEA Save Engine
- #-------------------------------------------------------------------------------
- # Istruzioni:
- # Copiare lo script sotto Materials, prima del Main.
- # Puoi anche convertire un numero in monete nella finestra dei messaggi
- # scrivendo \M[valore].
- #-------------------------------------------------------------------------------
- # Compatibilità:
- # Window_Base
- # draw_currency_value -> riscrittura
- # process_escape_character -> alias
- # Window_ShopBuy
- # draw_item -> riscrittura
- #-------------------------------------------------------------------------------
- module H87_GoldSetup
- #===============================================================================
- # ** CONFIGURAZIONE **
- #===============================================================================
- #Inserisci l'ID delle relative icone:
- ICONBRONZE = 140 #icona della moneta di bronzo
- ICONSILVER = 141 #icona della moneta d'argento
- ICONGOLD = 361 #icona della moneta d'oro
- #Se vuoi, puoi impostare valori differenti per ogni moneta:
- VALUEBRONZE = 1
- VALUESILVER = 100
- VALUEGOLD = 100
- #Imposta questa costante su True se vuoi che le cifre si sovrappongano a una
- #parte dell'icona della moneta, risparmiando così lo spazio.
- IconOverlay = true
- end
- module Vocab
- #Testo che viene mostrato alla fine della battaglia.
- ObtainGold = "Hai guadagnato \\M[%s]!"
- end
- #===============================================================================
- # ** FINE CONFIGURAZIONE **
- # Attenzione: Non modificare ciò che c'è oltre, a meno che tu non sappia ciò che
- # fai! C'è gente che si è suicidata per molto meno, fidati.
- #===============================================================================
- #==============================================================================
- # ** Window_Base
- #------------------------------------------------------------------------------
- # La maggior parte dei metodi necessari si trovano in questa classe
- #==============================================================================
- class Window_Base < Window
- include H87_GoldSetup #inclusione del modulo
- #--------------------------------------------------------------------------
- # * Riscrittura di draw_currency_value
- #--------------------------------------------------------------------------
- def draw_currency_value(value, unit, x, y, width)
- if value < 0
- @negative = true
- value *= -1
- end
- iconw = IconOverlay ? 12 : 24
- bronzes = get_bronzes(value)
- silvers = get_silvers(value)
- golds = get_golds(value)
- w2 = width
- if bronzes > 0
- draw_icon(ICONBRONZE,x+w2-24,y)
- w2-=iconw
- w1 = text_size(bronzes).width
- draw_text(x,y,w2,line_height,bronzes,2)
- w2-=w1
- end
- if silvers > 0
- draw_icon(ICONSILVER,x+w2-24,y)
- w2-=iconw
- w1 = text_size(silvers).width
- draw_text(x,y,w2,line_height,silvers,2)
- w2-=w1
- end
- if golds > 0
- draw_icon(ICONGOLD,x+w2-24,y)
- w2-=iconw
- w1 = text_size(golds).width
- draw_text(x,y,w2,line_height,golds,2)
- w2 -= w1
- end
- if @negative #disegna un meno con i numeri negativi
- draw_text(x,y,w2,line_height,"-",2)
- end
- end
- #--------------------------------------------------------------------------
- # * Restituisce le monete di bronzo da value
- #--------------------------------------------------------------------------
- def get_bronzes(value)
- value%VALUESILVER
- end
- #--------------------------------------------------------------------------
- # * Restituisce le monete d'argento da value
- #--------------------------------------------------------------------------
- def get_silvers(value)
- value/VALUESILVER%VALUEGOLD
- end
- #--------------------------------------------------------------------------
- # * Restituisce le monete d'oro da value
- #--------------------------------------------------------------------------
- def get_golds(value)
- value/VALUESILVER/VALUEGOLD
- end
- #--------------------------------------------------------------------------
- # * alias process_escape_character
- #--------------------------------------------------------------------------
- alias goldp_e_c process_escape_character unless $@
- def process_escape_character(code, text, pos)
- goldp_e_c(code, text, pos)
- case code.upcase
- when 'M'
- process_draw_coins(obtain_escape_param(text),pos)
- end
- end
- #--------------------------------------------------------------------------
- # * disegna le monete nella finestra
- #--------------------------------------------------------------------------
- def process_draw_coins(value, pos)
- width = calc_currency_width(value)
- draw_currency_value(value, "", pos[:x], pos[:y], width)
- pos[:x] += width
- end
- #--------------------------------------------------------------------------
- # * restituisce la larghezza giusta del testo
- #--------------------------------------------------------------------------
- def calc_currency_width(value)
- iconw = IconOverlay ? 12 : 24
- bronzes = get_bronzes(value)
- silvers = get_silvers(value)
- golds = get_golds(value)
- text = ""
- width = 0
- if bronzes > 0
- text += bronzes.to_s
- width += iconw
- end
- if silvers > 0
- text += silvers.to_s
- width += iconw
- end
- if golds > 0
- text += golds.to_s
- width += iconw
- end
- width += text_size(text).width
- return width
- end
- end #window_base
- #==============================================================================
- # ** Window_ShopBuy
- #------------------------------------------------------------------------------
- # Modifica del metodo per mostrare le monete
- #==============================================================================
- class Window_ShopBuy < Window_Selectable
- #--------------------------------------------------------------------------
- # * riscrittura del metodo draw_item
- #--------------------------------------------------------------------------
- def draw_item(index)
- item = @data[index]
- rect = item_rect(index)
- draw_item_name(item, rect.x, rect.y, enable?(item))
- rect.width -= 4
- draw_currency_value(price(item),"",rect.x,rect.y,rect.width)
- end
- end #window_shopbuy
- if $imported["YEA-SaveEngine"]
- #==============================================================================
- # ** Window_FileStatus
- #------------------------------------------------------------------------------
- # Override per compatibilità Yanfly
- #==============================================================================
- class Window_FileStatus < Window_Base
- #--------------------------------------------------------------------------
- # * draw_save_gold
- #--------------------------------------------------------------------------
- def draw_save_gold(dx, dy, dw)
- return if @header[:party].nil?
- reset_font_settings
- change_color(system_color)
- draw_text(dx, dy, dw, line_height, YEA::SAVE::TOTAL_GOLD)
- change_color(normal_color)
- draw_currency_value(@header[:party].gold.group.to_i, "", dx, dy, dw)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement