查看: 1984|回复: 17

[有事请教] 关于VA战斗中跳过行动选择强制进入战斗action指令报错

[复制链接]
梦石
0
星屑
575
在线时间
38 小时
注册时间
2020-8-6
回帖
19
发表于 2025-3-29 23:14:58 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 c571811558 于 2025-3-29 23:23 编辑

项目在这里qwq

Project1.zip (1.42 MB, 下载次数: 1)


QQ_1743259156848.png

首先敌群用这个测试,这个敌群里刚开始会打开一个aaaaa开关

QQ_1743259178333.png

然后我在公共事件里用了global common event插件把这个公共事件改成了战斗可以用的公共事件,在战斗中就可以待机三秒打开2号开关

QQ_1743259168823.png

二号开关我在这里写的是直接执行turn_start,然后在战斗中,确实可以做到第一个角色普攻了之后,第二个角色待机,
QQ_1743259845221.png
也就是这个时候待机....

180帧后开关2打开.就会强制跳过行动   进入战斗,但这个时候会面临两个问题

1.窗口不回正(如图)
QQ_1743259961364.png

2.如果我还在"选择技能窗口"出现时或"选择目标敌人窗口"出现的时候打开了开关2,窗口不会自动关闭(如图)
QQ_1743260128690.png

QQ_1743260056897.png

并且如果在这个窗口还存在的时候,我在"选择技能"被跳过后的"战斗行动"中再次选择技能或目标敌人会报错(如图)

再次选择目标敌人:
QQ_1743260200935.png

再次选择技能:
QQ_1743260274964.png

这个报错我搞不明白QWQ,我想要一个没有报错的跳过"技能选择",强制进入"战斗行动"
和在"战斗行动"中也会跳过所有技能包括动画并刷新"战斗行动"的2号开关

请求大佬援助qwq
梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2025-3-30 02:28:46 | 显示全部楼层
本帖最后由 soulsaga 于 2025-3-30 02:30 编辑

要实现的是在一定时间后就会强制开始回合呀...
大概有个问题是你写的判断开关脚本在打开技能窗口时不会执行?
回复

使用道具 举报

梦石
0
星屑
575
在线时间
38 小时
注册时间
2020-8-6
回帖
19
 楼主| 发表于 2025-3-30 14:30:21 | 显示全部楼层
soulsaga 发表于 2025-3-30 02:28
要实现的是在一定时间后就会强制开始回合呀...
大概有个问题是你写的判断开关脚本在打开技能窗口时不会执行 ...

会执行,只不过不会帮我关闭这两个窗口,如果能帮我关掉这两个窗口就差不多了第一个效果达到了
回复

使用道具 举报

老鹰

梦石
40
星屑
37812
在线时间
7091 小时
注册时间
2012-5-26
回帖
3297

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

发表于 2025-3-30 15:08:56 | 显示全部楼层
本帖最后由 百里_飞柳 于 2025-3-30 15:10 编辑

我粗浅理解了下你想要做的,是打开开关后,限时选择角色指令,否则就跳过?

我结合自己的计时器扩展,想了这样的实现方法:

首先,脚本更改为这样:
  1. class Scene_Battle
  2.   alias eagle_battle_update update
  3.   def update
  4.     eagle_battle_update
  5.     # 当指定ID的开关开启,且名称为 "指令限时" 的老鹰的计时器扩展归零时触发
  6.     if $game_switches[1] && $game_timer["指令限时"].finish?
  7.       # 将开关关闭,防止反复触发
  8.       $game_switches[1] = false
  9.       # 针对我方全体战斗角色
  10.       $game_party.battle_members.each do |m|
  11.         # 如果还没有行动 or 还没选择指令 or 还没选择技能目标
  12.         if m.input.item == nil || m.input.item.id == 0 || m.input.target_index < 0
  13.           # 直接强制给他变成 数据库-技能 中的 7号技能待机
  14.           m.input.set_skill(7)
  15.         end
  16.       end
  17.       # 关闭 选择敌人、选择我方角色、技能、物品等窗口
  18.       @enemy_window.hide
  19.       @actor_window.hide
  20.       @skill_window.hide
  21.       @item_window.hide
  22.       # 结束指令选择,开始本回合的行动
  23.       turn_start
  24.     end
  25.   end
  26. end
