Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
changelog [2019/01/31 06:38]
xikage [NEW: onAttack]
changelog [2019/04/19 00:10] (current)
xikage
Line 1: Line 1:
-======4.6.[Dev Builds]======+======4.6.[Dev Builds]====== 
 +======4.6.0 [Premium]======
  
 =====General===== =====General=====
 +  * Added config option RandomSpawning.DisableVanillaSpawns
 +  * Skills can now be called with a new shorthand syntax **skill:​name**
  
 +  Skills:
 +  - skill:​someskill ~onAttack
 +
 +=====Major Features=====
 +====Better Saving====
 +Mobs with **Despawn: false** will now save their information far more reliably, and now remember everything about themselves between restarts such as their owner, stance, etc.
 +
 +====Variables System====
 +MythicMobs now includes many new mechanics and conditions for dealing with variables, with options for temporary, non-saving, or permanent variables that can be placed on mobs or players. See the variables page for more information.
 +
 +====Placeholders====
 +The Placeholders (formerly called variables for some reason) system has been totally redone and is now much faster, in addition to having an assortment of new placeholders.
 +
 +//This refers to the system of having <> placeholders in any configured strings such as <​caster.name>//​
 +
 +This system now integrates with PlaceholderAPI,​ and you can use %placeholderapi% placeholders anywhere that you can use MM placeholders
 +
 +Placeholders should now usable in any mechanics and conditions that allow strings.
 +
 +Some of the new Placeholders include:
 +  * <​caster.var.X> ​ - gets the value of the variable X on the current caster
 +  * <​target.var.X> ​ - gets the value of the variable X on the current target
 +  * <​trigger.var.X> ​ - gets the value of the variable X on the current trigger
 +  * <​skill.var.X> ​ - gets the value of the variable X on the current skill tree
 +  * <​random.#​to#> ​ - a random number between # and #
 +
 +Variable placeholders can have a |default appended in-case the variable you're looking for isn't set.
 +  <​target.var.something|default>​
 +
 +====In-Line Conditions====
 +You can now use basic conditions within mechanics using the new ? "​if"​ operator. These conditions only run as regular conditions (targeting the caster), can not have **condition actions**, and they always check if the condition is **true**.
 +
 +For example:
 +  Skills:
 +  - message{m="​hey i'm on a gold block!"​} @trigger ?​onBlock{block=GOLD_BLOCK} ~onInteract
 +
 +Your mechanic lines can have as many of these as you want in it, multiples do work.
  
 +=====Mobs=====
 +  * Added **Options.PreventSunburn:​ true** for burnable mobs
  
 =====Mechanics===== =====Mechanics=====
Line 15: Line 57:
 A special Aura mechanic that adds a temporary onAttack skill to the target. Can also be used to modify damage done by the attack. A special Aura mechanic that adds a temporary onAttack skill to the target. Can also be used to modify damage done by the attack.
   Skills:   Skills:
-  - onAttack{auraName=firey_strikes;​onHit=FireStrike;​duration=200;​charges=5;​multiplier=2} @self+  - onAttack{auraName=fiery_strikes;​onHit=FireStrike;​duration=200;​charges=5;​multiplier=2} @self
  
 In this example, the caster'​s next 5 physical hits within 10 seconds would trigger the FireStrike skill targeting whatever was hit and also deal 200% damage. However, if FireStrike'​s conditions failed, it would deal regular damage as the multiplier would not trigger either. In this example, the caster'​s next 5 physical hits within 10 seconds would trigger the FireStrike skill targeting whatever was hit and also deal 200% damage. However, if FireStrike'​s conditions failed, it would deal regular damage as the multiplier would not trigger either.
Line 25: Line 67:
   * **multiplier=#​** - An optional multiplier on the original hit's damage   * **multiplier=#​** - An optional multiplier on the original hit's damage
   * **add=#** - An optional static increase to the original hit's damage   * **add=#** - An optional static increase to the original hit's damage
 +
 +====NEW: onDamaged====
 +A special Aura mechanic that adds a temporary onDamaged skill to the target. Can also be used to modify damage done by the attack.
 +  Skills:
 +  - onDamaged{auraName=fire_shield;​onHit=FireShield;​duration=200;​charges=5;​multiplier=0.5} @self
 +
 +In this example, the caster'​s next 5 hits taken in 10 seconds would trigger the FireShield skill targeting whatever hit them and also deal 50% damage. However, if FireShield'​s conditions failed, it would deal regular damage as the multiplier would not trigger either.
 +
 +onDamaged has the following options:
 +  * All options available to Auras
 +  * **onHit=[skill]** - A skill to execute while the aura is active
 +  * **cancelEvent=true** - Whether to cancel the event and damage taken
 +  * **multiplier=#​** - An optional multiplier on the original hit's damage
 +  * **sub=#** - An optional static decrease (or increase if negative) to the original hit's damage
 +
 +====NEW: RemoveOwner====
 +Removes the target mob's owner.
  
 ====NEW: SendResourcePack==== ====NEW: SendResourcePack====
