Project1

标题: 请问如何战斗途中退出战斗,再恢复刚才的战斗 [打印本页]

作者: 爆焰    时间: 2019-10-14 23:56
标题: 请问如何战斗途中退出战斗,再恢复刚才的战斗
就是比如我打一个300HP的boss,打到200hp时退出战斗执行剧情或者其他的,再进入战斗,但是这个进入战斗不是重新开始,而是恢复刚刚退出战斗前的状态。请问如何实现?
作者: 爆焰    时间: 2019-10-16 22:02
没人吗?
作者: 89444640    时间: 2019-10-17 07:03
其实事件减少敌人hp就行了。
或者你要想减boss血,加个8个临时变量,每回合记录一下每回合boss血,逃跑后不清零,再次进入上来减少到逃跑前数值。有几个敌人加几个,不过多个敌人会出现再次进入战斗时敌人出现一下立即死亡的情况。

作者: 爆焰    时间: 2019-10-17 12:33
89444640 发表于 2019-10-17 07:03
其实事件减少敌人hp就行了。
或者你要想减boss血,加个8个临时变量,每回合记录一下每回合boss血,逃跑后不 ...

所以这是个问题,可能事件不是很好实现这个效果
作者: 爆焰    时间: 2019-10-22 11:04
来人呀……
作者: soulsaga    时间: 2019-10-22 17:04
别说HP了..连异常都不会继承..
作者: KB.Driver    时间: 2019-10-22 18:18
把所有战斗中用到的对象Marshal.dump
执行完剧情后Marshal.load回来

只是这么想了想,不一定能实现
作者: soulsaga    时间: 2019-10-22 19:45
修改Scene_Battle 1里的def main
$game_troop.setup(@troop_id)加个判断改成
$game_troop.setup(@troop_id) if !$bt
停止初始化..

然后敌群事件当你要中止战斗时用脚本

$bt=$scene
$scene = Scene_Map.new

回到刚才中止了的战斗时用脚本
$scene = $bt
$bt=nil

测试通过

作者: 爆焰    时间: 2019-10-22 19:55
soulsaga 发表于 2019-10-22 19:45
修改Scene_Battle 1里的def main
$game_troop.setup(@troop_id)加个判断改成
$game_troop.setup(@troop_id) ...

试了,不行。回到战斗敌人的状态又初始化了
Project2.7z (228.38 KB, 下载次数: 73)
作者: soulsaga    时间: 2019-10-22 20:12
爆焰 发表于 2019-10-22 19:55
试了,不行。回到战斗敌人的状态又初始化了

改好了..其实不用$bt=nil

Project2.7z

211.18 KB, 下载次数: 53


作者: soulsaga    时间: 2019-10-22 22:31
爆焰 发表于 2019-10-22 19:55
试了,不行。回到战斗敌人的状态又初始化了

敌群事件改成这样  
if !$bt
$bt=$scene
$scene = Scene_Map.new
end
作者: 爆焰    时间: 2019-10-23 12:31
soulsaga 发表于 2019-10-22 20:12
改好了..其实不用$bt=nil

在我以为可以了的时候又发现新问题了,会陷入一个死循环,再也无法战斗了
00002.7z (228.2 KB, 下载次数: 50)
作者: soulsaga    时间: 2019-10-23 12:34
爆焰 发表于 2019-10-23 12:31
在我以为可以了的时候又发现新问题了,会陷入一个死循环,再也无法战斗了
...

什么情況出现死?




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