Project1
标题: 如何在全员死亡的情况下战斗不结束? [打印本页]
作者: 聪妖 时间: 2015-8-5 00:16
标题: 如何在全员死亡的情况下战斗不结束?
XP在一般的情况下,只要所有参战队员死亡就会战斗结束,也就是GAME OVER.
请问一下要怎么样才能做到即使全员死亡,战斗依然持续,而不是游戏结束.(可以用事件结束游戏或者战斗的前提下)
作者: jklpgh 时间: 2015-8-5 02:05
事件战斗处理那里,勾选失败的话继续,那里就可以设置了分歧失败了的场合和胜利的场合
作者: 未命名 时间: 2015-8-5 10:45
本帖最后由 未命名 于 2015-8-6 16:09 编辑
稍微这么做:
在Scene_Battle 1的116行 设置游戏结束标志 那里作如下修改:
将:
# 设置游戏结束标志
$game_temp.gameover = true
# 返回 true
return true
# 设置游戏结束标志
$game_temp.gameover = true
# 返回 true
return true
改为:
#$game_switches[x]里面的数字改成你想要的变量编号。
#第一个是打开战斗失败不结束战斗的开关。
if $game_switches[1] == false #
$game_temp.gameover = true
# 返回 true
return true
else #
#这个是执行事件的开关。
$game_switches[2] = true #
return false #
end
#$game_switches[x]里面的数字改成你想要的变量编号。
#第一个是打开战斗失败不结束战斗的开关。
if $game_switches[1] == false #
$game_temp.gameover = true
# 返回 true
return true
else #
#这个是执行事件的开关。
$game_switches[2] = true #
return false #
end
然后在想要这么做的战斗中制作个条件为开关2(或者你想要的)打开,距离为“战斗”或“暂时”的战斗事件,
内容随意。
比如:
如果事件执行结束后还要继续战斗……请复活角色,要不然BUG。
记得之后把开关都关上,要不然下次又执行。
还有注意不要把脚本return true下面的end删掉……
———————————————————————————————————————————————————
好吧,如果希望战斗继续经过回合,同时又能在之后触发事件,把上面第一个开关一直开就好了(先前说是变量搞错了)。
但是如果角色全灭后还有没行动的人正好发动单体攻击就会报错,
所以:
在Scene_Battle 4中找到“行动方的战斗者是敌人的情况下”下面的
if @active_battler.restriction == 3
target = $game_troop.random_target_enemy
elsif @active_battler.restriction == 2
target = $game_party.random_target_actor
else
index = @active_battler.current_action.target_index
target = $game_party.smooth_target_actor(index)
end
if @active_battler.restriction == 3
target = $game_troop.random_target_enemy
elsif @active_battler.restriction == 2
target = $game_party.random_target_actor
else
index = @active_battler.current_action.target_index
target = $game_party.smooth_target_actor(index)
end
插入下面的脚本中。
for actor in $game_party.actors
if actor.exist?
#在这里插入。
break
end
end
for actor in $game_party.actors
if actor.exist?
#在这里插入。
break
end
end
再下来一点的“设置对像方的战斗者序列”
@target_battlers = [target]
# 应用通常攻击效果
for target in @target_battlers
target.attack_effect(@active_battler)
end
@target_battlers = [target]
# 应用通常攻击效果
for target in @target_battlers
target.attack_effect(@active_battler)
end
用下面的脚本包围
if target != nil
#放在这。
end
if target != nil
#放在这。
end
最后是“设置物品或特技对像方的战斗者”下面的“敌单体”那有
@target_battlers.push($game_party.smooth_target_actor(index))
@target_battlers.push($game_party.smooth_target_actor(index))
变成
for actor in $game_party.actors
if actor.exist?
@target_battlers.push($game_party.smooth_target_actor(index))
break
end
end
for actor in $game_party.actors
if actor.exist?
@target_battlers.push($game_party.smooth_target_actor(index))
break
end
end
就完事了。
于是,在我方全灭后,战斗就不断地循环回合,我方动不了地方也不动,但是如果有战斗事件依然执行。
如果要加入些控制选项还要在窗口那改……
作者: 聪妖 时间: 2015-8-5 22:31
未命名 发表于 2015-8-5 10:45 
稍微这么做:
在Scene_Battle 1的116行 设置游戏结束标志 那里作如下修改:
抱歉,这么晚才回信息.
那个,如果我不是特定的战斗,而是所有战斗都是这个效果要怎么改?
就是所有战斗就算灭团了战斗依然持续.不会直接结束战斗,其他保持不变(这个修改不影响我像默认那样随时用事件去中断战斗或者结束游戏)
作者: 聪妖 时间: 2015-8-5 22:39
jklpgh 发表于 2015-8-5 02:05 
事件战斗处理那里,勾选失败的话继续,那里就可以设置了分歧失败了的场合和胜利的场合 ...
感谢回复帮忙.
但是那样做灭团之后战斗也直接结束了.
我的构思就算灭团了,战斗流程不会结束.
举例:所有角色都挂了.但不用事件中断战斗或者用事件结束游戏.这场战斗依然继续打下去,而不是直接输掉.
作者: 聪妖 时间: 2015-8-7 04:52
本帖最后由 聪妖 于 2015-8-7 04:55 编辑
未命名 发表于 2015-8-5 10:45 
稍微这么做:
在Scene_Battle 1的116行 设置游戏结束标志 那里作如下修改:
恩,好像还是出问题了.当我方把对方全灭的情况下.战斗也会持续下去不会跳到胜利界面
当角色攻击已经挂掉的敌方时候(普通攻击,技能没测试)就会报错
也就是这段,本人脚本基础是零.会不会是我操作问题没修改好脚本?
作者: 未命名 时间: 2015-8-7 11:44
本帖最后由 未命名 于 2015-8-7 11:53 编辑
聪妖 发表于 2015-8-7 04:52 
恩,好像还是出问题了.当我方把对方全灭的情况下.战斗也会持续下去不会跳到胜利界面
当角色攻击已经挂掉 ...
好吧,再编辑贴子就变得繁琐了……本来制作游戏就是繁琐。
这是一个范例,使用的是默认战斗系统。
如果系统改了,但是是基于默认战斗系统的,就寻找一样的地方改。
战斗全灭继续.rar
(189.88 KB, 下载次数: 33)
一些注意事项:
1、全灭后复活不会再次触发全灭后的那个事件,因为我设计成触发距离是“战斗”。
(你可以在脚本中在开一个开关[3]来判断是否触发过以免反复触发,复活之后关掉开关[3])
(当然不设计事件就没有这个问题。)
2、只要队伍全灭,不论敌人是否全面都会继续。
作者: hmxyymyyc10 时间: 2015-8-7 23:02
其实有个最简单的办法:战斗处理事件把失败继续勾上,然后战斗失败的场合马上跟着一个“完全回复”的事件就不会结束游戏了
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |