登陆奖励脚本通过服务端事件触发机制实现,核心文件为QFunction.txt和!Setup.txt,利用[@Login]标签在玩家上线时自动执行判断与发放逻辑。整个过程无需客户端修改,仅需编辑文本配置即可生效。
第一步:在QFunction.txt中添加登陆事件处理段落。格式如下:
[@Login]
IF
CheckLevel 10
ACT
GiveItem 金币 50000
SendMsg 欢迎回来!已发放每日金币奖励。
该脚本表示角色等级≥10时,登陆即获得5万金币并收到提示。若需无条件发放,可省略#IF段,直接写#ACT指令。
第二步:实现按天累计奖励。需结合变量存储与时间判断。例如:
[@Login]
IF
Equal LOGIN_COUNT 0
ACT
SetVar LOGIN_COUNT 1
GiveItem 红药 100
SendMsg 首次登陆,领取新手补给!
ELSE
IncVar LOGIN_COUNT
IF
Large LOGIN_COUNT 7
ACT
SetVar LOGIN_COUNT 1
GiveItem 强化石 5
SendMsg 连续登陆超7天,重置奖励周期!
变量LOGIN_COUNT记录连续登陆天数,每次登陆递增,超过7天后重置并发放高级奖励。变量值保存在角色数据中,重启服务器不丢失。
第三步:限制每日仅领取一次。引入日期比对机制:
[@Login]
IF
NotEqual LAST_LOGIN_DATE CURR_DATE
ACT
SetVar LAST_LOGIN_DATE CURR_DATE
GiveItem 蓝药 50
SendMsg 今日登陆奖励已发放。
其中CURR_DATE为系统当前日期(格式YYYYMMDD),LAST_LOGIN_DATE为玩家上次领取日期。两者不等时才执行发放,确保一天只触发一次。
第四步:配置特殊节日奖励。在!Setup.txt中预设全局变量,如:
[EVENT]
FESTIVAL_MODE=1
然后在QFunction.txt中判断:
[@Login]
IF
Equal FESTIVAL_MODE 1
ACT
GiveItem 礼包 1
SendMsg 节日礼包已放入背包!
活动结束后将FESTIVAL_MODE改为0即可关闭奖励。
关键注意事项:
所有物品名称必须与DbaseItemList.txt中的定义完全一致;
变量名区分大小写,建议统一使用大写加下划线命名;
脚本修改后需执行!reloadqf命令或重启登录器使配置生效;
避免在[@Login]中加入长时间Delay,防止阻塞登陆流程;
多条件判断应分层书写,避免逻辑嵌套过深导致执行异常。
典型奖励组合包括:基础药品、传送卷、金币、低级装备或任务凭证。高价值物品建议绑定“等级限制”或“VIP状态”条件,防止新号滥用。登陆奖励脚本本质是事件驱动的自动化发放机制,合理配置可提升玩家留存,且完全基于服务端原生功能实现。

