找回密码
 立即注册
奇速版本论坛200M带宽开服微端链接失效申报超级稳定服务器抗攻击
点击金币投放广告点击金币投放广告点击金币投放广告点击金币投放广告
查看: 568|回复: 3

[已解决] 求助个SetHumVar传递变量的逻辑问题!

[复制链接]

2

主题

1

回帖

35

积分

新手上路

积分
35
发表于 2023-6-11 23:21:57 | 显示全部楼层 |阅读模式
QM触发下面代码,分配乱套,放在NPC上点一下分配房间正常。

机器人触发,设置指定玩家的T13变量,求助更好的办法。可红包!

[@巅峰赛房间分配]
#if
CHECKTEXTLIST ..\QuestDiary\巅峰赛\名单.txt <$USERNAME>
#ACT
GetMultiRandomText ..\QuestDiary\巅峰赛\名单.txt 50 S201 N201
SetHumVar <$STR(S201)> T13 巅峰赛01
SetHumVar <$STR(S202)> T13 巅峰赛01
SetHumVar <$STR(S203)> T13 巅峰赛02
SetHumVar <$STR(S204)> T13 巅峰赛02
SetHumVar <$STR(S205)> T13 巅峰赛03
SetHumVar <$STR(S206)> T13 巅峰赛03
SetHumVar <$STR(S207)> T13 巅峰赛04
SetHumVar <$STR(S208)> T13 巅峰赛04
SetHumVar <$STR(S209)> T13 巅峰赛05
SetHumVar <$STR(S210)> T13 巅峰赛05


请大家不要恶意灌水,回复纯数字、纯字母、纯表情等内容的直接禁言1周处理!
回复

使用道具 举报

8

主题

212

回帖

720

积分

版主

积分
720
发表于 2023-6-12 00:11:17 | 显示全部楼层
你机器人对准全局的,为什么要用变量传递?直接开始提问,然后就赋值了。
请大家不要恶意灌水,回复纯数字、纯字母、纯表情等内容的直接禁言1周处理!
回复

使用道具 举报

10

主题

83

回帖

1141

积分

版主

积分
1141
发表于 2023-6-12 07:51:40 | 显示全部楼层
机器人是对全局的,要想对单人,就要用GM命令全服提问
请大家不要恶意灌水,回复纯数字、纯字母、纯表情等内容的直接禁言1周处理!
回复

使用道具 举报

29

主题

1113

回帖

1732

积分

版主

积分
1732
QQ
发表于 2023-6-12 11:20:25 | 显示全部楼层
本帖最后由 442671 于 2023-6-12 22:08 编辑

脚本有逻辑问题,例如,如果其中有玩家不在线,那么你这种方式就会报错!

你可以考虑用数组来做.机器人脚本如下.

[@巅峰赛房间分配]
#ACT
MOV S$读取名单 名单
MOV N$最大数量 50
#CALL [\巅峰赛\巅峰赛.TXT] @巅峰赛脚本


[@巅峰赛脚本]
{
#ACT
GetTextLineCount ..\QuestDiary\巅峰赛\<$STR(S$读取名单)>.txt N$名单人数




#IF
LARGE N$名单人数 <$str(N$最大数量)>
#ACT
GetMultiRandomText ..\QuestDiary\巅峰赛\名单.txt N$最大数量 S201 N201
#ELSEACT
GetMultiRandomText ..\QuestDiary\巅峰赛\名单.txt N$名单人数 S201 N201

#IF
LARGE N$名单人数 0
#ACT
MOV N$执行数 0
MOV N$分配值 0
MOV N$房间号 1
MOV L$玩家记录 []
MOV L$房间记录 []
Loopgoto @巅峰赛季匹配 <$STR(N201)>
MOV A998 <$str(L$玩家记录)>
MOV A999 <$str(L$房间记录)>

[@巅峰赛季匹配]
#IF
LARGE N$执行数 <$str(N201)>
#ACT
endloop
Break
#ELSEACT
MOV N$读取变量 201
INC N$读取变量 <$STR(N$执行数)>
INC L$玩家记录 <$str(S<$str(N$读取变量)>)>


#IF
#ACT
INC L$房间记录 巅峰赛<$str(N$房间号)>
INC N$执行数 1
INC N$分配值 1

#IF
EQUAL N$分配值 2
#ACT
MOV N$分配值 0
INC N$房间号 1

NPC身上.或显示
[@进入]
#ACT
MOV L$查询玩家 <$str(A998)>

#IF
CheckVarInList L$查询玩家 <$USERNAME>
#ACT
MOV L$查询房间  <$str(A999)>
GetListVarIndex L$查询玩家 <$USERNAME> N$查询房间号
sendmsg 6 你的房间号为:<$STR(L$查询房间[<$STR(N$查询房间号)>])>
#ELSEACT
sendmsg 6 你没资格
BREAK




-定制脚本-Qq:270411387
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|翎风引擎论坛 |网站地图

GMT+8, 2025-5-1 19:35 , Processed in 0.047411 second(s), 18 queries , Gzip On, Redis On.

Powered by haom2 X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表