Differences

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

Link to this comparison view

4.6.x_changelogs [2019/12/07 06:52] (current)
xikage created
Line 1: Line 1:
 +======4.6.5======
 +  * Basic support for 1.14
 +  * Backported lots of bug fixes from 4.7
  
 +======4.6.0 - 4.6.4======
 +
 +=====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{t=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=====
 +
 +====NEW: BreakBlock====
 +Breaks the block at the targeted location
 +  Skills:
 +  - breakblock @targetlocation
 +
 +====NEW: onAttack====
 +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:
 +  - 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.
 +
 +onAttack 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 do no base damage
 +  * **multiplier=#​** - An optional multiplier on 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====
 +Forces the target player to download a resource pack. Player must have resource packs enabled on the server.'​
 +  Skills:
 +  - sendResourcePack{url=www.website.com/​resourcepack.zip} @target
 +
 +====NEW: SetFaction====
 +Sets or changes the target mob's faction
 +  Skills:
 +  - setFaction{faction=X}
 +
 +====NEW: SetGameMode====
 +Sets the game mode of the targeted player
 +  Skills:
 +  - setGameMode{mode=ADVENTURE} @trigger ~onInteract
 +
 +====NEW: Shield====
 +Shields the target with absorption hearts for a set amount.
 +  Skills:
 +  - shield{amount=10;​maxShield=20} @target
 +
 +====NEW: ShieldPercent====
 +Shields the target with absorption hearts for a percentage of their maximum health.
 +  Skills:
 +  - 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.
 +
 +====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====
 +  * Overhealing now applies absorption hearts instead of increasing maximum health.
 +  * 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=====
 +  * Added "​nothing"​ droptype for helping with weighted droptables
 +  * Finally fixed/​implemented BonusLevelItems and BonusLuckItems
 +
 +**BonusLevelItems:​ [number]/​[range]**
 +  * A modifier on the number of items dropped based on the mob's level
 +  * Can be set as a range, i.e. 0.2to0.5
 +  * Works like: **amount = amount + (mob_level * bonus_level_items)**
 +  * Requires that **TotalItems**,​ **MinItems**,​ or **MaxItems** be set on the table to work
 +
 +**BonusLuckItems:​ [number]/​[range]**
 +  * A modifier on the number of items dropped based on the killer'​s luck stat
 +  * Can be set as a range, i.e. 0.15to8
 +  * Works with Luck attribute, Luck-based enchants/​curses,​ and Luck potion effects
 +  * Works like: **amount = amount + (luck * bonus_luck_items)**
 +  * Requires that **TotalItems**,​ **MinItems**,​ or **MaxItems** be set on the table to work
 +
 +=====RandomSpawns=====
 +  * Optimized and improved random spawn point generation
 +  * Fixed RandomSpawns not obeying MaxMobsPerChunk option
 +
 +====PositionType====
 +  * Added **PositionType:​ [LAND/​SEA]** option, defaults to LAND
 +  * Land spawns will only ever spawn on land
 +  * 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=====
 +  * Fixed MPets compatibility
 +  * Fixed bugs with new particle options
 +  * Fixed potential dupe glitch with consumeHeldItem mechanic and Artifacts
 +  * Fixed bugs with item durability not applying on 1.13+
 +  * Fixed various bugs with item generation
 +  * Fixed SkillAPI and McMMO xp messages showing even when disabled
 +  * 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.6.x_changelogs.txt · Last modified: 2019/12/07 06:52 by xikage