Project1
标题:
RTAB脚本中哪句是停止计时?
[打印本页]
作者:
VIVICAT
时间:
2009-9-1 18:57
标题:
RTAB脚本中哪句是停止计时?
在特技选择、物品选择的时候好像会停下来吧,具体在脚本里是在哪呢?
作者:
VIVICAT
时间:
2009-9-2 10:50
高手们帮个忙吧···
作者:
dbshy
时间:
2009-9-2 19:11
本帖最后由 dbshy 于 2009-9-2 21:39 编辑
我现在越来越佩服这个RTAB的作者了 >_<
为什么会停下来,这个说来话长
因为窗口的at槽在refresh,所以会不断增长
具体请全局搜索at_refresh方法
先看下面这段
case @phase
when 0 # ATゲージ更新フェーズ
[color=Magenta]if anime_wait_return
update_phase0[/color]
end
when 1 # プレバトルフェーズ
update_phase1
return
when 2 # パーティコマンドフェーズ
update_phase2
return
when 5 # アフターバトルフェーズ
update_phase5
return
end
if $scene != self
return
end
if @phase == 0
if @command.size != 0 # アクターコマンドフェーズ
if @command_a == false
start_phase3
end
update_phase3
end
# ウェイト中の場合
if @wait_count > 0
# ウェイトカウントを減らす
@wait_count -= 1
return
end
update_phase4
end
复制代码
其中的update_phase0就是刷新每个队员和敌人的at值的
具体代码就是
battler.at += battler.agi
if battler.guarding?
battler.at += battler.agi
end
if battler.movable?
battler.atp = 100 * battler.at / @max
end
复制代码
不过在运行这段的时候,前面有个
if anime_wait_return
内容见下
def anime_wait_return
if (@action_battlers.empty? or @anime_wait == false) and
not $game_system.battle_interpreter.running?
# エネミーアローが有効の場合
if @enemy_arrow != nil
return [@active - 2, 0].min == 0
# アクターアローが有効の場合
elsif @actor_arrow != nil
return [@active - 2, 0].min == 0
# スキルウィンドウが有効の場合
elsif @skill_window != nil
return [@active - 3, 0].min == 0
# アイテムウィンドウが有効の場合
elsif @item_window != nil
return [@active - 3, 0].min == 0
# アクターコマンドウィンドウが有効の場合
elsif @actor_command_window.active
return [@active - 1, 0].min == 0
else
return true
end
else
return false
end
end
注意加色的那一段,全局搜索@active = 1
所以返回false,那么就不会刷新增加at的那一段
综上所述,就停下来了
说完了,好累.....
不知道偶讲清楚没有>_<
作者:
VIVICAT
时间:
2009-9-2 23:50
3#
dbshy
恩恩,大概明白了
再弱弱地问一句···这句是什么意思?返回的是括号里的东西还是0啊?
return [@active - 3, 0].min == 0
作者:
y7640f
时间:
2009-9-3 00:21
标题:
看啥呢?
小锤
作者:
dbshy
时间:
2009-9-3 15:08
你说的那句等价于
if [@active - 3, 0].min == 0 then
return true
else
return false
end
ps:lz问这个是想实现什么效果呢??
作者:
VIVICAT
时间:
2009-9-3 15:28
使用特定特技后敌人和使用特技者停止一段时间,其他同伴继续
谢谢解答~
恩恩,[@active - 3, 0].min这个呢···即时程度最小值??
作者:
dbshy
时间:
2009-9-3 16:52
本帖最后由 dbshy 于 2009-9-3 16:54 编辑
- -bbbb
@active = 1
so,[@active - 3, 0].min = -2 != 0 return false
lz说的问题
关键是这段
battler.at += battler.agi
if battler.guarding?
battler.at += battler.agi
end
if battler.movable?
battler.atp = 100 * battler.at / @max
end
用if来判断
作者:
VIVICAT
时间:
2009-9-3 17:39
喔······好,谢谢
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1