Last aCis updates

Started by Tryskell, January 04, 2011, 10:46:15 PM

Tryskell

Changeset 247

Misc

   - fix GandBossTeleporters script (HTM/SQL side). All IDs are supposed to be ok.
   - add a check for groups on Quest for radius (ty Hasha). Ideally, it needs to be spread to any solo quest.
   - cleanup (L2SiegeGuard, 2 itemhandlers with postIL stuff, AttackStanceTaskManager).
   - colors of title/name is corrected (ty TheEngo)
   - toggles are desactivated when taking a CW.
   - Drain skills HP gain effect now effects monsters (+ rework of the skillhandler).
   - correct Lotto ticket (ty Pleasure).

*normally* fix AutoChatHandler issue.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 248

Misc

   - Add the missing Ketra/Varka AI petrification support (allied player helping - through positive effects - neutral/enemy player which attack a friend mob). It makes the difference between who casted it aswell (pet or player is paralized depending who casted). Unfortunately, it doesn't break the cast (because onSkillSee works when skill is already launched, else it would need an ANTICIPATION of the mob).
   - Fix Raid Curse stuff (too much c/p kills the c/p), and improve a little the coding.
   - drop all "Util.contains(" checks on Monastery. Those checks are made way before, and aren't necessary on that script, as arrays and behaviors aren't melted... Mobs are individually registered.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 249

Primeval AI, misc


