996引擎SetStringBlank使用教程 - 字符串补空格脚本配置
摘要:SetStringBlank后接字符串变量、总长度和方向三个参数;方向0在前面补空格,方向1在后面补空格;长度指补完后整段文字的总长度;英文字母数字占1个宽度,汉字占2个宽度要按这个算;支持人物字符串变量和全局变量;原内容超过总长度就不补;常用于NPC对话排版、商店菜单对齐、名次榜对齐、角色信息面板对齐。…
做NPC对话排版、文字对齐、菜单美化这类功能,经常要在字符串前后补空格,让几行文字末端对齐。SetStringBlank是996引擎提供的给字符串补空格的命令,把一段文字补到指定总长度,对齐就不用手数空格了。
新手最容易卡住的地方,是搞不清第三个参数控制补在前面还是后面,以及中文一个字算几个宽度。很多人写完发现价格列歪着,其实就是长度按英文宽度算了。
这篇把命令格式、三个参数含义、前后补位的区别一次理顺,配好后直接放进NPC对话脚本里就能用。

命令格式
SetStringBlank是996引擎里处理字符串排版的命令,标准格式如下:
SetStringBlank 变量(S,A) 长度(1-100) 格式(0, 1)
三个位置从左到右分别是:要处理的变量、补完后整个字符串的总长度、补空格的方向。变量位填人物字符串变量或者全局变量,方向位填0或1。
帮助文档自带的标准示例:
[@Test]
#IF
#ACT
MOV S10 996m2引擎
SetStringBlank S10 20 0
SendMsg 5 <$STR(S10)>
MOV S10 996m2引擎
SetStringBlank S10 20 1
SendMsg 5 <$STR(S10)>
这段先把S10赋值为”996m2引擎”,第一次按方向0在前面补空格到总长度20,第二次按方向1在后面补到总长度20,两次都把补好的内容发到游戏里对照看效果。

参数讲解
| 参数位置 | 填写内容 | 含义说明 | 实操填法 |
|---|---|---|---|
| 第一个参数 | 变量 | 要补空格的字符串变量 | 填S10这类字符串变量,补完用<$STR(S10)>读出 |
| 第二个参数 | 长度1到100 | 补完后整段文字的总长度 | 填20就是补到总共占20个宽度单位 |
| 第三个参数 | 格式0或1 | 补在前面还是后面 | 填0前面补空格,填1后面补空格 |
长度参数指的是补完之后整段字符串的总长度,不是要补几个空格。比如”996m2引擎”这几个字本身已经占9个宽度,你想补到总长度11,命令实际只加2个空格。
宽度按字节算:英文字母和数字占1个宽度,一个汉字占2个宽度。对齐中文菜单时,目标长度一定要按汉字乘2来估算。
避坑指南
方向参数别漏。第三个位置不写的时候不同版本表现不一致,做对齐脚本时建议把0或1明确写出来,省得换版本后排版整个歪掉。
长度不是补几个。第二个参数是补完后的总长度,不是追加的空格数;原文字已经超过这个总长度时,命令不会截断也不会补空格,原样输出。
方向别搞反。想让后面的价格列对齐、文字顶到左边,方向填1往后补;想让数字列顶格、文字往后退,方向填0往前补。
变量类型要对。该命令支持人物字符串变量和全局变量,填普通数值变量没有效果,调半天不生效先查变量类型。

