当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇服务端M2变量保存到文本双击物品触发输入框脚本

热度:
一、核心需求拆解:变量存储与文本保存逻辑

本次实现核心为“双击物品→弹出输入框→玩家输入信息存入@@InPutString100变量→变量值自动写入文本文件”,全程通过M2脚本触发,无需手动操作数据库或文件。其中@@InPutString100为M2全局输入变量,支持存储玩家输入的字符串信息,需通过脚本调用该变量值,再借助文件写入命令保存到指定文本,同时兼容S变量(私人字符型变量)、G变量(全局变量)的保存需求,适配多数传奇服务端版本。

文本文件默认保存至服务端指定目录,便于后续查阅与管理,脚本中可自定义文件路径、名称及保存格式(含玩家角色名、输入内容、触发时间等信息),避免数据混乱。操作前需确保服务端M2引擎支持文件写入命令(如WriteFile、WriteText等),无该命令可升级M2引擎至对应版本,或通过第三方插件补充功能,确保脚本正常执行。

二、完整自动保存脚本(可直接复制使用)

1.双击物品触发输入框脚本

脚本功能:玩家双击指定物品(如“信息录入器”),弹出输入框,输入内容自动存入@@InPutString100变量,同时触发后续文本保存操作。需将脚本放入服务端“QuestDiary”文件夹,命名为“InputSave.txt”(后缀为.txt,避免格式错误)。

;双击物品触发输入框(物品ID需替换为实际物品ID)
(@DoubleClickItem1001);1001为触发物品ID,可替换为任意物品ID
#act
;弹出输入框,提示玩家输入信息
SendMsg6请输入需保存的信息(最长50字符):
;调用输入框,输入内容存入@@InPutString100变量
InputString10050;100对应@@InPutString100,50为最大输入字符数
;触发变量保存到文本的子程序
GotoSubSaveToText
;提示玩家信息保存成功
SendMsg6信息已成功保存至文本文件!

;变量保存到文本子程序
(@SaveToText)
#act
;定义文本保存路径(可自定义,需确保路径存在)
SetStrS1D:\MirServer\Log\PlayerInput.txt;S1为临时变量,存储文本路径
;读取玩家角色名,存入S2变量
GetCharNameS2
;获取当前时间,存入S3变量(格式:时:分:秒)
GetTimeS3
;拼接保存内容(格式:角色名时间输入信息)
SetStrS4<$S2>-<$S3>-输入内容:<$@@InPutString100>
;写入文本文件(追加模式,避免覆盖原有内容)
WriteFile<$S1><$S4>1;1为追加模式,0为覆盖模式
;清空变量,避免残留数据
ClearVar@@InPutString100
ClearVarS1S2S3S4
Return


2.S变量/G变量保存到文本脚本(拓展功能)

若需保存M2全局S变量(私人字符型变量)或G变量(全局变量),可在上述脚本基础上添加以下子程序,支持批量保存变量值到文本。

;S变量/G变量保存到文本子程序(可单独调用)
(@SaveVarToText)
#act
;定义变量保存路径
SetStrS1D:\MirServer\Log\VarSave.txt
;读取S变量(如S0)和G变量(如G1)的值
GetVarS0S2;读取S0变量值存入S2
GetVarG1S3;读取G1变量值存入S3
;获取当前时间和角色名
GetCharNameS4
GetTimeS5
;拼接保存内容
SetStrS6<$S4>-<$S5>-S0变量值:<$S2>-G1变量值:<$S3>
;追加写入文本
WriteFile<$S1><$S6>1
;提示保存成功
SendMsg6S/G变量值已保存至文本!
ClearVarS1S2S3S4S5S6
Return


三、脚本配置与执行步骤(新手必看)

1.基础配置操作

第一步:替换物品ID。脚本中“1001”为触发物品ID,需在DBC2000中找到目标物品,查看其“物品ID”并替换,确保双击对应物品可触发输入框。第二步:修改文本保存路径。脚本中“D:\MirServer\Log\PlayerInput.txt”为默认路径,需确认服务端存在“Log”文件夹,无则手动创建;可自定义路径(如E:\Save\InputLog.txt),但需避免含特殊字符(如空格、中文符号)。

第三步:开启M2脚本功能。打开M2引擎,依次点击“选项→功能设置→脚本功能”,勾选“启用自定义脚本”“启用文件写入命令”,点击保存并重启M2引擎,使配置生效。第四步:测试脚本。登录游戏,获取触发物品(可通过GM命令“@give角色名10011”发放),双击物品弹出输入框,输入内容后点击确认,查看指定路径下是否生成文本文件,验证内容是否保存成功。

2.常见参数调整说明

输入字符限制:脚本中“InputString10050”的“50”为最大输入字符数,可调整为100、200等,根据需求设置,避免输入内容过长导致保存失败。保存模式:“WriteFile”命令中“1”为追加模式(新内容添加到文件末尾),“0”为覆盖模式(新内容替换原有内容),按需切换。

变量替换:若需保存其他输入变量(如@@InPutString101),只需将脚本中“100”改为对应数字(如101),同时调整“InputString”命令的第一个参数即可。多物品触发:可复制“@DoubleClickItem”段落,修改物品ID,实现多个物品触发同一输入保存功能。

四、避错要点:避免脚本执行失败的核心注意事项

1.路径与文件夹问题:文本保存路径必须存在,无对应文件夹需手动创建;路径中不可含空格、中文符号(如全角逗号、句号),建议使用英文路径或纯数字路径,避免文件写入失败。

2.M2命令权限:部分服务端M2引擎默认关闭文件写入权限,需在M2“命令权限”中勾选“WriteFile”“SetStr”等命令,允许脚本调用,否则会提示“命令无权限”。

3.变量清空与残留:脚本结尾需添加“ClearVar”命令清空临时变量,避免变量残留导致下次保存内容错乱;@@InPutString100变量需在保存后清空,防止后续触发时读取旧数据。

4.编码格式:脚本文件需保存为ANSI编码,用记事本打开脚本,依次点击“文件→另存为”,编码选择“ANSI”,避免因编码错误导致脚本乱码、无法执行。

5.版本兼容性:若脚本执行无响应,可能是服务端版本不兼容,可尝试将“WriteFile”命令替换为“WriteText”(部分版本支持该命令),或升级M2引擎至最新稳定版本。

五、文本文件管理与内容查看

保存后的文本文件可直接用记事本、Notepad++等工具打开,内容按“角色名-时间-输入信息”格式排列,便于快速查阅。建议定期备份文本文件,避免因服务端清理日志导致数据丢失;可通过脚本添加“自动备份”功能,如每日固定时间将文本文件复制到备份目录,具体脚本如下:

;文本自动备份脚本(每日0点执行)
(@Timer00:00:00)
#act
;原文件路径
SetStrS1D:\MirServer\Log\PlayerInput.txt
;备份文件路径(添加日期标识)
SetStrS2D:\MirServer\Log\Backup\PlayerInput_<$Date>.txt
;复制文件实现备份
CopyFile<$S1><$S2>
SendMsg6输入信息文本已自动备份完成!


若需批量导出或编辑文本内容,可将文件导入Excel,按角色名、时间等字段拆分数据,方便后续统计与管理。同时禁止删除文本文件中的内容,如需清理旧数据,可手动删除或通过脚本设置“保留最近30天数据”功能,避免误删重要信息。
[顶部]