Skip to content
Snippets Groups Projects
  1. Dec 22, 2014
  2. Oct 31, 2014
  3. Aug 11, 2014
  4. Mar 03, 2014
  5. Oct 27, 2013
    • Zoey76's avatar
      BETA: Skill and effect system complete rework: · cdfeacf8
      Zoey76 authored
      	* Renamed `L2Effect` to `AbstractEffect`.
      	* No more dynamic creation of effects (Huge performance and memory boost!).
      		* Removed all traces or reflection on run time!
      	* Removed `EffectTemplate`, merged with `AbstractEffect`.
      	* Reworked and externalized all the logic from `AbstractEffect` that handled effect ticking.
      	* Reviewed all "over time" skills:
      		* `Flag` effect does not have ticks and doesn't need onActionTime() defined.
      		* '''Fixed DOT (damage over time), MDOT (mana damage over time), HOT (heal over time), MHOT (mana heal over time) skills.'''
      			* Reported by: Tavo22, Snip
      		* `FakeDeath` effect should only last forever (or while conditions are met) if it's a toggle skill.
      		* `Relax` effect should only last forever (or while conditions are met) if it's a toggle skill.
      	* Removed `EffectState` enumerated and the nasty switch associated to it!
      	* Removed "lambda" support from effects, the default attribute `val` is now double.
      		* Removed val="0", now `val`'s default value is zero, no need to declare it explicitely.
      	* '''Removed''' `noicon` '''attribute from effects, icon is not related to effects, but to the skill.''
      	* Renamed `AbnormalEffect` enumerated to `AbnormalVisualEffect`.
      	* Removed `EffectDurationHolder` DTO.
      	* Removed getFirstEffect(int), skills can be stoped by skill ID or `AbnormalType`.
      	* Reworked (again) `CharEffectList`:
      		* Using maps as underlying implementation, '''reduced drastically iterations''' (Hash tables offer 0(1) in most operations).
      			* Using Javolution's `FastMap`, due Java lacks a default implementation that is ordered by insert order, thread-safe and concurrent safe.
      		* Separated all kind of skills into buffs, triggers, dances, debuffs, passive.
      		* Using Double-locked checking, useless instantiation of maps is avoided.
      		* Improved buff counting operations (no more iterations over every effect every time you get a new one to know if you reached maximum count).
      		* Removed getEffects() and all temporary list/map creations.
      		* '''Reworked the way buffs are inserted preventing iterations and correcting exceptions while finding the correct index to insert the buff.'''
      	* Reworked `Formulas`#calcEffectAbnormalTime(Env env)
      	* Fixed `L2CubicInstance`#useCubic<Skill Type>(..), this methods are not static, then they don't need to recieve a `L2CubicInstance` as parameter.
      	* Implemented `BuffInfo`, modeled from retail's implementation with minor changes to fit our implementation.
      		* Complex DTO that holds all the information for a given buff (or debuff or dance/song) set of effects issued by an skill.
      		* Controls the logic of the buffs.
      	* Removed a few of `L2EffectType`.
      	* Improved a bit `L2BabyPetInstance` skill casting related logic, reduced iterations and simplified the code.
      	* Implemented `EffectTaskInfo`, DTO to hold the effect task (Maybe this will change later).
      	* Implemented `EffectTickTask` runnable task to control ticking logic.
      	* Removed "after effect" implementation, totally useless.
      		* Suggested by: UnAfraid
      	* Removed all the `L2Skill`#getEffects(..) methods replaced with L2Skill#applyEffects(..).
      	* Moved "can be stolen" logic to `L2Skill`, it isn't related to the effect, but to the skill.
      	* Added "Refresh" button on admin panel to check buffs easily.
      	* Added admin command "admin_getbuff_ps" to check effects from passive skills.
      	* Improved performance in `DispelBySlot` and `DispelBySlotProbability` effects.
      	* Fixed minor typo in `DispelBySlot` and `DispelBySlotProbability` effects, there are values over `Byte.MAX_VALUE`.
      	* '''Added retail support for Herbs, when a lesser buff is replaced by an herb, it becomes inactive, but it's timer continues, when the Herb buff finishes if the lesser buff has time it becomes active untill completes it's time.'''
      		* Time does not pause, it just continues in the background.
      		* Effects does not stack.
      		* Reported by: Nos
      	* '''Fixed Herbs, they shouldn't display gauge bar (casting bar) upon usage.'''
      		* Reported by: Nos
      	* '''Fixed Herbs not removing lesser effect icon, leading to players belive that buffs stack...'''
      		* Reported by: Tavo22, evets, u3games, pandragon
      	* '''Fixing instant effects being added to the effect list, and removing buffs present on the list.'''
      		* Reported by: Tavo22
      	* '''Fixed "Short Buff" slot (slot for healing potions).'''
      		* Statified reset packet (reduced object creation, a lot!).
      		* Removed task to reset `ShortBuffStatusUpdate`, let's use buff ending task for that.
      		* Moved logic to `CharEffectList` instead of `L2PcInstance` + `ItemSkillsTemplate`.
      		* Reported by: JMD, Gries, Cresceus
      	* Fixed `StealAbnormal` effect logic and `Formulas`#calcCancelStealEffects(..).
      		* Improved buffs doesn't stack anymore with normal (lesser) buffs.
      		* Now all effects are excecuted including instant effects (if they are successfuly applied).
      		* Reported by: Adry_85
      	* `BlockChat` effect shouldn't be instant!
      	* Fixed system messages related to skills (success, fail, removal, ending).
      	* Improved `AdminBuffs`, more information is displayed:
      		* Blocked abnormal skill types (if any)
      		* Total buff count.
      		* Hidden buff count.
      		* Inactive effects (in red)
      		* Skill level next to the name.
      	* '''Rewritten''' `EffectMasterHandler` '''to avoid reflection where it's useless.'''
      	* Since `L2EffectType` is scheduled to be removed:
      		* `AbstractEffect`#getEffectType() is not abstract anymore, now returns L2EffectType.NONE by default.
      	* '''Fixing debuffs working on "white players" with control.'''
      		* Patch by: nBd (minor changes by Zoey76)
      		* Reported by: plasan, jungla56, St3eT, Tavo22, Konstantinos, pandragon
      	* '''Fixed exploit on restore summon feature that allows players to dupe summons.'''
      		* Unhardcoding `canSummon` condition.
      		* Reported by: Janiko
      	* '''Fixed Arcane Shield getting stuck after being stolen.'''
      		* Reported by: valanths1990, nBd, freestyler, Gries
      	* '''Fixed triggered skills that got stacked within the same ID and different level.'''
      		* Reported by: nBd, lucan, blacksea, Gries
      
      Tested by: Nos, Captain, Janiko, Konstantinos, Lucan, UnAfraid, Zoey76
      
      '''Note to developers 1:''' Instant effects shouldn't override onExit(!BuffInfo).
      '''Note to developers 2:''' Is not required to call super.onStart() or super.onExit() to add/remove abnormal visual effects anymore, it's done on an indepent method.
      '''Note to developers 3:''' Do not add "steal constructor", such thing is not required anymore.
      cdfeacf8
  6. May 07, 2013
  7. May 05, 2013
  8. Apr 28, 2013
  9. Apr 27, 2013
    • Zoey76's avatar
      BETA: Effect rework: · c5c99945
      Zoey76 authored
      	* Complete rework of !CharEffectList.
      		* Mimicking "List" operations, remove(..), add(..), isEmpty()...
      		* Thread-safe.
      			* Using reentrant locks for read/write operations.
      		* Removed cache-array, wasn't working.
      		* Removed useless methods.
      		* Removed queue, wrong implementation was leading to wrong updates in effect lists.
      		* Now effects from skills are managed in batches, less calls to methods, avoiding overhead from synchronization and keeping abnormal type groups safe.
      		* Support for blocked buff slots, no more hacks!
      			* Implemented proper effect.
      		* No more dependence on Javolution.
      		* !JavaDocs!
      	* Abnormal type, level and time are global to the skill and not specific to each effect.
      		* Keeping support to customize each effect duration time, needs testing.
      	* Added abnormal type enum, no more strings.
      		* Removed overhead from string comparison.
      	* !EffectTemplate rework:
      		* No more public fields, we use mutators and accessors to work with them!
      		* Func list to List instead of array.
      			* Avoid CPU overhead, System.arraycopy(..).
      		* Removed unused transform parameters.
      		* !JavaDocs!
      	* L2Skill rework:
      		* No more dependence on Javolution.
      		* Func and Effect lists to List instead of array.
      		* Removed some useless effect type related method from skills.
      		* Removed custom restriction for stolen effect with current duration less than 5 seconds.
      		* If NPE appear they have to be properly fixed, no more hacks!
      		* Updated toString() method.
      		* !JavaDocs!
      	* L2Effect rework:
      		* Effects do not store static data from template!
      		* Removed unused transform parameters.
      		* Removed "passive effect" related methods, effect is passive if skill is passive.
      		* Removed "buff"/"debuff" related method from effects, skills are buffs or debuffs not effects.
      		* Updated toString() method.
      		* Removed effectCanBeStolen() method, now canBeStolen() is overridden in effect implementations in Datapack.
      		* !JavaDocs!
      	* L2Item minor rework:
      		* Func and Effect lists to List instead of array.
      			* Avoid CPU overhead, System.arraycopy(..).
      		* No more dependence on Javolution.
      		* Now _questEvents is initialized only if it's used, not for all items!
      	* L2Weapon fixes:
      		* Fixed bug in getSkillEffects(L2Character, L2Character, L2Skill) returning always empty array of effects!
      		* Func and Effect lists to List instead of array.
      			* Avoid CPU overhead, System.arraycopy(..).
      		* No more dependence on Javolution.
      	* Reworked "get func" methods to avoid toArray(..) calls.
      	* Proper use of maps, no more iteration over keys and retrieving the value using get method.
      	* Externalized formula to calculate current effect duration to Formulas class.
      	* Static fields are upper case.
      	* Adding button to reload effects, '''must be follow by skill reload and probably player restart''' to ensure there is no memory-leftovers.
      	* Fixing skill Frintezza's Songs(5008) abnormal types.
      	* Fixing minor bug with High Five GM skills.
      	* Added name to effect list from admin panel, fixed other minor glitches.
      	* Removed old and classing GM menu.
      	* Updated logs and comments.
      
      Reviewed by: Adry_85, MELERIX
      
      Testing video: http://youtu.be/7qadv7QQhy4
      c5c99945
  10. Mar 24, 2013
  11. Jun 03, 2012
  12. Jun 02, 2012
  13. May 31, 2012
  14. May 30, 2012
  15. May 18, 2012
  16. May 13, 2012
  17. Mar 04, 2012
  18. Feb 09, 2012
  19. Jan 26, 2012
  20. Jan 12, 2012
  21. Dec 17, 2011
  22. Nov 11, 2011
  23. Oct 26, 2011
  24. Oct 18, 2011
  25. Sep 26, 2011
  26. Aug 22, 2011
    • Zoey76's avatar
      BETA: Datapack update require [4863]. · 8a86b499
      Zoey76 authored
      	* '''Items:'''
      		* Added all missing:
      			* flying condition fixed for items (for flying true/false).
      			* ItemSkills handler added for items.
      				a. Some soulshot type items (Pailaka) have ItemSkills instead SoulShots, will be fixed when soulshots get unhardcoded by using skills.
      				a. Some enchant backup type items has ItemSkills but skills are not done yet. 
      		* Fixed item type: ^([#note1 note 1])^
      			* Court Magician's Magic Staff 13809
      			* Beast Handler's Whip 15473
      			* Teddy Boy Summon Bracelet - Permanent Use 16399
      			* Teddy Girl Summon Bracelet - Permanent Use 16400
      			* Teddy Boy Summon Bracelet (event) - Permanent Use 16401
      			* Teddy Girl Summon Bracelet (event) - Permanent Use 16402
      			* Gold Maned Lion Mount Bracelet 20502
      			* Gold Maned Lion Mount Bracelet - 30-day limited period 20503
      			* Steam Beatle Mount Bracelet - 30-day limited period 20504
      		* Fixed handler:
      			* Shiny Halloween Toy Box (Event) 20717
      		* Cleaned:
      			* some "Pack" items with attached skills.
      			* all invalid "for" element for items.
      	* '''Skills:'''
      		* Removed custom flying conditions from skills, mostly moved to items.
      		* Added missing sex condition to skills.
      		* Implemented:
      			* Potion of Revenge 2077
      			* Soul Breaking Arrow 2234
      			* Remove Petrification Scroll 2307
      			* Fiery Demon Blood 2357
      			* Prison Gate Key 2362
      			* Underground Warehouse Key 2363
      			* Blue Coral Key 2366
      			* Red Coral Key 2367
      			* Transform Sealbook - Onyx Beast 2371
      			* Transform Sealbook - Death Blader 2372
      			* Transform Sealbook - Grail Apostle 2373
      			* Transform Sealbook - Unicorn 2374
      			* Transform Sealbook - Lilim Knight 2375
      			* Transform Sealbook - Golem Guardian 2376
      			* Transform Sealbook - Inferno Drake 2377
      			* Transform Sealbook - Dragon Bomber 2378
      			* Capture Rope 2399
      			* Red Coral Treasure Chest Key 2400
      			* Item - Special Sound Crystal 2487
      			* Transform Zaken 2491
      			* Transform Anakim 2492
      			* Transform Venom 2493
      			* Transform Gordon 2494
      			* Transform Ranku 2495
      			* Transform Kietch 2496
      			* Transform Demon Prince 2497
      			* Cure Poison Paralyze 2578
      			* Cure Death Clock 2579
      			* Elmore-Aden's Holy Water 2633
      			* Court Magician's Blessing 2634
      			* Scroll of Transformation - Red 2670
      			* Scroll of Transformation - Blue 2671
      			* Stone of Recovery 2794
      			* Santa's Buff Gift Set 2856
      			* Christmas Event - Magic Use Enhancement Scroll 2857
      			* Item Skill: Acrobatics 3253
      			* Traits Strengthen Earring 3400
      			* Mystery Effect 3404
      			* Weight Decrease Ring 3406
      			* Stealth Ring 3407
      			* Blessed Ring of Escape 3408
      			* Blessed Ring of Resurrection 3409
      			* Blue Talisman - Self destruction 3436
      			* Transform Dispel 3499 ^([#note2 note 2])^
      		* Updated:
      			* Updated Scroll of Transformation - Pig 2370
      			* Updated Bottle of Empty Soul 2498
      			* Updated Highest Power Secret Medicine of Life 2860
      			* Updated Highest Power Secret Medicine of Mind 2861
      			* Updated  Highest Power Secret Medicine of Will 2862
      		* Pre-implemented:
      			* Item Skill: Iron Body 3254 ^([#note3 note 3])^
      	* '''Handlers:'''
      		* Minor cleanup to ExtractableItems handler.
      		* Minor cleanup to SoulShots handler.
      '''Note 1:''' [=#note1] The retail items are EtcItems, but we don't have support for skills on equipped EtcItems, for 13809 changed from Weapon to EtcItem so can be used as key. This seems to be typos or missing support.
      '''Note 2:''' [=#note2] ''Important'' all "dispel" skill should have this format, that will come in other update.
      '''Note 3:''' [=#note3] Require core support.
      8a86b499
  27. Apr 16, 2011
  28. Apr 15, 2011
Loading