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

