主题
MythicMobs 集成
QueDP 深度集成了 MythicMobs,提供双向交互能力:
- 副本脚本 → MM 技能:在副本脚本中让玩家释放 MythicMobs 技能
- MM 技能 → 副本动作:在 MythicMobs 技能中触发副本动作
前置要求
需要服务器安装 MythicMobs 5.x 插件
功能1:副本脚本释放 MM 技能
在副本脚本中,可以让玩家释放 MythicMobs 技能。
基础语法
javascript
action.cast_skill(选择器, 技能名)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| 选择器 | String | 施法者选择器(谁释放技能) |
| 技能名 | String | MythicMobs 技能名称 |
使用示例
示例1:波次完成奖励
javascript
// monsters.yml - 第一波完成时
action.message('@所有玩家', '&a第一波完成!');
action.cast_skill('@所有玩家', 'HealingAura');
action.cast_skill('@所有玩家', 'SpeedBoost');示例2:Boss 阶段技能
javascript
// scripts.yml - Boss 血量检查
function checkBossPhase() {
var bossHealth = getVar('boss_health');
if (bossHealth < 500 && !getVar('phase2_triggered')) {
setVar('phase2_triggered', true);
action.message('@所有玩家', '&c&lBoss 进入第二阶段!');
action.cast_skill('@所有玩家', 'DefensiveShield');
}
if (bossHealth < 200 && !getVar('phase3_triggered')) {
setVar('phase3_triggered', true);
action.message('@所有玩家', '&4&lBoss 狂暴了!');
action.cast_skill('@所有玩家', 'EmergencyHeal');
}
}示例3:随机技能奖励
javascript
// tasks.yml - 击杀里程碑
var kills = (getVar('总击杀') || 0) + 1;
setVar('总击杀', kills);
if (kills % 10 == 0) {
var skills = ['Heal', 'SpeedBoost', 'StrengthBuff', 'JumpBoost'];
var randomSkill = skills[Math.floor(Math.random() * skills.length)];
action.cast_skill('@随机', randomSkill);
action.message('@所有玩家', '&e随机玩家获得了技能奖励!');
}MythicMobs 技能配置
技能效果、目标、持续时间等由 MythicMobs 配置定义:
yaml
# plugins/MythicMobs/Skills/dungeon_skills.yml
# 治疗光环
HealingAura:
Skills:
- heal{amount=10} @self
- effect:particles{particle=heart;amount=20;speed=0.1;hS=0.5;vS=0.5} @self
- effect:sound{s=entity.player.levelup;v=1;p=1.5} @self
# 速度增益
SpeedBoost:
Skills:
- effect:potion{type=SPEED;duration=600;level=1} @self
- message{m="&a获得速度提升!"} @self
# 防御护盾
DefensiveShield:
Skills:
- effect:potion{type=DAMAGE_RESISTANCE;duration=600;level=1} @self
- effect:potion{type=ABSORPTION;duration=600;level=1} @self
- effect:particles{particle=barrier;amount=30;speed=0} @self
# 紧急治疗
EmergencyHeal:
Skills:
- heal{amount=20} @self
- effect:potion{type=REGENERATION;duration=200;level=2} @self
- message{m="&c&l紧急治疗!"} @self功能2:MM 技能触发副本动作
在 MythicMobs 技能中,可以触发副本的各种动作。
基础语法
yaml
Skills:
- dungeonaction{action="action.xxx(...)"} @self参数说明
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
| action | String | 是 | 要执行的副本动作 JavaScript 代码 |
| dungeon | String | 否 | 指定副本 ID(默认自动查找) |
自动识别副本
系统会自动识别怪物所在的副本,无需手动指定 dungeon 参数
使用示例
示例1:Boss 死亡完成副本
yaml
# plugins/MythicMobs/Mobs/boss.yml
DungeonBoss:
Type: WITHER_SKELETON
Display: '&c&l地牢守护者'
Health: 1000
Damage: 20
Skills:
# Boss 死亡时完成副本
- dungeonaction{action="action.message('@all','&a&l击败了 Boss!')"} @self ~onDeath
- dungeonaction{action="action.title('@all','&a&l胜利','&7恭喜通关')"} @self ~onDeath
- dungeonaction{action="action.complete_dungeon()"} @self ~onDeath支持的动作
所有副本动作都可以在 MythicMobs 技能中使用:
| 类型 | 示例 |
|---|---|
| 消息 | action.message('@all','消息') |
| 标题 | action.title('@all','主标题','副标题') |
| 音效 | action.sound('@all','ENTITY_PLAYER_LEVELUP') |
| 特效 | action.particle('@all','HEART',20) |
| 传送 | action.teleport('@all','0,65,0') |
| 治疗 | action.heal('@all',10) |
| 药水 | action.potion('@all','SPEED','30秒',1) |
| 怪物组 | action.spawn_group('援军') |
| 障碍物 | action.create_obstacle('火墙') |
| 奖励 | action.grant_reward('击杀奖励') |
| 副本控制 | action.complete_dungeon(), action.fail_dungeon() |
| 技能 | action.cast_skill('@all','Heal') |
| 自定义函数 | function.xxx() |
注意事项
技能必须存在
使用 action.cast_skill() 时,技能必须在 MythicMobs 配置中定义,否则会静默失败。
