传奇服务端中,M2的全局S变量、G变量可通过脚本设置自动保存到指定文本,双击物品触发输入框、将@@InPutString100变量值保存到文本,核心依托QManage.txt脚本编写,无需复杂操作,按步骤设置即可实现,适配所有主流服务端版本,新手可直接照搬脚本使用。
先明确核心概念:M2全局S变量(服务端全局变量,全服通用,重启服务端后不丢失)、G变量(玩家个人全局变量,仅对应单个玩家,重启后不丢失),两种变量的保存脚本逻辑一致,可通用同一套文本保存方法;@@InPutString100是输入框触发后的变量,用于存储玩家输入的文本信息,需通过脚本将其值提取并写入指定文本文件。
第一步:准备文本保存路径,确定变量保存的文本文件。无论保存S变量、G变量,还是@@InPutString100变量,都需先指定文本文件的存放路径,建议放在服务端易查找的目录,避免路径错误导致无法写入。
常规存放路径为D:\Mirserver\Mir200\Envir\Logs(该目录是服务端默认日志目录,可直接使用,无需新建),也可自定义路径(如D:\Mirserver\Mir200\Envir\VarLog),自定义路径需先在对应目录新建文本文件,命名格式为“变量保存.txt”(如S变量保存.txt、输入框变量保存.txt),文件名可自定义,无需固定,便于后续查找即可。
注意:文本文件需为TXT格式,编码选择ANSI,避免出现中文乱码;若未提前新建文本文件,脚本运行后会自动生成对应文本文件,无需手动创建,但建议提前新建,确保路径正确。
第二步:编写M2全局S变量、G变量自动保存脚本,实现实时自动保存。脚本核心依托QManage.txt文件,通过定时触发或事件触发,将变量值自动写入指定文本,两种触发方式可根据需求选择,优先推荐定时触发,确保变量值不会丢失。
首先打开服务端根目录,找到D:\Mirserver\Mir200\Envir\MapQuest_def文件夹,打开QManage.txt文件(脚本核心文件,负责处理全局脚本逻辑),在文件末尾添加自动保存脚本,先编写S变量自动保存脚本(全服通用),具体脚本如下,可直接复制使用:
#AutoRun NPC SEC 300 @SaveSVarToTxt//每300秒(5分钟)自动保存一次S变量,时间可调整#IFTRUE#ACTWriteFile D:\Mirserver\Mir200\Envir\Logs\S变量保存.txt [保存时间]:$TIME 全局S变量1:$S(变量名1) 全局S变量2:$S(变量名2)SENDMSG 0 全服全局S变量已自动保存至指定文本,可前往对应目录查看
脚本解析:#AutoRun NPC SEC 300 是定时触发命令,SEC代表按秒触发,300即5分钟,可根据需求调整(如60秒即1分钟,1800秒即30分钟);@SaveSVarToTxt是自定义触发标识,无实际意义,仅用于区分脚本;WriteFile是核心命令,用于将变量值写入文本,后面跟文本存放路径和需要保存的内容;$TIME是获取当前系统时间,便于查看保存时间;$S(变量名1)是提取指定S变量的值,需替换为自己设置的S变量名(如$S(ServerLevel)、$S(ActivityState));SENDMSG 0是向全服发送提示,告知变量已保存,可删除该句。
接着编写G变量自动保存脚本(玩家个人全局变量),同样添加在QManage.txt文件末尾,脚本逻辑与S变量一致,仅需将$S替换为$G,具体如下:
#AutoRun NPC SEC 600 @SaveGVarToTxt//每10分钟自动保存一次玩家G变量#IFTRUE#ACTWriteFile D:\Mirserver\Mir200\Envir\Logs\G变量保存.txt [保存时间]:$TIME 玩家[$USERNAME]G变量1:$G(变量名1) 玩家[$USERNAME]G变量2:$G(变量名2)SENDMSG 7 你的个人全局G变量已自动保存至指定文本
补充说明:G变量保存脚本中,$USERNAME是获取当前玩家角色名,确保每个玩家的G变量单独记录,避免混淆;若需保存所有玩家的G变量,可配合循环命令编写,但新手无需复杂设置,按上述脚本即可实现单个玩家G变量保存;时间间隔可根据需求调整,间隔越短,变量保存越及时,不会因服务端异常导致变量丢失。
第三步:编写双击物品触发输入框的脚本,绑定@@InPutString100变量。玩家双击指定物品后弹出输入框,输入的信息会自动存储到@@InPutString100变量,这一步需先设置触发物品,再编写输入框脚本,核心还是在QManage.txt文件中操作。
首先确定触发物品(如“信息输入卷”,可使用已有的物品,或按常规方法添加新物品),假设使用物品名称为“信息输入卷”,在QManage.txt文件末尾添加如下脚本,实现双击物品弹出输入框:
(@UseItem 信息输入卷)#IFCHECKITEM 信息输入卷 1//判断玩家是否拥有该物品#ACTTAKEITEM 信息输入卷 1//扣除1个物品INPUTBOX 请输入需要保存的信息(最多50字符) @@InPutString100 50//弹出输入框,限制输入50字符,变量绑定@@InPutString100SENDMSG 6 请在弹出的输入框中输入信息,输入完成后将自动保存#ELSESENDMSG 6 你没有信息输入卷,无法触发输入框
脚本解析:@UseItem 信息输入卷 是绑定物品双击触发的命令,与物品名称完全一致;CHECKITEM 信息输入卷 1 是判断玩家背包中是否有该物品,1代表数量为1;TAKEITEM 信息输入卷 1 是扣除玩家背包中的1个物品,无需扣除可删除该句;INPUTBOX 是弹出输入框的核心命令,后面依次是输入框提示文字、绑定的变量(@@InPutString100)、输入字符限制(50,可调整);SENDMSG 6 是向玩家发送提示,告知操作步骤。
注意:输入框绑定的变量必须是@@InPutString100,不可修改变量名,否则无法正常存储玩家输入的信息;字符限制可根据需求调整(如30、100),避免玩家输入过长信息导致文本错乱;若无需扣除物品,删除TAKEITEM那一行即可,玩家可重复双击物品触发输入框。
第四步:编写脚本,将@@InPutString100变量值调出并保存到文本。玩家输入信息后,@@InPutString100变量已存储信息,需再编写一段脚本,将该变量的值提取,写入指定文本,实现输入信息的永久保存,脚本继续添加在QManage.txt文件末尾。
具体脚本如下,可直接复制使用,无需修改核心命令,仅需调整文本保存路径即可:
(@InputOk @@InPutString100)#IFCHECKSTR @@InPutString100//判断变量是否有值(玩家是否输入信息)#ACTWriteFile D:\Mirserver\Mir200\Envir\Logs\输入框信息保存.txt [保存时间]:$TIME 玩家[$USERNAME] 输入信息:$STR(@@InPutString100) 角色等级:$LEVEL//写入玩家信息、输入内容、等级SENDMSG 6 信息输入成功!已保存至指定文本,可前往对应目录查看CLEARSTR @@InPutString100//清空变量,避免下次输入覆盖#ELSESENDMSG 6 你未输入任何信息,无法保存
脚本解析:@InputOk @@InPutString100 是输入框确认后的触发命令,玩家点击输入框确认后,自动执行该脚本;CHECKSTR @@InPutString100 是判断变量是否有值,避免玩家未输入信息却执行保存操作;WriteFile 后面的文本路径可替换为自己设置的路径,$STR(@@InPutString100) 是提取变量的值,确保输入的信息能完整写入文本;$LEVEL是获取玩家当前等级,可根据需求添加或删除;CLEARSTR @@InPutString100 是清空变量,避免下次玩家输入信息时,覆盖上一次的变量值。
补充:若想在文本中区分不同玩家的输入信息,可在WriteFile命令中添加更多玩家相关参数,如$USERNAME(角色名)、$ACCOUNT(账号)、$MAPNAME(当前地图),让保存的信息更清晰,便于后续查看和管理。
第五步:脚本调试与生效,确保所有功能正常运行。所有脚本添加完成后,保存QManage.txt文件,关闭文件,重启传奇服务端,等待服务端加载完成后,即可测试所有功能,测试步骤分三步,确保无异常。
测试一:全局变量自动保存测试。等待脚本设置的定时时间(如5分钟),前往对应文本目录(如D:\Mirserver\Mir200\Envir\Logs),打开S变量保存.txt、G变量保存.txt,查看是否有变量值和保存时间,确认变量已成功写入。
测试二:双击物品触发输入框测试。背包中放入“信息输入卷”,双击物品,查看是否弹出输入框,输入信息后点击确认,查看系统提示是否显示“信息输入成功”,确认输入框正常触发、变量正常存储。
测试三:输入框变量保存测试。输入信息并确认后,前往输入框信息保存.txt所在目录,打开文本,查看是否有玩家角色名、输入信息、保存时间,确认变量值已成功调出并写入文本,无乱码、无缺失。
常见问题排查:若变量无法保存到文本,先检查脚本中的文本路径是否正确,确保路径中的文件夹存在(如Logs文件夹);若输入框无法弹出,检查物品名称是否与脚本中的名称一致,或玩家是否拥有该物品;若变量值写入乱码,将文本文件编码改为ANSI,重新测试;若自动保存脚本不生效,检查#AutoRun命令的格式是否正确,时间间隔是否合理。
补充技巧:1. 可将所有变量保存到同一个文本文件,只需修改WriteFile命令中的文本路径,将S变量、G变量、输入框变量的保存脚本,指向同一个TXT文件,便于集中管理;2. 若需手动触发变量保存,可在脚本中添加@SaveVar手动命令,在服务端控制台输入该命令,即可立即保存变量;3. 不同服务端引擎(GOM、HERO、BLUE)的脚本命令格式一致,无需修改脚本,仅需确认QManage.txt文件路径正确即可。
无论是保存M2全局S变量、G变量,还是实现双击物品触发输入框、保存@@InPutString100变量值,核心都是通过QManage.txt脚本编写,依托WriteFile命令写入文本,全程无需专业技术,按上述步骤操作,新手也能顺利完成。脚本可直接照搬使用,仅需根据自身需求调整文本路径、时间间隔、物品名称,即可适配自己的传奇服务端,实现变量的自动保存和输入信息的永久存储。

