Last aCis updates

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

Tryskell

#180
Changeset 280

Quests

   - addition of Q326, Q330, Q376, Q377, Q380, Q622.
   - fix last revision loop edit on Varka/Ketra scripts. Ty xblx for warning.
   - fix Q624 party quest state.




Changeset 281

Fishing tournament, GM commands && misc


Fishing tournament
   - the most awaited && acclaimed feature of 2007 finally added.
   - what more to say... Stfu && enjoy ?
   - dedicated to sahar. He knows why.
   - ty UnAfraid for some HTMs.
   
GM commands
   - //list_spawns now uses an HTM with clickable locations. It also uses current target if npcId entered as parameter isn't ok.
   - added a button on shift+click npc info list for spawns.
   - //list_locations command is dropped, as //list_spawns makes that job by default now.
   - slight edit of main_menu.htm.
   
ServerVariables
   - addition of a table dedicated to misc things of the server.
   - probably will store more than current use (only fishing tournament atm). Events, 7S, olympiads ?
   
Misc
   - rework StatsSet, picking up g1ta0's work. Probably more to come, it's a gold mine...
   
Report on forum about fishing tournament. As the system comes from a well known source, I didn't bothered to test too much. I added some HTMs, one missing SystemMessage, fix the custom length formula which now fits retail criterias, and observed the regular mechanism of load/save. For example, I didn't test reward period. So tests and reports, even if working, would be appreciated.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 282

Quests, misc


Quests
   - addition of Q407, Q408, Q409 && Q419. Ty sharers.
   - reworked "PathTo" CREATED_STATE quests (easier to read), and set final exitQuest() to TRUE, in order to see HTMs.

Misc
   - add a layer called ExProperties, improving readability/creation of Config.java
   - Drop StackIDFactory, making BitSetIDFactory the only choice. Related configs are dropped.
   - Cleanup BitSetIDFactory, dropping some synchronized.
   - some Float had to be dropped ; they're edited for Double.
   - put default values for CH configs.
   - fix various problems on CabaleBuffer instance. Delay autochat from 30sec to 60sec (not retail).
   - random : add a missing rset.close(), put 2-3 methods static, use of getters and cleanup some crap in LS.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 283

Quests, misc


Quests
   - fix NPEs on Q602 and Q111. Drop null checks on Q607, Q608, Q613, Q614 (already handled by getPartyMembers()).
   - few "Quest." and invisible typos cleanup (but well as replace works well... Why not ?). By typos, there were double "  ", space after/before "
", etc...
   - addition of Q402, Q404, Q405, Q410, Q411, Q412, Q601. Ty sharers.
   
Misc
   - drop few stats and "uses" : EXPSP_RATE, NONE_WPN_VULN, ETC_WPN_VULN, FIST_WPN_VULN
   - rewardExpAndSp() : exp parameter is a long instead of int.
   - no more calcStat use for exp/sp rewarding.
   - fix a location in GM teleport, drop a line on Varika HTM.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 284

Quests, misc


Quests - 320 scripts overall ;p
   - addition of Q363, Q415 && Q418 (tested 2/6 ends). Ty sharers.
   
Misc
   - fix L2ClanMember issue.
   - revert one fix of [255] - L2Attackable drop edit back to regular L2J + cleanup.
   - MoveBackwardToLocation cleanup.
   - drop admin commands related to NPCs edition (12 overall - preparing next commit), rework survivors.
   - cleanup few TODOs.
   - added 50 spawns in Orc Territory, 5 for Q415 (Aren and quest mobs). The L2J IL spawnlist is just ubber failed in fact lol, missing few hundreds spawns.

Note to myself : 37052 spawns before any refactor. The time will say if I was true or not :D.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 285

NPCs templates refactor part I - Ty to devilKing for data parsing.


An important work has been made in order to merge, and then SQL -> XML all data related to NPCs.
That work is a first step and is commited to let me a clear view of next additions, see bottom for what is missing.

Following SQL tables dissapear :
   - npc_ai_data.sql
   - npc_skills.sql
   - npc.sql
   - minions.sql
   - skill_learn.sql
   
Following XML dissapears :
   - droplist.xml

Some new functionalities :
   - addition of isSeedable() support.
   - unhardcoded critical value (mobs got different % to critical : 1, 4, 8).
   - NPC shield support. Feel that sad feeling when your hits are blocked by a mob !
   - Debugged ss/bss usage for NPCs. You thought NPCs were stupid... And you were right. But now they're powerful.
   - Debugged stats system (was heavily affecting summons).
   
