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

传奇登录奖励脚本制作全流程

热度:
登录奖励脚本通过服务端脚本文件控制,玩家上线时自动触发。核心文件位于MirServer\Mir200\Envir\MapQuest_def\QManage.txt,修改该文件中的[@Login]段即可实现。

一、基础新人登录奖励

适用于首次创建角色时发放启动资源。在QManage.txt中找到或新建[@Login]段落,写入以下逻辑:
[@Login]
#IF
ISNEWHUMAN
#ACT
GIVE金条1
GIVE回城卷10
GAMEGOLD+5000
SENDMSG6欢迎新人!获得金条*1、回城卷*10、5000金币。
BREAK

•ISNEWHUMAN:引擎专用命令,检测是否为新建角色,确保奖励只发一次。

•GIVE:给物品指令,后接数据库中的准确名称及数量。

•GAMEGOLD:增加游戏币(元宝)指令。

•BREAK:终止后续判断,防止重复执行。

二、每日登录与累积奖励

利用变量记录登录天数,实现按天发放的不同奖励。需配合文件存储变量:
[@Login]
#IF
;检测是否为新的一天(D0为系统日期变量)
LARGED0<$HUMAN(最后登录日)>
#ACT
;登录天数+1
CALCVARHUMAN登录天数+1
MOVD0<$HUMAN(最后登录日)>
;保存变量到文件
SAVEVARHUMAN登录天数..\QuestDiary\玩家数据\登录记录.txt
SAVEVARHUMAN最后登录日..\QuestDiary\玩家数据\登录记录.txt

;根据天数发放奖励
#IF
EQUAL<$HUMAN(登录天数)>1
#ACT
GIVE新手礼包1
#IF
EQUAL<$HUMAN(登录天数)>3
#ACT
GAMEGOLD+10000
SENDMSG6累计登录3天,奖励10000金币已发放。
BREAK

•SAVEVAR:将变量保存至文本文件,确保服务器重启后数据不丢失。

-CALCVAR:对变量进行数学运算。
•EQUAL:条件判断,检测变量是否等于指定值。

三、全职业新手套装发放

根据不同职业发放对应的武器与技能书:
[@Login]
#IF
ISNEWHUMAN
CHECKJOBWARRIOR
#ACT
GIVE乌木剑1
GIVE布衣(男)1
ADDSKILL基本剑术3
BREAK
#IF
ISNEWHUMAN
CHECKJOBWIZARD
#ACT
GIVE乌木剑1
GIVE布衣(女)1
ADDSKILL火球术3
BREAK

•CHECKJOB:检测玩家职业(WARRIOR战士/WIZARD法师/TAOS道士)。

•ADDSKILL:直接为玩家添加技能并设定等级,无需使用技能书。

四、修改生效与调试流程

1.文件备份:修改QManage.txt前,务必复制备份。
2.编码格式:使用Notepad++等工具,将文件编码保存为ANSI,严禁使用UTF-8含BOM格式,否则会导致脚本乱码或失效。
3.重载脚本:修改保存后,在游戏引擎(M2Server)的“管理”菜单中点击“重读”→“重读QManage.txt”。若修改无效,需重启整个服务端。
4.报错排查:若上线无奖励,检查QManage.txt是否已存在其他[@Login]段造成冲突,或ISNEWHUMAN命令在当前引擎中是否被禁用。

五、高级扩展:调用外部脚本

当主脚本过于臃肿时,可将奖励逻辑分离到外部文件:

在QManage.txt中写入:
[@Login]
#CALL[\系统功能\登录奖励.txt]@执行奖励

随后在MirServer\Mir200\Envir\QuestDiary\系统功能\登录奖励.txt文件中编写具体的@执行奖励段落。此方法便于管理复杂的多日签到系统。

制作完成后,务必在游戏中创建新角色实测触发条件,确保GIVE的物品名称与数据库StdItems.DB完全一致。
[顶部]