赞 | 0 |
VIP | 4 |
好人卡 | 0 |
积分 | 1 |
经验 | 897 |
最后登录 | 2020-5-5 |
在线时间 | 9 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 60
- 在线时间
- 9 小时
- 注册时间
- 2008-7-21
- 帖子
- 174
|
战斗胜利结束之后,可能大家需要不同的处理。其实全部可以写在公共事件里面
简单说来,修改方法和原理如下:
1、Scene_Battle 2中找到:update_phase5,这段是有关胜利的设置。如果使用了其它战斗脚本,请在你自己添加的战斗脚本中找到相应位置。修改如下:
def update_phase5
# 等待计数大于 0 的情况下
if @phase5_wait_count > 0
# 减少等待计数
@phase5_wait_count -= 1
# 等待计数为 0 的情况下
if @phase5_wait_count == 0
# 显示结果窗口
@result_window.visible = true
# 清除主回合标志
$game_temp.battle_main_phase = false
# 刷新状态窗口
@status_window.refresh
#####################################################################
#####################################################################
common_event = $data_common_events[1]
$game_system.battle_interpreter.setup(common_event.list, 0)
#####################################################################
#####################################################################
end
return
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 战斗结束
battle_end(0)
end
end
红色部分就是添加的内容。意思是战斗处理器调用数据库公共事件1号。
好了。脚本方面设置完毕。下面是数据库部分:
2、数据库方面:
首先先是执行一段内容(我就不多说了,比如等20帧,所有角色显示动画“QQ_高兴”,显示一段文章,根据随机数获得物品等)。反正就是自定义内容先执行。
执行完毕,等待1帧,接着是执行脚本:
$game_temp.in_battle = false
$game_party.clear_actions
for actor in $game_party.actors
actor.remove_states_battle
end
$game_troop.enemies.clear
if $game_temp.battle_proc != nil
$game_temp.battle_proc.call(0)
$game_temp.battle_proc = nil
end
再等待1帧,再执行脚本:
$scene = Scene_Map.new
最后再等待1帧即可。
这段的原理,第一大段脚本是def battle_end里面的内容,第二段是返回地图。如果不这么执行,事件执行器可能会循环卡住,或者忘记做一些收尾工作。所以中间要等待几帧。
用公共事件1解决
如:在战斗前开启 开关1
在你须要的地方设置 开关1为no时
把你的行走图搞上
如图
|
|