And, in the biggest capharnaĆ¼m :
   - edit L2CharTemplate, L2NpcTemplate and L2PcTemplate stats names, and so by extension XMLs. For classes parsing, there is a noticable drop in weight removing "skill" from "skillId" and "skillLvl" (-200ko).
   - drop from XMLs classes things which could be set by default on core, and shared amongst all templates, notably :
      - basePAtkSpd (default 300)
      - baseMAtkSpd (333, shared with mobs) - the stat just dissapears, replaced by flat value on the used formula.
      - baseCritRate (default 4)
   - stats who were supposed to be boolean (but weren't due to the use of SQL) are now boolean.
   - following methods (setters, getters, variable) dissapear :
      - getSex() - no use (I speak of npcs, ofc)
      - getBaseHpConsumeRate() - no use
      - getBaseMpConsumeRate() - no use
      - _aiClass from L2Character - no use      
      - getBaseMAtkSpd() - 333 for all
      - getBaseMCritRate() - 80 for all      
      - isServerSideName() - isCustom() addition
      - isServerSideTitle() - isCustom() addition
      - getBaseShldDef() - 0 for all (affected by worn lHand)
      - getBaseShldRate() - 0 for all (affected by worn lHand)
      - overidden getCollisionRadius() / getCollisionHeight() from L2PcTemplate (what was the point to store in another variable and not using the extended variable ?)
      - _staticAIData and its getter on L2Npc (can be easily replaced by getTemplate().getAIData(), avoid to maintain 65xx AI objects just for shortcuts...).
   - isCustomNpc() addition (compares if npcId and templateId are different, if yes, it is considered as a custom npc)
   - existing float are changed for double.
   - base patk, pdef, matk, mdef are double not int anymore (keep accuracy for calculations).
   - shift+click on NPCs is cleaned up (generated HTM is shorter, drop of (L2Character (this)), fix skill / drop / spawn views for custom NPCs (was using idTemplate instead of id), addition of missing infos (harvest, ss/sps count/rate).
   - _seeded L2Attackable internal boolean flag is dropped, as that state can be checked using _seedType (> 0 meaning it is seeded).
   - Config.CHAMPION_ENABLE is dropped. If frequency > 0, then we can have champions... So that config is useless.
   - default values concerning champion configs are equal in Config.java and .properties.
   - drop of admin_kill_monster command (unused) and drop of AdminKill handler (merged admin_kill on AdminAdmin).
   - fix a NPE in Q111.
   - fix shops animation while running (you still could run for 2.5sec before stopping). Ty UnAfraid for the report.
   - fix few Double values in Config which weren't correctly parsed as Double.
   - getPlayersInside() && getPlayableInside() are dropped for getKnownTypeInside(). Cleanup of L2BossZone.
   - fix systemMessages while missing a regular attack - ty Hasha for report.
   - fix target cancel while attacking (pressing esc)
   - fix a PHX exploit, ty PaganTemplar for report.
   - fix polymorph issue, ty Sweets for report.
   - fix an issue with henna addition, ty Silentium.
   - fix a problem with quest parameters, ty povis111 for report and Hasha the Villain for fix.
   - add few HTMs on default folder.
   
If you (think you) have better data, consider sharing. devilKing will surely be pleased to parse it, again, and again.

Things to do in part 2 :
   - isSeedable() use for seeding purposes (atm only one check for harvest).
   - debug rHand/lHand stats, in order mobs use shields.
   - debug stats, all NPCs stats are very weak.
   - active skills missing on all templates atm.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 286

NPCs template refactor part II, Recipes, misc


NPCs
   - fix missing teachTo infos (infos took from aCis, no reason L2J was wrong).
   - add ACTIVE skills on all NPCs templates. Use of L2OFF GF (aCis skill list) for the ACTIVE skill list.
   - fix custom names/titles (isCustom() uses).
   - fix all Races using L2OFF GF "race" parameter. It uses only 4416 instead of 4290-4301 && 4416.
   - addition back of the Wedding manager custom NPC.
   - edition of shift+left click on NPCs. Addition of few infos (race, canMove).

Recipes
   - fix an issue concerning recipes loading, ty Hasha.
   - better performance overall (drop a map, avoid few generation of lists, drop synchronize keywords, drop of TempItem class, random cleanup,...)

Misc
   - Checks involving hpratio are unified (easier to read).
   - Fix TARGET_AREA_UNDEAD (rename it for AURA, as those skills are AURA not AREA ; clean the target type ; fix the mechanisms). Ty Hasha for report.
   - Cleanup GBs scripts.
   - correct Extractable message, ty Sahar.

PS : As the old aCis skill list was using L2OFF GF, the gain of RAM is around 25mo between this rev and 3 revs ago. Now passive skills are the ones written in client description.

More parts to come, we still miss 53 templates and calculations of stats from core.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 287

NPCs, AIs, misc


NPCs
   - Few fixes on npcs.xml (few mobs being canMove when they shouldn't, etc).
   - Indent using tab instead of spaces = -600ko.
   - Clan system is revisited :
      - "clan", "clanRange" and "ignoreIds" don't need anymore a default value on npc templates (drop of all clan="" clanRange="0" ignoredIds="").
      - if a mob hasn't "clan" parameter, "clanRange" as "ignoreIds" aren't parsed. A mob can have : 1/1/1, 1/1/0 or 0/0/0 (default, no need any write).
      - "clan" is now correctly parsed and used. It needed an important rework in order a template accept multiple clans.
      - "clanIgnore" is renamed for "ignoredIds". The system is now correctly parsed and used.
   - Addition of "ignoredIds" in shift+click panel.
   - L2AttackableAI cleanup.

AIs
   - Addition of GatekeeperZombies script.
   - Fix aggroReconsider() method (no more NPEs), which returns previous target if no new target fits. Simplify the method.
   - Fix Sprigants behavior. The task loop is now correctly stopped in case players die or leave the area.
   - Fix custom scripts in order they send back bug report/HTMs. Not really a fix, as AIs don't use any HTM, but better follow that rule.
   - Orfen AI :
      - General cleanup.
      - Edit initial spawn point of Orfen on SQL (happens only at first server startup) from her lair to 1st location (out of 3).
      - Edit her aggro range from 500 to 1000.
      - The 4 minions are handled by minion system instead of script (it generates decent random walking and minions follow Orfen).
      - Edition of the zone check system for a Valakas/Baium similar looking one (inactivity = reset). That check is made every 60sec, not 10sec anymore.
      - If inactive during 30min, Orfen randomly walks on 1 of the 3 locations (not lair). If she was already tagged as teleported, drop the teleport flag.

Misc
   - Fix rev285 henna issue, ty Hasha for report.
   - [L2J 5756] hasAtLeastOneItem() method. As it isn't limited to quest items, it is put on Inventory.
   - Cleanup Quest.java methods, avoid to retain unused variables.
   - Addition of Util.contains(array, array) for clan comparison cases. Return true if at least one element is common to both arrays.
   - Existing Util.contains methods got "==" edited for "equals". They also check if array integrity is ok (null or empty array returns false).
   - Drop of isParty(L2Skill) method.
   
Notes :
   - Orfen movement sucks because of the miss of geodata check, perhaps later it will be improved (or share if you found better way to handle it).
   - When a NPC got multiple clans, it uses the same clan range value for all of them.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 288

NPCs template refactor part III, misc


NPCs refactor
   - handle final stats calculation from template stats (formula : base * carac bonus * levelmodifier).
   - fix pets evasion/accuracy

AIs
   - "FleeNpc" is moved to "group" folder, and is renamed "FleeingNPCs".
   - split L2AttackableAIScript content into 2 layers : L2AttackableAIScript and AbstractNpcAI.
      - "group" and "individual" AIs extends AbstractNpcAI. That layer got methods dedicated to such AIs.
      - L2AttackableAIScript becomes a basic script, stored in "group".
      - That split prepares the eventuality of listeners system addition.
   - random cleanup (SummonMinions, Orfen, etc).
   - Addition of BrokenLabyrinth script : http://boards.lineage2.com/showthread.php?t=146273
   - Addition of PlainsOfDion script.
   
Misc
   - Addition of _scriptValue system. Drop of hasSpoken system.
   - AI timeout is setted back on 120sec (after L2OFF IL check).
   - critical with barehands is correctly calculated (after L2OFF IL check : use DEX mod).
   
Notes
   - _scriptValue is unique to a spawn, you have to care about multiple scripts editing behavior of a npc.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 289

Antharas, GBs / RBs, misc


Antharas
   - Addition of the script, fully reworked. Fast comparison with L2J version :
      - highly cutted script (450~ lines of code instead of 950+)
      - use of 2 SocialAction during cinematic.
      - far less tasks used.
      - use of a dummy id (29019) in order to register it in grandboss table (avoid 3 states).
      - players are initially teleported far from where Antharas spawns.
      - minions are handled by regular AI system.
   - Edition of the GrandBossTeleporters for the npcid 13001.
   - npcs.xml is edited to reflect behavior (had to edit type, add aggro on behemoths, etc).

GBs / RBs
   - cleanup of RaidBossSpawnManager.
   - initial HPs/MPs of GBs and RBs at first server launch are fixed (0 = getMax).
   - Following bosses are spawned, as templates are ok (manually fixed) now :
      - Boss Akata
      - Nellis' Vengeful Spirit
      - Rayito The Looter
      - Dark Shaman Varangka
   - GBs don't take summons nor invisible GMs in target anymore.
   - Valakas skill choose is improved (less spam of imba skills, clever use of FRONT or BEHIND skills).
   
Misc
   - getQuest() isn't case sensitive anymore.
   - fix RequestBypassToServer (that treatorous index is -1).
   - getRandomPlayer() : returns a random player (must be alive and not a invisible GM).
   - getPlayersCountInPositions() : returns an array composed of numbers of players in front of, behind and on sides of a npc.
   - addition of FrenzyOnAttack script (5 orcs types).
   - few messages added in SummonMinions script (Timak Orc Overlord case).
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 290

Summons, misc


Summons
   - fix stats (they finally had to use funcs).
   - fix base critical on summons (40 for all).

Misc
   - fix an issue involving null objects on pet pickup action.
   - minions follow distance is made using collision radius of both minion and leader (avoid weird 500 distance on rb minion follow).
   - drop few methods on instances which are only knownlist stuff.
   - fix skills 118 and 163 (nerf mages nudists ;p).
   - fix order of tradelists' content.
   - isSeedable() implementation.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 291

AIs, misc


AIs
   - addition of the cursed ToIVortex script.
   - addition of FirstClassChange script (mix of 4-6 scripts), ty to Fernandopm :). Compared to his version :
      - addition of ids 32097 and 32098 (+56 missing HTMs).
      - cleanup the advEvent (a single array is kept instead of making *8 map checks).
      - Pa'agrio and others typos.
   - edit ShadowWeapon ids ; it takes directly ids from scripts FirstClassChange && SecondClassChange (as second script isn't made yet, the array is still local).
   - fix Barakiel minions AI.
   
Misc
   - fix subclass crap (Maximilion/Jurek and others Mystic/Priest).
   - fix dozen of typos on village_master HTMs, and harmonize links position (L2J team was dyslexic back in 2007...).
      - all first masters got a link for shadow weapon coupons exchange.
      - all second masters got a link for subclass. First masters who had one is dropped.
   - addition of //show_scripts npcId : allow to see events affecting the given template.
   - fix L2EffectZone concurrent exception. As L2EffectZone are always supposed to have a skillid, initialize the map directly in order to avoid null checks.
   - after a check on L2OFF, bring the speed modifier when you run in water from 0.5 to 0.41.
   - revert canceling target fix but keep the cleanup (no whining anymore).
   - fix an issue on summon window stats about runspeed (it was only visual). In same time, getMoveSpeed() becomes an int.
   
Note : I tested 6 IDs out of 20+, and obviously hasn't the will to test/fix eventual typos on the 800+ HTMs, if there is issues, you know where to complain.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 292

Misc

   - [L2J 5772] Moving effect flags out of CharEffectList into L2EffectFlag enum.
   - cancels enchant process while moving.
   - equipped shadow weapons are now correctly handled at player login/logout (armors as weapons). Tasks can be canceled now (before it was running even unequipped).
   - 40% of Inventory file has been splitted into listeners.
   - fix //show_characters.
   - fix PaganTeleporter. Statue don't react to faded mark, triol's mirror hasn't any checks and the zone with faded mark is implemented.
   - added back handwritten ids for zone system. Dropped zone name (no use).
   - reintroduction of ZONE_SCRIPT for... scripts. Use that XML for your custom scripts.
   - drop merchant_areas_list SQL (unused).
   - random cleanup.
   
Notes
   - zones ids are still dynamically generated, but it will be replaced by a written id (if found). Scripts use ids 100000+.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 293

Misc

   - Numerous fixes on UseItem, mostly related to messages and readability. Unhardcode Calculator itemhandler.
   - ChristmasTree itemhandler wasn't loaded.
   - effects affecting players are restored before Enterworld access (fix HP/MP/CP issues at restart)
   - critical rate of summons is corrected.
   - fix a concurrent exception on PcFreight as object access was followed by list clear inside the loop (? lol). _depositedFreight is also initialized with player instance and never null anymore (drop null checks).
   - pets don't share anymore master reuse. Master don't receive anymore infos regarding pet uses (notably, icons-related stuff). Ty CreamCracker for report.
   - fix pet pickup message (on multiple items).
   - 6 items are now considered as potions (etcitem type is potion), ty Root for report.
   
PS : as items reuse system isn't really developed on IL chronicle (potions only ?), I decided pets timestamps won't be saved in db.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 294

Scripts, Misc


Scripts
   - Cleanup Core.
   - addition of Q373.
   - addition of StakatoNest AI. The whole behavior is postIL, but there are some evidences that AI was in preparation (perhaps fully working ? Who knows, it's the sort of definitively lost data) in IL time.

Misc
   - Fix previous commit regarding skill bar at restart (nice catch Trance).
   - Drop GlobalVariable system, as we got ServerVariables system.
   - Cleanup Quest (avoid to return L2ZoneType and others misc).
   - fix few max quests number checks (25 quests max according client ingame quest panel)
   - drop a double QuestList packet send at quest aborting.
   - cleanup of show_skilllist (use a simple array of L2Skill instead of a Map, no iterator, StringBuffer > StringBuilder).
   - drop null checks on NPC skills templates (never null).
   - fix summons skill level at skill launch (was generated from summon level...). The data was ok, but the level was overriden for godamn known reason.
   - the generic addfuncs are initialized before skills addfuncs (there were no problems, it's just more logical to load regular funcs then skills funcs).
   - gates level mod is reinitialized to L2Character one (potential problem about evasion), add 2 funcs for gates instead of overriden pdef/mdef (Ty masssttteeerrr :P).
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

Changeset 295

Sailren, MovieMaker, Zone system && GrandBossManager, misc


Sailren AI
   - A wild Sailren appeared ! Ty UnAfraid for the L2OFF script (leeched cinematic, oust location, exit gk locations, and inactive timer duration).
   - addition of the blank npc 32110 (for the animation), one L2BossZone, change of type for L2GrandBoss, one line added in grandboss_data.sql and edition of GrandBossTeleporters script to handle Shilen Stone / Teleport Cube behaviors.

MovieMaker enhancements
   - you can now see all parameters of sequences on main panel.
   - if you haven't a target, the movie takes you as target.
   - addition of "Back" buttons on Edit and Add HTMs, returning to main panel.
   
Zone system && GrandBossManager
   - GrandBossManager singleton system is dropped (use static approach).
   - Cleanup and few method renames.
   - Few fixes :
      - lists and maps from L2BossZone can't be null anymore (drop involved checks) and use concurrent versions.
      - GMs are now registered in _playersAllowed list - as regular players - if they used the "legit" way. They still have priviledges to teleport on such area and not being bothered by restriction.
      - avoid to add a zone if it was already existing (just a security check, as List allows doublons).
   - Reintroduction on ids on L2BossZone zones, in order to correctly load/save allowed players (cause a problem notably if you add/remove zones meanwhile).
   - L2ZoneType variables concerning zones children are moved in zones children :
      - affectedRace > L2MotherTreeZone.
      - affectedLvlMin / targetClass > L2EffectZone.
      - Following parameters are dropped : affectedClassId, affectedClassType, affectedLvlMax.
      - drop of internal flag _checkAffected, as isAffected() uses now inheritance.
   - All null checks concerning L2BossZone zones on scripts are dropped (as those scripts can't, anyway, work without those zones...).

Misc
   - Addition of door HPs view (happens in peace time or for siege defenders). isEnemy() is dropped and replaced by isAutoAttackable() for doors HP view.
   - All configs related to GBs are renamed. Hardcoded safeties are dropped, so don't edit configs when drunk.
   - fix clan ranks for heroes and nobles + L2ClanMember cleanup, ty BaT for report.
   - all variables on individual AIs are organized as following : zone, private static final, public static final, public.
   
PS : while L2ScriptZone are using 10XXXX ids, L2BossZone will use 11XXXX ones. Remember about it while adding custom zones !
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>