Project1

标题: 【VA】偶然的发现。在对话里添加快捷称号显示 [打印本页]

作者: mih9999    时间: 2012-7-4 12:38
标题: 【VA】偶然的发现。在对话里添加快捷称号显示
本帖最后由 Sion 于 2013-12-17 15:41 编辑

其实就是根据显示N号角色名和队伍N号角色名改的。

在window_base里面查找
  1. def convert_escape_characters(text)
复制代码
然后在下面的一堆
  1. result.gsub!
复制代码
里添加一行
  1.     result.gsub!(/\eZ\[(\d+)\]/i) { actor_nickname($1.to_i) }#N号角色称号
  2.     result.gsub!(/\eX\[(\d+)\]/i) { party_member_nickname($1.to_i) }#N号队伍角色称号   
复制代码
其中/\eZ和/\eX里的Z和X是在对话框那里面那个\Z[n]和\X[n]的字母,可以改成别的。

我修改后是这样的。
  1.   #--------------------------------------------------------------------------
  2.   # ● 进行控制符的事前变换
  3.   #    在实际绘制前、将控制符替换为实际的内容。
  4.   #    为了减少歧异,文字「\」会被首先替换为转义符(\e)。
  5.   #--------------------------------------------------------------------------
  6.   def convert_escape_characters(text)
  7.     result = text.to_s.clone
  8.     result.gsub!(/\\/)            { "\e" }
  9.     result.gsub!(/\e\e/)          { "\\" }
  10.     result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
  11.     result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
  12.     result.gsub!(/\eN\[(\d+)\]/i) { actor_name($1.to_i) }
  13.     result.gsub!(/\eZ\[(\d+)\]/i) { actor_nickname($1.to_i) }#N号角色称号
  14.     result.gsub!(/\eX\[(\d+)\]/i) { party_member_nickname($1.to_i) }#N号队伍角色称号   
  15.     result.gsub!(/\eP\[(\d+)\]/i) { party_member_name($1.to_i)}
  16.     result.gsub!(/\eG/i)          { Vocab::currency_unit }
  17.     result
  18.   end
复制代码
然后在这下面再加入
  1.   #--------------------------------------------------------------------------
  2.   # ● 获取第 n 号角色的称号
  3.   #--------------------------------------------------------------------------
  4.   def actor_nickname(n)
  5.     actor = n >= 1 ? $game_actors[n] : nil
  6.     actor ? actor.nickname : ""
  7.   end  
  8.     #--------------------------------------------------------------------------
  9.   # ● 获取第 n 号队伍成员的称号
  10.   #--------------------------------------------------------------------------
  11.   def party_member_nickname(n)
  12.     actor = n >= 1 ? $game_party.members[n - 1] : nil
  13.     actor ? actor.nickname : ""
  14.   end
  15.    
复制代码
就行了。然后在对话框里输入文字时就可以用\Z[n]来显示第N号角色的称号了,同理用\X[n]可以显示队伍里第N号角色的称号。

如图:



作者: arnie510    时间: 2012-7-27 03:59
真是好犀利阿!!
謝謝你提供這個方法!  
作者: eu国猪    时间: 2012-7-28 14:47
呵呵呵呵
作者: 包子丶    时间: 2012-9-1 13:45
可是。。我觉得 有什么用呢?又不能让玩家自定义称号.....
作者: chd114    时间: 2012-9-1 14:12
这个脚本是VX的?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1