mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-28 09:17:15 +00:00
NPC Special Attacks should all work right: also huge explanation in changelog.txt
This commit is contained in:
+109
@@ -1,5 +1,114 @@
|
||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||
-------------------------------------------------------
|
||||
|
||||
== 07/11/2013 ==
|
||||
KLS: Added a few lua functions.
|
||||
KLS: Redid the npcspecialatk system with a new system that is more flexible but a little more complicated (this will break any 3rd party tools that deal with them).
|
||||
|
||||
Instead of a string such as "ERS" to denote "Enrage Rampage Summon" abilities are indexed by their ability number, level and params separated by '^'.
|
||||
It is stored in the following format: ability,level[,param0,param1,param2,param3,param4,param5,param6,param7] Params will be read until there are 8 total or a '^' is reached.
|
||||
Eg: 'ERS' -> '2,1^3,1^1,1
|
||||
|
||||
Levels allow us to dictate how abilities behave that may be different even though they're the same ability.
|
||||
Params allow us to further refine behaviors on a case by case basis. Passing 0 as a param will use the default value.
|
||||
|
||||
NOTE: Be sure to source 2013_07_11_NPC_Special_Abilities.sql. Also due to the large impact this has on a database it is very HIGHLY SUGGESTED to BACKUP YOUR DATABASE FIRST.
|
||||
|
||||
The following are the special abilities currently in the game as well as their levels and parameters currently in use:
|
||||
|
||||
SPECATK_SUMMON = 1
|
||||
Level 1: Summon target to NPC
|
||||
Level 2: Summon NPC to target
|
||||
Param0: Cooldown in ms (default: 6000)
|
||||
Param1: HP ratio required to summon (default: 97)
|
||||
|
||||
SPECATK_ENRAGE = 2
|
||||
Param0: HP ratio required to enrage (default: rule NPC:StartEnrageValue)
|
||||
Param1: Enrage duration in ms (default: 10000)
|
||||
Param2: Enrage cooldown in ms (default: 360000)
|
||||
|
||||
SPECATK_RAMPAGE = 3
|
||||
Param0: Proc chance (default: 20)
|
||||
Param1: Rampage target count (default: rule Combat:MaxRampageTargets)
|
||||
Param2: Percent of a normal attack damage to deal (default: 100)
|
||||
Param3: Flat damage bonus to add to the rampage attack (default: 0)
|
||||
Param4: Ignore % armor for this attack (default 0)
|
||||
Param5: Ignore flat armor for this attack (default 0)
|
||||
Param6: Percent of npc's natual crit that can go toward this rampage (default: 100)
|
||||
Param7: Flat crit bonus on top of npc's natual crit that can go toward this attack (default 0)
|
||||
|
||||
SPECATK_AREA_RAMPAGE = 4
|
||||
Param0: Proc chance (default: 20)
|
||||
Param1: Rampage target count (default: 1)
|
||||
Param2: Percent of a normal attack damage to deal (default: 100)
|
||||
Param3: Flat damage bonus to add to the rampage attack (default: 0)
|
||||
Param4: Ignore % armor for this attack (default 0)
|
||||
Param5: Ignore flat armor for this attack (default 0)
|
||||
Param6: Percent of npc's natual crit that can go toward this rampage (default: 100)
|
||||
Param7: Flat crit bonus on top of npc's natual crit that can go toward this attack (default 0)
|
||||
|
||||
SPECATK_FLURRY = 5
|
||||
Param0: Proc chance (default: rule Combat:NPCFlurryChance)
|
||||
Param1: Flurry attack count (default: rule Combat:MaxFlurryHits)
|
||||
Param2: Percent of a normal attack damage to deal (default: 100)
|
||||
Param3: Flat damage bonus to add to the flurry attack (default: 0)
|
||||
Param4: Ignore % armor for this attack (default 0)
|
||||
Param5: Ignore flat armor for this attack (default 0)
|
||||
Param6: Percent of npc's natual crit that can go toward this attack (default: 100)
|
||||
Param7: Flat crit bonus on top of npc's natual crit that can go toward this attack (default 0)
|
||||
|
||||
Ex: Normal Flurry with 25% proc rate and 100% crit chance that ignores 500 armor.
|
||||
5,1,25,0,0,0,0,500,0,100
|
||||
|
||||
SPECATK_TRIPLE = 6
|
||||
SPECATK_QUAD = 7
|
||||
SPECATK_INNATE_DW = 8
|
||||
SPECATK_BANE = 9
|
||||
SPECATK_MAGICAL = 10
|
||||
SPECATK_RANGED_ATK = 11
|
||||
UNSLOWABLE = 12
|
||||
UNMEZABLE = 13
|
||||
UNCHARMABLE = 14
|
||||
UNSTUNABLE = 15
|
||||
UNSNAREABLE = 16
|
||||
UNFEARABLE = 17
|
||||
UNDISPELLABLE = 18
|
||||
IMMUNE_MELEE = 19
|
||||
IMMUNE_MAGIC = 20
|
||||
IMMUNE_FLEEING = 21
|
||||
IMMUNE_MELEE_EXCEPT_BANE = 22
|
||||
IMMUNE_MELEE_NONMAGICAL = 23
|
||||
IMMUNE_AGGRO = 24
|
||||
IMMUNE_AGGRO_ON = 25
|
||||
IMMUNE_CASTING_FROM_RANGE = 26
|
||||
IMMUNE_FEIGN_DEATH = 27
|
||||
IMMUNE_TAUNT = 28
|
||||
|
||||
NPC_TUNNELVISION = 29
|
||||
Param0: Aggro modifier on non-tanks (default: rule Aggro:TunnelVisionAggroMod)
|
||||
|
||||
NPC_NO_BUFFHEAL_FRIENDS = 30
|
||||
IMMUNE_PACIFY = 31
|
||||
|
||||
LEASH = 32
|
||||
Param0: Range (default: aggro range * aggro range)
|
||||
|
||||
TETHER = 33
|
||||
Param0: Range (default: aggro range * aggro range)
|
||||
|
||||
DESTRUCTIBLE_OBJECT = 34
|
||||
NO_HARM_FROM_CLIENT = 35
|
||||
|
||||
The following Lua API functions were added to deal with the new system:
|
||||
Integer GetSpecialAbility(Integer ability);
|
||||
Integer GetSpecialAbilityParam(Integer ability, Integer param);
|
||||
Void SetSpecialAbility(Integer ability, Integer level);
|
||||
Void SetSpecialAbilityParam(Integer ability, Integer param, Integer value);
|
||||
Void ClearSpecialAbilities();
|
||||
Void ProcessSpecialAbilities(String str);
|
||||
|
||||
The old API functions that worked with letters still exist for backwards compatibility reasons but wont be updated further.
|
||||
|
||||
== 07/08/2013 ==
|
||||
Secrets: Cleanup of some log functions that did not have an 'off' function.**
|
||||
Secrets: Unknown opcode messages only show on EQDEBUG* >= 5 or higher now. (including the dumped packet)
|
||||
|
||||
Reference in New Issue
Block a user