Project1

标题: [已解決]使用完某技能后,如何显示某物品的数量? [打印本页]

作者: chanszeman1018    时间: 2020-4-17 12:17
提示: 作者被禁止或删除 内容自动屏蔽
作者: KB.Driver    时间: 2020-4-17 13:19
本帖最后由 KB.Driver 于 2020-4-17 14:25 编辑

应该在Scene_Battle的use_item中改。
你可以先注释掉现在的代码,试试我写的这个。

RUBY 代码复制
  1. # deprecated



作者: chanszeman1018    时间: 2020-4-17 13:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: KB.Driver    时间: 2020-4-17 13:37
本帖最后由 KB.Driver 于 2020-4-17 14:25 编辑
chanszeman1018 发表于 2020-4-17 13:33
沒效果...沒显示那句「尚余药水:%s瓶」
新建工程也沒效果...


Scene_Battle里的item应该是套了壳的Game_BaseItem
试一下下面的去了壳的脚本

RUBY 代码复制
  1. # deprecated

作者: chanszeman1018    时间: 2020-4-17 13:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: KB.Driver    时间: 2020-4-17 14:24
本帖最后由 KB.Driver 于 2020-4-17 14:32 编辑
chanszeman1018 发表于 2020-4-17 13:46
脚本的10行NoMethodError发生。
undefined method 'object' for #


重写了一遍,新建工程测试通过。



RUBY 代码复制
  1. module BattleLogObserver
  2.   def self.observe(log_window, user, item, targets)
  3.     case user
  4.     when Game_Actor
  5.       observe_actor(log_window, user, item, targets)
  6.     end
  7.   end
  8.  
  9.   def self.observe_actor(log_window, user, item, targets)
  10.     case item
  11.     when RPG::Skill
  12.       observe_actor_skill(log_window, user, item, targets)
  13.     end
  14.   end
  15.  
  16.   def self.observe_actor_skill(log_window, user, item, targets)
  17.     case item.id
  18.     when 1
  19.       text = sprintf("尚余药水:%s瓶", $game_party.item_number($data_items[1]))
  20.     else return
  21.     end
  22.     log_window.display_observe_text(text)
  23.   end
  24. end
  25.  
  26. class Scene_Battle
  27.   alias invoke_item_for_special_log invoke_item
  28.   def invoke_item(target, item)
  29.     invoke_item_for_special_log(target, item)
  30.     BattleLogObserver.observe(@log_window, @subject, item, target)
  31.   end
  32. end
  33.  
  34. class Window_BattleLog
  35.   #--------------------------------------------------------------------------
  36.   # ● 删除一行文字
  37.   #--------------------------------------------------------------------------
  38.   def back_one
  39.     @last_pops ||= []
  40.     @last_pops << @lines.pop
  41.     refresh
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 返回指定行
  45.   #--------------------------------------------------------------------------
  46.   def back_to(line_number)
  47.     @last_pops ||= []
  48.     @last_pops << @lines.pop while @lines.size > line_number
  49.     refresh
  50.   end
  51.   #--------------------------------------------------------------------------
  52.   # ● 清除
  53.   #--------------------------------------------------------------------------
  54.   alias clear_for_clearing_last_pop clear
  55.   def clear
  56.     clear_for_clearing_last_pop
  57.     @last_pops && @last_pops.clear
  58.   end
  59.  
  60.   def display_observe_text(text)
  61.     @last_pops ||= []
  62.     @last_pops.reverse_each {|old_text| add_text(old_text) }
  63.     add_text(text)
  64.     wait
  65.     @last_pops.size.times { back_one }
  66.     back_one
  67.   end
  68. end

作者: PLeaseS    时间: 2020-4-17 15:29
KB.Driver 发表于 2020-4-17 14:24
重写了一遍,新建工程测试通过。

6666666666




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