传奇脚本全攻略:全服等级清零与任务闪烁效果实现

来源: 作者: 点击:
一、全服玩家等级清零——脚本自动化实现

核心思路:通过活动触发脚本,联动GM命令批量重置玩家等级,无需管理员手动操作。
脚本触发逻辑

活动失败判定:在活动脚本中设置条件(如怪物未全部击杀、时间耗尽),失败时调用等级清零函数。

关键命令:

#act
Gmexecute StartQuest @全服等级清零 # 触发任务脚本中的清零模块

注:StartQuest是引擎中触发自定义任务的命令,需在Command.ini中确认名称。
等级清零脚本详解

在QManage.txt中编写清零模块:
[@全服等级清零]
#if
#act
changelevel 1 # 将玩家等级设为1级
TakeOffItem 所有装备 # 强制脱下装备
MoveItemToBag 所有装备 # 装备自动放入背包
SendMsg 6 "活动失败!等级已重置为1级,装备已放入背包。"

关键点:
changelevel:调整等级的GM命令,需引擎支持。

装备处理:需遍历玩家装备栏,逐件移除并转移至背包(需扩展循环逻辑)。
全服执行方案

遍历在线玩家:通过GetOnlineList获取玩家列表,循环调用清零模块。

避免数据冲突:建议在非高峰时段触发,或分批次执行防止服务器卡顿。

二、任务窗口闪烁效果——分类与动态提示

目标:为成长任务、副本任务等添加分类标签,并实现新任务闪烁提醒。
任务分类与窗口构建

界面设计:在任务窗口(如QuestDiary\任务系统.txt)中添加分类标签:

[@Main]
<成长任务/@GrowthQuest> <副本任务/@DungeonQuest>

分类逻辑:每个标签绑定独立脚本页,按类型显示任务列表。
闪烁效果实现

方法一:引擎内置命令
使用FLASHMISSIONBUTTON命令直接闪烁任务按钮(需引擎支持):
#act
FLASHMISSIONBUTTON 1 # 1=闪烁,0=停止


方法二:模拟闪烁(兼容性更强)
通过定时切换文字颜色或图标实现动态效果:
[@NewTaskAlert]
#act
DelayGoto 500 @FlashOn # 500毫秒后跳转

[@FlashOn]
SetTaskIcon 101 # 显示闪烁图标(图标ID需自定义)
DelayGoto 500 @FlashOff

[@FlashOff]
SetTaskIcon 102 # 显示默认图标
DelayGoto 500 @FlashOn # 循环直到玩家查看任务

任务状态联动

新任务检测:玩家接取任务时,更新分类标签状态并触发闪烁。

停止条件:当玩家打开任务窗口时,调用FLASHMISSIONBUTTON 0关闭闪烁。

三、避坑指南
权限与安全

等级清零脚本需限制为活动专用,避免误触发。

测试前备份数据库(MirServer\DB\目录)。
兼容性验证

确认引擎版本支持changelevel、FLASHMISSIONBUTTON等命令(查看Command.ini)。

老旧引擎可改用SetLevel+循环遍历替代changelevel。
性能优化

全服清零时分批执行(如每批50人),减少服务器负载。

闪烁效果避免高频刷新(间隔≥500毫秒)。