传奇服登录奖励脚本核心是依托登录触发标签、变量标记与条件判断,实现每日奖励、首次登录奖励等功能,以下是具体编写方法、脚本框架及注意事项。
一、登录奖励脚本核心逻辑与触发方式
1. 核心逻辑
脚本遵循“登录触发-状态校验-奖励发放-标记更新”流程,通过登录标签捕捉角色登录行为,用变量记录奖励领取状态,校验角色是否满足领取条件(登录天数、是否首次登录等),达标后发放奖励并更新变量,避免重复领取。
2. 核心触发方式
登录奖励脚本需绑定专属触发标签,适配不同需求场景,所有引擎通用核心标签如下:
- @Login标签:角色每次登录(含小退、大退重新登录)都会执行该标签下脚本,适用于每日登录奖励、登录弹窗提示等高频触发功能,是登录奖励脚本的核心触发标签。
- @Startup标签:仅在引擎启动时执行一次,适用于全服统一登录奖励配置初始化,无需角色触发,多用于设置奖励基础参数。
脚本文件默认写入QManage.txt,该文件是传奇服核心脚本文件,所有登录相关触发逻辑均需在此配置,确保引擎加载时能识别执行。
二、关键命令及用法
脚本依赖触发标签、变量操作、奖励发放、提示反馈四类命令,不同引擎(HERO、GOM、GEE)命令格式略有差异,以下为通用版用法,需对照引擎手册微调。
- 变量操作命令:SETROLEVAR 角色名 变量名 数值(绑定角色永久变量,记录领取状态,下线不丢失)、CHECKROLEVAR 角色名 变量名 数值(校验角色变量值),如用“LoginRewardDay”记录领取日期、“FirstLoginFlag”标记是否首次登录。
- 奖励发放命令:GIVE 物品名称 数量(发放道具)、ADDMONEY 数值(发放金币)、ADDHPMAX 数值(提升生命值上限),可按需组合发放道具、货币、属性加成。
- 时间判断命令:GETDATE 变量名(获取当前日期,格式为年月日)、DIFFTIME 变量1 变量2 结果变量(计算日期差值),用于每日登录奖励的日期校验。
- 提示反馈命令:SENDMSG 颜色代码 内容(界面文字提示)、OPENDIALOG 对话框编号(弹出奖励弹窗),常用颜色代码2为绿色(成功提示)、6为红色(异常提示)。
三、不同场景脚本完整框架
1. 每日登录奖励脚本(最常用)
功能:角色每日首次登录可领取固定奖励,次日重置领取权限,需通过日期变量实现每日校验。
1. // 每日登录奖励脚本(写入QManage.txt的@Login标签下)
2. GETDATE CurrentDate // 获取当前日期,存储到变量CurrentDate
3. CHECKROLEVAR $USERNAME LoginRewardDay CurrentDate // 校验当日是否已领取奖励
4. IF NOT ERROR // 已领取奖励
5. SENDMSG 2 今日登录奖励已领取,明日可再次领取!
6. GOTO END // 终止脚本
7. // 未领取奖励,执行发放逻辑
8. SENDMSG 2 欢迎登录,领取今日登录奖励!
9. GIVE 强效太阳水 5 // 发放5瓶强效太阳水
10. ADDMONEY 5000 // 发放5000金币
11. SETROLEVAR $USERNAME LoginRewardDay CurrentDate // 记录当日日期,标记已领取
12. OPENDIALOG 101 // 弹出奖励弹窗(需提前配置弹窗界面)
13. END: // 脚本结尾
2. 首次登录奖励脚本
功能:角色创建后首次登录发放新手福利,仅可领取一次,通过标记变量锁定领取权限。
1. // 首次登录奖励脚本(写入QManage.txt的@Login标签下)
2. CHECKROLEVAR $USERNAME FirstLoginFlag 1 // 校验是否已领取首次奖励
3. IF NOT ERROR // 已领取
4. GOTO END // 直接终止脚本,不重复执行
5. // 未领取,发放新手奖励
6. SENDMSG 2 恭喜首次登录,获得新手专属福利!
7. GIVE 布衣 1 // 发放新手服装
8. GIVE 木剑 1 // 发放新手武器
9. ADDHP 200 // 临时增加200生命值
10. SETROLEVAR $USERNAME FirstLoginFlag 1 // 标记为已领取,永久锁定
11. END: // 脚本结尾
3. 累计登录奖励脚本
功能:累计登录指定天数可领取对应档位奖励,需新增累计天数变量记录登录次数。
1. // 累计登录奖励脚本(写入QManage.txt的@Login标签下)
2. GETDATE CurrentDate
3. CHECKROLEVAR $USERNAME LoginRewardDay CurrentDate // 校验当日是否已累计天数
4. IF NOT ERROR
5. GOTO CHECK_REWARD // 跳转至奖励校验环节
6. // 当日未累计,更新天数变量
7. CHECKROLEVAR $USERNAME LoginTotalDay 0 // 校验是否为首次累计
8. IF ERROR // 首次累计,初始化变量
9. SETROLEVAR $USERNAME LoginTotalDay 1
10. ELSE // 非首次,天数+1
11. INCROLEVAR $USERNAME LoginTotalDay 1 // 累计天数加1
12. SETROLEVAR $USERNAME LoginRewardDay CurrentDate // 标记当日已累计
13. // 奖励档位校验与发放
14. CHECK_REWARD:
15. GETROLEVAR $USERNAME LoginTotalDay TotalDay // 获取累计天数
16. IF TotalDay == 3 // 累计3天奖励
17. GIVE 金币包 1 // 发放金币包
18. SENDMSG 2 累计登录3天,获得累计登录奖励!
19. ELSEIF TotalDay == 7 // 累计7天奖励
20. GIVE 初级勋章 1 // 发放初级勋章
21. SENDMSG 2 累计登录7天,获得专属勋章奖励!
22. END: // 脚本结尾
四、脚本配置与调试要点
1. 脚本配置步骤
1. 文件定位:找到服务器安装目录下的MirServer\Mir200\Envir文件夹,打开QManage.txt文件。
2. 标签绑定:在文件中找到@Login标签(无则手动添加),将编写好的脚本粘贴至标签下方。
3. 参数适配:替换脚本中的物品名称、数值、对话框编号,确保与服务器数据库中的数据一致。
4. 引擎重启:保存文件后,重启传奇引擎,使脚本配置生效,未重启则脚本无法被加载执行。
2. 常见问题排查
- 奖励无法领取:检查@Login标签是否正确添加,变量名称是否拼写一致,部分引擎需给变量添加前缀(如G_、H_),需对照手册调整。
- 重复领取奖励:日期变量格式错误,或未正确执行SETROLEVAR命令,需添加调试提示(如SENDMSG 2 变量值:{CurrentDate}),核对变量赋值是否正确。
- 提示不显示:SENDMSG命令颜色代码超出范围(正常0-255),或脚本执行流程被提前终止,检查GOTO END命令的位置是否合理。
- 弹窗无法弹出:对话框编号未配置,需在界面配置文件中添加对应编号的弹窗布局,确保界面元素与脚本参数匹配。
五、进阶拓展与实操建议
1. 功能拓展方向
可按需添加奖励预览、档位切换、逾期补领功能。奖励预览通过弹窗界面展示当日及累计奖励;档位切换针对不同VIP等级设置差异化奖励,需新增VIP等级校验命令;逾期补领需存储未领取天数,搭配道具消耗实现补领,仅需补充变量逻辑与条件判断即可。
2. 实操注意事项
1. 变量规范:变量命名需直观(如LoginTotalDay代表累计天数),避免使用特殊字符,同时做好脚本注释,便于后续维护修改。
2. 数据备份:修改QManage.txt前需备份原始文件,若配置错误可快速恢复,避免影响服务器正常运行。
3. 多引擎适配:HERO引擎变量命令需加“H_”前缀,GOM引擎支持弹窗自定义,需根据所用引擎调整命令格式,优先查阅对应引擎手册。
4. 批量测试:脚本配置完成后,用多个测试角色模拟不同场景(首次登录、每日登录、累计登录),验证奖励发放、状态标记是否正常,排查逻辑漏洞。