Line 51: Line 110:
   - shield{multiplier=0.5;​maxShield=2} @target   - shield{multiplier=0.5;​maxShield=2} @target
 MaxShield also acts as a multiplier, so the example shield would stack up to 2x the target'​s max health. MaxShield also acts as a multiplier, so the example shield would stack up to 2x the target'​s max health.
 +
 +====NEW: VariableSet====
 +Sets a [[:​skills:​variables|variable]] on the specified scope.
 +
 +    setVariable{
 +        variable=[scope].[name];​
 +        value=[the value];
 +        type=[variable_typpe];​
 +        save=[true/​false];​
 +        duration=[optional_duration_in_ticks]
 +      }
 +
 +  Skills:
 +  - setvariable{var=skill.testVar;​value="​hello";​type=STRING} ~onInteract
 +  - setvariable{var=caster.something;​value=1;​type=INTEGER;​save=true} @self ~onInteract
 +  - setvariable{var=target.temporaryVar;​value="​im temporary";​type=STRING;​duration=200} @target ~onAttack
 +
 +Scope can be set by prefixing **scope.name** to the variable, or by using the **scope=[scope]** option.
 +
 +====NEW: VariableAdd====
 +Adds an amount to a [[:​skills:​variables|variable]] on the specified scope. Only works with numeric variable types.
 +  Skills:
 +  - variableadd{var=skill.testVar;​amount=1} ~onInteract
 +
 +====NEW: VariableSubtract====
 +Subtracts an amount to a [[:​skills:​variables|variable]] on the specified scope. Only works with numeric variable types.
 +  Skills:
 +  - variablesubtract{var=skill.testVar;​amount=1} ~onInteract
 +
 +====Auras====
 +
 +Added various options to Auras, and fixed many bugs:
 +^ **Option** ^ **Description** ^
 +|**maxStacks=5** ​ |The maximum stacks of an aura that can exist on a target from a particular caster|
 +|**mergeAll=false** ​ |Defaults to false, auras from all casters on the same target will be merged and have their stacks increased|
 +|**mergeSameCaster=true** ​ |Defaults to true, auras from the same caster on the same target will be merged and have their stacks increased| ​     ​
 +|**refreshDuration=true** ​ |Defaults to true, refreshes the duration on auras when a new stack is applied|
  
 ====Heal and HealPercent==== ====Heal and HealPercent====
Line 56: Line 152:
   * Added MaxOverhealing option for both skills, working exactly like the similar shield mechanics.   * Added MaxOverhealing option for both skills, working exactly like the similar shield mechanics.
  
 +====PushButton====
 +  * Fixed on 1.13
 +  * Now works with location targeters
 +
 +====Summon====
 +  * Added summonerIsParent=false,​ summonerIsOwner=false options
 +
 +====ToggleLever====
 +  * Fixed on 1.13
 +  * Now works with location targeters
 +
 +=====Conditions=====
 +====NEW: StringEquals====
 +Returns true if the the two strings match. Both values can use placeholders.
 +  Conditions:
 +  - stringEquals{value1="​yes";​value2="<​mob.var.ready|nope>"​}
 +  - stringEquals{value1="​yes";​value2="​%essentials_godmode%"​}
 +
 +
 +====NEW: VariableEquals====
 +Returns true if the variable matches the value. The value can contain placeholders/​other variables/​etc.
 +  ​
 +  Conditions:
 +  - variableEquals{variable=[scope].[variablename];​value="​[a value]"​}
 +  - variableEquals{variable=target.somevariable;​value="​hello"​} true
 +
 +  BearGrowl:
 +    TargetConditions:​
 +    - variableEquals{var=target.heardbear;​value="​yes"​} cancel
 +    Skills:
 +    - message{m="​You hear a growling noise"​}
 +    - setvariable{var=target.heardbear;​value="​yes";​duration=6000}
 +
 +====NEW: VariableIsSet====
 +Returns true if the variable is set on the target scope.
 +  - variableIsSet{variable=[scope].[variablename]}
 +  - variableIsSet{variable=target.somevariable} true
 +
 +====NEW: VariableInRange====
 +Returns true if the variable is within the given range. Only works with numeric variables.
 +  - variableInRange{variable=[scope].[variablename];​range=[range]}
 +  - variableInRange{variable=target.somevariable;​range=>​10} true
 +
 +=====Triggers=====
 +====NEW: onDespawn====
 +After years of people asking, we've finally figured out how to add a decent ~onDespawn trigger. This should fire whenever the mob stops existing for any reason other than death.
 +
 +=====Items=====
 +====NBT Support====
 +  * You can now specify NBT tags on items in the format:
 +  Item:
 +    Id: DIAMOND_SWORD
 +    NBT:
 +      Base:
 +        ATag: 20
 +        SomeOtherTag:​ something
 +      GemSlots:
 +        RedGem: 0
 +      '​Denizen NBT':
 +        somedenizentag:​ a_string
 +This allows cross-over with a lot of other plugins, or just for storing some custom information.
 +
 +For the more technically-inclined,​ anything under '​Base'​ will go under the item's base compound tag, and anything else will go under the corresponding key (or if no sub-items are defined, everything will go under the base tag). 
 +
 +If using with Denizen, all tags you want to use in Denizen must go under '​Denizen NBT' and must be lower-case to work in your Denizen scripts.
 +        ​
 =====Drop Tables===== =====Drop Tables=====
 +  * Added "​nothing"​ droptype for helping with weighted droptables
   * Finally fixed/​implemented BonusLevelItems and BonusLuckItems   * Finally fixed/​implemented BonusLevelItems and BonusLuckItems
  
Line 80: Line 243:
   * Land spawns will only ever spawn on land   * Land spawns will only ever spawn on land
   * Sea will only ever spawn in water   * Sea will only ever spawn in water
 +=====Compatibility=====
 +====PlaceholderAPI====
 +Placeholders from PlaceholderAPI can now be used anywhere MythicMobs placeholders can be used, including in mechanics, conditions, etc.
 +  - message{m="<​trigger.name>​ has God-Mode? %essentials_godmode%"​} @trigger ~onDamaged
 +
 +====WorldGuard====
 +  * Readded WorldGuard 6 support for Minecraft 1.8-1.12
 +
 +=====API=====
 +Added **MythicMobDespawnEvent**,​ which should trigger whenever mob stops existing for any reason that isn't death.
  
 =====Bugs/​Other===== =====Bugs/​Other=====
Line 89: Line 262:
   * Fixed SkillAPI and McMMO xp messages showing even when disabled   * Fixed SkillAPI and McMMO xp messages showing even when disabled
   * Fixed RandomSpawns not obeying MaxMobsPerChunk option   * Fixed RandomSpawns not obeying MaxMobsPerChunk option
 +  * Fixed targeter sort=RANDOM not returning any targets
 +  * Fixed <​trigger.name>​ not displaying when trigger is a mob
 +  * Fixed particle projectiles being stopped by half-slabs
 +  * Fixed console spam from WorldGuard
 +  * Fixed some spawner issues involving not tracking despawning mobs correctly
 +  * Fixed imported bukkit items not loading
 +  * Fixed cast/​castinstead condition actions not obeying cooldowns
 +  * Fixed many legacy items not converting properly in droptables
 +  * Fixed damaged mobs not dying with ignoreArmor=true
 +  * Fixed mobs spawning multiple mounts in some scenarios
 +  * Fixed mob owner and cooldowns not saving between restarts
 +  * Fixed threat tables not dropping targets that change worlds
  
 +======4.5.7 [Latest Free]======
 +  * Backported support for WorldGuard 6 on 1.8-1.12
 +  * Backported another bug fix for item importing
  
-======4.5.3 [Latest Premium]======+======4.5.1-4.5.6====== 
 +  * Fixed bugs with item importing 
 +  * Fixed several bugs with the API 
 +  * Backported more API changes to 4.5.X 
 +  * Backported various bug fixes
   * Backported latest API changes to 4.5.X   * Backported latest API changes to 4.5.X
   * Fixed several bugs with items   * Fixed several bugs with items
- 
-======4.5.2====== 
   * Built against latest WorldGuard 7.0 dev builds   * Built against latest WorldGuard 7.0 dev builds
   * Fixed several other minor bugs   * Fixed several other minor bugs
- 
-======4.5.1====== 
   * Fixed item names not processing special characters correctly   * Fixed item names not processing special characters correctly
   * Optimized mob spawning a bit   * Optimized mob spawning a bit
Line 105: Line 293:
   * Fixed an incompatibility with Artifacts   * Fixed an incompatibility with Artifacts
  
-======4.5.0 ​[Latest Free]======+======4.5.0======
 =====General===== =====General=====
   * Added support for Minecraft 1.13 and 1.13.1   * Added support for Minecraft 1.13 and 1.13.1

changelog.1548934722.txt.gz · Last modified: 2019/01/31 06:38 by xikage