传奇脚本求教:国王名字保存显示方法及变量保存特性详解

来源: 作者: 点击:
一、保存符合条件玩家名字到文本的脚本实现

核心用WriteFile命令完成文本写入,结合条件判断筛选合格玩家,脚本需明确文本路径与写入格式,确保后续读取正常。

以你提供的[@国王]触发场景为例,完整脚本如下:

[@main]
<申请国王/@国王> <国王信息/@信息>

[@国王]
#if
; 判定是否为帮主(需结合游戏内帮主标识命令,此处以IS_GUILD_LEADER为例)
IS_GUILD_LEADER
等级达到五十级
#act
; 用WriteFile命令写入玩家名字到文本,\r\n表示换行,避免内容重叠
WriteFile .\QuestDiary\国王信息.txt <$USERNAME>\r\n
; 可选:给玩家反馈提示
SENDMSG 6 申请成功,你的名字已记录为国王候选
#elsesay
不符合国王申请条件,需为帮主且等级满五十级

[@信息]
#act
; 读取文本第一行内容到S1变量,GetListString后参数依次为路径、行号、目标变量
GetListString .\QuestDiary\国王信息.txt 1 S1
#say
现任国王【<$S1>】


说明:WriteFile命令直接将<$USERNAME>(当前玩家名字变量)写入指定文本,\r\n是换行符,确保新写入的名字不会覆盖原有内容。若需仅保留现任国王信息(覆盖旧内容),可去掉\r\n,直接写为“WriteFile .\QuestDiary\国王信息.txt <$USERNAME>”。

二、对话框显示文本内名字的关键步骤

核心是“读取文本→变量承接→对话框调用”三步,你提到的GetListString命令用法正确,但需注意变量调用格式和文本路径准确性。

1. 读取文本:GetListString .\QuestDiary\国王信息.txt 1 S1 中,“1”代表读取文本第一行,若文本内有多行内容,可通过修改行号读取对应名字,S1为承接内容的字符型变量。

2. 对话框显示:在#say区域用<$S1>调用变量即可,如“现任国王【<$S1>】”,系统会自动将S1变量存储的名字替换显示。若提示“变量未定义”,检查文本路径是否正确(需与WriteFile路径完全一致)、行号是否超出文本实际行数。

三、传奇脚本变量保存特性分类及适用场景

结合你列出的变量类型,按“是否保存”“作用范围”分类,明确不同场景的变量选择,避免出现“关闭对话框/小退重置”问题。

1. 私人变量(仅当前角色使用)

变量类型

保存特性

重置条件

适用场景

P0-P9(数字型)

不可保存

关闭对话框、小退、下线均重置为0

临时计数,如对话框内的选项点击次数

M0-M99(数字型)

不可保存

同P系列,关闭交互界面即重置

临时任务进度判定,如收集物品的临时数量

D0-D9(数字型)

不可保存

小退或关闭角色界面重置

当前登录会话内的临时操作标记

N0-N99(数字型)

不可保存

关闭对话框即重置,小退也重置

对话框内的临时计算,如奖励预览数值

S0-S99(字符型)

不可保存

关闭对话框后内容清空

临时存储对话输入内容,如自定义昵称输入

2. 全局变量(全服角色共享或跨场景使用)

变量类型

保存特性

重置条件

适用场景

G0-G499(数字型)

可保存

仅脚本手动重置或服务器重启重置

全服活动进度、国王任期计数等

I0-I99(数字型)

不可保存

服务器重启或脚本重置,小退不影响

临时全服公告计数、临时活动标记

A0-A499(字符型)

可保存

仅手动重置,长期有效

存储全服唯一信息,如现任国王名字(替代文本)

3. 特殊说明:变量选择技巧

若需“关闭对话框重置”,优先选S系列(字符型)、P系列(数字型);若需“小退重置但对话内保留”,可选D系列;长期存储全服信息,用A系列(字符型)或G系列(数字型)更稳妥,无需依赖文本文件,调用更高效。