赞 | 170 |
VIP | 6 |
好人卡 | 208 |
积分 | 229 |
经验 | 137153 |
最后登录 | 2024-11-15 |
在线时间 | 8638 小时 |
Lv5.捕梦者
- 梦石
- 0
- 星屑
- 22948
- 在线时间
- 8638 小时
- 注册时间
- 2011-12-31
- 帖子
- 3367
|
制御文字拡張 VX Ace By 貪藻矢射妥
使用例
#============================================================================== # ■ 制御文字拡張 VX Ace By 貪藻矢射妥← #------------------------------------------------------------------------------ # 制御文字を拡張します。 # # ※draw_text_exを拡張しています。 # # ※ルビ描画にてルビ、もしくは本文に半角スペースを入れないでください。 # 正しく表示できません。 # #============================================================================== # # VX Ace 標準 # \v[n] : 変数n番の値を表示 # \n[n] : アクターn番目の名前を表示 # \p[n] : パーティーn番目の名前を表示 # \g : ゴールド表示 # \c[n] : n番目の色に変更 # \i[n] : n番目のアイコン表示 # \{ : 描画文字サイズを大きく # \} : 描画文字サイズを小さく # \. : 1/4 sec wait # \| : 1sec wait # \! : 入力待ち # \> : \< まで瞬間表示 # \< : \> から瞬間表示 # \^ : 入力待ちなし # 追加 # \nn[n] : アクターn番目のニックネームを表示 # \e[n] : エネミーn番目の名前を表示 # \m[n] : マップn番目の名前を表示 # \md[n] : マップn番目の表示名を表示 # \j[n] : n番目の職業を表示 # \t[n] : n番目の道具をアイコンつきで表示 # \w[n] : n番目の武器をアイコンつきで表示 # \a[n] : n番目の防具をアイコンつきで表示 # \s[n] : n番目のスキルをアイコンつきで表示 # \r[text,ruby] : rubyをふりがなにtextを描画 # \rfix[text] : 定型句が割り振られているルビつき文字を描画 # #============================================================================== # 更新っぽいもの # 2012:01:15 # ・XP風アイコン描画 VX Aceに対応 # ・一度に複数回ルビを振ることが出来なかったバグを修正 # # 2012:03:18 # ・VX Aceのミスだと思っていた convert_escape_characters の # $game_variablesが二つあるのを復帰。 # \v[\v[n]]のために必要なんですね・・・ # # 2012:10:01 # ・Ver.1.01aからData/MapInfos.rvdata2には表示名が存在しないためスクリプト変更 # ・アクター名などに制御文字が入っていた場合の制御文字にも対応 #============================================================================== # ■ Window_Base #------------------------------------------------------------------------------ # ゲーム中の全てのウィンドウのスーパークラスです。 #============================================================================== class Window_Base < Window # ルビ定型句セット FIX_RUBY = { "赤眉" => "チーメイ", "傾奇" => "かぶき", "明殺" => "みょうさつ", "開封" => "かいほう", "綺羅神無" => "らじんきむ", "応龍" => "おうりゅう", "齎" => "もたら", "麒麟" => "キリン", "霊龜" => "れいき", "素盞嗚尊" => "スサノオノミコト", "燭龍" => "しょくりゅう", "月陽歳刑" => "つきかげさいぎょう", "歳星黄幡" => "さいせいおうばん", "天下太陰" => "てんげだいおん", "元屠歳殺" => "げんとさいさつ" , "天蓋流剣鞘" => "てんがいりゅうけんしょう", "絳征" => "こうせい", "炎一刀" => "ほむらいっとう", "虹影" => "にじかげ", "誘薙双剣" => "いざなぎそうけん", "天狼碎牙" => "てんろうさいが", "天狼真牙" => "てんろうしんが", "穀蔵院一刀" => "こくぞういんいっとう", "愛染" => "あいぜん", "舞雅" => "むげ", "雅閃" => "がせん", "秘雅閃" => "ひがせん", "極雅閃" => "きょくがせん", "終雅閃" => "しゅうがせん", "黎淵夢" => "くろきふちのゆめ", "夢刃" => "むじん", "示現流瞬槍" => "じげんりゅうしゅんそう", "黎杭打刳撃" => "パイルドライバー", "逆転黎杭打刳撃" => "リバース・パイルドライバー", "回転黎杭打刳撃" => "スピニング・パイルドライバー", "跳躍黎杭打刳撃" => "ジャンピング・パイルドライバー", "旋抉黎杭打刳撃" => "スクリュー・パイルドライバー", "削岩錐穴黎杭打刳撃" => "ドリル・ア・ホール・パイルドライバー", "被覆鋼弾" => "フルメタルジャケット", "撤甲弾" => "アーマーピアシング", "炸 裂 弾" => "エクスプロージョンブリット", "黒き猛禽の爪" => "ブラックタロン", "鵺帛主" => "ヤヌス", "王宮一級品" => "ロイヤルコレクション", "零道漓" =>"プルウィウス", " 真 " => "チェンジ!!", "殺形刀" => "サルヒヨンド", " S D " => "SEED DESTINY", "天国" => "あまくに", "碧聖刃" => "シアンセイクレド", " S T " => "シャイニング・トラペゾヘドロン", "保護陰盾" => "プロテクトシェード", "蘭花" => "ランファ", " A T " => "アナザータイプ", "夢龍" => "モンリョン", "春香" => "チュンヒャン", "文秀" => "ムンス", "元述" => "ウォンスル", "英實" => "ヨンシル", "暗行御史" => "アメンオサ", "山道" => "サンド", "朱羅姫" => "シュラキ", "奠夷瑪" => "ディーヴァ", "女王禍" => "ジョーカー", "茜瑙哭" => "セドナ", "爾幽樟" => "ニュクス", "刺舞鴉" => "シヴァ", "逢喇且雫" => "アフラ・マズダ", "槃導邏" => "パンドラ", "霹瓏婚枢" => "ペルクナス", "炳佩鍍嵩" => "ヘパイトス", "宕瓏牙" => "ドゥルガー", "微朱主" => "ヴィシュヌ", "魔血玉" => "デモンブラッド", "呪符" => "タリズマン", "閣氏" => "カクシ", "歳殺陽天" => "さいさつようてん", "歳刑星天" => "さいぎょうせいてん", "黄幡暗天" => "おうばんあんてん", "太陰邪天" => "だいおんじゃてん", "陰轟留牡鴉" => "アンゴルモア", "緋々色金" => "ヒヒイロカネ", "青生生魂" => "アボイタカラ", } #-------------------------------------------------------------------------- # ● 制御文字の事前変換 # 実際の描画を始める前に、原則として文字列に変わるものだけを置き換える。 # 文字「\」はエスケープ文字(\e)に変換。 #-------------------------------------------------------------------------- def convert_escape_characters(text) result = text.to_s.clone # 既存 result.gsub!(/\\/) { "\e" } result.gsub!(/\e\e/) { "\\" } result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] } result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] } result.gsub!(/\eN\[(\d+)\]/i) { actor_name($1.to_i) } result.gsub!(/\eP\[(\d+)\]/i) { party_member_name($1.to_i) } result.gsub!(/\eG/i) { Vocab::currency_unit } # 追加 result.gsub!(/\eNN\[(\d+)\]/i) { actor_nickname($1.to_i) } result.gsub!(/\eE\[(\d+)\]/i) { enemy_name($1.to_i) } result.gsub!(/\eM\[(\d+)\]/i) { map_name($1.to_i) } result.gsub!(/\eMD\[(\d+)\]/i) { map_display_name($1.to_i) } result.gsub!(/\eJ\[(\d+)\]/i) { job_name($1.to_i) } result end #-------------------------------------------------------------------------- # ● アクター n 番の名前を取得 #-------------------------------------------------------------------------- def actor_name(n) actor = n >= 1 ? $game_actors[n] : nil actor ? convert_escape_characters(actor.name) : "" end #-------------------------------------------------------------------------- # ● アクター n 番のニックネームを取得 #-------------------------------------------------------------------------- def actor_nickname(n) actor = n >= 1 ? $game_actors[n] : nil actor ? convert_escape_characters(actor.nickname) : "" end #-------------------------------------------------------------------------- # ● パーティメンバー n 番の名前を取得 #-------------------------------------------------------------------------- def party_member_name(n) actor = n >= 1 ? $game_party.members[n - 1] : nil actor ? convert_escape_characters(actor.name) : "" end #-------------------------------------------------------------------------- # ● エネミー n 番の名前を取得 #-------------------------------------------------------------------------- def enemy_name(n) enemy = n >= 1 ? $data_enemies[n] : nil enemy ? convert_escape_characters(enemy.name) : "" end #-------------------------------------------------------------------------- # ● 職業 n 番の名前を取得 #-------------------------------------------------------------------------- def job_name(n) job = n >= 1 ? $data_classes[n] : nil job ? convert_escape_characters(job.name) : "" end #-------------------------------------------------------------------------- # ● マップ n 番の名前を取得 #-------------------------------------------------------------------------- def map_name(n) map = load_data(sprintf("Data/MapInfos.rvdata2"))[n] map ? convert_escape_characters(map.name) : "" end #-------------------------------------------------------------------------- # ● マップ n 番の表示名を取得 #-------------------------------------------------------------------------- def map_display_name(n) map = load_data(sprintf("Data/Map%03d.rvdata2", n)) map ? convert_escape_characters(map.display_name) : "" end #-------------------------------------------------------------------------- # ● 制御文字の処理 # code : 制御文字の本体部分(「\C[1]」なら「C」) #-------------------------------------------------------------------------- def process_escape_character(code, text, pos) case code.upcase # 既存 when 'C' change_color(text_color(obtain_escape_param(text))) when 'I' process_draw_icon(obtain_escape_param(text), pos) when '{' make_font_bigger when '}' make_font_smaller # 追加 when 'T' # 道具 process_draw_item(obtain_escape_param(text), pos) when 'W' # 武器 process_draw_weapon(obtain_escape_param(text), pos) when 'A' # 防具 process_draw_armor(obtain_escape_param(text), pos) when 'S' # スキル process_draw_skill(obtain_escape_param(text), pos) when 'R' # ルビ process_draw_ruby(obtain_escape_param2(text), pos) when "RFIX" # 定型句ルビ process_draw_ruby_fix(obtain_escape_param2(text), pos) end end #-------------------------------------------------------------------------- # ● 制御文字の引数を破壊的に取得 文字列編 #-------------------------------------------------------------------------- def obtain_escape_param2(text) text.slice!(/^\[(.+?)\]/)[/\S+/] rescue 0 end #-------------------------------------------------------------------------- # ● 制御文字によるルビ描画の処理 #-------------------------------------------------------------------------- def process_draw_ruby(str, pos) str.gsub!(/\[(.+?),(.+?)\]/, "") text = $1 ruby = $2 process_draw_ruby_root(text, ruby, pos) end #-------------------------------------------------------------------------- # ● 制御文字によるルビ定型句描画の処理 #-------------------------------------------------------------------------- def process_draw_ruby_fix(str, pos) str.gsub!(/\[(.+?)\]/, "") text = $1 ruby = FIX_RUBY[$1] process_draw_ruby_root(text, ruby, pos) end #-------------------------------------------------------------------------- # ● 制御文字によるルビ描画の処理 おおもと #-------------------------------------------------------------------------- def process_draw_ruby_root(text, ruby, pos) text_w = text_size(text).width text_h = text_size(text).height f_size_back = contents.font.size ruby_size = [(f_size_back + 66) / 8, f_size_back * 2 / 3].min contents.font.size = ruby_size draw_text(pos[:x], pos[:y] + 8 - ruby_size, text_w, ruby_size, ruby, 1) contents.font.size = f_size_back draw_text(pos[:x], pos[:y] + 6, text_w + 4, text_h, text) pos[:x] += text_w end #-------------------------------------------------------------------------- # ● 制御文字によるアイテム描画の処理 #-------------------------------------------------------------------------- def process_draw_item(id, pos) item = id.to_i >= 1 ? $data_items[id.to_i] : nil process_draw_data(item, pos) end #-------------------------------------------------------------------------- # ● 制御文字による武器描画の処理 #-------------------------------------------------------------------------- def process_draw_weapon(id, pos) weapon = id.to_i >= 1 ? $data_weapons[id.to_i] : nil process_draw_data(weapon, pos) end #-------------------------------------------------------------------------- # ● 制御文字による防具描画の処理 #-------------------------------------------------------------------------- def process_draw_armor(id, pos) armor = id.to_i >= 1 ? $data_armors[id.to_i] : nil process_draw_data(armor, pos) end #-------------------------------------------------------------------------- # ● 制御文字によるスキル描画の処理 #-------------------------------------------------------------------------- def process_draw_skill(id, pos) skill = id.to_i >= 1 ? $data_skills[id.to_i] : nil process_draw_data(skill, pos) end #-------------------------------------------------------------------------- # ● 制御文字によるアイテム、武器、防具、スキル描画の処理 おおもと #-------------------------------------------------------------------------- def process_draw_data(data, pos) if data != nil data_name = data.name data_icon = data.icon_index if $OuterFlgs["Icon_Extend"] text = data.note.clone @icon_name = text =~ /ICON#{DIA_IC::STT}(\S+)#{DIA_IC::FIN}/ ? $1 : nil if @icon_name != nil draw_icon_XP(@icon_name, pos[:x], pos[:y]) else draw_icon(data_icon, pos[:x], pos[:y]) end else draw_icon(data_icon, pos[:x], pos[:y]) end pos[:x] += 24 text_width = text_size(data_name).width #draw_text(pos[:x], pos[:y], text_width, pos[:height], data_name) draw_text_ex(pos[:x], pos[:y], data_name) pos[:x] += text_width end end #-------------------------------------------------------------------------- # ● 名前の描画 #-------------------------------------------------------------------------- def draw_actor_name(actor, x, y, width = 112) change_color(hp_color(actor)) draw_text_ex(x, y, actor.name) end #-------------------------------------------------------------------------- # ● 職業の描画 #-------------------------------------------------------------------------- def draw_actor_class(actor, x, y, width = 112) change_color(normal_color) draw_text_ex(x, y, actor.class.name) end #-------------------------------------------------------------------------- # ● 二つ名の描画 #-------------------------------------------------------------------------- def draw_actor_nickname(actor, x, y, width = 180) change_color(normal_color) draw_text_ex(x, y, actor.nickname) end end
#==============================================================================
# ■ 制御文字拡張 VX Ace By 貪藻矢射妥←
#------------------------------------------------------------------------------
# 制御文字を拡張します。
#
# ※draw_text_exを拡張しています。
#
# ※ルビ描画にてルビ、もしくは本文に半角スペースを入れないでください。
# 正しく表示できません。
#
#==============================================================================
#
# VX Ace 標準
# \v[n] : 変数n番の値を表示
# \n[n] : アクターn番目の名前を表示
# \p[n] : パーティーn番目の名前を表示
# \g : ゴールド表示
# \c[n] : n番目の色に変更
# \i[n] : n番目のアイコン表示
# \{ : 描画文字サイズを大きく
# \} : 描画文字サイズを小さく
# \. : 1/4 sec wait
# \| : 1sec wait
# \! : 入力待ち
# \> : \< まで瞬間表示
# \< : \> から瞬間表示
# \^ : 入力待ちなし
# 追加
# \nn[n] : アクターn番目のニックネームを表示
# \e[n] : エネミーn番目の名前を表示
# \m[n] : マップn番目の名前を表示
# \md[n] : マップn番目の表示名を表示
# \j[n] : n番目の職業を表示
# \t[n] : n番目の道具をアイコンつきで表示
# \w[n] : n番目の武器をアイコンつきで表示
# \a[n] : n番目の防具をアイコンつきで表示
# \s[n] : n番目のスキルをアイコンつきで表示
# \r[text,ruby] : rubyをふりがなにtextを描画
# \rfix[text] : 定型句が割り振られているルビつき文字を描画
#
#==============================================================================
# 更新っぽいもの
# 2012:01:15
# ・XP風アイコン描画 VX Aceに対応
# ・一度に複数回ルビを振ることが出来なかったバグを修正
#
# 2012:03:18
# ・VX Aceのミスだと思っていた convert_escape_characters の
# $game_variablesが二つあるのを復帰。
# \v[\v[n]]のために必要なんですね・・・
#
# 2012:10:01
# ・Ver.1.01aからData/MapInfos.rvdata2には表示名が存在しないためスクリプト変更
# ・アクター名などに制御文字が入っていた場合の制御文字にも対応
#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
# ゲーム中の全てのウィンドウのスーパークラスです。
#==============================================================================
class Window_Base < Window
# ルビ定型句セット
FIX_RUBY = {
"赤眉" => "チーメイ",
"傾奇" => "かぶき",
"明殺" => "みょうさつ",
"開封" => "かいほう",
"綺羅神無" => "らじんきむ",
"応龍" => "おうりゅう",
"齎" => "もたら",
"麒麟" => "キリン",
"霊龜" => "れいき",
"素盞嗚尊" => "スサノオノミコト",
"燭龍" => "しょくりゅう",
"月陽歳刑" => "つきかげさいぎょう",
"歳星黄幡" => "さいせいおうばん",
"天下太陰" => "てんげだいおん",
"元屠歳殺" => "げんとさいさつ" ,
"天蓋流剣鞘" => "てんがいりゅうけんしょう",
"絳征" => "こうせい",
"炎一刀" => "ほむらいっとう",
"虹影" => "にじかげ",
"誘薙双剣" => "いざなぎそうけん",
"天狼碎牙" => "てんろうさいが",
"天狼真牙" => "てんろうしんが",
"穀蔵院一刀" => "こくぞういんいっとう",
"愛染" => "あいぜん",
"舞雅" => "むげ",
"雅閃" => "がせん",
"秘雅閃" => "ひがせん",
"極雅閃" => "きょくがせん",
"終雅閃" => "しゅうがせん",
"黎淵夢" => "くろきふちのゆめ",
"夢刃" => "むじん",
"示現流瞬槍" => "じげんりゅうしゅんそう",
"黎杭打刳撃" => "パイルドライバー",
"逆転黎杭打刳撃" => "リバース・パイルドライバー",
"回転黎杭打刳撃" => "スピニング・パイルドライバー",
"跳躍黎杭打刳撃" => "ジャンピング・パイルドライバー",
"旋抉黎杭打刳撃" => "スクリュー・パイルドライバー",
"削岩錐穴黎杭打刳撃" => "ドリル・ア・ホール・パイルドライバー",
"被覆鋼弾" => "フルメタルジャケット",
"撤甲弾" => "アーマーピアシング",
"炸 裂 弾" => "エクスプロージョンブリット",
"黒き猛禽の爪" => "ブラックタロン",
"鵺帛主" => "ヤヌス",
"王宮一級品" => "ロイヤルコレクション",
"零道漓" =>"プルウィウス",
" 真 " => "チェンジ!!",
"殺形刀" => "サルヒヨンド",
" S D " => "SEED DESTINY",
"天国" => "あまくに",
"碧聖刃" => "シアンセイクレド",
" S T " => "シャイニング・トラペゾヘドロン",
"保護陰盾" => "プロテクトシェード",
"蘭花" => "ランファ",
" A T " => "アナザータイプ",
"夢龍" => "モンリョン",
"春香" => "チュンヒャン",
"文秀" => "ムンス",
"元述" => "ウォンスル",
"英實" => "ヨンシル",
"暗行御史" => "アメンオサ",
"山道" => "サンド",
"朱羅姫" => "シュラキ",
"奠夷瑪" => "ディーヴァ",
"女王禍" => "ジョーカー",
"茜瑙哭" => "セドナ",
"爾幽樟" => "ニュクス",
"刺舞鴉" => "シヴァ",
"逢喇且雫" => "アフラ・マズダ",
"槃導邏" => "パンドラ",
"霹瓏婚枢" => "ペルクナス",
"炳佩鍍嵩" => "ヘパイトス",
"宕瓏牙" => "ドゥルガー",
"微朱主" => "ヴィシュヌ",
"魔血玉" => "デモンブラッド",
"呪符" => "タリズマン",
"閣氏" => "カクシ",
"歳殺陽天" => "さいさつようてん",
"歳刑星天" => "さいぎょうせいてん",
"黄幡暗天" => "おうばんあんてん",
"太陰邪天" => "だいおんじゃてん",
"陰轟留牡鴉" => "アンゴルモア",
"緋々色金" => "ヒヒイロカネ",
"青生生魂" => "アボイタカラ",
}
#--------------------------------------------------------------------------
# ● 制御文字の事前変換
# 実際の描画を始める前に、原則として文字列に変わるものだけを置き換える。
# 文字「\」はエスケープ文字(\e)に変換。
#--------------------------------------------------------------------------
def convert_escape_characters(text)
result = text.to_s.clone
# 既存
result.gsub!(/\\/) { "\e" }
result.gsub!(/\e\e/) { "\\" }
result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
result.gsub!(/\eN\[(\d+)\]/i) { actor_name($1.to_i) }
result.gsub!(/\eP\[(\d+)\]/i) { party_member_name($1.to_i) }
result.gsub!(/\eG/i) { Vocab::currency_unit }
# 追加
result.gsub!(/\eNN\[(\d+)\]/i) { actor_nickname($1.to_i) }
result.gsub!(/\eE\[(\d+)\]/i) { enemy_name($1.to_i) }
result.gsub!(/\eM\[(\d+)\]/i) { map_name($1.to_i) }
result.gsub!(/\eMD\[(\d+)\]/i) { map_display_name($1.to_i) }
result.gsub!(/\eJ\[(\d+)\]/i) { job_name($1.to_i) }
result
end
#--------------------------------------------------------------------------
# ● アクター n 番の名前を取得
#--------------------------------------------------------------------------
def actor_name(n)
actor = n >= 1 ? $game_actors[n] : nil
actor ? convert_escape_characters(actor.name) : ""
end
#--------------------------------------------------------------------------
# ● アクター n 番のニックネームを取得
#--------------------------------------------------------------------------
def actor_nickname(n)
actor = n >= 1 ? $game_actors[n] : nil
actor ? convert_escape_characters(actor.nickname) : ""
end
#--------------------------------------------------------------------------
# ● パーティメンバー n 番の名前を取得
#--------------------------------------------------------------------------
def party_member_name(n)
actor = n >= 1 ? $game_party.members[n - 1] : nil
actor ? convert_escape_characters(actor.name) : ""
end
#--------------------------------------------------------------------------
# ● エネミー n 番の名前を取得
#--------------------------------------------------------------------------
def enemy_name(n)
enemy = n >= 1 ? $data_enemies[n] : nil
enemy ? convert_escape_characters(enemy.name) : ""
end
#--------------------------------------------------------------------------
# ● 職業 n 番の名前を取得
#--------------------------------------------------------------------------
def job_name(n)
job = n >= 1 ? $data_classes[n] : nil
job ? convert_escape_characters(job.name) : ""
end
#--------------------------------------------------------------------------
# ● マップ n 番の名前を取得
#--------------------------------------------------------------------------
def map_name(n)
map = load_data(sprintf("Data/MapInfos.rvdata2"))[n]
map ? convert_escape_characters(map.name) : ""
end
#--------------------------------------------------------------------------
# ● マップ n 番の表示名を取得
#--------------------------------------------------------------------------
def map_display_name(n)
map = load_data(sprintf("Data/Map%03d.rvdata2", n))
map ? convert_escape_characters(map.display_name) : ""
end
#--------------------------------------------------------------------------
# ● 制御文字の処理
# code : 制御文字の本体部分(「\C[1]」なら「C」)
#--------------------------------------------------------------------------
def process_escape_character(code, text, pos)
case code.upcase
# 既存
when 'C'
change_color(text_color(obtain_escape_param(text)))
when 'I'
process_draw_icon(obtain_escape_param(text), pos)
when '{'
make_font_bigger
when '}'
make_font_smaller
# 追加
when 'T' # 道具
process_draw_item(obtain_escape_param(text), pos)
when 'W' # 武器
process_draw_weapon(obtain_escape_param(text), pos)
when 'A' # 防具
process_draw_armor(obtain_escape_param(text), pos)
when 'S' # スキル
process_draw_skill(obtain_escape_param(text), pos)
when 'R' # ルビ
process_draw_ruby(obtain_escape_param2(text), pos)
when "RFIX" # 定型句ルビ
process_draw_ruby_fix(obtain_escape_param2(text), pos)
end
end
#--------------------------------------------------------------------------
# ● 制御文字の引数を破壊的に取得 文字列編
#--------------------------------------------------------------------------
def obtain_escape_param2(text)
text.slice!(/^\[(.+?)\]/)[/\S+/] rescue 0
end
#--------------------------------------------------------------------------
# ● 制御文字によるルビ描画の処理
#--------------------------------------------------------------------------
def process_draw_ruby(str, pos)
str.gsub!(/\[(.+?),(.+?)\]/, "")
text = $1
ruby = $2
process_draw_ruby_root(text, ruby, pos)
end
#--------------------------------------------------------------------------
# ● 制御文字によるルビ定型句描画の処理
#--------------------------------------------------------------------------
def process_draw_ruby_fix(str, pos)
str.gsub!(/\[(.+?)\]/, "")
text = $1
ruby = FIX_RUBY[$1]
process_draw_ruby_root(text, ruby, pos)
end
#--------------------------------------------------------------------------
# ● 制御文字によるルビ描画の処理 おおもと
#--------------------------------------------------------------------------
def process_draw_ruby_root(text, ruby, pos)
text_w = text_size(text).width
text_h = text_size(text).height
f_size_back = contents.font.size
ruby_size = [(f_size_back + 66) / 8, f_size_back * 2 / 3].min
contents.font.size = ruby_size
draw_text(pos[:x], pos[:y] + 8 - ruby_size, text_w, ruby_size, ruby, 1)
contents.font.size = f_size_back
draw_text(pos[:x], pos[:y] + 6, text_w + 4, text_h, text)
pos[:x] += text_w
end
#--------------------------------------------------------------------------
# ● 制御文字によるアイテム描画の処理
#--------------------------------------------------------------------------
def process_draw_item(id, pos)
item = id.to_i >= 1 ? $data_items[id.to_i] : nil
process_draw_data(item, pos)
end
#--------------------------------------------------------------------------
# ● 制御文字による武器描画の処理
#--------------------------------------------------------------------------
def process_draw_weapon(id, pos)
weapon = id.to_i >= 1 ? $data_weapons[id.to_i] : nil
process_draw_data(weapon, pos)
end
#--------------------------------------------------------------------------
# ● 制御文字による防具描画の処理
#--------------------------------------------------------------------------
def process_draw_armor(id, pos)
armor = id.to_i >= 1 ? $data_armors[id.to_i] : nil
process_draw_data(armor, pos)
end
#--------------------------------------------------------------------------
# ● 制御文字によるスキル描画の処理
#--------------------------------------------------------------------------
def process_draw_skill(id, pos)
skill = id.to_i >= 1 ? $data_skills[id.to_i] : nil
process_draw_data(skill, pos)
end
#--------------------------------------------------------------------------
# ● 制御文字によるアイテム、武器、防具、スキル描画の処理 おおもと
#--------------------------------------------------------------------------
def process_draw_data(data, pos)
if data != nil
data_name = data.name
data_icon = data.icon_index
if $OuterFlgs["Icon_Extend"]
text = data.note.clone
@icon_name = text =~ /ICON#{DIA_IC::STT}(\S+)#{DIA_IC::FIN}/ ? $1 : nil
if @icon_name != nil
draw_icon_XP(@icon_name, pos[:x], pos[:y])
else
draw_icon(data_icon, pos[:x], pos[:y])
end
else
draw_icon(data_icon, pos[:x], pos[:y])
end
pos[:x] += 24
text_width = text_size(data_name).width
#draw_text(pos[:x], pos[:y], text_width, pos[:height], data_name)
draw_text_ex(pos[:x], pos[:y], data_name)
pos[:x] += text_width
end
end
#--------------------------------------------------------------------------
# ● 名前の描画
#--------------------------------------------------------------------------
def draw_actor_name(actor, x, y, width = 112)
change_color(hp_color(actor))
draw_text_ex(x, y, actor.name)
end
#--------------------------------------------------------------------------
# ● 職業の描画
#--------------------------------------------------------------------------
def draw_actor_class(actor, x, y, width = 112)
change_color(normal_color)
draw_text_ex(x, y, actor.class.name)
end
#--------------------------------------------------------------------------
# ● 二つ名の描画
#--------------------------------------------------------------------------
def draw_actor_nickname(actor, x, y, width = 180)
change_color(normal_color)
draw_text_ex(x, y, actor.nickname)
end
end
|
评分
-
查看全部评分
|