在传奇类游戏里实现玩家上线3小时后自动触发脚本并赠送100元宝,需要结合游戏引擎规则与脚本逻辑。以下是基于常见传奇引擎(如GEE、3K引擎)的具体操作步骤,内容适用于大多数支持脚本编辑的传奇版本。
一、准备工作:确认引擎与文件位置
首先打开游戏服务端目录,找到脚本文件夹(通常路径为“D:\MirServer\Mir200\Envir\QuestDiary”,具体以实际服务端为准)。核心需要编辑的文件包括:
• QFunction-0.txt(功能脚本主文件,用于定义触发条件)
• Reward.txt(奖励配置脚本,用于定义元宝赠送逻辑)
• LoginNotice.txt(可选,用于提示玩家触发状态)
二、编写上线3小时计时触发脚本
在QFunction-0.txt文件中添加以下内容,用于检测玩家在线时长并标记触发状态:
[@OnLineTimer] ; 在线计时触发点(引擎自带,无需手动创建)
#IF
CheckOnlineTime > 180 ; 判断在线时间是否超过180分钟(3小时=180分钟)
CheckVar OnlineGift 0 = 0 ; 检查是否已触发过(0为未触发,1为已触发)
#ACT
SetVar OnlineGift 0 1 ; 标记为已触发,防止重复赠送
Goto @SendYuanBao ; 跳转到赠送元宝脚本
Break
说明:
• CheckOnlineTime是引擎内置函数,返回玩家当前在线分钟数;
• OnlineGift是自定义变量,用于记录玩家是否已领取奖励(避免重复触发);
• Goto @SendYuanBao指向具体的赠送脚本段落。
三、编写赠送100元宝的核心脚本
在QFunction-0.txt文件末尾添加赠送逻辑:
[@SendYuanBao]
#ACT
GameGold +100 ; 给玩家增加100元宝(GameGold为引擎定义的元宝变量)
SendMsg 5 您已在线3小时,成功领取100元宝! ; 发送系统提示消息(5为消息类型,显示在聊天框)
WriteLog [元宝赠送] 玩家:<$USERNAME> 在线3小时获得100元宝 ; 记录日志到服务端Log文件
若引擎不支持直接通过GameGold变量操作元宝,可改用以下方式(以部分老版本引擎为例):
[@SendYuanBao]
#ACT
GiveGameGold 100 ; 直接调用赠送元宝命令
SendTopMsg 您已在线满3小时,100元宝已发放至账户 ; 顶部滚动提示
四、绑定上线触发检测
确保玩家每次登录时启动计时检测,需在登录脚本中添加初始化代码。打开“D:\MirServer\Mir200\Envir\MapQuest.txt”,找到玩家初始地图(通常为“0 0 新手村”对应的脚本),在登录触发点添加:
[@Login]
#ACT
SetVar OnlineGift 0 0 ; 重置触发标记(防止角色下线后重新登录重复计算)
StartTimer 60 ; 启动计时器(每60秒检测一次在线时长,数值越小检测越频繁)
说明:StartTimer 60表示每60秒执行一次[@OnLineTimer]脚本,可根据服务器性能调整(建议30-120秒)。
五、测试与调试
1. 保存所有脚本文件后,重启游戏服务端(需重启才能加载新脚本);
2. 使用测试账号登录游戏,通过GM命令“@ReloadQFunction”实时重载脚本(无需重启);
3. 在线等待3小时,观察是否收到元宝和系统提示;
4. 若未触发,检查以下常见问题:
• 变量名是否一致(如OnlineGift是否在所有脚本中统一);
• CheckOnlineTime单位是否为分钟(部分引擎可能为秒,需改为CheckOnlineTime > 10800);
• GameGold变量是否与引擎匹配(可查看引擎说明书确认元宝变量名称)。
六、注意事项
• 脚本中符号需为英文半角(如“;”“{}”不能为中文格式);
• 变量OnlineGift需在服务端“变量管理”中提前创建(部分引擎需手动添加整数型变量);
• 若需限制每个账号仅触发一次,可将变量绑定账号(如使用<$ACCOUNT>作为变量前缀)。
按以上步骤操作后,玩家即可在在线满3小时时自动触发脚本并获得100元宝,整个过程无需玩家手动操作,完全由脚本逻辑自动控制。
传奇游戏玩家上线3小时自动触发赠送100元宝脚本设置教程
来源:
作者:
点击:

