十周年天降神技属于全服或地图范围内的定时随机事件。3KM2引擎本身没有固定“天降神技”命令,完整实现需要靠定时器、随机玩家、随机坐标、技能发放、冷却控制和全服公告组合完成。脚本中的命令名称、变量写法、地图参数和插件命令以当前3KM2引擎M2帮助为准,不能直接照搬其他引擎。
一、功能结构
天降神技脚本通常由四个部分组成:
定时器脚本:每隔一段时间触发一次天降事件。
触发脚本:随机选择玩家或地图坐标,发放技能或奖励。
冷却脚本:限制全服、地图或单人的触发频率。
公告脚本:事件开始前、进行中、结束后发送全服提示。
二、定时器脚本写法
定时器脚本可以写在QManage.txt或单独定时脚本中。每隔固定时间检查是否满足触发条件。
[@天降神技定时器]
IF
EQUAL<SKYDROP>0
RANDOM5
ACT
MOV<SKYDROP>1
CALL[天降神技天降触发.txt]@开始天降
GOTO@天降神技定时器
ELSEACT
GOTO@天降神技定时器
这里RANDOM5表示大约五分之一概率触发,可根据服务器节奏改为RANDOM3或RANDOM10。<SKYDROP>用作全服冷却标记,避免连续触发。
三、天降触发脚本
触发脚本负责选择目标、播放公告、发放技能或奖励。
[@开始天降]
IF
ACT
SENDMSG0【天降神技】天空异象降临,神技即将降临本服!
GOTO@随机目标
[@随机目标]
IF
ACT
MOV<DROPPLAYER><USERNAME>
GOTO@发放神技
如果希望随机选择在线玩家,需要引擎支持在线玩家列表读取命令。3KM2部分版本可使用引擎提供的在线玩家随机命令,具体命令名称以M2帮助为准。若不支持,可改为在指定地图随机坐标触发。
四、指定地图天降写法
如果希望天降神技只出现在特定地图,可以先检测地图,再随机坐标。
[@地图天降]
IF
ISONMAP3
ACT
MAPMOVE3RANDOMRANDOM
GOTO@发放神技
ELSESAY
[@发放神技]
IF
ACT
ADDSKILL流星火雨4
SENDMSG0【天降神技】<USERNAME>获得天降神技【流星火雨】!
MOV<SKYDROP>2
GOTO@冷却开始
ADDSKILL技能名称技能等级用于添加技能,部分引擎也支持SKILLLEVEL调整技能等级。如果希望只临时获得技能,可在冷却结束后用DELSKILL删除。
五、全服冷却控制
天降神技不能过于频繁,否则会影响平衡。冷却可以按全服、地图、个人三种方式控制。
全服冷却示例:
[@冷却开始]
IF
ACT
GOTO@冷却倒计时
[@冷却倒计时]
IF
ACT
WAIT300
MOV<SKYDROP>0
SENDMSG0【天降神技】本次天降神技结束,下次降临时间未知。
BREAK
如果引擎不支持WAIT命令,可改为使用独立变量配合定时器递减。
[@冷却倒计时]
IF
LARGE<SKYTIME>0
ACT
DEC<SKYTIME>1
GOTO@冷却倒计时
ELSEACT
MOV<SKYDROP>0
MOV<SKYTIME>0
SENDMSG0【天降神技】冷却结束,天降神技随时可能再次降临。
BREAK
六、个人冷却控制
个人冷却可以防止同一玩家连续获得神技。
[@检查个人冷却]
IF
LARGE<SKYPERSON>0
ACT
SENDMSG6你刚刚获得过天降神技,暂时无法再次触发。
BREAK
ELSEACT
MOV<SKYPERSON>1
GOTO@发放神技
[@个人冷却结束]
IF
ACT
WAIT600
MOV<SKYPERSON>0
BREAK
七、技能类型切换
天降神技可以随机发放不同技能。使用RANDOM随机数切换技能类型。
[@随机技能]
IF
ACT
MOVN1<RANDOM(3)>
GOTO@技能分支
[@技能分支]
IF
EQUALN10
ACT
ADDSKILL流星火雨4
SENDMSG0【天降神技】<USERNAME>获得天降神技【流星火雨】!
BREAK
IF
EQUALN11
ACT
ADDSKILL冰咆哮4
SENDMSG0【天降神技】<USERNAME>获得天降神技【冰咆哮】!
BREAK
IF
EQUALN12
ACT
ADDSKILL地狱雷光4
SENDMSG0【天降神技】<USERNAME>获得天降神技【地狱雷光】!
BREAK
技能名称必须与当前版本技能数据库一致,否则无法生效。
八、奖励与道具发放
如果天降神技不直接给技能,也可以改为发放道具、经验、元宝或临时属性。
示例:
[@发放奖励]
IF
ACT
GIVE神技卷轴1
GAMEGOLD+100
SENDMSG6你获得天降神技奖励。
BREAK
如果希望技能只能通过道具学习,可以把ADDSKILL改为玩家使用卷轴时触发。
[@使用神技卷轴]
IF
CHECKITEM神技卷轴1
ACT
TAKE神技卷轴1
ADDSKILL流星火雨4
SENDMSG0【天降神技】<USERNAME>使用神技卷轴,领悟【流星火雨】!
BREAK
ELSESAY
你身上没有神技卷轴。
九、地图限制写法
天降神技通常不适合出现在安全区、新手地图或特殊活动地图。可以在触发前增加地图过滤。
[@地图过滤]
IF
ISONMAP0
ACT
BREAK
IF
ISONMAP1
ACT
BREAK
IF
ACT
GOTO@发放神技
如果引擎支持地图参数判断,也可以直接排除带安全区、禁止攻击、禁止技能的地图。
十、公告节奏控制
天降神技公告建议分三段:预警、降临、结束。
预警公告:
SENDMSG0【天降神技】天空出现异动,神技即将降临!
降临公告:
SENDMSG0【天降神技】<USERNAME>获得天降神技【<SKILLNAME>】!
结束公告:
SENDMSG0【天降神技】本次天降神技已结束,请继续修炼。
公告不要过于频繁,否则会影响聊天环境。可以在全服冷却期间禁止重复公告。
十一、调试顺序
先确认定时器是否正常触发。
确认<SKYDROP>、<SKYTIME>、<$SKYPERSON>等变量是否独立。
确认ADDSKILL、DELSKILL、SKILLLEVEL等命令在当前3KM2引擎中是否可用。
确认技能名称与数据库一致。
确认RANDOM随机逻辑不会死循环。
确认冷却结束后变量是否正确归零。
确认公告SENDMSG模式正确,不会刷屏。
修改脚本后重新加载或重启服务端。
如果天降后技能不显示,优先检查技能数据库和职业限制。如果公告不发送,检查SENDMSG参数。如果冷却不生效,检查变量是否在结束后被正确重置。如果多人同时触发,增加全服冷却标记,避免定时器重复进入发放段落。
一、功能结构
天降神技脚本通常由四个部分组成:
定时器脚本:每隔一段时间触发一次天降事件。
触发脚本:随机选择玩家或地图坐标,发放技能或奖励。
冷却脚本:限制全服、地图或单人的触发频率。
公告脚本:事件开始前、进行中、结束后发送全服提示。
二、定时器脚本写法
定时器脚本可以写在QManage.txt或单独定时脚本中。每隔固定时间检查是否满足触发条件。
[@天降神技定时器]
IF
EQUAL<SKYDROP>0
RANDOM5
ACT
MOV<SKYDROP>1
CALL[天降神技天降触发.txt]@开始天降
GOTO@天降神技定时器
ELSEACT
GOTO@天降神技定时器
这里RANDOM5表示大约五分之一概率触发,可根据服务器节奏改为RANDOM3或RANDOM10。<SKYDROP>用作全服冷却标记,避免连续触发。
三、天降触发脚本
触发脚本负责选择目标、播放公告、发放技能或奖励。
[@开始天降]
IF
ACT
SENDMSG0【天降神技】天空异象降临,神技即将降临本服!
GOTO@随机目标
[@随机目标]
IF
ACT
MOV<DROPPLAYER><USERNAME>
GOTO@发放神技
如果希望随机选择在线玩家,需要引擎支持在线玩家列表读取命令。3KM2部分版本可使用引擎提供的在线玩家随机命令,具体命令名称以M2帮助为准。若不支持,可改为在指定地图随机坐标触发。
四、指定地图天降写法
如果希望天降神技只出现在特定地图,可以先检测地图,再随机坐标。
[@地图天降]
IF
ISONMAP3
ACT
MAPMOVE3RANDOMRANDOM
GOTO@发放神技
ELSESAY
[@发放神技]
IF
ACT
ADDSKILL流星火雨4
SENDMSG0【天降神技】<USERNAME>获得天降神技【流星火雨】!
MOV<SKYDROP>2
GOTO@冷却开始
ADDSKILL技能名称技能等级用于添加技能,部分引擎也支持SKILLLEVEL调整技能等级。如果希望只临时获得技能,可在冷却结束后用DELSKILL删除。
五、全服冷却控制
天降神技不能过于频繁,否则会影响平衡。冷却可以按全服、地图、个人三种方式控制。
全服冷却示例:
[@冷却开始]
IF
ACT
GOTO@冷却倒计时
[@冷却倒计时]
IF
ACT
WAIT300
MOV<SKYDROP>0
SENDMSG0【天降神技】本次天降神技结束,下次降临时间未知。
BREAK
如果引擎不支持WAIT命令,可改为使用独立变量配合定时器递减。
[@冷却倒计时]
IF
LARGE<SKYTIME>0
ACT
DEC<SKYTIME>1
GOTO@冷却倒计时
ELSEACT
MOV<SKYDROP>0
MOV<SKYTIME>0
SENDMSG0【天降神技】冷却结束,天降神技随时可能再次降临。
BREAK
六、个人冷却控制
个人冷却可以防止同一玩家连续获得神技。
[@检查个人冷却]
IF
LARGE<SKYPERSON>0
ACT
SENDMSG6你刚刚获得过天降神技,暂时无法再次触发。
BREAK
ELSEACT
MOV<SKYPERSON>1
GOTO@发放神技
[@个人冷却结束]
IF
ACT
WAIT600
MOV<SKYPERSON>0
BREAK
七、技能类型切换
天降神技可以随机发放不同技能。使用RANDOM随机数切换技能类型。
[@随机技能]
IF
ACT
MOVN1<RANDOM(3)>
GOTO@技能分支
[@技能分支]
IF
EQUALN10
ACT
ADDSKILL流星火雨4
SENDMSG0【天降神技】<USERNAME>获得天降神技【流星火雨】!
BREAK
IF
EQUALN11
ACT
ADDSKILL冰咆哮4
SENDMSG0【天降神技】<USERNAME>获得天降神技【冰咆哮】!
BREAK
IF
EQUALN12
ACT
ADDSKILL地狱雷光4
SENDMSG0【天降神技】<USERNAME>获得天降神技【地狱雷光】!
BREAK
技能名称必须与当前版本技能数据库一致,否则无法生效。
八、奖励与道具发放
如果天降神技不直接给技能,也可以改为发放道具、经验、元宝或临时属性。
示例:
[@发放奖励]
IF
ACT
GIVE神技卷轴1
GAMEGOLD+100
SENDMSG6你获得天降神技奖励。
BREAK
如果希望技能只能通过道具学习,可以把ADDSKILL改为玩家使用卷轴时触发。
[@使用神技卷轴]
IF
CHECKITEM神技卷轴1
ACT
TAKE神技卷轴1
ADDSKILL流星火雨4
SENDMSG0【天降神技】<USERNAME>使用神技卷轴,领悟【流星火雨】!
BREAK
ELSESAY
你身上没有神技卷轴。
九、地图限制写法
天降神技通常不适合出现在安全区、新手地图或特殊活动地图。可以在触发前增加地图过滤。
[@地图过滤]
IF
ISONMAP0
ACT
BREAK
IF
ISONMAP1
ACT
BREAK
IF
ACT
GOTO@发放神技
如果引擎支持地图参数判断,也可以直接排除带安全区、禁止攻击、禁止技能的地图。
十、公告节奏控制
天降神技公告建议分三段:预警、降临、结束。
预警公告:
SENDMSG0【天降神技】天空出现异动,神技即将降临!
降临公告:
SENDMSG0【天降神技】<USERNAME>获得天降神技【<SKILLNAME>】!
结束公告:
SENDMSG0【天降神技】本次天降神技已结束,请继续修炼。
公告不要过于频繁,否则会影响聊天环境。可以在全服冷却期间禁止重复公告。
十一、调试顺序
先确认定时器是否正常触发。
确认<SKYDROP>、<SKYTIME>、<$SKYPERSON>等变量是否独立。
确认ADDSKILL、DELSKILL、SKILLLEVEL等命令在当前3KM2引擎中是否可用。
确认技能名称与数据库一致。
确认RANDOM随机逻辑不会死循环。
确认冷却结束后变量是否正确归零。
确认公告SENDMSG模式正确,不会刷屏。
修改脚本后重新加载或重启服务端。
如果天降后技能不显示,优先检查技能数据库和职业限制。如果公告不发送,检查SENDMSG参数。如果冷却不生效,检查变量是否在结束后被正确重置。如果多人同时触发,增加全服冷却标记,避免定时器重复进入发放段落。

