传奇脚本StrTok与FormatStr函数用法详解
在传奇版本搭建、脚本修改、自定义功能开发过程中,字符串处理函数是GM日常使用频率最高的核心脚本指令。合理运用字符拆分、文本格式化、自定义排版等功能,能够高效完成游戏功能优化、人物信息截取、界面文字规整等操作。本文全面讲解传奇脚本中StrTok字符串分解函数与FormatStr字符串格式化函数的语法细…
在传奇版本搭建、脚本修改、自定义功能开发过程中,字符串处理函数是GM日常使用频率最高的核心脚本指令。合理运用字符拆分、文本格式化、自定义排版等功能,能够高效完成游戏功能优化、人物信息截取、界面文字规整等操作。本文全面讲解传奇脚本中StrTok字符串分解函数与FormatStr字符串格式化函数的语法细则、使用规范以及完整实操案例,内容通俗易懂、可直接套用,适合各类传奇版本脚本学习与落地使用。
一、StrTok字符串分解函数功能详解
1.1 函数基础语法与参数说明
StrTok是传奇脚本专用的字符串拆分指令,核心作用是通过自定义分隔符切割原始字符串,分别输出拆分后的子字符串与剩余字符串,广泛应用于玩家昵称截取、参数分割、字符筛选、链接拆分等各类脚本场景。
标准语法格式:StrTok S1 S2 分隔符
参数详解:S1为源字符串变量,用于存放待拆分的原始文本内容;S2为子字符串变量,用于存储拆分后提取的目标内容;第三参数为自定义分隔符,留空默认以空格作为分隔符,填写#9则代表Tab分隔符,同时支持S、A两类变量调用。
核心使用注意事项:编写脚本时,分隔符严禁使用双字节大写符号,包含【】、:、*、()等符号,仅支持单字节英文符号。若字符串内存在多个相同分隔符,函数仅识别第一个分隔符完成单次拆分,剩余未处理字符可二次调用该函数继续拆分处理。
1.2 StrTok函数全套实操案例
以下三组脚本案例经过实测可用,覆盖符号分隔、单字符分隔、文本截取三大常用场景,新手可直接复制套用,快速掌握StrTok函数用法。
案例一:特殊符号分隔字符串拆分
[@测试]
#IF
TRUE
#ACT
MOV S1 BLUE+M2
MOV S2 M2
StrTok S1 S2 +
SENDMSG5结果:<$STR(S1)>=M2、<$STR(S2)>=BLUE
本案例以加号作为自定义分隔符,对组合字符串进行精准切割,分离出前后两段独立字符,适用于传奇脚本中组合参数拆分、链接字符分割等场景。
案例二:单字符分隔字符串拆分
[@测试2]
#IF
TRUE
#ACT
MOV S1 BLUEM2
MOV S2 M2
StrTok S1 S2 M
SENDMSG5结果:<$STR(S1)>=2、<$STR(S2)>=BLUE
该案例以单个字母作为分隔符,拆分无符号连续字符串,直观体现函数拆分逻辑。同时验证了多分隔符仅取首个拆分的规则,复杂长文本可通过多次调用函数实现循环拆分。
案例三:括号边界截取玩家文本字符
[@测试3]
#IF
TRUE
#ACT
MOV s2
mov s1 玩家:(风云)雄霸天下
StrCap S1 S2 ( )
SendMsg 5 当前:S1=<$STR(S1)>
SendMsg 5 当前:S2=<$STR(S2)>
案例搭配StrCap指令,以括号为边界精准截取文本内容,可用于传奇游戏玩家昵称、公会称号、角色备注等信息的提取,是人物信息脚本开发的常用写法。
二、FormatStr字符串格式化函数功能详解
2.1 函数核心作用与返回值
FormatStr是传奇脚本专属的文本格式化、排版对齐函数,主要用于规整装备名称、弹窗文本、NPC对话、参数列表的展示样式。函数执行后的格式化结果会统一返回至$CALCRESULT变量,可直接调用输出,能够有效解决游戏界面文字错乱、排版不整齐的问题。
2.2 函数基础使用规范
双引号使用规则:当格式化参数中包含空格时,必须使用双引号包裹完整参数,确保脚本将带空格内容识别为单个整体参数,避免排版错乱、参数读取失败。
参数匹配规则:格式化语句中,每一个%s对应一个自定义参数,单条脚本最多支持9个%s参数,参数数量必须与%s数量一一对应,否则会出现脚本报错、内容缺失、排版异常等问题。
对齐格式规则:支持自定义字符对齐方式与展示宽度,%-32s代表左对齐,32为字符展示宽度;格式中无-号则默认右对齐,-号固定放置在%号之后、数字宽度之前。
2.3 FormatStr函数实操案例
案例一:传奇装备批量格式化展示
[@FormatStr]
#IF
TRUE
#ACT
SetDlgItem 屠龙
FormatStr %s <$DLGITEMSHOW>
SetDlgItem 怒斩
FormatStr "%s %s" <$CALCRESULT> <$DLGITEMSHOW>
SetDlgItem 龙牙
FormatStr "%s %s" <$CALCRESULT> <$DLGITEMSHOW>
SetDlgItem 逍遥扇
FormatStr "%s %s" <$CALCRESULT> <$DLGITEMSHOW>
#say
装备:<$CALCRESULT>\ <返回 /@back> <关闭 /@exit>
本案例适配传奇NPC装备展示弹窗,可批量格式化屠龙、怒斩、龙牙、逍遥扇等经典装备名称,实现多装备名称整齐排列展示,大幅优化游戏装备查询界面的展示效果。
案例二:文本左右对齐标准化排版
#IF
TRUE
#ACT
; 双引号一般用在参数包含有空格的情况下,这样即使参数中带了空格,也会被认为是一个参数
; 参数1有多少个%s,后面就需要带对应个数的参数,最多9个%s
; 对齐格式:%-32s,其中,-表示左对齐,不带-号默认右对齐;32表示字符的宽度,-号在%号的后面、32前面
FormatStr "%32s 参数:%-5s %s %s %s %s %s %s %s" 右对齐 一 二 三 四 五 六 七 八
mov s1 $CALCRESULT
FormatStr "%-32s 参数:%5s %s %s %s %s %s %s %s" 左对齐 一 二 三 四 五 六 七 八
#say
<$STR(S1)>\<$CALCRESULT>\<关闭/@exit> <返回/@main>
通过左右对齐对比排版写法,可实现传奇游戏提示文本、功能说明、参数列表的标准化规整展示,彻底解决脚本文本错乱、排版杂乱的问题,提升游戏界面整体美观度。
三、传奇字符串函数使用总结
StrTok与FormatStr两大字符串函数,是传奇脚本开发、版本优化的核心基础指令。其中StrTok主打字符串拆分、字符提取、内容切割,适用于数据截取、参数分割等功能场景;FormatStr主打文本格式化、对齐排版、界面规整,适用于NPC对话、装备展示、弹窗提示等界面优化场景。熟练掌握两大函数的语法与实操技巧,可快速完成各类复古、微变、超变传奇的脚本定制、bug修复、功能优化工作。