Primeval AI
   - Addition of primitive system for following behaviors :
      - Pterosaurs and TRex-es can see through Silent Move (core support needed).
      - Ancient Egg, when attacked, will call all mobs in a range of 2k (guessed... as 1k is the aggro of a lot of dinos, I x2'ed it).
      - Sprigants will launch a task every 15sec if someone enters in their aggro range (AoE skill). Task stops if sprigant is dead or if none is inside anymore.

Misc
   - addition of Q629
   - fix summon sieges skills for "Siege Golem" and "Swoop Cannon".
   - fix Sprigant's fruit and Primeval potion.
   - "String = "" > isEmpty()", "boolean == false > !boolean" && "boolean == true > boolean".
   - fix a critical issue about quest check (added in previous revision).
   - MagicSkillUse packet is completed.
   - addition of ConditionTargetHpMinMax, used for Trap Skills (avoid the ugly system of onSkillSee).
   
A lot needs to be done for PI (full trap system mostly), and it goes by gathering as many as possible informations.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 250

5 quests, misc

   - Addition of Q049 (untested as c/p of Q046), Q371 ,Q374, Q375 && Q603. Ty to sharers.
   - fix songs panel (drop "back" button), ty AntiViruZ.
   - drop useless skillhandler.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

#154
Changeset 251

Misc

   - BlockBuff / BlockDebuff core support + fixes on skills (Mystic Immunity, Day of Doom, Heroic Berserker). NPC passive aren't yet supported.
   - clan is now instantly dropped if config is setted to 0. If clans are loaded, the task is now setted to 1min rather than 5min.
   - clan notices are dropped when clan is destroyed.
   - partial cleanup of beginCast( methods.
   - [L2J 5365] addition of hasPet() and hasServitor() methods + fix range in which the pet can get XP.
   - [L2J 5373] rechargeAutoSoulShot( method doesn't use anymore switch about itemId, but items' L2ActionType.
   - creation of a .txt if user changed his name (ty Java-man).
   - *possible fix* _owner / getOwner() NPE (isAutoAttackable(), HitTask, etc). setOwner(null) was introduced when we had summon ghost issue, but since that time I found the real problem and so I revert this "fix" which probably make the cleanup hard.




Changeset 252

EnchantSkillsTree table rework, misc related to skills.

   - addition of enchantType in enchant_skills_tree, where shared infos are loaded. The DP size is cut by 2, and we earn back 10mo RAM at startup.
   - the different used lists aren't synchronized anymore.
   - giveAvailableSkills() execution time is divided by... x15. You're right, from 3sec it goes to 200ms. From 300~ sent packets (for a DWARF, race which got the lowest numbers of skills), it goes to 12~. No lags anymore for the player, no hundreds packets sent / operations launched for nothing.
   - removeSkill() correctly clean toggle effects.
   - multiple security checks are added on acquire && enchant (skill, skillInfo) packets.
   
Ty Hasha (aka Rainbow Dash) for the good work.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 253

Multiple cleanups aiming better stability/performance.


Following Zoey76's (better known as "L2J cleanup guru") path, I decided to follow my (hidden) master.
   - activation of 3 Eclipse settings, leading to :
      - cleanup synthetic accesses warnings by dropping private for protected.
      - cleanup 20+ "true" and 50+ "false alarms" potential null pointer accesses, leading to handlers reworks.
   - cleanup synchronized lists/maps which got no reason to be synchronized.
   - cleaning gsregistering (for a "not-RU" english).
   
TODO : make my eclipse accepts java compliance 1.7 in order to use Diamond and ARM Java7 features (currently greyed, dunno why). Else you will go to trash, you understand, Eclipse ? Bad, bad Eclipse !
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 254

Java7 invasion ! The summer is coming : cleanup on the code ? Tale of an Eclipse come back !


Under that title which worths best animes', come some cleanup and use of java7 features :
   - Diamond for constructor invocations (+ activation of associated warning to be sure old system is correctly cleaned)
   - try-with-resources block (also known as 'ARM block') ; drop of apache commonsIO jar, drop of L2DatabaseFactory.close(con).
   - Fix all possibles methods when they can be static (+ activation of associated warning)
   - Fix all QUESTS STATIC maps (almost all...) to be "private final static" and "HashMap" instead of "FastMap".
   
If you got issues : download LATEST Eclipse (a 2011 eclipse isn't LATEST, as my previous Eclipse installation learnt it going to trash) and be sure your compliance level is setup to 1.7 : http://www.cs.utexas.edu/~scottm/cs307/handouts/Eclipse%20Help/comp_Setting_1.6.jpg (=> IN THE SCREEN IT'S PUT TO 1.6 PUT TO 1.7 AND IF YOU HAVEN'T 1.7 OPTION THEN GO DL LATEST ECLIPSE NUNUNU <=)

And if you're really dumb or drunk or just want to read more about it, Google it : "java compliance level 1.7 eclipse".

Here are the features of Java7, with Eclipse "changes" to support it : http://www.eclipse.org/jdt/ui/r3_8/Java7news/whats-new-java-7.html


I had to fix 1500+ warnings, so if you find something bad, you know where to find me.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 255

Addition of Noblesse quests.
   - Q241, Q242, Q246, Q247

Knownlist conflict
   Idea is coming from Tukune from L2JForum. The Forget task got a lower radius than the Watch task (concerning AttackableKnownList and players, which is... 70% of scenarii), leading to attaching and detaching the AI of the mob if you're between both ranges.
   More infos and my answer on original topic : http://www.l2jserver.com/forum/viewtopic.php?f=77&t=24091
   - tweak all radius in order Forget Task is - almost - always 1,5x/2x > to Watch task.
   - PcKnownlist dynamic range is even more dynamic (based on actual knownlist's size, begin from 3600 - 20 per ppl, minimum 1800).
   - Castles doors had some difficulties to be seen from far, now it's fixed.

Baium
   - Angelic Vortex (Baium gatekeeper) edition : add a missing HTM (baium state = dead), HTMize an hardcoded HTM, blooded fabric check occurs in good position.
   - slight rework of Baium AI in order to chain animations faster and show the roar animation for the waker.
   - the waker probability to die has been fixed.
   
Misc
   - add static SOUND_FANFARE in QuestState.
   - addition of 3 locs for admins (GM goodies panel). Ty Pendragon.
   - items 7677, 7678, 7679 are considered as qItems.
   - fix 2 potential NPAs.
   - titles regex pattern is dropped.
   - addition of 2 missing tables on database_installer.bat.
   - Drop of PRECISE_DROP_CALCULATION config, which was affecting both drop chance and drop quantity. Now only drop chance are affected by server rates (avoid 5 RB jewels per boss).
   - cleanup of calculateRewardItem and 2 almost same-looking methods from L2Attackable.
   - Fix the CW when wearing a FW. The FW is unequipped before equipping the CW (affects the admincommand aswell).
   - Fix a critical issue I added 2-3 revs ago concerning items which couldn't be picked up.
   - Fix a critical issue introduced by Hasha rework about Quest party system (NPE on fastlist). Change FastList for ArrayList.
   - use of isClanLeader() when possible.
   - missing singleton on L2World.
   - fix the message when you're in a party : "blabla took +2stem", instead of "blabla took 2 stem".
   - Addition of a save noblesse option, as the noblesse status wasn't directly saved (so let's say server crashes before you delog at least once, you would lose it). Ty Hasha.
   - drop following methods to use their regular counterparts (they're shorter to write, lol) and fix all occurences :
      - CursedWeaponsManager.announce(   =>   Broadcast.toAllOnlinePlayers(
      - QuestState.getRandom(   =>   Rnd.get(
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 257

General tasks, misc (ty ipxs for some reports)


General tasks - ty jurchiks for the idea
   - following tasks are now handled by a unique task rather than using one task per player : PvpFlagTask, WaterTask && TakeBreakTask.
   - those tasks use a Map in order to stock individual timers.
   - for 100 players, 100 TakeBreakTask were created, and as much tasks if (let's say) those 100 players are pvping (+100) under water (+100) = potentially 300 tasks. Now only 3 tasks are running, no matter how many ppl are online.
   
Misc
   - add the Teleportation Cubic exit section for Baium (supposed to be handled in another script, moved in GrandBossTeleporters).
   - you aren't flagged anymore casting positive effects on guards (both siege and regular).
   - fix castlewarehouse && castleblacksmith "busy" HTM, and add a clan right check for blacksmith (+ cleanup for both instances).
   - fix Pa'agrio's Fist (must restore 100% CP, not simply 800).
   - fix Fatal Counter (based on your own HPs, not enemies' + formula rework) - ty Duma. getPower() method loses one parameter.
   - singletons on PetitionManager && AutoSpawnHandler
   - revert some ArrayLists for FastList (fix concurrentException errors on sieges)
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 258

Siege/castles rework, misc


Siege/castles rework
   - Fix possible targets on siege summons skills (one siege summon can only aim L2PcInstance, others can only aim L2DoorInstance).
   - Fix doors issue (doors not respawning at siege end). At siege end, they revive, fully HPregen and close if opened.
   - Doors don't respawn if destroyed during a midVictory, but they will respawn at siege end.
   - castle chamberlain instance is fully rewritten, HTMs names have been shortened and content is harmonized. Many privileges checks have been added.
   - when a castle wall is destroyed, the correct message is displayed.
   - skill cast on Artifacts is fixed (changing target before the end of "Seal Of Ruler" won't stop the skill)
   - Addition of retail-like castle gate upgrade system via castle chamberlain.
      - It uses 2 "cursors" to calculate the price :
         - type of door (basic doors, additional doors or walls)
         - power of the reinforcement (x2, x3 or x5 HPs).
      - the cost of doors updates, as their pdef/mdef, are infuenced by Seal of Strife owner.
      - the upgrade is instant, and is loaded/saved through server restarts aswell (as I need _doorUpdates being fed for the hp ratio check on chamberlain).
      - all retails HTMs have been added, and checks are ok (not enough money in CWH, door already updated with a similar or better level, etc).
   
Misc
   - GMs non-aggro state has been moved from //invul to //hide command. Ty Pleasure for the good idea.
   - drop some GMs "privileges" which could lead to "false alarms" reports from users (like GMs not being ported when a siege begins).
   - all variables are (and will be from now, no matter how sad Java-Man will be) initialized in the shorter possible scope. Fix an ugly issue where DoorTable was adding all left doors to latest castle _doors (so Schuttgart had 50+ gates). Castle gates aren't verified anymore for CH purposes.
   - drop String.valueOf() on getNodeValue() - as the result is a String, it doesn't need further operation...
   
NOTE : TRAPS SYSTEM ISN'T MADE AT ALL. DON'T COMPLAIN ABOUT IT.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

#160
Changeset 259

Fishes rework (ty Java-man), misc (ty xblx for random fixes and sahar for reports)


Fishes rework
   - handles differently load and get fish process (regroup data in 1 array instead of 3, avoid to create multiple arrays and new FishData objects)
   - fix fishTable skills levels, ty 100500.
   
Misc
   - if identical jewel is currently worn, then replace the other slot if different (explanation is messy, but just test ingame and gtfo).
   - fix an exploit using clan warehouse when you left your clan (active warehouse could be clan, and wasn't cleaned).
   - fix previous knownlists update (int cast was affecting only 1.5 value). It is rounded aswell.
   - fix pets pickup, which are now affected by party distribution modes.
   - fix Goblets NPC.
   - fix double click on dead monsters (avoid to be stucked), cleanup those methods aswell. Drop of canTarget() method.
   - onActionShift() use L2PcInstance rather than GameClient as parameter.
   - add skillId on callSkill exception log for easier debug purposes.
   - fix 2 issues on Valakas AI and 1 on Baium AI, related to skills priority and offline target. Rework Baium getRandomTarget() method to be faster.
   - fix a ClassCastException on RequestRecipeShopManagePrev packet.
   - fix a NullPointerException on RequestPledgeSetAcademyMaster packet.
   - fix an NumberFormatException with CrestCache system ("Crest_Large_" were cutted as "Crest_", and so the id was containing "Large_".
   - getCharactersInside() has been changed for a FastList instead of FastMap, as there is no interest to keep Map format. Use of _characterList rather than the getter.
   - sendPacket() implementation for L2Summon, which refer directly to owner.
   - L2GoldenRamInstance cleanup, the FastMap has been changed for an int[][]. Updates the related HTM.
   - forgotten to add on timeline = xp/sp of monsters are affected by their HPs ratio.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 260

Skills rework (elemental, cancel, negate), misc


Skills rework
   - implementation of following methods: ssUncharge(), spsUncharge(), isSoulshotCharged(), isSpiritshotCharged() && isBlessedSpiritshotCharged(). Move ss/bss checks out of targets loops.
   - fix Cancel/Banes skillhandler :
      - formula rework : addition of level diff, baseRate (80% for single target, 40% for aoe), and vuln is now applied on the good section of formula.
      - toggles aren't counted anymore as possible effects to cancel.
      - failed attempts are now counted (before effects were looped until 5 effects were dropped).
   - all (L2Character[]) casts have been dropped in order to avoid ClassCastException using skills.
   - cleanup BalanceLife skillhandler ; store valid targets in another list rather than using old list and make twice same checks (...).
   - CombatPointHeal doesn't heal dead targets anymore.
   - addition of suicide stuff on PDAM skillhandler (potential use for antharas minions).
   - NEGATE L2SkillType (part of Disabler skillhandler) is heavily cleaned, and not affected anymore by calcSkillSuccess().
   - fix "SKILLS" elemental vuln/pro (revert to IL, was using postIL formula).
   - addition of "WEAPONS" elemental system (fix skills such as Holy Blade toggle, Holy weapon PP buff). Vuln/pro affect damages TOO !
   
Misc
   - cleanup && addition of missing PaganKeys, ty sahar. No clue if it's retail-like, they're added here for the moment.
   - NPCs social animations are divided by 2.
   - L2Npc : drop of _isBusy / _busyMessage and associated getters/setters + drop of the HTM.
   - fix issue from previous commit about hpRatio impacting earned XP/SP (I HATE DOUBLE).
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 261

Knownlists cleanup, Treasure chests, Valakas & Baium fixes, misc


Knownlists cleanup
   - drop of getKnownSummons system and associated map (unused stuff).
   - better use of inheritance, use of protected key instead of private in order to use variables instead of getters (slight performance boost).
   - maps are now directly initialized, which mean RAM usage is more important at startup, but one check is dropped on a overused command, and we get ride of any null case (it can be only empty).
   - addition of getKnownNpcs() method, move getKnownSiegeGuards() from L2Door to ObjectKnownList.
   - drop all null checks from knownlists. It is explained because getKnownXXX checks "if obj instanceof XXX", which means if it is instanceof XXX, it can't be null.
   - getKnownXXX return a Collection, not a Map anymore. For Map, use getKnownXXXMap() (used only in getKnownRelationsMap() and getKnownPlayersMap()).
   - drop of MOVE_BASED_KNOWNLIST config and system (unused).
   - change all getKnownXXX in order to use the most appropriate choice (avoid cast from L2Object to L2Character, for example).
      
Treasure chests
   - unlock skillhandler has been fully reworked (drop of SocialAction, fix aggro on mimic, etc).
   - the trap system has been dropped, as chests use only one type of skill (suicide type one).
   - drop of _mustGiveExpSp and associated getter/setter/use. doDie(null) means the monster doesn't give any xp/sp.
   
Valakas and Baium fixes
   - use their NPC knownlists rather than zone knownlists (to avoid out of range issues).
   - addition of a random number in order they pick another target after a while.
   - valakas only : don't bother with L2Pet anymore && raise by 2 the radius to count ppl for AoE skills behavior.
   
Misc
   - cleanup some doDie methods (drop of a useless broadcastStatusUpdate(), cleanup in L2Npc (fusion stuff + try catch) and L2Character (fusion + pointless PhoenixBlessed stuff).
   - more uses of getFirstEffect() method instead of retrieving all effects and looping on them.
   - mobs who die by suicide skill don't reward any XP/SP.
   - drop 2 logs concerning "invalid clan id for player xxx" and "unknown skill for summon: xxx".
   - MoS AI see if you're a male/female in order to use "Brother or "Sister". Yes, I know. But it's like that.
   - water flag is stored back in L2PcInstance.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 262

Cursed weapons, misc


Cursed weapons - ty hasha for critical error support nunu, was making me crazy :D
   - fix the visual glitch on inventory when you lose a CW.
   - drop of duration lose when you kill a player (couldn't verify with NCSOFT patch notes / forum if such feature exists).
   - added overall expiration timer of 72h.
   - added hungry expiration timer (24h by default) - must kill someone before the 24h are gone else CW disappears.
   - added random victims number per stage (between 5 and 15 with default configs).
   - when a player drops the CW, resets the stage to 1. The overall timer is kept, and hungry timer is dropped too.
   - decreased the drop chance from 1/10000 to 1/1000000.
   - no issue anymore when you assimilate a CW with another CW.
   - //cw_info is updated in order to get a complete control of stats.
   - infos are saved on DB every minute (mostly for timers). Drop the save on Shutdown.
   - activation of //reload cw.
   - you can't rank up a CW on a summon anymore.
   - The 2 active skills are now linked to items directly.
   
Misc
   - add missing Manor priviledges on L2CastleChamberlain.
   - debug L2CastleChamberlain about clan members who couldn't access it, even with priviledges.
   - fix 2 possible NPEs with getCurrentFolk(). Probably more to add.
   - drop ExtractableItems.java itemhandler (unused, ty sahar).
   - fix lethal chance of 3 skills (it's a base 1000, not 100) : Banish Undead, Turn Undead, Banish Seraph.
   - drop of FORCE_INVENTORY_UPDATE config (unused + buggy + fat code).
   - fix a NoSuchElementException on L2WeddingManager.
   
PS :
   - //reload cw will clean existing CWs (as it setups default values, we can't keep current CWs, else we got issues).
   - CWs should be cleaned if they stay 1h on ground, currently it's not implemented.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 263

Dimensional Rift, misc


Dimensional Rift
   - Fix some methods leading to broken "start".
   - Revert some start checks in order items check and consumption aren't made in same time (check first, then consume).
   - XMLize and merge loading process of "dimensional_rift.sql" (rooms infos) with "dimensional_rift.xml" (rooms spawns infos).
   - Fix room 7 of Hero rift (cf rev 178).
   - all FastList are changed for List.
   - Add an HTM for "rift is full" behavior, drop the "cheater" htm (return directly).

Misc
   - Fix a MysqlDataTruncation with macros (255 chars max).
   - Remove a check about CW and pets (the used sysstring was wrong also...).
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>