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

IGE引擎时间触发脚本写法(弹窗选入地图)

热度:
IGE引擎时间触发脚本核心是通过定时器命令设定触发时段,自动弹出对话框供玩家选择是否进入指定地图,需依赖引擎专属定时命令与交互逻辑,以下提供可直接使用的脚本及存放、调试、适配方法,解决时段触发与地图跳转需求。

IGE引擎时间触发核心命令解析

IGE引擎时间触发依赖定时器与对话交互两类核心命令,需熟练掌握语法格式,避免参数错误导致脚本失效,核心命令如下:

1.SETTIMER:设置定时器,语法:SETTIMER定时器编号间隔时间(秒)。用于设定脚本触发周期,编号可设1-9,间隔时间按需求调整,如SETTIMER13600,即1小时触发一次脚本。

2.CLEARTIMER:清除定时器,语法:CLEARTIMER定时器编号。用于结束定时触发,通常搭配条件判断使用,避免脚本持续运行。

3.#SAY:弹出对话窗口,语法:#SAY对话内容+选项指令。用于呈现提示信息与选择项,如#SAY是否进入专属地图?/@EnterMap进入/@Cancel取消。

4.MOVETOMAP:传送至指定地图,语法:MOVETOMAP地图编号X坐标Y坐标。需填写正确的地图编号与坐标,可从服务端数据库查询对应信息。

5.CHECKTIMER:检测定时器状态,语法:CHECKTIMER定时器编号。用于判断定时器是否在运行,适配复杂触发逻辑。

完整脚本示例(可直接复制使用)

以下脚本实现“固定时段触发弹窗、玩家选择进入地图/取消”功能,适配IGE引擎全版本,按需求修改时间、地图参数即可生效。

;IGE引擎时间触发弹窗选入地图脚本
;脚本放入服务端Mirserver\Mir200\Envir\MapQuest_def\QManage.txt末尾

;角色登录初始化定时器(每日固定时间触发)
[@OnLogin]
#IF
CHECKMAP0(0为新手村地图编号,可改为全地图触发)
#ACT
;设置每日19点触发,先计算距19点的秒数(示例逻辑,可按需调整)
SETUSERVARHour19
SETUSERVARMinute0
CALCVARTimeDiff(Hour*3600+Minute*60)-$HOUR*3600-$MINUTE*60
#IF
CHECKVARTimeDiff>0
#ACT
SETTIMER1%TimeDiff%
#ELSE
;当日时间已过19点,设置次日触发
SETTIMER1%TimeDiff%+86400
#SAY
每日19点将触发专属地图邀请,请注意查收提示!

;定时器触发弹窗逻辑
[@Timer1]
#ACT
CLEARTIMER1(清除当前定时器,避免重复触发)
#SAY
╔━━━━━━━━━━━━╗
║专属地图开启提醒║
╠━━━━━━━━━━━━╣
║限时开放专属地图,内含丰厚奖励!║
║请在60秒内选择是否进入║
║1.立即进入专属地图/@EnterMap║
║2.取消进入/@Cancel║
╚━━━━━━━━━━━━╝
SETTIMER260(设置60秒倒计时,超时自动取消)

;选择进入地图
[@EnterMap]
#IF
CHECKTIMER2(检测倒计时是否有效)
#ACT
CLEARTIMER2
MOVETOMAP10320320(10为地图编号,320320为目标坐标)
SENDMSG5成功进入专属地图,祝您收获满满!
#ELSEACT
SENDMSG5邀请已过期,无法进入地图!

;选择取消进入
[@Cancel]
#ACT
CLEARTIMER2
SENDMSG5已取消进入专属地图,下次请及时选择!

;倒计时结束自动取消
[@Timer2]
#ACT
CLEARTIMER2
SENDMSG5专属地图邀请已过期,本次机会已作废!
;重置次日定时器
SETUSERVARHour19
SETUSERVARMinute0
CALCVARTimeDiff(Hour*3600+Minute*60)-$HOUR*3600-$MINUTE*60
#IF
CHECKVARTimeDiff>0
#ACT
SETTIMER1%TimeDiff%
#ELSE
SETTIMER1%TimeDiff%+86400

脚本存放路径与生效步骤

IGE引擎时间触发脚本需按固定路径存放,重启服务端即可生效,步骤如下:

1.核心脚本存放:将上述脚本复制至服务端根目录\Mirserver\Mir200\Envir\MapQuest_def\QManage.txt文件末尾,无需新建文件,直接追加内容,该文件负责全局事件触发。

2.地图参数核对:从服务端\Mirserver\Mud2\DB\Map.DB数据库中,查询目标地图的编号与安全坐标,替换脚本中“MOVETOMAP”后的参数,确保传送准确。

3.重启生效:保存文件后,重启IGE引擎控制器与游戏服务端,登录角色测试,确认到点是否自动弹窗,选择后能否正常传送或取消。

注意:服务端需置于磁盘根目录(如D:\Mirserver),避免中文路径或多层嵌套,否则脚本无法被引擎读取。

参数调整方法(按需自定义)

可根据玩法需求调整以下参数,无需修改核心逻辑,适配不同场景:

1.触发时间:修改脚本中“SETUSERVARHour19”“SETUSERVARMinute0”的数值,调整触发时段,如Hour20、Minute30,即每日20点30分触发。

2.倒计时时长:修改“SETTIMER260”后的数值(单位秒),调整玩家选择时间,如改为30,即30秒倒计时结束。

3.触发范围:修改“CHECKMAP0”后的地图编号,0为全地图触发,可改为指定地图编号(如1为土城),仅该地图玩家收到弹窗。

4.地图与坐标:替换“MOVETOMAP10320320”中的地图编号与坐标,确保与服务端数据库一致,避免传送至异常区域。

IGE引擎适配与常见问题解决

脚本默认适配IGE引擎,出现异常多为参数错误或引擎设置问题,可按以下方法排查:

1.弹窗不触发:优先检查定时器设置,核对“SETTIMER”参数是否正确,是否存在重复定时器编号;其次确认QManage.txt文件路径无误,重启服务端后重新测试。

2.选择后无法传送:核对“MOVETOMAP”后的地图编号与坐标,确保与Map.DB数据库完全一致;若提示无权限,在IGE引擎控制器中开启地图传送权限。

3.重复弹窗:检查脚本中是否添加“CLEARTIMER1”语句,缺失会导致定时器重复触发,需在[@Timer1]下补充该命令。

4.倒计时失效:确认“SETTIMER2”与[@Timer2]逻辑对应,编号一致,若倒计时无响应,补充“#EVENTOnTimer2@Timer2”语句绑定事件。

拓展功能脚本补充(可选添加)

按需添加以下脚本,丰富时间触发玩法,复制至QManage.txt即可生效:

1.多时段触发:实现每日多次弹窗邀请,新增定时器编号即可。

;新增每日12点触发(定时器编号2)
[@OnLogin]
#IF
CHECKMAP0
#ACT
SETUSERVARHour212
SETUSERVARMinute20
CALCVARTimeDiff2(Hour2*3600+Minute2*60)-$HOUR*3600-$MINUTE*60
#IF
CHECKVARTimeDiff2>0
#ACT
SETTIMER2%TimeDiff2%
#ELSE
SETTIMER2%TimeDiff2%+86400

[@Timer2]
#ACT
CLEARTIMER2
#SAY
╔━━━━━━━━━━━━╗
║正午专属地图开启║
╠━━━━━━━━━━━━╣
║是否进入正午专属地图?║
║/@EnterMapNoon进入/@Cancel取消║
╚━━━━━━━━━━━━╝
SETTIMER360

[@EnterMapNoon]
#ACT
CLEARTIMER3
MOVETOMAP11330330
SENDMSG5成功进入正午专属地图!

2.限制进入次数:每日仅允许玩家进入1次,避免重复进入。

[@EnterMap]
#IF
CHECKTIMER2
CHECKVAREnterCount<1
#ACT
CLEARTIMER2
MOVETOMAP10320320
SETUSERVAREnterCount1
SENDMSG5今日已进入专属地图1次,请勿重复进入!
#ELSEACT
SENDMSG5今日进入次数已用完,明日可再次尝试!
[顶部]