Last aCis updates

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


Changeset 401 (2407)

Bugfixes, Organization

   - Implement SiegableHall HQZones and the possibility to build Headquarters and respawn at the flag during a SiegableHall siege.
   - Banish all Players from ClanHallZone upon SiegableHall start.
   - Add Henna check over class change, disabling stats if invalid. Ty RooT for report, Hasha for fix.
   - Fix NPE over Contract Payment. Ty Sahar for report, StinkyMadness for fix.
   - Don't remove toggles upon teleport. Ty Denzel for report.
   - Fix silence interrupting wrong type of skills. Ty Sahar for fix.
   - Fix both Pagan's Temple top platform doors coords. Ty KabLe for report.
   - Fix augmented items shortcuts. Ty TigVecc for report, Evolution for initial fix.
   - Don't reward dead Party Players with items, only with adena. Ty Evolution for fix.
   - Karma players can be kept attacked. Ty ErHard for report.
   - Implement NO_REQUESTS_TO_DISPERSE sysMsg.
   - Don't change Summon follow state if using "attack" action. Ty Gigi85 for report.
   - Fix Summon "move" action - it now follows the target, but still simply move to location for Creature-unlike WorldObjects.
   - Fix Nightshade - Shade Sacrifice skill targethandler. Ty Gigi85 for report.
   - Implement EffectHeal / EffectManaHeal, fixing Sweeper enchant route n°2. Ty bojikman for report.
   - Make SiegeFlag un-lethalable.
   - Fix all Dwarven / Orc Villages Guards HTMs, which were leading to NPE due to invalid territory bypass. Ty Denzel for report.
   - Fix 38 merchants HTMs (up to 31670 included). Few had also the NPE due to invalid territory bypass.
   - Fix SHOW_SUMMON_CREST over teleport. Ty Denzel for report.
   - Add missing observe mode checks : NO_OBSERVE_WITH_PET, CANNOT_OBSERVE_IN_COMBAT and one (custom ?) Olympiad registration check (ty KabLe for that last one).
   - Implement GAMES_DELAYED sysMsg over Olympiads low amount of participants.
   - Rework Q414 quest logic. Ty stepbystep for report.
   - Fix ClassCastException upon CORPSE_MOB / AREA_CORPSE_MOB. Ty Sahar for fix.
   - Player, when under attack, shouldn't stand up if operating a shop. Ty Denzel for report.
   - Cancel Player shop process if teleporting (Player stay sat).
   - Add ClanHallManager#getActiveSiege (based on the same idea than regular Siege).
   - Implement ClanHallSiege#checkSide/checkSides (was only returning true).
   - Delete Castle#getDistance, ZoneForm#getDistanceToZone, ClanHallManager#getNearestSiegableHall ("approximative" zone check got no sense - the only viable checks are about if you are "in" or "out" a zone).
   - Rework "//zone show all" to show ZoneTypes in the Player's neighborhood.
   - Add WorldObject#getZones, delete ZoneManager#getZones (new version is more versatile/shorter coded).
   - Merge SiegableHallZone and ClanHallZone zones (previous was adding complexity for nothing, since there was no use of the extends).
   - Delete Player#isInSieagableHallSiege concept (unused).
   - Rework IAcceptFilter#accept to handle Socket instead of SocketChannel (fix 2 potential ressource leaks).
   - Use Point2D / Location instead of int[] for commons.geometry.
   - Implement "//show door", to visualize door coords in the Player's neighborhood.
   - Implement canBeHealed to harmonize checks between Heal/ManaHeal and their "over time" versions.
   - Cleanup OlympiadManager (use values() instead of Entry, use of computeIfAbsent, and don't make strange operations over Lists).
Triskel does not speak with foolish fellows who do not know their profession!


Changeset 402 (2516)

SpawnManager, Castles / Sieges, Scripts, Bugfixes, Organization

Initial implementation of L2OFF territory system - ty Hasha
    - Allow NPCs to randomly spawn over a defined territory, which is considered as "their" territory.
    - Allow to spawn multiple NPCs, if part of the same event.
    - Implement "out of territory" concept.
Following spawnlist types are now handled by that new system :
    - Regular
    - Raidboss
    - Seven Signs
    - Day/Night
    - Autospawn
    - Castle guards

Castles / Sieges
    - Implement PC guards upon start/mid victory.
    - Mid victory upon NPC siege doesn't end the siege anymore.
    - Add FollowerMovingAroundMaster script. Delete TownPet instance. Register some Folk as MutedFolk.
    - Queen Ant
        - Guard Ant now teleport if out of territory. Ty Denzel for report.
        - Add a Player kickout behavior upon Queen Ant spawn if they are on territory.
        - Guard Ant randomly frenzy, not Royal Guard Ant.
    - Fix Zaken teleport behavior. Add missing offset upon teleport. Ty Denzel for report, Hasha for fix.

    - Fix Beholder of Light 1 second respawn time. Ty Denzel for report.
    - Seven Signs monsters seal stones drop now depends about current winner few different spawnlists based on current seal owner).
    - No more "multiple times" spawns (some areas were previously flooded by monsters).
    - Monsters attack timeout is now handled by "out of territory" concept (60s timeout during combat mode, refreshed if returning to territory meanwhile).
    - Fix one typo over main menu. Ty Denzel for fix.
    - Fix Tutorial Book spam upon Player log out/in. Ty Denzel for report.
    - Cancel Player associated QuestTimers when such Player logout.
    - Fix 3075, 3079 and 3192 skills. Ty Denzel for report, Hasha for fix.
    - Skill oneshots upon Attackable properly trigger faction call behavior. Ty Kitsos for fix.
    - Add Npc#isInMyTerritory() concept.
    - Add ScriptEventType#OUT_OF_TERRITORY concept (used notably by Queen Ant script).
    - Add ZoneType#getKnownTypeInside(Class<A>, Predicate<A>) for easier usage.
    - Rename ZoneType#movePlayersTo as ZoneType#instantTeleport.
    - Add artifacts locations into CastleManager. They aren't controlled by SpawnManager anymore. Add related infos into castle.htm.
    - Rework ControlTower to use getScriptValue.
    - Implement IXmlReader#parseLocation(NamedNodeMap) and parseSpawnLocation(NamedNodeMap).
    - Move few methods from Location to Point2D (addStrictOffset, addRandomOffset, addRandomOffsetBetween). Introduce addPositiveOffset method. Rename addRandomOffsetBetweenTwoValues > addRandomOffsetBetween.
    - Replace the way new forum id is being generated. Ty StinkyMadness.
    - Pagination cleanup. Ty StinkyMadness.
    - All uses of Pagination are visually unified (//bk, //find, //skill and //skill list, //knownlist, //effect).
    - Replacement of <center> tags inside <td> by <td align=center>
Triskel does not speak with foolish fellows who do not know their profession!


Changeset 403 (2566)

AI, Scripts, Drop/spoils, Manor domains / Seeds, Bugfixes, Organization

    - Rename ScriptEventType > EventHandler and enum content to fit with L2OFF naming convention.
    - Proper implementation of ATTACK_FINISHED (rename of ATTACK_ACT), which is now called on either bow or regular attack END (and no over successful regular attack).
    - Move MY_DYING call to Npc, instead of Attackable.
    - Rework the aggro system, which is now bound to SEE_CREATURE (rename of ON_CREATURE_SEE) event. Delete ON_AGGRO EventHandler (custom).
    - Implement master/minions system directly on Npc, and add the mechanisms over AttackableAIScript, allowing overriding. Delete MinionList. Implement retail tasks about "minion despawn upon master death" and "teleport to master if out of territory".
    - Monsters which random walk don't return to spawn location anymore if they are already isInMyTerritory().
    - Introduce Quest#createOnePrivate and Quest#initializePrivate.
    - Introduce Npc#lookItem/lookNeighbor.
    - Gordon now pickups the Cursed Weapon if dropped on ground and it didn't dissapear yet.
    - Add OUT_OF_TERRITORY event over ImperialGravekeeper script.

Drop/spoils - Ty Hasha
    - Remove HerbDropData and herbDrops.xml. Remove "dropHerbGroup" param from NPC templates.
    - Update NPC templates (XMLs) with re-parsed droplists. Data source is npcdata.txt from AdvExt September 2019. Herbs are now part of droplist.
    - Merged various Monster#calculateXXXItem methods to one DropCategory#calculateDrop.
    - Rework //info drop and //info spoil. It now includes config rates, drop categories and use Pagination. DropCategory#getChance and DropData#getChance return chance in % as double, update the usage accordingly.

Manor domains / Seeds - Ty Hasha
    - Introduce manor domains under manorAreas.xml, using L2OFF defined territories. Replace usage of MapRegionData to ManorAreaData for seed sowing check. Indirectly fix a possible exploit of luring monster to another manor area to sow it.
    - Cleanup Seeds item handler, reorganize conditions to match L2OFF, added one missing SystemMessageId.
    - Cleanup Harvesters item handler, use FrequentSkill for harvest skill.
    - Fix an issue where multiple players could sow a monster.
    - Refactor SeedState
        - does not extend ArrayList, the crop is always one item type
        - added #isHarvested check
        - fix #isAllowedToHarvest, checks for player itself or seeder's party member (as per L2OFF)
    - Sow skill handler
        - Reorganize conditions to match L2OFF.
        - Add one missing SystemMessageId. Ty Denzel for report.
        - Remove custom extra sound and party message.
    - Harvest skill handler
        - Reorganize conditions to match L2OFF.
        - Remove useless SystemMessageId and InventoryUpdate usage.
        - Remove party distribution of crops - only harvester gets them, while party members only get info message (as per L2OFF)
    - Player#addItem system message logic is extended by "Harvest".

    - Fix TargetAreaCorpseMob / TargetCorpseMob : they now work on any Creature registered into DecayTaskManager (which are, Summons and any NPCs - they don't work on Pet for obvious reasons).
    - Implement Creature#forceDecay. Will work on any instance being registered in DecayTaskManager. Fix servitors force decay.
    - Fix a NPE over Salvation skill over summons. Implement it for pets.
    - Add missing SERVITOR_PASSED_AWAY message.
    - Fix one typo over armorSets. Ty RooT for fix.
    - Add missing client notification during clan dissolution process. Ty RooT for report.
    - Fix chest behavior. Ty Hasha.
    - Revert aggro bonus for Raid related NPCs.
    - Delete MoveTime FloodProtector, generating desync upon click spam.
    - Fix SiegeSummon stackoverflow upon unsummoning it over siege zone. Ty Denzel for report.
    - Add ItemInstance parameter to ISkillHandler#useSkill.
    - Introduce DropType enum.
    - Delete herb specific drop rate configs, merged them under one "RateDropHerbs".
    - Rename "RateDropAdena" to "RateDropCurrency", since it now also affects Seal Stones.
    - Introduce StringUtil#trimAndDress.
Triskel does not speak with foolish fellows who do not know their profession!


Changeset 404 (2601)

SiegableHall part II, Formulas, Attack, Spawns, Bugfixes, Organization

SiegableHall - part II (3/6 fully working)
    - Add missing ClanHallManager attack players save upon server shutdown. Ty Denzel for fix.
    - Fix RAINBOW_SULFUR usage over RainbowSpringsChateau. Ty Minutis for report, Hasha for fix.
    - Delete 'clanhall_siege_guards' SQL table and use SpawnManager content instead.
    - Review following Siegable Halls, which are now OFF-like :
        - Devasted Castle (introduce AIs for Gustav, Mikhail and Dietrich, fix instances types/canMove/aggro). Fix one ClassCastException upon Q350 call.
        - Fortress of Resistance (introduce the 2 Nurka spawns depending if CH was previously owned, fix instances types/canMove/aggro).
        - Fortress of The Dead (introduce Lidia HP regen conditional task, fix instances types/canMove/aggro).
    - CH bosses aren't lethalable anymore. Ty Sahar for the report.
    - Addition of //ch siege start|end chId.
    - Implementation of FlagWar superclass, including BanditStronghold and WildBeastReserve scripts. Not tested.

    - Add retail-like heal formula. Ty YeahThePro for the formula.
    - Rework CreatureAttack / Attack packet. All effects are now precomputed.
    - Fix the scenario that causes next attack to be used without SS (self dying, target dying, getting stunned, getting interrupted,...)
    - The CP 0 over CW user is now properly handled (if task was interrupted, the CP 0 was still hitting).
    - Minions cleanup is now handled by ASpawn#doDelete.
    - Introduce MinionSpawn, fixing the ghost appearance upon minion kills and make the global minion handling easier.
    - Delete isMinion(), concept must be bound to _master, which is dynamic. Add hasMaster() check instead.
    - Siege guards return to their exact spawn point.
    - Fix all Castle Siege Guards (proper siege relation for every guard, proper spawn of the artifact room "bosses", edit the instance type of few "Folk").
    - Add missing NO_ITEM_DEPOSITED_IN_WH check upon Clan WH. Ty Denzel for report.
    - Revert some Playable edits made on previous revisions, breaking Summon cast rules/conditions. Ty Denzel for report.
    - Fix skills cast upon Arenas impacting friendly Summons. Ty Denzel for report.
    - Fix getRandomPlayer / getPlayersCountInRadius conditions, prior to last revision edition.
    - Make the client connection to gameserver easier. Ty Devlin/Haddwik/RooT for fix.
    - Add DIST_TOO_FAR_CASTING_STOPPED message upon onEvtArrivedBlocked. Ty Denzel for report.
    - Stop all running effects upon subclass change. Ty YeahThePro for the report.
    - Fix PlainsOfDion script range (checked on L2OFF).

    - Add Creature#isLethalable.
    - Add Quest#createOnePrivateEx (allow to spawn a minion in a exact X/Y/Z).
    - isMaster() now reacts to dynamic getMinions() script feed.
    - Add ASpawn#instantTeleportInMyTerritory with offset parameter.
    - Added //terr test to see random distribution over Territory.
Triskel does not speak with foolish fellows who do not know their profession!


Changeset 405 (2639)

Scripts, Spawns, Walker, Formulas, ChanceSkill, TargetHandler, Bugfixes, Organization

   - Fix Q421 tree agressive behavior + add summon animation over tree/ghosts spawn.
   - Add Daimon the White Eyed AI.
   - Rework Gordon to handle walking behavior natively (see Walker section).

   - Implement ObserverGroup / broadcasting towers based on L2OFF data.
   - Quest#createOnePrivate/Ex : add despawnDelay / isSummonSpawn parameters. Delete version with respawnDelay parameter (unused, not properly implemented). It now doesn't block minion creation if master died.
   - MinionSpawn#doRespawn blocks minion respawn if master died.
   - Fix Martankus position. Add Khavatari Aren missing spawn. Ty stepbystep for reports.
   - Delete Laura spawn, add it as Follower.
   - Reparse all pathes using L2OFF GF. Add missing 31525, 31705, 32128 pathes. Use NpcStringIds instead of custom hardcoded Strings.
   - Delete Walker/WalkerAI, implement concept over Npc/NpcAI. Any Npc can become a Walker now.
   - Greatly improve //show walker content.
   - Pathes can now be properly reverse-walked, but only if next path is unreachable by both direct and pathfinding.
   - Implement socialId (Gordon case).
   - Delete calcRaidAffected (custom). Such chances aren't hardcoded, but based on passive skills and resists.
   - Add some Javadoc, cleanup some methods.
   - Rework reflect skill damage skills. Ty Shilen for report.
      - Delete vengeancePdam / vengeanceMdam, introduce counterSkill instead.
      - counterSkill ALWAYS reflects a % of original damages back to the caster. Melee skills using BLOW, CHARGEDAM and PDAM are affected. The % is nothing more than the power of the effect, written on DP.
   - Delete all unused TriggerTypes and associated content.
   - Move TriggerType to enum package.
   - ChanceCondition TriggerType check is now done using an EnumSet instead of crafted int bitmask.
   - ON_ATTACKED triggers only on DAMAGING skills, not OFFENSIVE (no DoT / debuff). Ty ErHarD for report.
   - Fix castable debuff upon Party using CTRL. Ty StinkyMadness for fix.
   - Fix CORPSE_ALLY which wasn't affecting alliance. Ty StinkyMadness for fix.
   - Fix beneficial skills being castable from PEACE to PVP only with CTRL. Ty ErHarD for report.
   - Add missing message for Summon Friend. Ty StinkyMadness for fix.
   - Doors can't be attacked via skills when sieges are off. Ty Denzel for fix.
   - Rework Betray/Erase to use ONE TargetHandler. Delete TargetEnemySummon (custom). Ty ErHarD for report.
   - Fix player<>player cast during duel countdown. Ty shyr for report, StinkyMadness for fix.

   - Life Cubics don't waste BSPS/SPS anymore. Fix Life Cubic for Beginner. Ty stepbystep for fix.
   - Reset Npc regeneration flags upon respawn. Ty vladalien for fix.
   - Attacks upon Players using //hide are properly stopped if you aren't GM. Work on Summons too. Ty SweeTs for report.
   - Delete double SA bonus for 2 duals items. Ty YeahThePro for fix.
   - Fix skillId 2077, 1376, 444. Ty YeahThePro, KabLe for report, LaRoja for fix.
   - Fix itemId 8663, 8939 to 8944. Ty SweeTs / Asahi for reports.
   - Add Gorr minions. Ty Toxico for report.
   - Add Infernal Master SA removal on Blacksmith of Mammon. Ty Denzel for fix.
   - Craft window properly updates item count after a craft attempt. Ty Ailierynn for report.
   - Fix few static objects positions using L2OFF. Ty RooT for fix.
   - Fix FIST custom implementation. Ty Bandnentans for report.
   - Fix CRITICAL_HIT message upon physical skills. Ty YeahThePro for report.
   - Use addFortId instead of addString for all messages related to Sieges. Ty ErHarD for report.
   - Fix toggles order on buff list. Ty YeahThePro for report.
   - Delete custom teleport message on Dimensional Rift.
   - Add missing UserInfo over setNoble. Ty StinkyMadness for fix.
   - Add missing MACRO_NAME_ALREADY_USED check.
   - Refresh war relations when joining/leaving/being ousted from a clan. Ty Denzel for report.
   - Add Integer sanity check upon TradeList validation. Ty Denzel for report.

   - Add Pagination#generateSearch. Make a use over //help.
   - Teleport is renamed TeleportLocation.
   - TeleportData#showTeleportList is moved to Npc#showTeleportWindow.
   - ObservationMode / ObservationReturn are renamed ObserverStart / ObserverEnd.
   - Add StatSet#getNpcStringId.
   - Implement Playable#isInSameActiveDuel, isInSameActiveOlympiadMatch, isInSameParty, isInSameCommandChannel, isInSameClan, isInSameAlly, isInSameActiveSiegeSide, isAtWarWith.
Triskel does not speak with foolish fellows who do not know their profession!


Changeset 406 (2670)

Four Sepulchers, SpawnManager, Bugfixes

Four Sepulchers - ty Hasha
   - Q620_FourGoblets now extends ScheduledQuest, handling both FourSepulchers script and FourSepulcherManager. It now uses SpawnManager lists.
   - Missing room behaviors are added (such as Charm of Corner room, etc)
   - Change NPCs' type from SepulcherNpc to Folk. Moved and checked HTMLs.
   - Goblets are not quest items (kept during abort) as per L2OFF. Chapel Key is quest item as per L2OFF.
   - When accepting quest while having Antique Brooch, set cond 2 directly.
   - Fix opening of "Sealed Boxes" at "Ghost Chamberlain of Elmoreden" as per L2OFF.
   - Fix Ghost of Wigoth (Four Sepulchers) HTML logic.
   - Fix Ghost of Wigoth (Pilrimg's Temple) HTML logic, added missing HTMLs.
   - Fix Q620 Sealed Boxes droplist and chances.

SpawnManager - ty Hasha
   - Spawns heading is now set between 0 and 65536.
   - Rename events.

   - Fix skill cast animation being interrupted when attacking with a bow. Ty Sluger for report, Sahar for fix.
   - Fix Siege Summon unsummon upon teleportation.
Triskel does not speak with foolish fellows who do not know their profession!