Last aCis updates

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

Tryskell

Changeset 232

4 quests, misc.

   - Addition of Q291, Q303, Q347 && Q354.
   - Fix Judgment (can't be used with dual sword).
   - Fix 4S NPE at shutdown (drop existing tasks before bossZones cleanup).
   - Correct /gmlist check (my fault)
   - RequestManorList packet under static format.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 233

AQ, commands and misc


AQ
   - fix Queen Ant death NPE ; avoid to register infos if AQ is supposed to be already dead (you can summon it manually and kill her, but it won't change anything in database, such as respawn timer and others).
   - drop of onAggroRange() stuff (probably postIL stuff).
   - drop of double code on spawnBoss().
   - addition of missing minions (nurses and Royal Guards).

Commands
   - spawn_monster : drop that deprecated command, and rework of incriminated HTMs to use regular //spawn command.
   - npc_edit : drop of "armor" and "absorbLevel", addition of "enchant".
   - npcinfo : addition of "corpse delay" and "enchant".

Misc
   - autoAttackCondition() method rewrite.
   - update of EffectParalize and EffectPetrification (use of effect flag), now you will stop to move.
   - cleanup in Raid curses ; a skill will put you silence no matter what skill type it was (as silence is both for physic and magic skill), drop of some code (handled by effects due to effects rework).
   - StaticObjects cleanup (drop of the map storing objects, no more instanciation). Ty Java-man.
   - drop of giveRaidCurse() method and uses (was always true) ; used only once in a postIL quest.
   - an academy member haven't to see wartag clan enemy member, and vice-versa.
   - NPE corrected in RequestActionUse and unsummon actions are harmonized between servitors and pets.
   - rewrite of my previous commit about karma/pvp flag on summons. There's a special packet made for that, RelationChanged, instead of SummonInfo/CharInfo. Addition of broadcastRelationsChanges() method on L2Playable, overridden in L2PcInstance && L2Summon. Normally from now, the relation between summons && players (autoattackable when pvpflag/karma/siege) should be ok.
   - cleanup Broadcast.java, adding multiple null checks and put Collections with "final" key.
   - fix one RB location, ty 100500.
   - fix a stupid error I included myself ; 2 mobs from different clans could help each others... Ofc only same clan can help each other. Rehabilitation of the faction name check.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 234

Misc

   - getType() is dropped both for clientpackets and serverpackets, ty java-man.
   - L2HennaInstance is dropped, we work only with templates from now, ty xblx.
   - all serverpackets sending only opcodes (triggers packets) got a STATIC_PACKET system. Triggers packets structure is harmonized.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 235

Olympiads && Heroes, misc


Olympiads && Heroes
   - partial addition of L2J fix 5188. Ty Zoey76. Read it on L2J timeline for more infos.
   - split one check in 2 for checkNoble( method, and retail systemMessages for both of them.
   - you can't see inactive heroes anymore on Monument of Heroes.
   - You can't activate hero state if you're on a subclass or are less than level 76 on you main class.
   - following values have been modified to fit with IL - using PMFun infos - (the previous refactor has been made from C4 infos) :
      - length of a match : 3min to 6min.
      - divider for non classed matches : 3 to 5.
      - number of needed matches to pretend to Hero status : 5 to 9.
      - waiting time before Stadium teleport : 30sec to 120sec.
      - preparation time : 45sec to 60sec.
   - Buff section is now handled 20secs before match beginning.
   - A second full heal is applied during buff section (the first occurs at teleport).
   - Shops, as sit state, are broken when you teleport IN and OUT of an stadium. Addition of forceStandUp() method on L2PcInstance for easier use.
   - Buffs are cleaned up only at teleport OUT, not directly after the victory/defeat/tie of the match.
   
Misc
   - AdminMovieMaker : IOOB exception catched (ty SweeTs report), 2 typos fixed in commands (bro'a'dcast, not brodcast), don't create intermediate variables "val" && "id".
   - Cleanup of L2AttackableAI/L2NpcTemplate : drop of useless code, add of public getters, use of !isEmpty() instead of != null. Should drop the NPE when a mob tries to use a skill.
   - revert magic fail formula (custom L2JFree => L2J). I kept the accuracy at 2 decimals.
   - break enchant process and send systemMessage BUT CONTINUE the action in following conditions :
      - you give / take an item from your pet.
      - you give / take an item from warehouse.
      - you are pressing any type of bypass link from a warehouse NPC type (castle / normal).
   - can't interact anymore with any NPC if you're on transaction process.
   - if you're actually in transaction process, break following actions :
      - you give / take an item from your pet.
      - you give / take an item from warehouse.
   - fix Chant of Victory issue with rCrit (basemul != mul).
   
Report any issue on Olympiads, and CLEAN CORRECTED ISSUES in the dedicated thread, ty in advance.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 236

Formatting rules, took from latest L2J, both for DP (java scripts) and core.

   - Indent all files correctly, and remove useless spaces.
   - "for" loop enhancements when possible.
   - put final keyword when possible.
   - Fix 1600+ warnings on Javadoc (at hand...).
   - L2DabaseFactory.close() addition.
   
To be honest, I'm not trully satisfied about arrays type, mainly when used in int[][] or in maps - results become unreadable. Perhaps later I will change it.

I will use an Eclipse feature (=> http://stackoverflow.com/questions/234594/eclipse-can-you-format-code-on-save) using those new templates, which mean there shouldn't have anymore commits with empty spaces, commas change, indentation and others misc. If I redo a change it will be general (like array exemple said higher).

"if/else", "for" brackets aren't automatically edited. There wasn't the rule I currently use.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 237

L2Teleporter && L2DungeonGatekeeper, misc.


L2Teleporter && L2DungeonGatekeeper
   - Teleporters night price is implemented (price /2 when real life night occurs).
   - Split L2Teleporter to 2 distincts entities. Avoid to use a big switch about npcId.
   - Gatekeeper Ziggurat conditions are now implemented (must be from the winning side).
   - fix Giran Harbor GK (drop one location, fix prices).
   
Misc
   - static packet for ShowMiniMap (case of regular map).
   - static packet for EnchantResult, and fix the previous commit (switch from 0 - considered as a success - to 2 - abort).
   - RBs are now automatically concerned by MANADAM and MDOT type skills (but still got regular resistance from mobs).
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 238

Movement rework, misc


Movement rework
   - This is a code I found on L2J forums. I searched for initial post, but didn't find back, lol. Haven't clue about credits, I just can say the guy is russian. Sorry stranger for the no-credits :/.
   - This code is EXPERIMENTAL ; I didn't find strange issues after 2 days, but report if any occurs.
   - Fix the "ghost attack" when you move and a mob attacks you. Now the complete attack animation occurs. And yes, it's normal the monster does the animation even if you are running far from him. Works the same on L2OFF. Before the attack was occuring but you didn't see the animation and the monster was still moving.
   
Misc
   - /unstuck doesn't work anymore when you are afraid. Drop a double check aswell.
   - Fix NPEs on augment exploit. Happen when you don't sleep a lot.
   - Drop the old intention when you cast a skill (exemple, when you were moving). If a particular intention hadn't to be dropped while casting, report on forum.
   - Reflect damage skills type don't kill you anymore (stuck at 1). Well, shouldn't.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

#142
Changeset 239

Seven Signs refactor, AutoChatHandler rework, quests, misc.


Seven Signs refactor
   - Update the main engine, adding multiple missing things :
      - Seal of Strife effects (blocking siege summon, debuff/buff, limit uses of mercenary tickets)
      - can't have sieges and seven signs in same week (+1 week for sieges if the same)
      - Dawn/dusk crests are now correctly handled.
      - Anakim / Lilith GKs are now correctly handled (via teleports scripts). They spawn 10sec after RB death, and despawn 15min later. Old autospawn lines are obviously dropped.
   - CabaleBuffer rework.
   - Split of L2SignsPriest in 2 others entities, L2DawnPriest and L2DuskPriest.
   - Additions of 3 teleports in scripts folders.
   - complete rework of HTMs, based on latest L2J (itself based on L2OFF Gracia). HTMs are harmonized ; understand I tried to follow a generic "template" when I corrected HTMs - as the translation was approximative sometimes (Record of the Seven Seals != Record of Seven Signs)...

AutochatHandler rework
   - Migrate SQL => XML. Drop of 2 SQL tables, addition of 1 XML.
   - The engine can now read one single message and register it for multiple NPCs.

Quests
   - addition of Q113, Q319, Q320, Q341, Q385, Q634, Q637, Q638, Q647. Ty to all sharers for their initial work.

Misc
   - Fix a ClassException at TamedPetInstance when they tried to retrieve skills list.
   - L2DungeonGatekeeper instances are now invincible.
   - Fix "Rift Post" teleport option ("I want to go back to my world") via added teleports scripts.
   - L2Npc showChatWindow() method cleanup, using inheritance (split in L2FestivalGuide, L2SignsPriest && L2Auctionner).
   - Auctionners don't show anymore actual bid.
   - Observers can't use force attack anymore to target players.
   - GMs aren't hidden and invul anymore if they were observing.
   - addition of isSiegeSummonSkill() method on L2Skill.
   - partial rework of methods to correct siege date, mainly to improve performance (all actions from while loop made on a local variable, then registered in getSiegeDate(), drop of the hour from the loop).
   - addition of startQuestTimer(String name, long time) method (no npc nor player registered for it).
   - fix an Augmentation issue : gemstones weren't used... I still don't understand why.
   - addition of 100500's patch about a couple of items (L2EtcItem => L2Armor).
   - some null checks on Collection (2 on Baium), and "fix" (deleting) one logged NPE on L2AttackableAI.


PS : Q635 doesn't exist on L2J. Content is on OracleTeleport script.

Due to numerous changes, some things haven't been tested : Seven Signs complete game cycle, Festivals, AutoChatHandler uses (only when a side win, with cabale buffers). If you find errors, make a unique topic about it with all types of errors (broken HTMs, broken game cycle, or whatever). Ty in advance.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 240

Caches rework by Java-man.


HtmCache && CrestCache :
   - cleaner code (avoid to create 1 FastMap per type of crests, avoid CrestCache instanciation using static stuff, drop the LazyCache config)
   - reduction in memory usage (drop of FastMap usages for others types of lists - Trove and ArrayList).
   
PS : new JAR to add.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 241

NPC Skills


Go from 20852 skills loaded to 67807 (x3 skills). 20mo RAM usage added.
Based on L2OFF Gracia, ty agurkasz for the parsing.

If you find aberrations, please fix and/or report.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 242

Quests - ty to sharers.


   - Addition of Q266, Q313, Q345 && Q631.
   - Fix a little issue in Q619.

Special mention to Q345 which was missing one NPC, 50% of HTMs and 2 options of urn.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 243

Quests - ty to sharers.


   - Addition of Q316, Q325, Q329, Q422 && Q627.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 244

43 quests / quest engine, misc.


Ok, that does 3 weeks I didn't commit. I worked IRL 3 days, I reinstalled OS and softwares for 2 days, I played 1 week. So yeah, in 3 weeks I worked on project only 1 week. I don't apologize, I just let you know (yyyeaahhh, changeset used as autobiography, problem ? Want to fight ? ^^).

43 quests / Quest engine
   - sagas are implemented.
   - Varka / Ketra alliances + related quests (except magical blabla part 2) are implemented.
   - All quests sounds (6 so far, the complete amount is 8 but the 2 missing are never used) are now hardcoded and static. Ty Hasha for the idea.
   - Varka / Ketra alliance system (killing ally friend drops alliance level) is moved to KetraOrcSupport and VarkaSilenosSupport. Two checks are common to 10 different quests, on regular L2J you got 10 checks (so yeah 5x2 clone arrays of registered mobs).
   - addition of dropAlwaysQuestItems(int, int, int). That method is used when quest item drop is 100% (avoid to generate random number)
   - fix - when possible - every onKill section in order to use dropQuestItems / dropAlwaysQuestItems methods.
   - drop of the parameter in getNoQuestMsg() and getAlreadyCompletedMsg() methods.

Misc
   - mob attack stances has been harmonized through the different uses (Baium, L2AttackableAIScript, etc).
   - Paagrio => Pa'agrio typos fixes.
   - rework of broadcastPacket() method. It will use now the static system from Broadcast class. Added to that, the particular system from L2PcInstance regarding CharInfo is dropped. A special method is now used to broadcast it (named broadcastCharInfo()).
   - when you interact with a shop player, you will turn yourself in front of the player.
   - TargetSelected packet isn't sent to yourself anymore (only broadcasted to others).
   - Random tweaks on multiple methods (cleanup, checks imbrication, deletion of pointless stuff, and so on).
   - Addition of many informations regarding "sell, buy, warehouse" packets. Generally all regarding Inventory. Additions of many null checks aswell.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 245

Retail enchant system, quests, misc


Retail enchant system
   - differentiate fighters && magic weapons (ty rocoder for the DP parsing). Implementation of isMagical() in L2Weapon.
   - drop config related to jewelry.
   - different rate when weapon reach +15.
   - max limit is set back to unlimited.
   - the chance is now a double, not an int anymore, in order to keep accuracy (for armor).
   
Quests
   - addition of Q632 && Q642, ty Hasha && EnDmOsT.

Misc
   - some packets rework, ty Java-Man. Addition of isForThisClass() method. Hennas packets should be tested deeply, but from my few tests, they work.
   - Merge of HeroSkillTable and NobleSkillTable with SkillTable, ty Java-Man.
   - you can't PM yourself anymore (ty xblx for suggestion). It's not retail-like.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

#149
Changeset 246

Community Board (CB) part I, misc


CB is mostly cleaned up.
Some efforts have been made in order to use static stuff (like static strings && static ShowBoard objects).

A LOT of work is needed to complete it correctly (in disorder : cleanup hardcoded HTMs, recode HTMs to fit with IL CB dimensions (on IL, CB is more little...), add missing code, add GoD region tab)

CB
   - custom region tab has been entirely dropped.
   - friends panel is 50% implemented.
   - clan notices system is implemented, but not tested at all (and probably not working).
   - mail system is implemented, but check previous sentence for more infos.
   - Clan forums aren't created anymore if CB isn't enabled.
   
Misc
   - addReputation / takeReputation are the only commands to affect reputation (setReputation is used only for loading and as "core" for the 2 previous commands). They save *only* reputation from now, not the whole clan infos.
   - getHasCastle() and getHasHideout() have been renamed getCastleId() and getHideoutId(). Creation and use of hasCastle() and hasHideout() boolean methods.
   - getActingPlayer() uses on SiegeGuardKnownlist, GrandBoss and RaidBoss instances.
   - many random methods are cleaned up in order to create less objects, adding checks && readability.
   - addition of getClanAllies() method, used to retrieve clans in alliance.
   - Addition of AllianceInfo serverpacket (untested)
   
Reminder for future : it's better to initialize variables INSIDE a loop (in order to reduce scope range). The logic consisting to think to initialize it outside is better is false and is even worst.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>