| 赞 | 153 |
| VIP | |
| 好人卡 | |
| 积分 | 93 |
| 经验 | |
| 最后登录 | 2024-5-6 |
| 在线时间 | 2504 小时 |
- 梦石
- 0
- 星屑
- 9292
- 在线时间
- 2504 小时
- 注册时间
- 2011-5-20
- 回帖
- 14521

|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
[pre lang="ruby"]#--------------------------------------------------------------------------
# ● require Taroxd基础设置
# 使用方法:技能备注<delay n>,n 为延迟的回合数,n <= 0 为当前回合结束时发动
# 技能备注<delay message s>,s为技能施放时提示的信息。
# 其中使用者名称用\N代替。
#--------------------------------------------------------------------------
module Taroxd
DelayItem = '\N' # 用 \N 代替使用者名称
end
class RPG::UsableItem
note_i :delay, false
note_s :delay_message
end
class Window_BattleLog < Window_Selectable
def display_delay_use_item(subject, item)
add_text(item.delay_message.gsub(Taroxd::DelayItem, subject.name))
end
end
class Scene_Battle < Scene_Base
def_after(:start) { @delay_list = [] }
def_chain :use_item do |old|
item = @subject.current_action.item
return old.call unless item.delay
#p i
@log_window.display_delay_use_item(@subject, item)
subject = @subject
action = @subject.current_action
for i in 0..item.delay#
@delay_list.push Fiber.new {
i#
subject.actions.unshift(action)#报错:NoMethodError undefined method‘actions’for nil:NilClass
@subject, subject = subject, @subject
old.call
@subject.remove_current_action
@subject = subject
}
end#
end
def_before(:turn_end) { @delay_list.delete_if(&:resume) }
end[/pre]
想要把技能延迟改成持续施法,但是在修改之后的subject.actions.unshift(action)报了NoMethodError undefined method‘actions’for nil:NilClass的错(可是@delay_list里的行动数一个不少) |
|