查看: 2414|回复: 0

[RMVA发布] 转义字符加强

[复制链接]
梦石
0
星屑
60
在线时间
156 小时
注册时间
2011-12-13
回帖
127
发表于 2012-8-2 11:59:18 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 dant 于 2012-8-2 11:59 编辑

就是这样。
在所有使用到draw_text_ex的地方都可以使用。
也可以改成只在某个Window类内部使用
[pre lang="ruby" line="1"]#==============================================================================
# ** 转义字符加强
#------------------------------------------------------------------------------
#  加强用于显示文章和其它使用draw_text_ex的转义字符。
#    - \V[n],\N[n],\P[n] 支持无限嵌套
#    - 添加以下转义字符
#        + \ITM[n] 替换为n号道具 (带图标)
#        + \WPN[n] 替换为n号武器 (带图标)
#        + \ARM[n] 替换为n号防具 (带图标)
#        + \SKL[n] 替换为n号特技 (带图标)
#==============================================================================

class Window_Base < Window
  #--------------------------------------------------------------------------
  # * Preconvert Control Characters
  #    As a rule, replace only what will be changed into text strings before
  #    starting actual drawing. The character "\" is replaced with the escape
  #    character (\e).
  #--------------------------------------------------------------------------
  def convert_escape_characters(text)
    result = text.to_s.clone
    result.gsub!(/\\/)            { "\e" }
    result.gsub!(/\e\e/)          { "\\" }
   
    while true
      done_flag = nil
      done_flag |= result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
      #result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
      done_flag |= result.gsub!(/\eN\[(\d+)\]/i) { actor_name($1.to_i) }
      done_flag |= result.gsub!(/\eP\[(\d+)\]/i) { party_member_name($1.to_i) }
      done_flag |= result.gsub!(/\eITM\[(\d+)\]/i) { item_ctrl_str($data_items[$1.to_i]) }
      done_flag |= result.gsub!(/\eWPN\[(\d+)\]/i) { item_ctrl_str($data_weapons[$1.to_i]) }
      done_flag |= result.gsub!(/\eARM\[(\d+)\]/i) { item_ctrl_str($data_armors[$1.to_i]) }
      done_flag |= result.gsub!(/\eSKL\[(\d+)\]/i) { item_ctrl_str($data_skills[$1.to_i]) }
      break unless done_flag
    end
    result.gsub!(/\eG/i)          { Vocab::currency_unit }
    result
  end
  
  def item_ctrl_str(item)
    "\eI[#{item.icon_index}] #{item.name}"
  end
  
end
[/pre]
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部