在传奇服务端中设置登陆奖励,需通过修改脚本文件实现角色上线时自动触发奖励发放。该功能通常基于HERO或类似引擎,核心操作集中在QFunction-0.txt和LoginQuest_def目录下的相关文件。
首先定位触发点。角色每次上线会触发[@Login]或[@Main]标签事件。在Mir200/Envir目录下的QFunction-0.txt文件中查找这两个标签。若不存在,可手动添加。例如:
[@Login]
ACT
GIVE 登陆奖励 1
SENDMSG 0 欢迎回来!已领取每日登陆奖励。
其中GIVE命令用于发放物品,“登陆奖励”为物品名称,需确保该物品在DBase/Item目录的StdItems.txt中有定义。若使用元宝、金币等货币奖励,则替换为:
CHANGE CREDITPOINT +100
或
GAMEGOLD +5000
其次限制重复领取。单纯在[@Login]中发放会导致每次上线都获得奖励。需结合变量记录领取状态。修改如下:
[@Login]
IF
CHECK [100] 1
ACT
SENDMSG 0 今日奖励已领取。
ELSEACT
GIVE 魔法药水 10
CHANGE CREDITPOINT +50
SET [100] 1
SAVE
此处[100]为自定义变量编号,SET命令标记已领取,SAVE确保数据写入角色档案。
若需实现连续登陆累进奖励,需引入日期判断。HERO引擎支持CHECKDAY命令。例如:
IF
CHECKDAY
ACT
INC [101] 1
ELSEACT
SET [101] 1
变量[101]记录连续登陆天数,后续可根据其值发放不同奖励:
IF
EQUAL [101] 7
ACT
GIVE 祝福油 3
SET [101] 0
物品名称必须与游戏内数据库完全一致,包括空格和特殊符号。建议先在StdItems.txt中确认物品标准命名,避免因名称错误导致发放失败。
部分版本将登陆任务归入LoginQuest_def目录。此时需在该目录下创建LoginReward.txt文件,并在QFunction-0.txt的[@Login]中调用:
[@Login]
ACT
CALL ^LoginReward.txt @Start
LoginReward.txt内部编写完整判断与发放逻辑,结构与主脚本一致。
测试时新建角色上线,观察是否收到提示及物品。若未生效,检查变量编号是否与其他功能冲突,或确认服务端是否启用了脚本热加载。部分引擎需重启LogSrv或GameSrv才能识别新脚本。
奖励内容应匹配角色当前阶段。初期可发放药水、低级装备,后期增加技能书、高级材料。避免一次性给予过高价值物品,影响游戏平衡。脚本保存后务必清除客户端缓存,防止旧数据干扰触发逻辑。

