查看: 2473|回复: 4

[已经过期] 不能成功调用:ok方法,高手帮忙看看怎么回事

[复制链接]
梦石
0
星屑
200
在线时间
120 小时
注册时间
2007-8-17
回帖
128
发表于 2014-2-11 10:20:11 | 显示全部楼层 |阅读模式

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

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

×
  1. class Scene_ItemBase < Scene_MenuBase
  2. #--------------------------------------------------------------------------
  3.   # ● 生成角色窗口
  4.   #--------------------------------------------------------------------------
  5.   def create_actor_window
  6.     @actor_window = Window_MenuActor.new
  7.     @actor_window.set_handler(:ok,     method(:on_actor_ok))
  8.     @actor_window.set_handler(:cancel, method(:on_actor_cancel))
  9.   end
  10. #--------------------------------------------------------------------------
  11.   # ● 确定物品
  12.   #--------------------------------------------------------------------------
  13.   def determine_item
  14.     if item.for_friend?
  15.       show_sub_window(@actor_window)
  16.       @actor_window.select_for_item(item)
  17.     else
  18.       use_item
  19.       activate_item_window
  20.     end
  21.   end
  22. #--------------------------------------------------------------------------
  23.   # ● 角色“确定”
  24.   #--------------------------------------------------------------------------
  25.   def on_actor_ok
  26.     p "角色确定"
  27.     if item_usable?
  28.       use_item
  29.     else
  30.       Sound.play_buzzer
  31.     end
  32.   end
复制代码
  1. class Window_MenuActor < Window_MenuStatus
  2. #--------------------------------------------------------------------------
  3.   # ● 按下确定键时的处理
  4.   #--------------------------------------------------------------------------
  5.   def process_ok
  6.     $game_party.target_actor = $game_party.members[index] unless @cursor_all
  7.     call_ok_handler
  8.   end
复制代码
  1. class Window_Selectable < Window_Base
  2. #--------------------------------------------------------------------------
  3.   # ● 调用处理方法
  4.   #--------------------------------------------------------------------------
  5.   def call_handler(symbol)
  6.     @handler[symbol].call if handle?(symbol)
  7.   end
复制代码
看代码我觉得一点问题都没有。但就是不能调用成功 on_actor_ok方法,
在控制台看   运行call_handler 没问题, p @handler 查看 里面也有 :ok => on_actor_ok 方法,然后在游戏按确定还是失败的声音,并且on_actor_ok方法里的p "角色确定"没有出来.

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2014-2-11 10:27:17 | 显示全部楼层
process_ok这里能不能p的出来?
回复

使用道具 举报

梦石
0
星屑
200
在线时间
120 小时
注册时间
2007-8-17
回帖
128
 楼主| 发表于 2014-2-11 12:28:35 | 显示全部楼层
喵呜喵5 发表于 2014-2-11 10:27
process_ok这里能不能p的出来?

能。然后调用了父类的call_ok_handler嘛,一直到window_selectable里都能p 出来,但on_actor_ok就是不执行
回复

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2014-2-11 12:36:20 | 显示全部楼层
千昭 发表于 2014-2-11 12:28
能。然后调用了父类的call_ok_handler嘛,一直到window_selectable里都能p 出来,但on_actor_ok就是不执 ...

发工程吧……
回复

使用道具 举报

梦石
0
星屑
3348
在线时间
1120 小时
注册时间
2009-4-15
回帖
761
发表于 2014-2-11 16:46:38 | 显示全部楼层
你这个情况还跟物品(技能)是否可以使用有关,比如,物品(技能)的效果是使角色打上某个状态,如果角色已经存在该状态,那么,你就无法调用该物品(技能)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

在本版发帖返回顶部