Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
MythicMobs MythicMobs
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 138
    • Issues 138
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • MythicCraft
  • MythicMobsMythicMobs
  • Wiki
    • Skills
  • Metaskills

Metaskills · Changes

Page history
added Skill and FailedConditionsSkill. Updated OnCooldownSkill authored Jul 20, 2024 by Lxlp's avatar Lxlp
Hide whitespace changes
Inline Side-by-side
Showing with 88 additions and 16 deletions
+88 -16
  • Skills/Metaskills.md Skills/Metaskills.md +88 -16
  • No files found.
Skills/Metaskills.md
View page @ f9c6e0b1
......@@ -18,8 +18,6 @@ A Metaskill is, in essence, a list of mechanics to execute once the metaskill is
The syntax of a Metaskill is the following:
```yaml
internal_skillname:
Cooldown: [seconds]
OnCooldownSkill: [the metaskill to execute if this one is on cooldown]
CancelIfNoTargets: [true/false]
Conditions:
- condition1
......@@ -30,6 +28,10 @@ internal_skillname:
TriggerConditions:
- condition5
- condition6
FailedConditionsSkill: [the metaskill to executed if the conditions did not check]
Cooldown: [seconds]
OnCooldownSkill: [the metaskill to execute if this one is on cooldown]
Skill: [an additional metaskill to execute asynchronously from this one]
Skills:
- mechanic1
- mechanic2
......@@ -59,6 +61,53 @@ A valid Internal SkillName must be unique (aka, there cannot exists two skills t
If you want to execute a specific metaskill in any way, you will have to use its Internal SkillName in some way
## CancelIfNoTargets
If the metaskill should cancel its execution if no eligible targets are provided to it.
Defaults to `true`.
## Conditions
The [Conditions] of the metaskill. Those conditions evaluates the caster of the metaskill.
Depending on the [Condition Action] used in each condition, different behaviors can occur: read the relevant wiki page for more info
## TargetConditions
The Target [Conditions] of the metaskill. Those conditions evaluates the inherited target of the metaskill, it being either an entity ot a location.
Depending on the [Condition Action] used in each condition, different behaviors can occur: read the relevant wiki page for more info
## TriggerConditions
The Trigger [Conditions] of the metaskill. Those conditions evaluates the entity that triggered the skilltree. This entity can also be targeted via the [@Trigger] targeter
Depending on the [Condition Action] used in each condition, different behaviors can occur: read the relevant wiki page for more info
## FailedConditionsSkill
> Alias: `OnFailSkill`
The Metaskill to be executed if the conditions do not check
```yaml
ExampleSkill:
Conditions:
- day true
OnFailSkill: ExampleSkill2
ExampleSkill2:
Skills:
- message{m="So, well, it appears it's not daytime then."} @World
```
Or, alternatively, this is also possible
```yaml
ExampleSkill:
Conditions:
- day true
OnFailSkill:
- message{m="Oh my, it still isn't daytime?"} @World
- message{m="That's quite the problem!"} @World
```
## Cooldown
The Cooldown is the time, in seconds, that must elapse between executions of the metaskill for the same caster.
......@@ -98,29 +147,52 @@ ThirdSkill:
Skills:
- command{c="say Third"}
```
Casting FirstSkill normally would result in "First" being written in chat. Executing it again while still on cooldown would write "Second" in chat, and executing it another time while both FirstSkill and SecondSkill are on cooldown would result in "Third" being written in chat
Casting FirstSkill normally would result in "First" being written in chat. Executing it again while still on cooldown would write "Second" in chat, and executing it another time while both FirstSkill and SecondSkill are on cooldown would result in "Third" being written in chat.
## CancelIfNoTargets
If the metaskill should cancel its execution if no eligible targets are provided to it.
Defaults to `true`.
You can also define a list of mechanics to be executed instead of another metaskill
```yaml
OnCooldownSkills:
- s{s=entity.village.no}
- e:p{p=VILLAGER_ANGRY;y=1.5}
```
## Conditions
The [Conditions] of the metaskill. Those conditions evaluates the caster of the metaskill.
## Skill
To not be confused with [Skills](#skills). This option allows the metaskill to execute the mechanics of another metaskill once triggered.
```yaml
example1:
Conditions:
- night true
Skills:
- setvariable{var=skill.test;val=0} @self
- message{m=1} @self
- message{m=2} @self
- delay 20
- message{m=3} @self
Depending on the [Condition Action] used in each condition, different behaviors can occur: read the relevant wiki page for more info
example2:
Skill: example1
Skills:
- message{m="test2 - <skill.var.test>"} @self
- message{m=4} @self
```
The behavior of this execution is very specific:
- The other metaskill's mechanics are executed before that of the current metaskill's [Skills](#skills)
- The other metaskill's conditions and cooldown are ignored, if present
- Every mechanic is executed in the same skilltree, but the delays used in one do not affect the timings of the other, like if the two metaskills were called in the following manner
## TargetConditions
The Target [Conditions] of the metaskill. Those conditions evaluates the inherited target of the metaskill, it being either an entity ot a location.
So, in essence, the above example is the equivalent of
Depending on the [Condition Action] used in each condition, different behaviors can occur: read the relevant wiki page for more info
```example2:
Skills:
- skill{s=example1}
- message{m="test2 - <skill.var.test>"} @self
- message{m=4} @self
```
## TriggerConditions
The Trigger [Conditions] of the metaskill. Those conditions evaluates the entity that triggered the skilltree. This entity can also be targeted via the [@Trigger] targeter
With the only difference being the disregard of example1's cooldown and conditions
Depending on the [Condition Action] used in each condition, different behaviors can occur: read the relevant wiki page for more info
## Skills
......
Clone repository
Home
Changelogs
Premium Features
Commands and Permissions
Mythic Add-ons
Compatible Plugins
API Information
Guides
  • Troubleshooting
  • FAQ / Common Issues
  • Examples
Packs
  • Pins
Mobs
  • Mob Options
    • Display Options
  • Mob Levels
  • Mob Factions
  • Power Scaling
  • Damage Modifiers
  • Equipment
  • BossBar
  • Custom AI
  • Custom Kill Messages
  • Threat Tables
  • Immunity Tables
  • Templates
  • Vanilla Overrides
  • Extra: Disguises
  • Extra: ModelEngine
Skills
  • Mechanics
  • Targeters
    • Filters
  • Triggers
  • Conditions
    • In-line conditions
  • Metaskills
  • Placeholders
  • Variables
Items
  • Options
  • Attributes
  • Enchantments
  • Potions
  • Banner Layers
  • Firework
Drops & DropTables
  • Drops
  • DropTables
  • FancyDrops
Spawning
  • Spawners
  • Random Spawns
Stats
  • Custom Stat Options
  • Modifiers
  • Built in Stats
Technical
  • Math
  • Operations
    • Attribute Operations
    • Stats Modifiers
  • Particles Types
  • Audience
  • Equipment Slots
  • Intratick Scheduling