查看: 1973|回复: 11

[有事请教] 关于使用脚本作为分支条件求助。

[复制链接]
梦石
0
星屑
962
在线时间
276 小时
注册时间
2023-3-16
回帖
66
发表于 2023-11-2 21:26:32 | 显示全部楼层 |阅读模式
悬赏40星屑已解决
脚本萌新求助,游戏自带的分支条件事件里用脚本制作能制作动态判定条件吗?
比如变量1=10就就判定10号开关打开,变量1=11就就判定11号开关打开才能进入分支,变量2=2就判定2号角色在队伍中或者2号道具在背包才能进入分支这种。

最佳答案

查看完整内容

1.判断变量0001等于10, 这样写脚本 [pre lang="javascript"]$gameVariables.value(1)===10[/pre] 这样是变量1等于10, 语法是写三个等号 2.要判断一个区间, 例如1到10之间, 这样写 [pre lang="javascript"]$gameVariables.value(1)>=1 && $gameVariables.value(1)
梦石
0
星屑
1529
在线时间
260 小时
注册时间
2008-7-11
回帖
567
发表于 2023-11-2 21:26:33 | 显示全部楼层
本帖最后由 涂鸦boy 于 2023-11-2 23:23 编辑

QQ截图20231102230432.png

1.判断变量0001等于10, 这样写脚本
[pre lang="javascript"]$gameVariables.value(1)===10[/pre]
这样是变量1等于10, 语法是写三个等号

2.要判断一个区间, 例如1到10之间, 这样写
[pre lang="javascript"]$gameVariables.value(1)>=1 && $gameVariables.value(1)<=10[/pre]
&& 是一个逻辑判断符号, 读作且, 0001变量大于等于1, 且小于等于10


3.我理解了一下你的想法, 也就是用变量0001来指定某个开关是否打开, 那么把if去掉, 等号改为三个就对了
脚本结构上没有问题, 仅仅是语法上的小问题
[pre lang="javascript"]$gameSwitches.value($gameVariables.value(1))===true[/pre]
QQ截图20231102231441.png

点评

多谢,已经搞定了  发表于 2023-11-2 23:56
回复

使用道具 举报

梦石
0
星屑
2213
在线时间
759 小时
注册时间
2017-10-13
回帖
53
发表于 2023-11-2 21:55:28 | 显示全部楼层
必须可以
回复

使用道具 举报

梦石
0
星屑
962
在线时间
276 小时
注册时间
2023-3-16
回帖
66
 楼主| 发表于 2023-11-2 22:13:24 | 显示全部楼层

大佬能详细说说吗?我试着在上面写了if ($gameSwitches.value($gameVariables.value(1))==true,1号变量为1且1号开关打开的情况下还是报错,这种需要怎么让他进入事件?还有判断角色在队伍中才能进分支或者持有对应编号的道具才能进分支这种该怎么写?

点评

事件-分歧条件-最底下的脚本,不用写 if ,它自己直接eval你写的东西,再判定返回值  发表于 2023-11-2 22:50
回复

使用道具 举报

梦石
0
星屑
962
在线时间
276 小时
注册时间
2023-3-16
回帖
66
 楼主| 发表于 2023-11-2 23:00:39 | 显示全部楼层
@百里_飞柳 大佬能i详细说说吗?这个具体该怎么写判定?没看懂该怎么处理,试了半天全在报错。
回复

使用道具 举报

梦石
0
星屑
14310
在线时间
2609 小时
注册时间
2013-6-10
回帖
1690
发表于 2023-11-2 23:14:14 | 显示全部楼层
本帖最后由 小怪兽奇奇侠 于 2023-11-2 23:18 编辑

变量1=10就判定10号开关打开是什么意思?
你想要的效果是十号开关打开且变量1=10才能进入分歧吗?
为什么要用脚本写,自带的事件不是就足够了吗

点评

VA的部分条件我就是用脚本判断的,而不是自带事件判断,这样可以带来一定的便携。  发表于 2023-11-3 13:37
回复

使用道具 举报

梦石
0
星屑
1529
在线时间
260 小时
注册时间
2008-7-11
回帖
567
发表于 2023-11-2 23:51:22 | 显示全部楼层
本帖最后由 涂鸦boy 于 2023-11-2 23:57 编辑

第一行问题见五楼

第二行问题, 其它的一些判断语句

1.判断玩家是否有2号物品
[pre lang="javascript"]
$gameParty.hasItem($dataItems[2])
[/pre]

2.判断玩家是否有2号武器
[pre lang="javascript"]
$gameParty.hasItem($dataWeapons[2])
[/pre]

3.判断玩家是否有2号防具
[pre lang="javascript"]
$gameParty.hasItem($dataArmors[2])
[/pre]

4.判断2号玩家是否在队伍中
[pre lang="javascript"]
$gameParty.members().includes($gameActors.actor(2))
[/pre]

以【判断 0001 变量指定的玩家是否在队伍中】为例, 用 $gameVariables.value(1) 替换掉 2 就可以了
[pre lang="javascript"]
$gameParty.members().includes($gameActors.actor($gameVariables.value(1)))
[/pre]

QQ截图20231102235626.png
回复

使用道具 举报

梦石
0
星屑
962
在线时间
276 小时
注册时间
2023-3-16
回帖
66
 楼主| 发表于 2023-11-2 23:54:14 | 显示全部楼层
本帖最后由 4887441 于 2023-11-2 23:55 编辑
小怪兽奇奇侠 发表于 2023-11-2 23:14
变量1=10就判定10号开关打开是什么意思?
你想要的效果是十号开关打开且变量1=10才能进入分歧吗?
为什么要 ...


已经搞定了原来只要去掉IF就行。代码是这样$gameSwitches.value($gameVariables.value(1)),判定编号为变量1的开关状态,如果是true则进入分支,如果是false则不进入分支。变量1=10就是判定10号开关开启则进入分支,变量1=15就是判定15号开关开启则进入分支。由变量决定判定哪一个开关。职业用自带事件的话没法用变量改变判定的开关、

点评

以及js里判定相等是用三个等号吧,你再查查文档  发表于 2023-11-3 09:35
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部