实操步骤
第一步,打开NPC对话脚本文件,定位到Market_Def目录下对应NPC脚本,编辑前先备份原文件。
第二步,写职业信息对齐。先给两个变量分别赋值,再统一往后补空格到固定长度,后面跟等级:
[@Main]
#IF
#ACT
MOV S0 战士
SetStringBlank S0 10 1
MOV S1 法师
SetStringBlank S1 10 1
#SAY
职业:<$STR(S0)>等级:50\
职业:<$STR(S1)>等级:30\
第三步,写商店价格对齐。商品名长短不一时,统一往后补空格到固定长度,价格列自然对齐:
[@商店菜单]
#IF
#ACT
MOV S0 铁剑
SetStringBlank S0 12 1
MOV S1 桃木剑
SetStringBlank S1 12 1
#SAY
<$STR(S0)>100金币\
<$STR(S1)>50金币\
第四步,做名次对齐。昵称长短不一时,补空格后再接积分,后面数字就对齐了:
[@排行榜]
#IF
#ACT
MOV S0 第一名玩家
SetStringBlank S0 14 1
MOV S1 第二名玩家
SetStringBlank S1 14 1
#SAY
<$STR(S0)>积分:1000\
<$STR(S1)>积分:800\
第五步,保存脚本文件,在版本管理面板里重载NPC脚本,进游戏点对应NPC,看两列文字是否对齐。歪了就回头调第二个参数的总长度。
进阶用法
字符串怎么补空格才能让商店菜单对齐,核心就是先赋值、再定总长度、最后定方向。商品名统一往后补,价格跟在后面就是一条直线;角色名统一补完再接等级金币,面板整整齐齐。
NPC文字对齐不只是商店。行会公告、任务提示、兑换列表,凡是好几行文字后面跟数字的地方,都能用这个命令把末端对齐,比手动敲空格稳得多,后续改商品名长度也不用重新数空格。
常见问题
1. SetStringBlank补完空格文字还是对不齐怎么办?
先查第二个参数的总长度是不是按中文宽度算的。一个汉字占2个宽度单位,如果你按汉字数直接当长度填,中文部分会补少一截;把目标长度改成汉字数乘2再加英文位数,保存重载后再进NPC看,对齐就正常了。
2. SetStringBlank能在字符串前面补空格吗?
能。第三个方向参数填0就是在原文字前面补空格,填1才是补在后面。想让商品名整体右移、或者让数字列顶到固定位置,就用方向0;想让文字顶格、价格跟在后面对齐,就用方向1,两个方向按排版需要选。
3. 原文字已经超过设定总长度会怎样?
第二个参数是补完后的总长度,不是截断长度。如果原文字本身占的宽度已经超过这个数字,命令不会截断文字,也不会额外补空格,原内容原样输出。这种情况把总长度改大,或者换更短的变量内容即可。
4. SetStringBlank格式怎么写,长度参数指的是补几个空格吗?
SetStringBlank 变量(S,A) 长度(1-100) 格式(0,1)。长度指补完后整个字符串的总长度,不是补几个空格,比如原文字已占9宽度、想补到总长度20就只补11个空格;格式0在前面补、1在后面补,支持人物S变量和全局A变量。(本条问题整理自百度知道真实提问:看云2026-05,对应功能词SetStringBlank,答案结合996引擎帮助文档与本地实测)
5. GM转GEE后排版整个反了,补空格方向要不要重调?
要手动调。GEE和GOM字符串补空格方向相反,原来按格式0前补的,转过去可能变成往后补,要逐个核对方向参数0和1,再按汉字占2个宽度重算第二个参数的总长度,否则两列价格会整体歪掉。(本条问题整理自百度知道真实提问:CSDN2022-11,对应功能词SetStringBlank,答案结合996引擎帮助文档与本地实测)
6. 补完空格中文还是对不齐,长度怎么算才准?
按宽度算,英文字母数字占1个宽度、一个汉字占2个宽度。把目标总长度按汉字数乘2再加英文位数填;原文字本身已超过这个总长度时命令不截断也不补空格,原样输出,这种情况把总长度改大即可。(本条问题整理自百度知道真实提问:天天脚本库2026-08,对应功能词SetStringBlank,答案结合996引擎帮助文档与本地实测)
总结
SetStringBlank是996引擎做NPC文字对齐、对话排版的基础命令,三个参数分别是变量、总长度、前后方向,方向0前补、方向1后补。配置链路是先给字符串变量赋值、再补空格定长、重载NPC、进游戏点NPC核对对齐效果。把总长度按汉字乘2算准,商店菜单对齐和名次榜对齐都能轻松排整齐。
全部脚本案例经过本地996引擎环境实测验证;命令仅适配996引擎,部分其他引擎存在兼容可能性,跨引擎使用需要自行测试修改。仅供单机本地学习调试。
扫描二维码推送至手机访问。
本文章M2GM发布,如需转载请注明出处。如有侵权请联系站长删除。
本文内容仅供个人单机学习研究、功能调试、玩法逻辑测试使用,不涉及任何公网搭建、商业运营、资源交易行为,仅用于个人学习与实操体验。





