#============================================================================== # ■ VXAce-RGSS3-1 用語辞典-用語登録 制御文字 [Ver.1.0.0] by Claimh #------------------------------------------------------------------------------ # メッセージで使う制御文字から、用語登録(辞書の表示許可)をします。 #------------------------------------------------------------------------------ # \B[用語] : 用語を辞典へ登録 # \K[項目番号, 用語ID] : 指定IDの用語を辞典へ登録 ※画面には用語名が表示される #============================================================================== module Dictionary #-------------------------------------------------------------------------- # ● 用語登録(word) #-------------------------------------------------------------------------- def self.escape_word(word) $game_system.dictionary.keys.each do |ct| $game_system.dictionary[ct].keys.each do |id| data = $game_system.dictionary[ct][id] if data.name.split(/\\n/)[0] == word data.show_flg = true return word end end end p "error. wrong word : #{word}" return word end #-------------------------------------------------------------------------- # ● 用語登録(id) #-------------------------------------------------------------------------- def self.escape_word_id(ct, id) $game_system.dictionary[ct][id].show_flg = true return $game_system.dictionary[ct][id].name end end #============================================================================== # ■ Window_Base #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # ● 制御文字の事前変換 # 実際の描画を始める前に、原則として文字列に変わるものだけを置き換える。 # 文字「\」はエスケープ文字(\e)に変換。 #-------------------------------------------------------------------------- alias convert_escape_characters_dictonary convert_escape_characters def convert_escape_characters(text) result = convert_escape_characters_dictonary(text) result.gsub!(/\eB\[(.*?+)\]/i) { Dictionary.escape_word($1.to_s) } result.gsub!(/\eK\[(\d+),(\d+)\]/i) { Dictionary.escape_word_id($1.to_i, $2.to_i) } result end end