搜索
查看: 674|回复: 10

[已处理] ExtractStringEx,无限分割命令BUG

 关闭 [复制链接]
发表于 2023-3-27 14:42:18 | 显示全部楼层 |阅读模式
BUG反馈
引擎版本号: 0320
登陆器版本号: 0322
BUG描述: GetRandomName ..\QuestDiary\测试\测试.txt <$S(测试01)> 1 0 Force
ExtractStringEx | <$S(测试01)> <$S(测试_a)> <$N(测试_b)>
当<$S(测试01)>返回内容为空时,引擎会报错脚本命令错误,
应该采用老的分割命令模式
格式:ExtractString 分隔符 需处理字符串 字符变量1 字符变量2 字符变量3 字符变量4 字符变量5 字符变量6

老的分割模式,返回内容为空时,分割的临时变量也会自动清空,而新的无限分割模式不会清空分割后的临时变量
BUG重现方式: ExtractStringEx 当分割的内容为空时报错,并且分割内容为空时分割后的零时变量不能自动清空
修复后应达到的效果: 分割内容为空时不报错,当分割内容为空时分割的所有临时变量自动清空,不然要加很多检测条件,还要设置很多清空变量命令
联系QQ: 隐藏内容

发表于 2023-3-27 15:00:52 | 显示全部楼层
本帖最后由 1580 于 2023-3-27 15:09 编辑

没有字符时,把变量初始下?这意思?

本身你的变量个数,是由分隔符决定,需处理的字符为空时,引擎是不知道个数,怎么清空呢?
 楼主| 发表于 2023-3-27 15:09:43 | 显示全部楼层
1580 发表于 2023-3-27 15:00
没有字符时,把变量初始下?这意思?

关键没有字符时,他报错
发表于 2023-3-27 15:11:36 | 显示全部楼层
唯快不破 发表于 2023-3-27 15:09
关键没有字符时,他报错

空时可以过滤掉提示信息,但,字符空时,引擎是不知道需清理多少个变量的,

只能判断 <$N(测试_b)> 为0后,自行清空了
 楼主| 发表于 2023-3-27 15:13:18 | 显示全部楼层
唯快不破 发表于 2023-3-27 15:09
关键没有字符时,他报错

应该没有字符时,不报错,变量同时清空

GetRandomName ..\QuestDiary\测试\测试.txt <$S(测试01)> 1 0 Force
GetRandomName ..\QuestDiary\测试\测试.txt <$S(测试02)> 2 0 Force
GetRandomName ..\QuestDiary\测试\测试.txt <$S(测试03)> 3 0 Force
GetRandomName ..\QuestDiary\测试\测试.txt <$S(测试04)> 4 0 Force
GetRandomName ..\QuestDiary\测试\测试.txt <$S(测试05)> 5 0 Force
GetRandomName ..\QuestDiary\测试\测试.txt <$S(测试06)> 6 0 Force
GetRandomName ..\QuestDiary\测试\测试.txt <$S(测试07)> 7 0 Force
GetRandomName ..\QuestDiary\测试\测试.txt <$S(测试08)> 8 0 Force
ExtractStringEx | <$S(测试01)> <$S(测试_a)> <$N(测试_a)>
ExtractStringEx | <$S(测试02)> <$S(测试_b)> <$N(测试_b)>
ExtractStringEx | <$S(测试03)> <$S(测试_c)> <$N(测试_c)>
ExtractStringEx | <$S(测试04)> <$S(测试_d)> <$N(测试_d)>
ExtractStringEx | <$S(测试05)> <$S(测试_e)> <$N(测试_e)>
ExtractStringEx | <$S(测试06)> <$S(测试_f)> <$N(测试_f)>
ExtractStringEx | <$S(测试07)> <$S(测试_g)> <$N(测试_g)>
ExtractStringEx | <$S(测试08)> <$S(测试_h)> <$N(测试_h)>

当然用以下这种方法也能搞定,要是不麻烦就处理下呗
#IF
EQUAL <$S(测试01)>
#ACT
mov <$S(测试01)> ||||||||
 楼主| 发表于 2023-3-27 15:15:26 | 显示全部楼层
唯快不破 发表于 2023-3-27 15:13
应该没有字符时,不报错,变量同时清空

GetRandomName ..\QuestDiary\测试\测试.txt  1 0 Force

那我就用 mov <$S(测试01)> ||||||||  麻烦了
发表于 2023-3-27 15:16:17 | 显示全部楼层
唯快不破 发表于 2023-3-27 15:13
应该没有字符时,不报错,变量同时清空

GetRandomName ..\QuestDiary\测试\测试.txt  1 0 Force

不报错这个已处理,清空,不好处理,

ExtractStringEx | <$S(测试01)> <$S(测试_a)> <$N(测试_a)>

按|,生成 <$S(测试_a0)> <$S(测试_a1)> <$S(测试_a2)>...需要知道有多少符号才能清理的
 楼主| 发表于 2023-3-27 15:18:37 | 显示全部楼层
1580 发表于 2023-3-27 15:16
不报错这个已处理,清空,不好处理,

ExtractStringEx |   

#IF
EQUAL <$S(测试01)>
#ACT
mov <$S(测试01)> ||||||||

感谢,我用这种方法,多几行检测而已,能达到清空变量的效果
发表于 2023-3-27 15:22:05 | 显示全部楼层

或是引擎空时,预清理10个已存在的变量,不过总感觉不是太好
 楼主| 发表于 2023-3-27 15:28:35 | 显示全部楼层
1580 发表于 2023-3-27 15:22
或是引擎空时,预清理10个已存在的变量,不过总感觉不是太好

那我就直接赋值相应分隔符就行了,报错处理下感谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|HGEM2论坛

GMT+8, 2025-6-11 12:39 , Processed in 0.458515 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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