December 01, 2021, 02:17:19 PM

Last aCis updates

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

Tryskell

Changeset 401 (2407)

Bugfixes, Organization


Bugfixes
   - 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).
   
Organization
   - 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).
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

October 01, 2021, 07:25:45 PM #301 Last Edit: November 13, 2021, 07:18:13 PM by Tryskell
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.
   
Scripts
    - 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.

Bugfixes
    - 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.
   
Organization
    - 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>
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

October 26, 2021, 12:01:05 AM #302 Last Edit: October 26, 2021, 12:09:20 AM by Tryskell
Changeset 403 (2566)

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


AI
    - Rename ScriptEventType > EventHandler and enum content to fit with L2OFF naming convention.
    - Introduction of CLAN_DIED, NO_DESIRE, PARTY_ATTACKED, PARTY_DIED, SEE_ITEM EventHandler.
    - 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.
   
Scripts
    - 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".

Bugfixes
    - 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.
   
Organization
    - 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.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>

Tryskell

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).
    - Fix SIEGE_OF_S1_HAS_BEEN_CANCELED_DUE_TO_LACK_OF_INTEREST invalid parameter.
    - 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.

Formulas
    - Add retail-like heal formula. Ty YeahThePro for the formula.
   
Attack
    - 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).
   
Spawns
    - 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").
   
Bugfixes
    - 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).

Organization
    - 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.
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>