复制代码


然后在 敌群 的事件页中,新增脚本,填入:
  1. # 激活老鹰的计时器,其中 5 * 60 代表 5秒
  2. $game_timer["指令限时"].start(5 * 60)
  3. # 打开开关
  4. $game_switches[1] = true
复制代码


这样,在战斗事件执行时,就会倒计时 5s(我的计时器有个简单UI在右上角),结束时直接执行待机指令。
回复

使用道具 举报

梦石
0
星屑
575
在线时间
38 小时
注册时间
2020-8-6
回帖
19
 楼主| 发表于 2025-3-31 07:20:56 | 显示全部楼层
本帖最后由 c571811558 于 2025-3-31 07:26 编辑
百里_飞柳 发表于 2025-3-30 15:08
我粗浅理解了下你想要做的,是打开开关后,限时选择角色指令,否则就跳过?

我结合自己的计时器扩展,想了 ...


谢谢鹰酱,在新项目里是可以关闭,但是如果不管窗口消失按下确定,上述操作还是会存在报错
回复

使用道具 举报

梦石
0
星屑
575
在线时间
38 小时
注册时间
2020-8-6
回帖
19
 楼主| 发表于 2025-3-31 07:30:12 | 显示全部楼层
百里_飞柳 发表于 2025-3-30 15:08
我粗浅理解了下你想要做的,是打开开关后,限时选择角色指令,否则就跳过?

我结合自己的计时器扩展,想了 ...

可不可以给他关闭窗口的时候默认为取消选择?这样估计就得判断输入指令的窗口状态了吧qwq
QQ_1743377274665.png

点评

这个和窗口无关,是你跳过了角色指令选择,角色没有行动指令,然后报错了  发表于 2025-3-31 07:57
回复

使用道具 举报

梦石
0
星屑
145
在线时间
19 小时
注册时间
2020-7-27
回帖
13
发表于 2025-3-31 09:57:31 | 显示全部楼层
c571811558 发表于 2025-3-31 07:30
可不可以给他关闭窗口的时候默认为取消选择?这样估计就得判断输入指令的窗口状态了吧qwq ...

还是报错该怎么办qwq
所以说MSN到底是什么意思啊?
回复

使用道具 举报

梦石
0
星屑
145
在线时间
19 小时
注册时间
2020-7-27
回帖
13
发表于 2025-3-31 15:14:23 | 显示全部楼层
百里_飞柳 发表于 2025-3-30 15:08
我粗浅理解了下你想要做的,是打开开关后,限时选择角色指令,否则就跳过?

我结合自己的计时器扩展,想了 ...

还是报错该怎么办qwq

点评

我出差了,暂时没有电脑。报错时机是什么呢?你是使用了别的战斗系统吧  发表于 2025-3-31 16:31
所以说MSN到底是什么意思啊?
回复

使用道具 举报

梦石
0
星屑
575
在线时间
38 小时
注册时间
2020-8-6
回帖
19
 楼主| 发表于 2025-3-31 17:15:49 | 显示全部楼层
百里_飞柳 发表于 2025-3-30 15:08
我粗浅理解了下你想要做的,是打开开关后,限时选择角色指令,否则就跳过?

我结合自己的计时器扩展,想了 ...

按照鹰酱给的办法只是解决了窗口看到的问题,实际上报错问题根本就没有解决,和上面提出的报错一样

点评

我不是很懂,我那个直接强制设置为待机行动,然后turn_start了,还需要打开2号开关吗?  发表于 2025-3-31 20:12
回复

使用道具 举报

梦石
0
星屑
575
在线时间
38 小时
注册时间
2020-8-6
回帖
19
 楼主| 发表于 2025-3-31 21:59:11 | 显示全部楼层
百里_飞柳 发表于 2025-3-30 15:08
我粗浅理解了下你想要做的,是打开开关后,限时选择角色指令,否则就跳过?

我结合自己的计时器扩展,想了 ...

emm确实还是有报错的,要不您有空测试项目看看?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部