核心脚本逻辑与结构
实现玩家上线累计在线三小时赠送100元宝的功能,需通过游戏计时器触发,核心逻辑是累加玩家的在线时间并在达到指定时长时发放奖励。脚本主要由计时控制、时间累加、奖励触发与发放三部分组成。
脚本部署与实现步骤
第一步:设置上线触发与计时器
在 QManage.txt 登录脚本部分,为玩家登录时初始化计时器与变量。
; 位于 QManage.txt 的 [@Login] 标签下
[@Login]
#IF
; 检查是否首次登录或已初始化
CHECKVAR HUMAN 计时初始化 = 0
#ACT
; 初始化在线时间总秒数变量
CALCVAR HUMAN 在线时长 = 0
; 设置计时器启动标志
CALCVAR HUMAN 计时器启动 = 1
; 标记已初始化
CALCVAR HUMAN 计时初始化 = 1
SAVEVAR HUMAN 在线时长 ..\QuestDiary\个人数据\<$USERNAME>.txt
SAVEVAR HUMAN 计时器启动 ..\QuestDiary\个人数据\<$USERNAME>.txt
; 跳转至在线时长记录标签
#CALL [\系统功能\在线奖励.txt] @记录在线时长
BREAK
第二步:计时累加脚本(核心)
创建独立的脚本文件(例如 \QuestDiary\在线奖励.txt),并确保路径正确。
[@记录在线时长]
; 此段脚本由定时器或机器人每分钟调用一次
#IF
; 检查玩家是否在线
ISONLINE
; 检查计时器是否处于启动状态
LARGE <$HUMAN(计时器启动)> 0
#ACT
; 每分钟将“在线时长”变量加60秒
CALCVAR HUMAN 在线时长 + 60
SAVEVAR HUMAN 在线时长 ..\QuestDiary\个人数据\<$USERNAME>.txt
; 判断是否达到3小时(10800秒)
#IF
EQUAL <$HUMAN(在线时长)> 10800
#ACT
; 发放100元宝奖励
GAMEGOLD + 100
SENDMSG 0 玩家【<$USERNAME>】累积在线三小时,获得系统赠送的100元宝!
SENDMSG 5 恭喜你,累计在线三小时奖励100元宝已发放!
; 重置计时器状态,可设置为重新计时或停止
CALCVAR HUMAN 计时器启动 = 0
CALCVAR HUMAN 在线时长 = 0
SAVEVAR HUMAN 计时器启动 ..\QuestDiary\个人数据\<$USERNAME>.txt
SAVEVAR HUMAN 在线时长 ..\QuestDiary\个人数据\<$USERNAME>.txt
BREAK
#ELSEACT
; 若未满3小时,则延时60秒后再次执行本段脚本
DelayGoto 60 @记录在线时长
第三步:机器人定时驱动脚本
上述 [@记录在线时长] 标签需要一个启动器。可以通过 Robot.txt 机器人系统,让每个在线玩家每分钟执行一次检查。
在 Robot.txt 中加入:
; 每分钟触发一次
* * * * * @驱动在线计时
在对应的 RobotManage.txt 中添加:
[@驱动在线计时]
#IF
#ACT
; 对全服所有在线玩家执行“@记录在线时长”标签
GMEXECUTE 开始提问 @记录在线时长
BREAK
第四步:断线重登处理
为防止玩家小退后计时清零,需在登录脚本中读取保存的时长并继续累加。修改 QManage.txt 的 [@Login] 部分。
[@Login]
#IF
; 读取之前保存的在线时长
CHECKVAR HUMAN 在线时长 > 0
#ACT
; 恢复之前的累计时长
LOADVAR HUMAN 在线时长 ..\QuestDiary\个人数据\<$USERNAME>.txt
; 确保计时器启动
CALCVAR HUMAN 计时器启动 = 1
SAVEVAR HUMAN 计时器启动 ..\QuestDiary\个人数据\<$USERNAME>.txt
; 继续执行计时脚本
#CALL [\系统功能\在线奖励.txt] @记录在线时长
BREAK
关键变量与命令解析
• 变量类型:脚本中使用了 HUMAN 类型变量(个人变量),如“在线时长”、“计时器启动”。这类变量与角色绑定,可保存。
• 计时原理:Robot.txt 的 * * * * * 表示每分钟触发一次 [@驱动在线计时],该标签通过 GMEXECUTE 开始提问 命令,让全服在线玩家各自执行 [@记录在线时长] 标签,实现为每个玩家独立累加时间的效果。
• 时间控制:脚本通过 DelayGoto 60 实现每60秒自我循环一次,确保计时连续性。实际间隔取决于服务器负载,但累积误差在可接受范围内。
• 奖励发放:GAMEGOLD + 100 是最直接的增加元宝命令,适用于大部分引擎。请根据你的引擎实际情况确认命令格式(如GEE引擎可能是GIVE 游戏元宝 100)。
脚本测试与优化建议
1. 初步测试:上线后,通过GM命令 CHECKVAR HUMAN 在线时长 检查变量是否在每分钟增加60。可临时将10800秒(3小时)改为60秒(1分钟)进行快速测试。
2. 防作弊处理:为防止玩家反复上下线刷奖励,可在奖励发放后设置一个个人标识 [801],在24小时后再清除,确保每日只能领取一次。
3. 性能优化:全服玩家每分钟执行一次脚本可能带来负载。可优化为每5分钟检测一次,但需相应调整累加值为300秒。

