一、非M2全服玩家等级清零脚本实现(活动失败触发)
核心实现思路
采用引擎全局定时器+玩家在线遍历+离线数据同步的方式,不依赖后台管理操作,纯脚本自动执行。活动失败后触发全局指令,在线玩家实时清零等级、自动脱下装备入背包;离线玩家上线时自动补执行清零逻辑,全程无需角色返回、无需退出游戏,直接完成数据变更。
全服等级清零完整脚本代码
;全服活动失败触发入口
[@ActivityFail]
#ACT
;全局广播提示
SENDMSG 0 全服挑战活动失败,系统将执行等级清零处理!
;启动全局遍历执行
GlobalVar Integer HUMAN G_ResetLevel 1
DelayCall 1 @ResetAllLevel
;关闭活动开关
SetGlobalVar Integer HUMAN G_ActivityOpen 0
;全服等级清零执行段
[@ResetAllLevel]
#ACT
;遍历所有在线玩家
MapMoveAllHuman 0 0 0
;执行单玩家清零逻辑
EXECBYSCRIPT ..\QuestDiary\系统功能\等级清零.txt @HumanLevelReset
;循环执行直至全服完成
DelayCall 2 @ResetAllLevel
#IF
CheckGlobalVar Integer HUMAN G_ResetLevel 0
#ACT
SENDMSG 0 全服等级清零已完成,装备已自动放回背包!
BREAK
;单玩家等级清零+脱装备脚本(等级清零.txt)
[@HumanLevelReset]
#IF
CheckGlobalVar Integer HUMAN G_ResetLevel 1
#ACT
;脱下全身装备至背包
TakeOffAllWeapon
TakeOffAllArmor
TakeOffAllRing
TakeOffAllNecklace
TakeOffAllBelt
TakeOffAllBoots
TakeOffAllHelmet
;清零等级与经验
ChangeLevel 1
ChangeExp 0
;标记已清零,避免重复执行
SetVar Integer HUMAN G_ResetLevel 0
#ELSEACT
BREAK
脚本部署与触发说明
将上述脚本保存至Mir200\Envir\QuestDiary\系统功能目录,新建等级清零.txt文件存放单玩家逻辑,主触发段放入活动脚本内。活动失败条件达成后,自动调用[@ActivityFail]段,无需手动操作、无需GM权限,纯脚本闭环执行。
离线玩家处理:在登录触发脚本QManage.txt中加入检测逻辑,若全局清零开关开启,上线立即执行[@HumanLevelReset],确保离线玩家也能同步完成等级清零与脱装备操作,不遗漏任何账号。
关键命令释义与注意事项
- GlobalVar:全局变量开关,控制全服清零执行状态,避免重复触发
- MapMoveAllHuman:遍历全服在线玩家,实现批量指令下发
- TakeOffAllXXX:分类脱下所有部位装备,强制放入背包,不丢弃、不掉落
- ChangeLevel 1:直接将角色等级重置为1级,ChangeExp 0清空经验值
- 部署前需备份角色数据库,脚本路径需与服务端目录结构匹配,避免路径错误导致执行失败
- 脚本执行间隔可通过DelayCall数值调整,数值单位为秒,防止服务器负载过高
二、任务闪烁+任务窗口分类添加脚本实现
核心实现思路
通过引擎任务变量+界面标识命令,实现任务图标闪烁提示;在任务窗口内新增分类标签,区分成长任务、副本任务、日常任务,支持任务独立显示、独立接取,适配主流传奇引擎界面布局。
任务窗口分类+闪烁完整脚本代码
;任务窗口主入口(QuestDiary\任务系统\TaskMain.txt)
[@TaskMain]
#SAY
\
<全服任务面板>\ \
\
<成长任务/@@GrowTask> <副本任务/@@CopyTask> <日常任务/@@DailyTask>\ \
\
----------------------------------------\
当前可接任务:\
;任务闪烁提示(变量=1时闪烁)
#IF
CheckVar Integer HUMAN GrowTaskFlash 1
#SAY
<!闪烁!> 新手成长历练 <接取/@AcceptGrowTask>\
#ELSESAY
< 常态 > 新手成长历练 <接取/@AcceptGrowTask>\
#IF
CheckVar Integer HUMAN CopyTaskFlash 1
#SAY
<!闪烁!> 副本挑战任务 <接取/@AcceptCopyTask>\
#ELSESAY
< 常态 > 副本挑战任务 <接取/@AcceptCopyTask>\
;成长任务分类页
[@GrowTask]
#SAY
\
<成长任务详情>\ \
1. 升级至10级 奖励:元宝×10000\
2. 击杀骷髅×50 奖励:金币×50000\
\
<返回主面板/@TaskMain>\
;副本任务分类页
[@CopyTask]
#SAY
\
<副本任务详情>\ \
1. 骷髅洞副本通关 奖励:装备宝箱×1\
2. 沃玛寺庙挑战 奖励:强化石×10\
\
<返回主面板/@TaskMain>\
;任务闪烁触发命令(接取/完成时调用)
[@SetTaskFlash]
#ACT
SetVar Integer HUMAN GrowTaskFlash 1
;闪烁持续时间
DelayCall 5 @ClearTaskFlash
;清除闪烁标记
[@ClearTaskFlash]
#ACT
SetVar Integer HUMAN GrowTaskFlash 0
#ACT
SetVar Integer HUMAN CopyTaskFlash 0
脚本部署与界面设置
在Mir200\Envir\QuestDiary目录新建任务系统文件夹,存放TaskMain.txt脚本。在游戏主界面添加任务按钮,绑定@TaskMain触发段,玩家点击即可打开分类任务窗口。
任务闪烁触发:任务可接取、任务完成时,调用[@SetTaskFlash]段,变量置1后界面显示闪烁标识,倒计时结束后自动清除闪烁状态,提升玩家辨识度。
任务分类扩展与优化细节
- 新增任务分类只需复制[@GrowTask]段格式,修改名称与跳转指令,即可添加活动任务、行会任务等分类
- 闪烁效果可通过修改<!闪烁!>文本样式、更换标识符号调整,适配不同界面风格
- 任务状态同步:接取、完成任务时,同步更新变量状态,实时刷新窗口显示,无需重启界面
- 支持任务条件检测,未达成前置条件时隐藏接取按钮,避免玩家误操作
三、脚本常见问题排查
1. 等级清零脚本不执行
排查路径:检查脚本存放路径是否正确,GlobalVar全局变量是否开启,DelayCall延迟数值是否合理;确认活动失败触发逻辑是否绑定,无权限拦截导致指令中断。
2. 装备无法自动脱下
排查方向:确认脱装备命令完整,覆盖头盔、衣服、武器、首饰等所有部位;检查背包是否有足够空间,背包满时优先清理空格子,再执行脱装备操作。
3. 任务窗口不显示、闪烁无效
排查方法:核对任务脚本跳转指令是否正确,变量名称无拼写错误;确认引擎支持任务界面扩展,更新引擎至兼容版本,重新加载脚本后测试。
4. 离线玩家未执行清零
解决方法:在QManage.txt的[@Login]段加入清零检测,上线时判断全局开关,自动补执行等级清零与脱装备逻辑,确保全服账号数据统一。
四、脚本部署通用注意事项
- 脚本文件编码统一为ANSI格式,避免中文乱码导致命令失效
- 修改脚本前备份原文件,测试无误后再全服启用,防止数据异常
- 等级清零脚本需谨慎使用,建议搭配活动冷却开关,避免误触发
- 任务窗口分类可根据玩法需求增减,保持界面简洁,不堆砌分类标签
- 脚本修改后需重启引擎或重载脚本,确保新配置生效

