Project1

标题: 怎么才能使人物攻击时可以显示所装备的武器名称?求教 [打印本页]

作者: V5洛    时间: 2018-2-22 14:22
标题: 怎么才能使人物攻击时可以显示所装备的武器名称?求教
本帖最后由 V5洛 于 2018-2-22 14:23 编辑

攻击时就是显示 xx的攻击:能不能这样:人物装备啦小刀 攻击时显示xx使用小刀攻击 显示小刀的字体最好能设置大小
作者: chd114    时间: 2018-2-22 19:43
本帖最后由 chd114 于 2018-2-22 21:41 编辑

需要修改Window_Battlelog和Vocab
作者: 魔法丶小肉包    时间: 2018-2-22 20:48
首先呢,如图

得知了可以在数据库里设置攻击的时候显示的信息,但是呢因为要获取使用者的武器名所以打算去脚本里改
于是,要先找到在脚本中哪块地方调用了显示此信息的方法,首先想到去查找一下RPG::Skill
打开F1帮助文档并找到RPG::Skill,如图

于是呢,就在脚本编辑器里搜索一下message1,并且发现了在Window_BattleLog类里调用了

然后呢,就来修改一下display_use_item这个方法来达到需要的效果
试着加入个判断if item.id == 1 and subject.is_a?(Game_Actor)
来判断id是不是1(默认攻击在数据库中是1号ID)并且是不是我方角色使用的攻击(默认系统中敌人没有装备)
当然,还要判断是使用了物品还是技能,不过呢,这里已经有了判断if item.is_a?(RPG::Skill)
所以呢,在此判断下进行判断就好了
然后,还要获取武器数据,所以呢就是subject.equips[0].name,这样呢,使用者装备的武器名就获得了
于是呢,最后大概就是这样的....
  1. class Window_BattleLog
  2.   def display_use_item(subject, item)
  3.     if item.is_a?(RPG::Skill)
  4.       if item.id == 1 and subject.is_a?(Game_Actor)
  5.         add_text(subject.name + "使用#{subject.equips[0].name}攻击")
  6.       else
  7.         add_text(subject.name + item.message1)
  8.       end
  9.       unless item.message2.empty?
  10.         wait
  11.         add_text(item.message2)
  12.       end
  13.     else
  14.       add_text(sprintf(Vocab::UseItem, subject.name, item.name))
  15.     end
  16.   end
  17. end
复制代码




作者: V5洛    时间: 2018-2-24 12:39
魔法丶小肉包 发表于 2018-2-22 20:48
首先呢,如图

得知了可以在数据库里设置攻击的时候显示的信息,但是呢因为要获取使用者的武器名所以打算去 ...

谢谢你这么详细的解答




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