=begin ● 数値の桁区切り描画 ver1.0-------------------------------------(c)光の軌想曲  通貨や各種パラメータ、ダメージといった数値を  3桁ごとの桁区切り形式で表示させることができます。  ○つかいかた  カスタマイズポイントにて桁区切りの文字と適用範囲を設定してください。  他に特別な操作は必要ありません。 ○競合の可能性:他の描画系素材や、パラメータを弄る素材と競合の可能性あり。         ▼ 素材 の中で、できるだけ上に導入してください。         Window_Base, Window_EquipStatus, Window_Status, Window_ShopBuy, Scene_Battle に再定義があります。 (競合した場合:  再定義メソッドの書き換えた所に # を付けてあります。  それを参考に各自で頑張ってくださいm(__)m ○更新履歴 2010/ 7/18 ver1.0公開 =end #---------------------------------------------------------------------------- # ↓カスタマイズポイント module MAZ # 桁区切りに使用する文字(列) SEP_CHAR = "," # 通貨に桁区切りを適用する SEP_CURRENCY = true # Lv,HP,MP,能力値,経験値に桁区切りを適用する SEP_PARAMETER = true # 戦闘中のダメージに桁区切りを適用する SEP_DAMAGE = true end # ↑カスタマイズポイントおわり #---------------------------------------------------------------------------- module MAZ module Fun #-------------------------------------------------------------------------- # ● 数値の桁区切り形式の文字列を返す #-------------------------------------------------------------------------- def thou_sep(num) return num unless num.is_a?(Integer) s = num.to_s.reverse length = s.length length -= 1 if num < 0 i = 3 while i 0 text = sprintf(Vocab::ObtainExp, thou_sep(exp)) # $game_message.texts.push('\.' + text) end if gold > 0 text = sprintf(Vocab::ObtainGold, thou_sep(gold), Vocab::gold) # $game_message.texts.push('\.' + text) end wait_for_message else sep_display_exp_and_gold end end #-------------------------------------------------------------------------- # ● HP ダメージ表示 # target : 対象者 # obj : スキルまたはアイテム #-------------------------------------------------------------------------- alias sep_display_hp_damage display_hp_damage def display_hp_damage(target, obj = nil) if MAZ::SEP_DAMAGE if target.hp_damage == 0 # ノーダメージ return if obj != nil and obj.damage_to_mp return if obj != nil and obj.base_damage == 0 fmt = target.actor? ? Vocab::ActorNoDamage : Vocab::EnemyNoDamage text = sprintf(fmt, target.name) elsif target.absorbed # 吸収 fmt = target.actor? ? Vocab::ActorDrain : Vocab::EnemyDrain text = sprintf(fmt, target.name, Vocab::hp, thou_sep(target.hp_damage)) elsif target.hp_damage > 0 # ダメージ if target.actor? text = sprintf(Vocab::ActorDamage, target.name, thou_sep(target.hp_damage)) # Sound.play_actor_damage $game_troop.screen.start_shake(5, 5, 10) else text = sprintf(Vocab::EnemyDamage, target.name, thou_sep(target.hp_damage)) # Sound.play_enemy_damage target.blink = true end else # 回復 fmt = target.actor? ? Vocab::ActorRecovery : Vocab::EnemyRecovery text = sprintf(fmt, target.name, Vocab::hp, thou_sep(-target.hp_damage)) # Sound.play_recovery end @message_window.add_instant_text(text) wait(30) else sep_display_hp_damage(target, obj) end end #-------------------------------------------------------------------------- # ● MP ダメージ表示 # target : 対象者 # obj : スキルまたはアイテム #-------------------------------------------------------------------------- alias sep_display_mp_damage display_mp_damage def display_mp_damage(target, obj = nil) if MAZ::SEP_DAMAGE return if target.dead? return if target.mp_damage == 0 if target.absorbed # 吸収 fmt = target.actor? ? Vocab::ActorDrain : Vocab::EnemyDrain text = sprintf(fmt, target.name, Vocab::mp, thou_sep(target.mp_damage)) # elsif target.mp_damage > 0 # ダメージ fmt = target.actor? ? Vocab::ActorLoss : Vocab::EnemyLoss text = sprintf(fmt, target.name, Vocab::mp, thou_sep(target.mp_damage)) # else# 回復 fmt = target.actor? ? Vocab::ActorRecovery : Vocab::EnemyRecovery text = sprintf(fmt, target.name, Vocab::mp, thou_sep(-target.mp_damage)) # Sound.play_recovery end @message_window.add_instant_text(text) wait(30) else sep_display_mp_damage(target, obj) end end end