这段脚本涉及竞拍系统、成员招募、公告显示和物品触发的完整逻辑。下面把每一行代码翻译成白话,告诉你每个参数什么意思、每个命令起什么作用,最后再把整个脚本的运行流程串起来。
**第一步:先看第一段脚本的界面显示部分**
这段脚本前半部分是在游戏里画出一个对话框,让玩家看到当前信息并输入内容。
- **`<你拥有的元宝/SCOLOR=254>`**
这是显示一行文字“你拥有的元宝”,颜色代码254。SCOLOR后面跟数字,代表不同的颜色,比如254通常是黄色,253是白色,250是灰色,249是另一种颜色。
- **`:`**
普通冒号,分隔文字用。
- **`<[/SCOLOR=253>`**
这里显示一个左中括号 `[`,颜色是253。注意它跟后面的内容分开写了,是为了给括号单独上色。
- **`<$GAMEGOLD>`**
这是一个变量,代表玩家当前拥有的元宝数量。脚本运行到这里,会自动替换成具体数字。
- **`<]/SCOLOR=253>`**
显示右中括号 `]`,颜色253。
- **` `**
这是全角空格,用来在界面上空出位置,让排版更整齐。
- **`<当前竞拍价位/SCOLOR=254>:`**
显示“当前竞拍价位”文字,颜色254,后面跟冒号。
- **`<[/SCOLOR=253><$STR(G162)><]/SCOLOR=253>`**
先显示左括号,然后显示G162变量的值,再显示右括号。`<$STR(G162)>` 的意思是取出全局数字变量G162,并转换成字符串显示出来。G162一般用来存储当前的竞拍价格。
- **`+<[/SCOLOR=253>5000<]/SCOLOR=253>`**
显示一个加号,然后显示“5000”这个数字,外面套着括号。这个5000通常是竞拍的最低加价幅度,表示每次加价至少要比当前价位高5000元宝。
- **`<元宝/SCOLOR=249>`**
显示“元宝”两个字,颜色249。
- **`\ \`**
换行符。一个`\`代表换一行,两个`\`代表换两行,用来在对话框里分隔不同部分。
**第二步:输入框和显示变量的解析**
- **`<请输入你要要竞标的价格/@@InPutInteger70>`**
这行生成一个可点击的文字链接,玩家点一下就会弹出输入框,让玩家输入一个整数。输入的内容会自动保存到N70这个变量里。`@@InPutInteger70` 是触发字段,数字70对应N70变量。
- **`<(只能输入整数)/SCOLOR=250>`**
在旁边显示一个灰色提示“只能输入整数”,提醒玩家。
- **`元宝:<$str(N70)>`**
显示“元宝:”然后显示N70变量当前的值。如果玩家刚输入了10000,这里就会显示10000。
- **`<请输入招收成员最低等级/@@InPutInteger71>`**
另一个点击输入链接,让玩家输入最低等级,输入的内容存到N71变量。
- **`<(60级→100级)/SCOLOR=250>`**
显示一个灰色的提示,告诉玩家可输入的范围是60到100级。
- **`等级:<$str(N71)>`**
显示当前N71变量的值。
- **`<请输入一段简短的公告/@@InPutString18>`**
输入文本的链接,点开后可以输入文字,内容存到S18变量。`@@InPutString18` 是文本输入触发,S18是字符型变量。
- **`<(在雕像上显示)/SCOLOR=250>`**
灰色提示,说明这个公告会用在哪里。
- **`公告可以留空`**
提示信息,告诉玩家可以不填。
- **`\ \`**
再换两行。
- **`<公告内容:/SCOLOR=250><$STR(S18)>`**
显示“公告内容:”后面跟着S18变量里的值。如果玩家没填,这里就是空的。
**第三步:把界面脚本串联起来理解**
把上面所有行连起来,这个脚本生成的是一个**竞拍和行会管理对话框**。
玩家打开这个界面,能看到自己有多少元宝、当前竞拍价是多少、加价幅度是多少。然后有三个输入框可以点:
1. 输入竞拍价格(只能整数,存N70)
2. 输入招收成员的等级要求(范围60-100,存N71)
3. 输入一行公告文字(存S18)
界面底部还会显示当前已经设置好的公告内容。整个脚本通过`@@InPutInteger70`、`@@InPutInteger71`、`@@InPutString18`这三个触发字段,把玩家的输入分别存到N70、N71、S18这三个变量里,供后续其他脚本调用。
**第四步:解析第二段物品触发脚本**
这是另一段独立的脚本,放在 `\QuestDiary\服务\会员服务.txt` 文件里。
- **`[@PICKUPITEM51]`**
这是一个触发段。`PICKUPITEM` 意思是捡起物品,`51` 是物品的Looks值或者触发编号。当玩家捡起编号为51的物品(比如“地牢逃脱卷包”)时,自动执行这个段里的脚本。
- **`#IF`**
条件判断开头,但下面没有跟具体条件,直接进ACT。
- **`#ACT`**
执行动作部分。
- **`SetStringBlank S18 14 0`**
这是一个格式化命令。把S18变量设置成固定长度的字符串。`14` 代表总长度是14个字符,`0` 代表空格填充。如果S18原来有内容,这个命令会把它变成14位长,不够的在右边补空格,超过的截断。这样做通常是为了对齐显示格式。
- **`#SAY`**
显示文字部分。
- **`<OpenBig:/SCOLOR=70><$STR(S18)>`**
显示“OpenBig:”字样,颜色70,后面跟上格式化后的S18变量的值。这里的OpenBig可能是某个功能的关键词,具体含义要看整个引擎的设定。
这段脚本的意思是:玩家捡起特定物品时,系统会自动把S18变量格式化成固定长度,然后弹出一行提示。
**第五步:解析第三段触发段**
最后一段脚本放在 `QuestDiary\游戏触发\回城物品.txt` 里。
- **`[@MAPMOVE]`**
这是一个触发段名称。`MAPMOVE` 通常指地图移动,可能是玩家使用回城卷、传送石或者触发某个地图传送时执行的脚本。
- **`#ACT`**
执行动作。
- **`GMEXECUTE <$STR(S51)>`**
`GMEXECUTE` 是执行GM命令的命令。`<$STR(S51)>` 是从S51变量里取出内容。合起来的意思就是:执行一条GM命令,命令的具体内容存在S51变量里。
假设S51里存的是 `召唤 天尊`,那么执行这个脚本就相当于GM自己执行了“召唤 天尊”这条命令,把叫“天尊”的玩家或者怪物召唤过来。具体执行什么,取决于S51里提前存了什么内容。
**第六步:整个脚本逻辑的串联**
这三个脚本虽然放在不同文件,但通过变量可以串联起来。
举个例子:
1. 玩家在第一个对话框里输入公告内容,点确定后,内容存到了S18。
2. 玩家捡起某个物品(地牢逃脱卷包),触发了第二段脚本,把S18格式化后显示出来,说“OpenBig:XXX”。
3. 当玩家再触发某个地图移动事件(比如回城),第三段脚本执行,把S51里存的命令调出来执行。
变量就是连接这些脚本的纽带。S18存文本,S51存命令,N70、N71存数字,G162存全局竞拍价。理解了每个变量存什么、每个触发段什么时候触发,整个脚本的运行逻辑就全清楚了。

