l2topzone.com
l2topzone.com
l2topzone.com
l2topzone.com
l2topzone.com
l2topzone.com
l2topzone.com

Author Topic: [Project] aCis - Interlude  (Read 157410 times)

0 Members and 6 Guests are viewing this topic.

OfflineSweeTs

  • Full Member
  • ***
  • Posts: 167
  • L2topzone Votes: 55
  • Servers reviews: 0
  • Reputation: +290/-0
    Re: [Project] aCis - Interlude
    « Reply #240 on: February 03, 2019, 06:56:24 PM »
    Changeset 379 (1104)

    Zaken, Four Sepulchers, Dimensional Rift, Cleanup, Bugfixes


    Zaken
       - Addition of Zaken script. Ty Asmodeus for the initial work. Numerous cleanup and fixes have been done to fit exactly L2OFF script.

    Four Sepulchers
       - Big cleanup (CLogger, Maps are reviewed, merged methods, try-with-ressources,...) with a complete events cycle rework.
       - Fix NPE issue and invalid weight penalty check on FourSepulchersManager.tryEntry (called by Q620_FourGoblets).
       - Drop the 4 duplicated managers spawns from spawnlist (already handled by the Java class).
       - Fix multiple bugs/exploits related to chests interaction (they now instantly disappear).
       - SepulcherNpc onActionShift behavior is added.
       - Add the regular message broadcast "The monsters have spawned!" for Hall Gatekeepers on door opening.
       - Monsters, upon mysterious chest opening, instantly spawn. There isn't 3,5s delay.
       - The petrification effect on statues is now instant upon statue spawn to avoid statues got time to move/get aggro. Statues are also set as noRndWalk.
       - SepulcherMonster class is dropped, a script named FourSepulchers handle all old behaviors (and even more). NPCs are re-allocated as Monster.
          - Victims are removed from FleeingNPCs script to be included directly on FourSepulchers script.
          - Archon of Halisha (the ones with 18xxx npcId) are removed from SpeakingNPCs script (not retail).
          - Victim behaviour is added (run and shout while being hit by a NPC).
       - Added retail time limit upon Mysterious Boxes opening (can't open anymore after the 49th minute), with the associated message broadcast.
       - Add HalishaChest instance : animation on spawn, don't attack, don't random walk anymore.
       - Delete remnant Chapel Keys from Players on zone oust.
       - Edit begin/end timer to fit with royal_rush_npc AI, aka : 50th min game end, 55th min game registration, 0th min game start. Shouts are made from 5th min to 45th.
       
    Dimensional Rift
       - Regular cleanup on DimensionalRiftManager (IXmlReader, CLogger,...)
       - The room choice process is entirely revamped to avoid to use do/while loops which can potentially stuck up.
       - DimensionalRiftRoom is moved in its own file. A lot of cleanup here too (_roomMobs List is dropped, Location instead of int[]...).
       - Fix an issue where getFreeRooms considered boss room as valid empty room on initial start method (Rift was considered as 1 free cell to teleport in - while there was actually none).
       - teleToLocation override is moved from Creature to Player. Player also got a new teleToLocation(Location) method which simply call the super method and avoid the rift check (used only by Rift system).
       - Regular cleanup on DimensionalRift.
          - Store DimensionalRiftRoom instead of its id, which avoid to make a lot of get on DimensionalRiftManager rooms.
          - Timer / TimerTask are replaced for Future<?> and get use of ThreadPool.
          - CopyOnWriteArrayList > ConcurrentHashMap.newKeySet().
       
    Cleanup
       - More Cloggers.
       - oustAllPlayers() returns the List of kicked Players.
       - Add scriptValue as part of npcinfo.htm.
       - GameServerTable is slightly refactored : renamed to GameServerManager, get use of CLogger and IXmlReader. servername.xml is renamed serverNames.xml.
       - PlaySound complete packet structure. Ty RooT.
       - Add IXmlReader addAttributes to feed an existing StatsSet. Few StatsSet cleanup. Ty Melron.
       - Npc#onActionShift npcinfo GM content is moved on sendNpcInfos.
       - L2AttackableAIScript#testCursesOnAttack method is added and used on every GrandBoss (bosses who haven't yet been reworked aren't affected - Core and Orfen). testCursesOnAggro is also added.
       - Quest / Scripting
          - onAttack behavior is edited to allow any Creature attacker to trigger it (and not only Playable).
          - onKill behavior is edited to allow any Creature killer to trigger it (and not only Playable). Indirectly fix a huge issue, where a NPC attacker would stuck victim onKill event.
          - Following methods return QuestState instead of Player, for easier management inside quests. Associated quests have been edited.
             - getPartyMembers(Player player, Npc npc, String var, String value).
             - getRandomPartyMember(Player player, Npc npc, String var, String value).
             - getRandomPartyMember(Player player, Npc npc, String value).
             - getPartyMembersState(Player player, Npc npc, byte state).
             - getRandomPartyMemberState(Player player, Npc npc, byte state).
          - Addition of Quest#addGameTimeNotify(). You can now easily add scripts behaviours based on ingame day time.
       - Add Creature#isInsideRadius(Location loc, int radius, boolean checkZ, boolean strictCheck).
       - Add Attackable#cleanAllHate() - which clean the hate, but keep all AggroInfos (to keep track of rewards).
       
    Bugfixes
       - isBannedGameserverIP returns true if IP address can't be retrieved.
       - Fix the auto-attack behavior which should stop once the target isn't autoattackable anymore (include skills nextActionIsAttack behavior). Ty Kraker for fix.
       - Some crests related packets checks addition. Fix one potential client crash. Ty RooT.
       - Fix a title exploit adding a regex pattern for RequestGiveNickName. Drop isValidPlayerName.
       - Fix minions dissapearing after healing (ex : Ant Nurses)
       - MutedFolk onActionShift behavior is added.
       - Stop the current bow attack if the Player hasn't enough MP. Ty ForgeOfGods.
       - Fix the possibility to target things when incapacited.
       - Add OTHER_PARTY_IS_Broken check for duels.
       - Edit Attackable#returnHome(boolean) to use cleanAllHate() instead of _aggroList.clear(). Drop hasAI() and getMoveSpeed() checks (the first creates issues upon single player region teleport, the second is simply pointless).
       - AutoSpawnManager fix on AutoDespawner. Ty Denzel for fix.
       
    PS : Four Sepulchers configs are all edited. Please refresh your events.properties.
    PS : Regular teleToLocation(Location, int) should always be used. The only counter to this rule is teleported by rift itself (otherwise you are moved back to waiting room) or eventually custom skills which teleport you (rush, etc).

    l2topzone.com
    l2topzone.com
    l2topzone.com
    l2topzone.com
    l2topzone.com

    OfflineSweeTs

    • Full Member
    • ***
    • Posts: 167
    • L2topzone Votes: 55
    • Servers reviews: 0
    • Reputation: +290/-0
      Re: [Project] aCis - Interlude
      « Reply #241 on: February 20, 2019, 04:12:59 AM »
      Changeset 380 (1133)

      RaidBossManager rework, Admincommands, DayNightSpawnManager rework, Scripts, Cleanup, Bugfixes


      RaidBossManager rework
         - Regular cleanup (CLogger, try-with-ressources, stringified queries,...).
         - Edit tasks to not be canceled, probably fixing InterruptedException on raid boss death.
         - Tweak raid boss death query in order to only update it, and not all raid bosses.
         - Fix the raid boss loaded HPs upon server restart.
         
      Admincommands
         - Revert //setinvul (setIsInvul true), rename it //invul and move it on AdminEffects.
         - Add //undying, which takes back the current //setinvul behavior (setIsMortal false).
         - Add //buff <skillId skillLvl>. If no valid Creature target, use player itself. Can be used as buff/debuff.
         - Fix admincommands para_all / para (mobs were still ending current casting/attack).
         - Add admin_debug for the alt+G panel ("Information" button).
         
      DayNightSpawnManager rework
         - Cleanup (divide by 3 the class).
         - Hellmann is moved out, to its own script. The day/night spawn is fixed.
         - Fix the issue where day/night spawns are only handled on next day/night change after server start.
         
      Scripts
         - ON_CREATURE_SEE event type is added.
         - Fix Q023 : upon saying Innocentin you didn't read the book, the quest was freezed.
         - Q024_InhabitantsOfTheForestOfTheDead is added.
         - "ForestOfTheDead" script is added. In the end, it will gather all related AIs. Handle following for now :
            - Hellmann day/night spawn.
            - Cursed Village NPCs day spawns.
            - Q023 "Maid of Lidia" night spawn.
            - Q024 night Dorian check.
         - Add a missing QueenAnt onAttack condition regarding fire spells. Ty bowling4soup.
         - NPE fix for onKill. Also allow onKill to handle custom suicide behaviours (simply check if killer is npc).
         
      Cleanup
         - Complete ChangeMoveType packet structure. Ty RooT.
         - Complete TeleportToLocation packet structure.
         - Rename Creature#teleToLocation for teleportTo.
         - Addition of instantTeleportTo method (used for short distance teleport, mostly skills). GetPlayer skillhandler is edited to use it.
         - Addition of WorldObject#refreshKnownlist() method (used only by instantTeleportTo).
         - Drop unused Player constructor.
         - Move all unrelated content (spoil, soul crystals, seed,...) from Attackable to Monster (1 Map, 2 Lists, few other variables : Guard / SiegeGuard don't need such).
         - Slight Henna rework, ty StinkyMadness.

      Bugfixes
         - On teleport, the heading is now taken in consideration.
         - Fix NPE for detached Players upon //character_info use. Ty sahar.
         - Complete previous fix regarding auto-attack behavior which should stop once the target isn't autoattackable anymore.
         - Fix Q634 Dimensional Fragments drop amount/rate.
         - Anakazel rewards Soul Crystal leveling to all party members.
         - Fix a weapon equip task exploit. Ty Celestine for the detailed video.   
         - Fix ghost attacks upon stun/sleep/paralyzed/... effects. Notably visible on NPCs.

      OfflineSweeTs

      • Full Member
      • ***
      • Posts: 167
      • L2topzone Votes: 55
      • Servers reviews: 0
      • Reputation: +290/-0
        Re: [Project] aCis - Interlude
        « Reply #242 on: March 29, 2019, 11:01:03 AM »
        Changeset 381 (1225)

        Updates, Cleanup, ClanHall, Bugfixes


        Updates
           - aCis officially support JDK11 (since Oracle changed their licence, consider to use OpenJDK), and is now mandatory. Older/different versions aren't supported anymore.
           - Refresh mysql connector from 5.1.26 to 8.0.15.
           
        Cleanup
           - Revert StringUtil#isEmpty(String... strings) logic.
           - Rnd.get(list) / Rnd.get(array) uses are unified over the source. Those methods don't send anymore default values, and will lead to errors if the given array is null.
           - Add Player#isWearingFormalWear().
           - Add ExProperties#parseIntIntList.
           - Add ZoneType#addKnownObject / removeKnownObject.
           - Drop L2Skill isDemonicSkill() / isFlyingSkill() / isStriderSkill() - no use anymore.
           - Activation of the try-with-ressources warning. All impacted classes were cleaned up in the process (renames, CLogger addition, regular writting style, Stringified queries, Javadoc...). I won't list all changes, but there was something like 200+ warnings.
           - IdFactory
              - Merged with BitSetIDFactory.
              - Drop _freeIds.clear() on initialization (Javadoc says it sets to false by default).
              - Drop _initialized flag (unused).
              - Drop Collections.sort(usedObjectIds) (pointless).
           - Basic Duel packets cleanup. Add missing ExDuelEnemyRelation packet (with no use). Ty RooT.
           - ZoneType#getKnownTypeInside returns Collections.emptyList() if no characters are found - avoid to generate an empty List for nothing. Delete children classes isEmpty() checks.
           
        ClanHall
           - Complete rework of ClanHall system. Added to the regular cleanup (CLogger, Javadoc, Stringified queries,...) :
              - Improve clanhall admin management.
                 - Usage is now //ch chId <set|del|open|close|goto|end> (one admincommand for all actions).
                 - Clan Hall and Siege admincommands got now seperated AdminCommandHandler.
                 - No more Exception on invalid parameter for both clan halls and sieges admincommands.
              - Fix clan hall doormen "To Beginning" button.
              - Change the way of attribution of ClanHallManagerNpc ClanHall (no subsequent ClanHallManager calls).
              - XMLize static data (moved out from SQL). Merge Auction db content with ClanHall db content. AuctionManager is dropped, Auction is now stored to the ClanHall directly.
              - Rework the fee task to be more friendly.
              - ClanHallFunctions are loaded in same time than ClanHall, to benefit from the existing Connection. ClanHall don't use anymore one Connection per ClanHall, too.
              - "Clan Action" panel is refreshed upon ClanHall free() method call.
              - Fix an issue with owned ClanHall bids cleaned up upon server start.
              - Upon setOwner() : previous owner got some actions made on it, fee task is renewed for new clan, existing ClanHallFunctions are deleted, outsiders are dumped out.
              - Doors are closed for both free() / setOwner() processes.
           
        Bugfixes
           - Implementation of EventTrigger packet + retail usage (castle traps visual effect on siege progress). Ty RooT.
           - Implementation of ExMPCCPartyInfoUpdate packet.
           - Add mods_wedding as part of restored objectIds (otherwise those ids are usable, while they shouldn't).
           - ShortcutList / Shortcut
              - Fix addition/remove/update SKILL shortcut type (manual or from trainer).
              - Integrity check upon addition (check MACRO, RECIPE, ITEM, SKILL types).
              - Fix cleaning issue for ITEM (dropping an item on ground was only clearing the first occurence of shortcut met, not others if existing).
              - Implementation of ShortCutDelete packet.
           - Olympiad Competition starts time seconds are set to 0.
           - EnterWorld exploit fix (create a special GameClientState ENTRING for the occasion, more infos here : https://acis.i-live.eu/index.php?topic=10070).
           - GMViewSkillInfo shows correctly disabled skills when wearing Formal Wear. Also refresh skills state upon equiping/unequiping Formal Wear.
           - Add back regular skills use for mounted players and cursed weapons users. Indirectly fix SoE and alike skills items for mounted / CW user.
           - Fix zone/region overlapping (can be tested on Giran castle active front trap). Ty bowling4soup.
           - Fix Q348. It uses L2OFF script for Blooded Fabric acquisition formula.
           - Add MultiSellChoose _entryId integrity check to avoid packet craft (avoid IOOBE). Ty Ghadda / bowling4soup.
           - Rework BrokenLabyrinth based on L2OFF GF. Fix an IOOBE.
           - Edit Linux shell scripts to automatically create log folder if not existing. Ty RooT.
           - Add CW SocialAnimation upon ranking.
           - Fix CW visual effect (goes from 1 to 10 stage, not 0 to 9). Ty RooT for tip.
           - Fix XP/SP calculation. HP ratio is already taken in consideration by template values. Ty Ghadda.
           - Revert previous edition of a config, based on Sahar observations - From -18104, 109992, -2656 to -18312, 110056, -2512 archers could shoot.

           
        PS : if you already own a live server, you have to add "?serverTimezone=UTC" as part of database URL.
        PS2 : you have to refresh your developement board :
           - OpenJDK 11 can be downloaded here : https://jdk.java.net/
           - Eclipse 2018-12 or any IDE accepting JDK11.

        OfflineSweeTs

        • Full Member
        • ***
        • Posts: 167
        • L2topzone Votes: 55
        • Servers reviews: 0
        • Reputation: +290/-0
          Re: [Project] aCis - Interlude
          « Reply #243 on: April 25, 2019, 03:20:52 PM »
          Changeset 382 (1288)

          Since a lot of core has been edited/moved, sources will be exceptionally shared at rev 382 for Customers, added to the diff patch for the adventurers. If you begin to dev a project, I strongly invite you to port your customs directly on 382 shared pack.

          Organization, Cleanup, Bugfixes


          Organization

          A lot of organization has been made, in order to give some consistency to core side.
             - Creation of package gameserver.enums. All existing enum have been moved here, and renamed to either get distinct name (CtrlEvent / EventType being too generic), and to fit with new convention name for enums (has to end with "Type" or "Status").
             - Creation of package gameserver.model.actor.player and gameserver.model.actor.npc, holding classes related directly to Player and Npc (+ children) classes.
             - Creation of package gameserver.model.spawn, holding AutoSpawn / L2Spawn / BossSpawn classes.
             - Drop model.base and model.actor.appearance packages.
             - Player is moved out of model.actor.instance, to model.actor.
             - Drop of Broadcast class and gameserver.util package, content is splitted between World / ZoneManager / Creature.
             - Drop of gameserver.templates package. StatsSet is moved to common.util.
             - Drop of gameserver.instancemanager, with rename : SevenSigns > SevenSignsManager, SevenSignsFestival > FestivalOfDarknessManager. Both are cleaned (CLogger, try-with-ressources,...) and moved to gameserver.data.manager.
             - AutoSpawnManager > AutoSpawnTable and moved to gameserver.data.table, with a split of AutoSpawnInstance > AutoSpawn moved to gameserver.model.
             - Drop XMLDocumentFactory and gameserver.xmlfactory package (no use anymore).
             - Drop gameserver.model.petition package, move Petition back to gameserver.model (we avoid to use package for single classes).
             
          Cleanup
             - Refresh DP .project to avoid Eclipse warnings.
             - Move GET_PLAYER and INSTANT_JUMP skills to their own SkillType, TELEPORT, in order they aren't used by regular AI system. In order NPCs use them, you have to write additional script.
             - Add Npc#doCast(SkillType), which randomly cast a skill based on its SkillType and associated to the NpcTemplate skills.
             - Heading is now part of getPosition(). New setXYZ/spawnMe methods have been generated to give the possibility to feed heading in same time than X/Y/Z. To set the heading independently, you have to use getPosition().setHeading(heading).
             - Improve Npc#toString().
             - Rename Player#getPet() / setPet > getSummon() / setSummon(), since it is supposed to return Summon, which are both Pets and Servitors.
             - Walker doesn't override HP drop stuff (since it inherits from Folk#isMortal).
             - Creation of Punishment model (with Javadoc) in model.actor.player, holding all punishments informations of a Player.
             - Creation of HennaList model (with Javadoc) in model.actor.player, holding all Hennas informations of a Player. Ty vampir for the initial contribution.
             - L2Radar > RadarList + Javadoc and move it to gameserver.model.actor.player, extract RadarMarker to gameserver.model.
             - ValidatePosition _heading isn't processed anymore (no use).
             - Generate TeamType enum, based on StinkyMadness idea.
             - Complete rework of RaidBossManager.
                - Merge the different Maps holding infos into one. Create BossSpawn in model.spawn package to hold all related infos.
                - The saving process isn't lazy anymore, but handled on spawn/death/server start.
                - BossStatus isn't related to a Npc instance anymore, meaning you can interrogate it even if Npc isn't existing (DEATH case).
                - Rename StatusEnum > BossStatus enum, moved into enums package.
             - Add the possibility for server admins to tweak default items quantity and equipability. The result is more readable than previous system. It uses the newly generated ItemTemplateHolder (gameserver.model.holder).
             - Cleanup RandomAnimationTaskManager
                - Animation task cancel is now instant upon NPC death, inactive region or intention change != ACTIVE for Attackable. Before it was waiting the regular end timer.
                - Following instances types aren't registered anymore on RandomAnimationTaskManager : ControlTower, EffectPoint, FlameTower and SiegeFlag.
                - Drop of Npc#isMob(), addition of Npc#calculateRandomAnimationTimer().
             - Add missing login status on admin/maintenance.htm
             - Generate StatusType and AttributeType enum, which are used for both LS and GS. Unload ServerStatus of multiple variables.
             
          Bugfixes
             - CharInfo heading / boatId is fixed, based on Vilmis remark.
             - Fix a bug introduced in rev 380, where bosses died during a server down couldn't respawn properly. Ty bowling4soup.
             - Add HEAL_STATIC as potential buff slot (fix skillId 3125). Ty Sahar.
             - Modify Lightning Strike power effect. Ty Sahar.
             - Fix the double summon spawn issue (unSummon + doDie happening in same time), as tested by Sahar.
             - Decaying summons tasks are dropped if a decay occurs (avoid tasks to run for nothing).
             - Add Porta/Perum script named SummonPlayer.
             - startAttackStance() / stopAttackStance() system is cleanup. Avoid to spam AutoAttackStop broadcast by NPCs. Decrease the amount of startAttackStance() / stopAttackStance() calls tremendously, notably because the call is moved from onHitTimer to doAttack. Since each attack can produce 1, 2 and up to 10 hits for polearm users, as much calls were done.
             - Player#store doesn't store anymore client X/Y/Z (avoid exploit upon relog).
             - Diagonals flags rule is edited on GeoDataConverter. They must now be validated in both direction.
             - Add/improve character water/fly state on SummonInfo, NpcInfo, PcMorphInfo, PetInfo.
             - Avoid NPE on ClanHall#setOwner, issue introduced in rev 381. Ty bowling4soup.
             - Fix ShortcutList#restore(), issue introduced in rev 381. Ty bowling4soup.
             - Fix ignoreShield() behavior for L2SkillType STRSIEGEASSAULT, PDAM && FATAL. Ty Sahar.
             - SiegeGuard AI is set to ACTIVE and not IDLE when reduceHate occurs.
             - Fix an issue on player creation ; items (armors) weren't equipped properly.
             - Fix default skills shortcut acquisition upon player creation.
             - A DOWN server now correctly repells login attempts (case of Shutdown 60sec). Negative access levels accounts see the server DOWN, and can't login aswell. Addition of GameServerInfo#canLogin(LoginClient client).
             
          PS : You should update your geodata, either using GeoDataConverter or refreshing it using aCis shared link (verify modification date).

          Since a lot of core has been edited/moved, sources will be exceptionally shared at rev 382 for Customers, added to the diff patch for the adventurers. If you begin to dev a project, I strongly invite you to port your customs directly on 382 shared pack.

          OfflineSweeTs

          • Full Member
          • ***
          • Posts: 167
          • L2topzone Votes: 55
          • Servers reviews: 0
          • Reputation: +290/-0
            Re: [Project] aCis - Interlude
            « Reply #244 on: September 28, 2019, 10:33:48 AM »
            Changeset 383 (1388)

            Movement is still experimental. The status IS NOT OK for LIVE servers. Boats and MoveToPawn behavior still need to be fixed.

            Movement rework - Part I, Sit / Shop fixes, Safe fall height, Bugfixes, Organization


            Movement rework - Part I
               - Fix following issues, plaguing aCis since a while :
                  - Clicking fast enough on ground while moving was increasing the distance between the player and its actual real point.
                  - Fix the pathfinding issue for monsters, blocking on the first encountered obstacle.
                  - Introduce pathfinding for returning to spawn monsters, to avoid they stuck in middle of nowhere or got Z layers issues.
                  - Rework most of the offsets to fix issues with move to pawn concept.
               - Introduce a 0.5s delay where player walks instead of run on start of a movement, to fit client animation.
               - Introduce CreatureMove, a complete replacement of MoveData. It's now bound to a Creature, and not generated on every single move. Children exist for PlayerMove and BoatMove. The whole movement logic is moved here (extracted from Character and CharacterAI).
               - Drop MovementTaskManager, every running task is now individual to avoid to register on a clock wall, which means the 100ms granularity is guaranteed without calculations or sync needs.
               - Avoid to process a movement if a movement is already launched with same destination and offset (huge performance boost upon spam pickup action).
               - Add a debug for movement system using ExServerPrimitive packet. It offers a good sight of what happens during movement process.
               
            Sit / Shop fixes
               - sit/stand is now backed by _sitTask, to track delay between sit and stand position.
               - shop stand up is now instant to fit with retail and avoid exploits.
               - Player#canOpenPrivateStore is now used on 2 different places (shop opening and validation) and handle more checks. Fix multiple issues/exploits, like being able to shop while being mounted.
               - StoreType is renamed OperateType, and now include missing MANUFACTURE_MANAGE and OBSERVER. All getters/setters are edited.
               - MANUFACTURE_MANAGE is implemented, it's not possible anymore to open both (buy or sell) and manufacture panels.
               - All buy/sell/manufacture player lists are now generated on Player creation (no more lazy initializations / container creation, no more null checks).
               - Improve Player#instantStandUp(boolean) a little (don't bother with stand up if already stand up).
               - Add NO_RECIPES_REGISTERED check upon MANUFACTURE_MANAGE ; call the empty window. Add ManufactureList#_isDwarven, which allow us to call back previous state without error.
               - Don't set OperateType.NONE on invalid item count for both sell/buy manage (was leading to invalid store state). Add retail messages.
               - Fix the fact you aren't supposed to open a shop when already sat.
               - Fix the buy/sell/manufacture tryOpen methods : Don't bother with manage case, and tryOpenWorkshop only care with right OperateTypes.
               - isInStoreMode() is modified to only returns real cases of store mode. Manage cases aren't part of it.
               
            Safe fall height
               - Added retail values based on classes and sex (was semi-implemented core side using default value 333). Ty RooT for dp side.
               - Add CANNOT_DISMOUNT_FROM_ELEVATION wyvern check, making it impossible to dismount a wyvern if not in a valid safe fall height.
               
            Bugfixes
               - Fix Q009 reward itemId. Ty p0w3rf1y.
               - Fix Q621 / Q622 haste potion itemId reward. Q621 giveItems recipe instead of rewardItems. Ty Idontknow1.
               - Add retail behavior regarding teleporting to nearest town if wyvern feed task ends.
               - Seeds works anew (was due to invalid handler name on XML).
               - Edit few mercenary tickets SystemMessage to use retail ones. Ty RooT.
               - Fix the delay for mass teleporter (no instant case if out of siege). Ty RooT.
               - Fix Baium zone (around door, to avoid teleport back to town) using L2OFF GF values, IL being buggy.
               - Fix the few cases of mispelling or miss on configs properties files.
               - Fix radius/height/level/stats of all NPCs, except summons and tamed beasts. Ty StinkyMadness.
               - Add few missing Manor Managers on relatedNpcIds (was leading to NPEs).
               - Fix a MinionList NPE, prior to minions rework.
               - Add few missing Seven Signs event sounds. Ty RooT.
               - Drop calcFestivalRegenModifier system, which was leading to negative values and isn't retail. The only affected stat is MP regen, and it's positive, based on MotherTree zones.
               - RaidBossManager#cleanUp fix prior rev 382 edit.
               - Fix multiple SpotBugs reports (18 or so), from invalid equals/hashCode contracts to missing switch break.
               - Fix RequestListPartyMatchingWaitingRoom, RequestAskJoinPartyRoom : variables aren't set as static anymore.
               - Fix the client crash when clicking "projection" button on the "record of seven signs" (introduced on rev 239).
               - Upon SA activation on magic use, S1_HAS_BEEN_ACTIVATED message is now working and called BEFORE resist attempt.
               - FleeingNPCs / 4s victim scripts flee behavior are enhanced.
               - AI is correctly flushed upon IDLE case, leading to proper global aggro value reset (10sec aggro cooldown on respawn).
               - Fix party duel CANCELED state for ZoneId.PVP.
               - Boat _passengers is now concurrent to avoid CME.
               
            Organization
               - Move _isNoRndWalk from Creature to Attackable, _isChampion from Creature to Monster.
               - Slight edit of Creature#isInsidePeaceZone (no static, first param is self).
               - Rework WorldRegion#setActive, it now uses an AtomicBoolean. Add WorldObject onActiveRegion() / onInactiveRegion(). Behavior is normally exactly the same than old setActive, but cleaned up.
               - AttackableAI#changeIntention getKnownType(Player) check is now replaced for getRegion().isActive(), probably leading to a lot of saved garbage. SiegeGuardAI#changeIntention override is dropped.
               - Remove GeoEngine.getInstance().canMoveToTarget pre-optimizations (it's already handled by moveToLocation).
               - Add missing onEvtAfraid and AFRAID AiEventType use. Rework Fear effect to use it.
               - Merge Instance#doPickupItem(WorldObject object) with AI#thinkPickUp() (single use).
               - Add Location#equals(int x, int y, int z), Location#setUsingPositiveOffset, Location#setUsingRandomOffset and Location#setFleeing methods.
               - Addition of StatsSet#getIntIntHolderArray.
               - ItemTable cleanup (renamed ItemData and moved to data.xml, CLogger, move temporary containers to good place, move _slots Map to Item, javadoc).
               - Item cleanup (drop Logger, correct use of StatsSet methods to feed Item values, javadoc)
               - Rework both Weapon#getSkillEffects (Fix the multiple calls upon getSkill() and getFirstEffect, rename those methods castSkillOnCrit / castSkillOnMagic for easier understanding).
               - Fix one strange use of StatsSet upon FestivalOfDarknessManager.
               - Rename all items handlers to keep naming convention logic.
               - Add warning regarding missing property key on configs. Ty StinkyMadness.
               - Add UseBlowfishCipher config. Limit the byte array size on VersionCheck packet. Ty RooT.
               - Drop few skills parameters duplicates, ty bowling4soup.
               - Addition of RaidBossManager#getBossSpawns() and BossSpawn#toString for easier customs implementation.
               - Numerous packet reorganization :
                  - Few packets rename to fit NetPro.
                  - "activeChar" naming is replaced for "player". Final keywords added here and there. Variables naming is more friendly and/or conventional.
                  - NewCharacterSuccess uses a static approach for now.
                  - Deletion of SuperCmdCharacterInfo, SuperCmdServerStatus && SuperCmdSummonCmd packets (custom, unused).
                  - Implement SendTimeCheck / RequestTimeCheck packets. Ty RooT.
               - AdminCommands
                  - Delete AdminMammon and associated admincommands.
                  - Merge all cursed weapons admincommands into //cw.
                  - Cleanup //admin2 panel (game_menu.htm).
                  - Delete //adminX commands. It is now simply //admin. //admin can now answer to file names (ex. //admin server).
                  
            PS : all items XML etcitem_type parameters are edited to reflect enum value (use of caps lock).

            Movement is still experimental. The status IS NOT OK for LIVE servers. Boats and MoveToPawn behavior still need to be fixed.

            OfflineSweeTs

            • Full Member
            • ***
            • Posts: 167
            • L2topzone Votes: 55
            • Servers reviews: 0
            • Reputation: +290/-0
              Re: [Project] aCis - Interlude
              « Reply #245 on: January 06, 2020, 05:03:15 AM »
              Changeset 384 (1454)

              Movement is still experimental. The status IS NOT OK for LIVE servers. MoveToPawn behavior still need to be fixed.
              Siegable Hall isn't tested, and probably need further development. Those CHs are normally fully working regarding owner administration.


              SH part I, Movement part II, PlayerLevelData addition, Boats, Bugfixes, Organization
                 
              SH part I
                 - Add Q504 and Q655 quests.
                 - Add 4 out of 6 Siegable Halls scripts :
                    - Devastated Castle
                    - Fortress of Resistance
                    - Fortress of the Dead
                    - Rainbow Springs Chateau
                 - Add relatedNpcIds for all clan halls.
                 - Add clanHall information for all doors.
                 - Rework SiegeNpc to use all retail HTMs. It isn't supposed to NPE over Siegable Hall anymore.
                 - Create SiegableHallZone.xml, based on ClanHallZone zones.
                 - Update ClanHallZone.xml with "other" spawns.
                 
              Movement part II
                 - Fix Boat movement, based on vladalien work.
                 - Rework isPathClear behavior, which wasn't working properly. Objects don't use geopath anymore when not needed.
                 - Drop ARRIVED event for intermediate path points. Ty vladalien.
                 - Fix player/creature following "knownlist-forgotten" teleporting character behavior.
                 - Don't process Walker path if already moving.
                 
              PlayerLevelData addition
                 - Unhardcode Formulas#karmaMods and Experience.java.
                 - Implement missing exp loss % per player death based on level.
                 - Rework getExpForThisLevel() / getExpForNextLevel() / getExpForLevel(int level) for both Summon/Pet/Player. It is now only located on Stat.
                 - Don't feed anymore getExpForThisLevel / getExpForNextLevel for regular servitors packets. Revert-able if a visual issue occurs.
                 
              Boats
                 - Boat clandestines entering DURING boat leaving harbor are now correctly dropped out from Boat if they got no valid tickets.
                 - Pay process is now delayed of 5sec to fit with AdvExt, passenger system is reworked.
                 - Fix Boat entrance/exit to fit with AdvExt. You now instantly stop on the edge of each side (harbor/boat), and can now enter from afar. Ty vladalien.
                 - Boat is now correctly set to null while teleporting (soe, gm) and upon leaving boat while boat is still sailing.
                 - Store process is stopped upon boat oust.
                 - Passenger summon is unsummoned to avoid movement tracking issue. RELEASE_PET_ON_BOAT is called only once, as a first shot warning and Player can onboard freely with summon on.
                 
              Bugfixes
                 - Rework nextActionIsAttack() implementation to avoid one NPE and properly set NEXT intention.
                 - SS / BSS animation is now processed as retail. Ty SweeTs.
                 - NPCs don't recharge ss/bss anymore if already charged.
                 - Chance skills upon casting magic skills is fixed. Ty Sahar.
                 - Allow players to use Curse Death Link with CTRL. Ty Zarie.
                 - Fully fix fake death behavior, as tested on AdvExt PTS.
                    - Heal, buffs, missed attacks and self damage don't trigger the effect end anymore.
                    - The begin of a cast/attack don't trigger the effect end anymore.
                    - User spam skill/stand action got now a delay (similar to sit and revive).
                    - The effect end isn't triggered anymore when being in middle of animation start (it is simply ignored).
                 - Revert following part of rev 238 : 'Reflect damage skills type don't kill you anymore (stuck at 1). Well, shouldn't.' as tested on AdvExt PTS.
                 - Fix Dark Vortex absorb part %.
                 - Gates of Splendors can't be opened anymore using Unlock skill, based on official patch notes. Edit values based on IL patch notes.
                 - Revert partially FourSepulchersManager, prior to rev 379. Shadows of Halisha should correctly spawn.
                 - Upon //hide, summons are now hidden and STEALTH effect is applied.
                 - Fix a missing distance check on Quest#getClanLeaderQuestState (player killer wasn't tested if not clan leader ; now both player and leader must be in good distance of the npc to trigger it).
                 - Fix Anakazel duplicates. Ty bowling4soup.
                 - Add missing SCHs doors upon Siegable Halls getDoors() in order to make them usable by NPCs (previous system couldn't work properly).
                 - Implement CP_CH_USE_FUNCTIONS privilege. Fix missing occurences of CP_CL_VIEW_WAREHOUSE, CP_CH_SET_FUNCTIONS and CP_CH_OPEN_DOOR.
                 - Fix naming conventions for both player/pet (alphanumeric 1-16 for both), based on AdvExt PTS.
                 - Implementation of Siege Mercenary Gatekeepers. Ty RooT.
                 - Fix missing MercenaryManagerNpc checks (upon AdminNpc to show Shop button, and on the regular packet RequestBuylist, making it impossible to buy tickets).
                 - Properly cleanup tickets and mercenaries upon //removecastle.   
                 - Add missing CHARGE FlyType.
                 - Fix Player cast behavior : you can now queue the same skill.
                 - Fix an issue with bookmarks. Bookmark name isn't server-scope anymore, but player scope. Ty StinkyMadness.
                 
              Organization
                 - Addition of Point2D, the mother class of Location.
                 - SchemeBuffer - Ty StinkyMadness
                    - Rework getGroupSkillList, reducing code amount.
                    - Add images to fill empty space in "prev - next", in order layout always keeps its shape.
                 - Refresh some SQL tables PRIMARY KEY. Ty StinkyMadness.
                 - RandomWalkRate is configurable now (default 30%).
                 - Addition of //walker admincommand, showing Walker routes.
                 - Remove //move_defenders (unused, not implemented).
                 - //siege is reworked. It now shows current siege status and a link to siege information packet, for each castle.
                 - Addition of following methods :
                    - Npc#isLordOwner(Player)
                    - WorldObject#setXYZ(WorldObject)
                    - Quest#checkClanLeaderCondition(Player, Npc, String, String)
                    - Player#hasClanPrivilege(int)
                    - SpawnLocation#setHeadingTo(int, int) and variants.
                    - WorldObject#knows(WorldObject). Replacement of all getKnownType(class).contains uses for knows. It will lead to big performance hit over any live server.
                    - Location#distance(Location) and variants (with int coords, Point2D).
                 - Multiple classes now extend appropriate classes and/or are moved to proper packages (RadarMarker, Bookmark, NewbieBuffHolder,...).
                 - Store FlyType under enum, to avoid calculation.
                 - Add a package named model.zone.type.subtype to store all subtypes zones related classes (aka mother classes, not used directly by XMLs but used by children).
                 - Add subtype zone ResidenceZoneType, used by CastleZone and ClanHallZone.
                 - Add Spawn(int id) which generate a Spawn with included NpcTemplate check.
                 - AdminEditNpc is renamed AdminNpc.
                    - Creation of //npcinfo (clone of shift + left click), which split all NPC infos towards categories.
                    - Drop //show_minion, //show_scripts and //show_droplist ; they are now added directly into //npcinfo.
                    - Edit npcinfo / doorinfo to add clan hall / siegable hall informations.
                 - Npc / Door now use NpcTemplate / DoorTemplate variable to feed ClanHall / SiegableHall information instead of getNearestClanHall (avoid 100k+ iterations).
                 - Package "container" creation - A container is basically an "extension" of an instance, holding multiple variables affecting one particular system and linked to an instance.
                    - Move model.player and model.npc into a new package, model.container.
                    - Generate model.container.creature and hold the few related classes into it.
                    - Rename CharEffectList to EffectList.

              Movement is still experimental. The status IS NOT OK for LIVE servers. MoveToPawn behavior still need to be fixed.
              Siegable Hall isn't tested, and probably need further development. Those CHs are normally fully working regarding owner administration.




              Changeset 385 (1468)

              Movement is still experimental. The status IS NOT OK for LIVE servers. MoveToPawn behavior still need to be fixed.
              Siegable Hall isn't tested, and probably need further development. Those CHs are normally fully working regarding owner administration.


              Scripts, CommandChannel edit, Bugfixes, Organization


              Scripts
                 - Addition of Q336. Ty RooT.
                 - Q384 rework.
                    - Fix IOOBE. Ty p0w3rf1y.
                    - IntIntHolder use for shorter storage, avoid ArraysUtils using String#contains instead.
                    - Medals aren't deleted anymore upon abort.
                 - Addition of Q386, based on Q384 rework.

              CommandChannel edit
                 - Addition of BossInfoType enum, holding informations about Command Channel.
                 - Move reduceCurrentHp override from Monster to RaidBoss and rework it.
                 - The check task is now running every second, timer is reduced from 15m to 5m.
                 - Looting rights messages have been added (10sec show).
                 - Strategy Guide item (8871 itemId) is used as a side-way to create a Command Channel, and is now only needed/consumed if your clan doesn't own Clan Imperium skill (391 skillId).

              Bugfixes
                 - Fix TARGET_CORPSE_MOB target types ; you can now use such skills on Guards. Ty Art1s.
                 - Fix unarmed mAtk damage.
                 - Fix enchanted item buy possibility on Player tradelist. Ty RooT.
                 - Fix extractable items inventory limit bug.
                 - Fix a NPE over CreatureMove#moveToNextRoutePoint() execution.
                 - Fix NPCs vulnerabilities passive skills.
                 - Clear variables upon harvest and sweep attempt to avoid exploit attempt.
                 
              Organization
                 - Add following methods :
                    - Location#isInRadius(int, int, int) / Point2D#isInRadius(int, int) (and variants)
                 - Move 3x3 matrice, used by Q384 / Q386 quests to MathUtil.
                 - Add container.monster. Generate OverhitState, SpoilState and SeedState from Monster content.

              Movement is still experimental. The status IS NOT OK for LIVE servers. MoveToPawn behavior still need to be fixed.
              Siegable Hall isn't tested, and probably need further development. Those CHs are normally fully working regarding owner administration.




              Changeset 386 (1497)

              Movement is still experimental. The status IS NOT OK for LIVE servers. MoveToPawn behavior still need to be fixed.
              Siegable Hall isn't tested, and probably need further development. Those CHs are normally fully working regarding owner administration.


              MariaDB / SQL tables, Scripts, Bugfixes, Organization


              MariaDB / SQL tables
                 - Consider to download latest MariaDB (10.4.11 at the date of this note) and transfer your db to it. MySQL is considered legacy.
                 - Following tables are edited : accounts, auctions, augmentations. More will come with time, until all are optimized and follow convention.

              Scripts
                 - Addition of Q120. Ty StinkyMadness for adaptation.
                 - Addition of Q343, based on L2J's ivantotov script. Fix memoStateEx to fit L2OFF.
                 - ShadowWeapon script
                    - Add 10 missing entries out of 90, out of 3 multisells.
                    - Add exchange option to Ranspo, as depicted on L2OFF.
                 - Q101 : add missing quest items in registered items list. Ty Rootware.
                 - Q336 : add missing npcId in addTalkId. Ty p0w3rf1y.
                 - Q626 : make the quest repetable and party friendly, according client infos. Ty p0w3rf1y.
                    
              Movement
                 - Fix Boat stop behavior upon harbor reach (both regular and busy states), leading to memory leak.
                 - Fix IOOBE over GeoEngine#findPath (trying to set player on non-existing layers), based on Hasha fix.
                 - Fix movement issue related to route cutting edges. Ty vladalien.

              Bugfixes
                 - Orcs Mystics are considered as FIGHTER, and not MAGE anymore (22nd May 2007 patch note). Ty shyr.
                 - Allow non stackable items with amount > 1 over create_item. Limitation based on inventory slot amount.
                 - Second layer of fixes for enchanted item buy possibility.
                    - Add missing messages for buy/sell enchanted items.
                    - Add missing OperateType.NONE, which fix stuck behavior upon fail (casting a skill, setting on NO_STORE zone, etc).
                    - Add ItemRequest#_enchant + related checks.
                 - Fix Dice roll vector.
                 - Fix SchemeBuffer duplicate key exception. Ty Sahar.
                 - Revert part of 385 related to CC edit, fixing CCE about Raidboss.
                 - Fix SecondClassChange "congratulations" htm.
                 - Don't disband Party on DISCONNECTED leader (as tested on AdvExt).
                 - Add missing zone data related to rev 384. Implement it under new enum SpawnType, based on StinkyMadness suggestion.
                 
              Organization
                 - Server bypass floodprotection is lowered from 500ms to 100ms (lowest secured value, less painful for user).
                 - Add SpawnLocation#getLocationWithOffset.
                 - isVisible refactor, ty StinkyMadness.

              Movement is still experimental. The status IS NOT OK for LIVE servers. MoveToPawn behavior still need to be fixed.
              Siegable Hall isn't tested, and probably need further development. Those CHs are normally fully working regarding owner administration.
              « Last Edit: January 06, 2020, 05:04:29 AM by SweeTs »

              OfflineSweeTs

              • Full Member
              • ***
              • Posts: 167
              • L2topzone Votes: 55
              • Servers reviews: 0
              • Reputation: +290/-0
                Re: [Project] aCis - Interlude
                « Reply #246 on: April 30, 2020, 03:12:15 PM »
                Changeset 387 (1541)

                Movement is still experimental. The status IS NOT OK for LIVE servers. MoveToPawn behavior still need to be fixed.
                Siegable Hall isn't tested, and probably need further development. Those CHs are normally fully working regarding owner administration.


                LS rework, Quest related edits, Chat related edits, Organization


                LS rework
                   - Generate enums package for LS, and extract existing enums to it.
                   - Generate data (sql and manager) package, and move all related classes to it.
                   - Replacement of password algorithm from Base64 to BCrypt. Ty SweeTs.
                   - Load all Account (previously AccountInfo) in memory, to avoid pointless SQL manipulation and generating/destroying Accounts objects.
                   - Extract related content from multiple classes and generate AccountManager and IpBanManager out of it.
                   
                Quest related edits - Ty Hasha
                   - Quest system edit
                      - Complete the javadoc + cleanup.
                      - QuestTimer storage is simplified (all timers are stored on same level).
                      - Quest#onEvent is dropped, onAdvEvent prevails.
                      - Add the possibility to cancel specific QuestTimer based on multiple criterias.
                      - Implement Quest#onTimer, moving timer based events from onAdvEvent.
                      - Quest#onGameTime and Quest#onSiegeEvent got now parameter for easier usage.
                      - Make an extensive use of onDecay on all quests.
                      - All quests are edited to spawn only one instance of a quest monster at a time.
                      - Remove boolean flag isRepeating over Quest#startQuestTimer ; cut that method in 2, Quest#startQuestTimer and Quest#startQuestTimerAtFixedRate.
                   - Quests
                      - Introduce SecondClassQuest abstract class, holding shared content between all 2nd class transfert quests.
                      - Q021 : Add few missing sounds and HTMs.
                      - Q242 : Fix the Fallen Unicorn issue.
                      - Q619 : Introduce droplists of relics for 4sep and IT.
                      - Fix retail typo "Neidrahu" > "Nidrah" on all HTMs ("Nidrah" being the reverse of "Hardin", the necromancer).
                      - Q334 addition, ty Rootware.
                      
                Chat related edits - Ty Hasha
                   - NpcSay : added more constructors, javadoc
                   - CreatureSay (Say2)
                      - added more constructors, javadoc
                      - updated packet structure, removed _npcString (IL client does not use NpcString)
                      - removed systemmessage parameters, they are not used by client
                      - updated parameter names, added some explanation
                      - updated the usage of packet, whenever possible, changed to NpcSay(shorter packer name (string) -> npcid (int))
                   - Introduction of new enum SayType for chat type.
                   - Added NpcStringId container, based on L2OFF fstring.txt content.

                Organization
                   - Add SevenSignsManager#getLosingCabal(), rename SevenSignsManager#getCabalHighestScore() > getWinningCabal().
                   - Delete CabalBuffer instance. Move behavior to AI script, as group.CabalBuffers. Behavior is taken from L2OFF GF (same than IL).

                Note: Prefer NpcSay over CreatureSay, when having a need for creature (with NPC ID) to speak.

                PS : The transition between Base64 and BCrypt for password encryption is left to live servers owners, but the idea is to edit used algorithm of "password replace feature" using BCrypt on your existing account panel, and request your users to edit their password to be able to log on.

                Movement is still experimental. The status IS NOT OK for LIVE servers. MoveToPawn behavior still need to be fixed.
                Siegable Hall isn't tested, and probably need further development. Those CHs are normally fully working regarding owner administration.




                Changeset 388 (1562)

                Movement is still experimental. The status IS NOT OK for LIVE servers. MoveToPawn behavior still need to be fixed.
                Siegable Hall isn't tested, and probably need further development. Those CHs are normally fully working regarding owner administration.


                Env drop, PartyMatching, Quests, Bugfixes, Organization


                Env drop - Ty Hasha for debug.
                   - Drop Env and Lambda, which were retaining a lot of pointless variables.
                   - Add missing "base" functions, and make a use of it.
                   - All FuncHennaCON/DEX/... are merged into FuncHenna.

                PartyMatching
                   Organization
                      - Merge PartyMatchWaitingList and PartyMatchRoomList into PartyMatchRoomManager.
                      - Move PartyMatchRoom on model.group, make it use AbstractGroup.
                      - Delete package model.partymatching.
                      - Related packets are cleaned. Methods are generated on appropriated classes to make it cleaner.
                   Bugfixes
                      - Fix all possible CMEs due to unappropriated containers, fix one possible NPE.
                      - Rework the changeLeader management to avoid a client crash.
                      - Add the missing max member amount check.
                      - Rework waiting list behavior to fit with L2OFF.
                      - Set the location as "1", to avoid a client crash. Put a TODO, as we miss needed implementation to code it as it should.

                Quests
                   - Q351 : Fix reward. Ty p0w3rf1y.
                   - Q025 addition. Ty roko91 / Hasha.
                   - Q335 addition. Ty RooT / Hasha.

                Bugfixes
                   - Fix login system, reverting Account cache system.
                   - Clan skills aren't rewarded on Player relog if reputation < 0.
                   - Clan skill, upon acquisition, isn't rewarded if reputation reaches 0.
                   - Add a missing Config.MINIMUM_CLAN_LEVEL use over ClanMember.
                   - Fix Sand Cloud, Heroic Grandeur, Heroic Berserker, Invocation skills.
                   - Rework ForestOfTheDead in order Npc references are correctly exploited + some cleanup. Ty Hasha.
                   - Fix HP/MP Clan Hall regen calculation. Ty p0w3rf1y.
                   - Save ClanHallFunction upon creation. Ty p0w3rf1y.
                   
                Organization
                   - Optimize packet sending over Clan skill acquisition.

                Movement is still experimental. The status IS NOT OK for LIVE servers. MoveToPawn behavior still need to be fixed.
                Siegable Hall isn't tested, and probably need further development. Those CHs are normally fully working regarding owner administration.




                Changeset 389 (1660)

                Movement is still experimental. The status IS NOT OK for LIVE servers. MoveToPawn behavior still need to be fixed.
                Siegable Hall isn't tested, and probably need further development. Those CHs are normally fully working regarding owner administration.


                AI rework, Organization, Bugfixes


                AI rework - ty bowling4soup
                   - Drop all redundant parameters (_skill, _target,...). We now use parameters from Intention.
                   - Merge setNextAction and setNextIntention behaviors.
                   - Add all missing queued actions (sit/stand, move/stand, etc).
                   - Stacking attacks don't bug anymore, it is now processed by queue intention.
                   - Skills (toggle skills included) are now queued if a cast is already occuring.
                   - TamedBeast got now its own AI.
                   - Drop following AiEventType : STUNNED, PARALYZED, SLEEPING, ROOTED, CONFUSED, MUTED, AFRAID, FAKE_DEATH and their related AbstractAI#onEvt. Merge all start/stop methods with the few uses upon skills.effects.
                   - Add following AiEventType : FINISHED_ATTACK_BOW, BOW_ATTACK_REUSED, OWNER_ATTACKED.
                   - Add following IntentionType : USE_ITEM, FAKE_DEATH.
                   - AdminEditChar#gatherCharacterInfo is slightly edited.
                   - Add Creature#_hitTask and _bowReuseTask to track current attack, giving the possibility to deny launched attack.
                   - Attack stance activation has been reworked.
                   - Shift use is now taken in consideration for attack, cast, pickup, interact and follow intentions.
                   
                Organization
                   - Generate CreatureAttack and CreatureCast (doCast got now a int, int version for easier usage) based on Creature content. Organize Creature leftover.
                   - Many comments over skills are cleaned up.
                   - Introduce ElementType enum, which got embedded vuln/res Stats for easier method process. Skills are edited accordingly. Fix few skills elements.
                   - Split enums from NpcTemplate to their own classes (NpcAiType, NpcRace, NpcSkillType).
                   - NpcRace got embedded vuln/res Stats for easier method process.
                   - CreatureStat is cleaned up (javadoc included).
                   - Stat related calculation (STR, DEX, INT,...) is now processed only on PlayerStat, which avoid 300k calcStat calls on server loading (and probably far more on regular exploitation).
                   - Addition of cantBeNegative() on Stats for easier method process.
                   - Merge Formulas#calcPAtkSpd and Creature#calculateTimeBetweenAttacks into Formulas#calculateTimeBetweenAttacks. Introduce a security limit of 100ms. Fix it using AdvExt as reference.
                   - Add clone() override upon Point2D, Location and SpawnLocation - make a use of it.
                   - Generate Creature#fleeFrom, Creature#moveUsingOffset and Npc#moveFromSpawnPointUsingOffset for easier management of such behavior.
                   - Rename Creature#setRunning/setWalking > forceRunStance/forceWalkStance, Creature#setRunning(boolean) > setWalkOrRun(boolean). Proper override is done.
                   - Move Creature#_AIdisabled to Npc#_isCoreAiDisabled.
                   - L2Effect > AbstractEffect. Big cleanup + javadoc. Delete most EffectTemplate redundant variables, use getTemplate() content instead.
                   - Generate EffectHolder, which is used by multiple packets.
                   - Drop "applyCond" parseCondition call over attachEffect (useless/unused).
                   - Generate SkillOpType / SkillTargetType enums. Edit skills.xml accordingly.
                   - Split the 28 targets type in their own ITargetHandler, introduce TargetHandler. Generate gameserver.handler.targethandlers package.
                   - Delete unused L2Skill removedOnAnyActionExceptMove and removedOnDamage boolean tags and associated subsystems.
                   - DocumentItem, DocumentBase and DocumentSkill are moved to gameserver.data package.
                   - L2Skill and AbstractEffect are moved to gameserver.skills package.
                   - ExtractableProductItem and ExtractableSkill are moved to a new package on gameserver.skills.extractable.
                   - Drop Attackable#useMagic, which was only used by QueenAnt script.
                   - Distance related methods organization
                      - Delete MathUtil#calculateDistance/checkIfInShortRadius. Delete Creature#isInsideRadius/getDistanceSq/getPlanDistanceSq. Generate methods on WorldObject, based on stored _position. Wipe all previous methods use, to simply use those.
                      - Rework Point2D / Location distance methods ; they are now called distance2D/distance3D and isIn2DRadius/isIn3DRadius for proper usage.
                      - 3D version of distance checks are now deployed on more places (all skill casts, most of NPC behaviors). 2D is still used for movement and some attack aspect to avoid problems.
                   - Rename 3 packets related to PartyMatch system.
                      
                Bugfixes
                   - Delete official adena reward out of Q127 (exploitable).
                   - Q367 rewrite using L2OFF. Fix quest exploit.
                   - Fix player freeze (cant move/attack but they can chat). Ty zemaitis.
                   - Fix MotherTree default value process over affectedRace. Ty p0w3rf1y.
                   - Crappy Buffer can now handle exotic level, simply use "level" flag. All flags except skill id are now non-mandatory. Some cleanup + Javadoc.
                   - Fix aggro about positive effects upon Attackable. Ty p0w3rf1y.
                   - Rework HotSpringDisease script, adding missing events. Ty p0w3rf1y for report.
                   - Fix normal and pvp flag timers. Ty p0w3rf1y for report.
                   - Effects with stackorder 99 aren't cleansable anymore (raid Curse, anti Strider slow, 'BOSS' tagged buffs, signets effects, etc). Ty p0w3rf1y for report.
                   - Signet symbols are fitting AdvExt (not cleansable, duration 8sec, few effects differ).
                   - Provide correct visual timer upon debuff. Ty SLugeR.
                   - Fix Cancel behavior (randomly chosen, works on any Creature, doesn't cancel specific effects (charms, noblesse...)) - Ty SlugeR.
                   - Fix invalid encoding over Q021#31524-06a.htm. Ty RooT for report.
                   - Add 5600-5699.xml, holding Apella sets triggered skills. Since they aren't existing client side, client got visual issues. Nothing I can do about it, except using "real" existing ids or edit client (which I won't do).
                   - getDestination() isn't edited anymore on the fly, NPCs shouldn't "visual jump" anymore from one position to another (case of random walk, fear).
                   - SetupGauge is also set for FUSION or SIGNET_CASTTIME cast.
                   - Drop the few IDLE intentions on scripts.
                   - Rework Orfen script :
                      - The check task is set to 10s instead of 60s.
                      - There is no more walking behavior. Fix a NPE in the same time.
                      - Use of NpcStringIds.
                      - Add missing 20% chance paralysis upon onAttack.
                      - Add missing curses check (raid + antistrider slow).
                   - Implement PartyMatch system AutoJoin button.
                   - Fix the available rooms list on PartyMatch system to fit with AdvExt. They shouldn't be filtered.
                   - Reset Pvp flag and unequip Adventurer's weapons upon karma kill. Ty p0w3rf1y.
                   - SiegableHall - misc
                      - Fix CastClassException over getAttackerClans().
                      - Add missing SiegableHall content over RequestJoinSiege/RequestSiegeAttackerList. Add proper CP_CS_MANAGE_SIEGE usage.

                Movement is still experimental. The status IS NOT OK for LIVE servers. MoveToPawn behavior still need to be fixed.
                Siegable Hall isn't tested, and probably need further development. Those CHs are normally fully working regarding owner administration.

                OfflineSweeTs

                • Full Member
                • ***
                • Posts: 167
                • L2topzone Votes: 55
                • Servers reviews: 0
                • Reputation: +290/-0
                  Re: [Project] aCis - Interlude
                  « Reply #247 on: April 30, 2020, 03:14:58 PM »
                  Changeset 390 (1785)

                  Ai system rework - part II, Movement - part II, Geoengine, Debug, Cubic system rework, Admincommands, Skills, RecipeBook, Organization, Bugfixes


                  Ai system rework - part II - ty bowling4soup
                     - Fix following issues introduced in previous revision :
                        - Cast on too far target block other actions.
                        - Fix INTERACT behavior, when already near the target (case of shops, for exemple).
                        - Fix randomly stopping attack action when using poles.
                        - Move updatePvpStatus from doAttack to onHitTimer (in order pvp flag occurs when the hits occurs).
                        - Fix a problem when pushing sell/buy button while being already under animation effect.
                     - Fix SummonItem cast, generating SummonCreature skillhandler - cast of such items can now be properly interrupted.
                     - Add ATTACK intention for nextActionIsAttack() skills, even if skill failed.
                     - Fix an issue over RequestTargetCanceld, rename it to RequestTargetCancel.
                     - Few tasks (effects, hp/mp regen, decay) are now properly disabled over deleteMe().
                     - Add missing ActionFailed uses over thinkPickUp checks. Ty Djwegas for report.
                     - Rework most of INTERACT behavior (onAction / onActionShift).
                     
                  Attack / Cast - ty bowling4soup
                     - Rework entirely both processes :
                        - Moved all the checks out of doAttack, doCast. Generate canAttemptCast, canDoCast out of it. Implemented hierarchy.
                        - Reorganized getTargetList so that targets are only calculated once during onMagicSkillLaunched.
                        - Generate doToggleCast, doInstantCast, doFusionCasttimeCast to avoid to use regular cast process.
                     - Toggle skills properly stops the Player. Message is sent for both activation/desactivation.
                     - Add missing CHARGEDAM over L2Skill#isDamage() - those skills can now be used as part of CTRL key.
                     - All methods related to isAttackableBy / isAttackableWithoutForceBy are now verified using L2OFF.
                     
                  Movement - part II
                     - Creatures (players excluded) don't use moveToPawn as follow state anymore. Ty shyr for report.
                     - Summons' summon offsets are now secured, and retail-like (8 possible locations).
                     - Fix the desynchronization between multiple direction switch. Ty bowling4soup.
                     
                  Geoengine - ty Hasha
                     Geoengine
                        - Fix GeoEngine#canSee must succeed, if all iterated points pass checks.
                        - Dropped all "getXXXOriginal" methods.
                        - Updated LoS to new logic, dropped redundant methods. Now applicable to all IGeoObjects as targets, not only Doors.
                        - Renamed "canSeeTarget(WorldObject, Location)" to "canSeeLocation" to prevent misplacing, it has different LoS mechanism.
                        - Fix getValidLocation(), which was enforcing geo position, even if tested position was good (item drop position, etc).
                        - Javadoc, cleanup.
                     ABlock
                        - Dropped all "getXXXOriginal" methods.
                        - Updated all methods with IGeoObject - target to be ignored.
                        - Javadoc, comments update.
                        - Dropped all "getXXXAbove/Below" methods, we access these data via "getIndexAbove/Below" and "getHeight(index)"

                  Debug - ty Hasha
                     - Zones now use ExServerPrimitive for visual show.
                     - Add a Player pool of ExServerPrimitive packets for debug usage. Multiple debug can coexist.
                     - ExServerPrimitive are chained when max capacity is reached, to avoid client crash/lag.

                  Cubic system rework
                     - Big cleanup over related files.
                     - Life cubic activation rate is now affected by a %, based on friendly target's percent HP loss.
                     - Life cubics don't heal anymore summons (part of CT1 patch note).
                     - First activation time is now delayed, and not instant anymore.
                     - Summoning an already summoned Cubic now refreshes the timer of already existing Cubic, and don't summon another Cubic.
                     - Summoning a Cubic while being filled up replace the proper Cubic (aka, the first summoned on the queue).
                     
                  Admincommands
                     - Delete following commands : addlevel, edit_character, current_player, char_manage, teleport_character_to_menu, add_exp_sp_to_character, add_exp_sp, remove_exp_sp, setkarma, setrec, settitle, setname, setsex, setcolor, settcolor, setclass, setlevel.
                     - Add //set command, which merge following commands : access, karma, rec, title, name, sex, color, tcolor, class, level, exp, sp. 2 admin panels are dropped, due to //set implementation.
                     - Add //test command, which is a blank command used for any type of developement purpose.
                     - Add //show (clear|move|path) admincommand. You're now able to see movement of any character (player/monster).
                     
                  Skills
                     - Implement AURA_CORPSE_MOB SkillTargetType, used by Festive Sweeper.
                     - Add missing stats on Zealot. Ty babuin.ua.
                     - Add missing ssBoost info on Whirlwind. Ty p0w3rf1y.
                     - Edit power of Wild Cannon. Ty p0w3rf1y.
                     - Shield Slam duration edited from 2min to 1min. Ty xblx.
                     - Drop BEHIND_AREA SkillTargetType (unused).

                  RecipeBook
                     - Add RecipeBook container, handling all recipe processes.
                     - Recipes are now saved/deleted on add/remove, not on Player disconnection. Ty Reynald0 for the idea.

                  Organization
                     - Cleanup "Change Subclass - Action" redundant behaviors. Slight edit on Player#setActiveClass.
                     - Edit all offset related methods from Location/SpawnLocation. Ty Hasha for help.
                     - ItemInstance#dropMe is reworked.
                     - Earthquake packet is reworked. Add missing isNpc parameter, ty RooT.
                     - Put .gitignore rule about log folder.

                  Bugfixes
                     - FloodProtectors class now uses a nano approach, instead of ms. Add MoveTime FP.
                     - Fix Player#disarmWeapon. Ty Djwegas.
                     - Add checks over buy/sell/manufacture processes to avoid packet crafting.
                     - Remove whisper check about equal receiver<>emitter.
                     - Add missing Antharas Earthquake effect, put retail values for Dimensional Rift.
                     - Fix scenario where FREIGHT items are stuck on the ground after dropping them. Ty p0w3rf1y.
                     - Implement missing AcquireSkillDone serverpacket.
                     - More Location#clone() usages.
                     - Shout, trade and all chat aren't blocked by Blocklist anymore.
                     - Fix all int overflow issues. Ty HeeroYuy.
                     - A shop can't be set if pvp flag is currently occuring.
                     - An item buy/sell can't occur if either the shop or the buyer/seller is dead.
                     - Fix few wrong SystemMessage :
                        - Evaluate on null target.
                        - Trade request on null target.
                        - Few retail SystemMessages instead of custom.



                  Changeset 391 (1815)

                  Rev 390 bugfixes, Cubics part II, MailBBS, Geoengine, Skills, Organization, Bugfixes


                  Rev 390 bugfixes
                     - Fix Guards / FriendlyMonster which don't see chaotic pets/summons. Ty shyr for report.
                     - Summons can properly attack FriendlyMonster. Ty shyr for report.
                     - Fix Summon follow stackoverflow.
                     - Drop GM onAction shift behaviour, which automatically fixes missing ActionFailed issues (= stuck) over multiple shift uses.
                     - Fix Non-Playable not being attackable in Peace Zones. Ty shyr for report.
                     - Fix SummonItems cast process. Don't consume flute anymore. Ty shyr for report.
                     - Item consumption is fixed (checked on canDoCast, done on doCast).
                     - Remove USE_S1 message over item skill usage. Only item usage message should be sent.
                     - Fix CreatureCast#onMagicHitTimer/onMagicFinalizer NPE. Ty shyr / xTakegawa for report.
                     - Fix missing ActionFailed mackets over INTERACT/FOLLOW. Ty shyr for report.
                     - Fix attackable states for ControlTower, Door, FlameTower.
                     - Proper HP/MP checks over CreatureCast#canDoCast.
                     - Fix invalid interact radius. Ty shyr for report.
                     
                  Cubics part II
                     - Add a 2s cast task (tested on L2OFF for at least 3/8 cubics, I suppose other do the same). Ty shyr for report.
                     - All fireAction() submethods are cleaned up.
                     - Implement CubicList, a Player related container.
                     
                  MailBBS
                     - Fix error upon sending mail. Ty Marcatu for the fix.
                     - Move MailType to enums package.
                     - Various optimizations + 2 potential NPE fixes.
                     - Subject overview is limited to 30 chars to avoid layout deformation.
                     
                  Geoengine
                     - Fix double-layer issue, creature must follow the upper layer.
                     
                  Skills
                     - Fix Pig Chest skillId 2309. Ty RooT.
                     - Fix 4624 skillId. Ty Vonak.
                     - Fix effect power for 4 "chance" enchant routes. Ty xblx.
                     - Add missing ItemSkills handler for Rice Cake. Ty shyr for report.
                     
                  Organization
                     - Implementation of //info, merging GM onAction shift content (summons, players, doors, npcs, statics objects), //summon_info and //npcinfo. The idea is to keep consistancy between GM and regular user behaviours.
                     - Introduce Siege#announceToPlayers(SystemMessageId).
                     - Rework Clan notice/introduction handling.
                     - Add StringUtil#trim method, allowing elegant one-liner over String truncates handling.
                     
                  Bugfixes
                     - Titles are now properly showing 16 chars, not 15.
                     - Fix missing Clan buttons over character restart. Ty djwegas.
                     - Add sps/bsps consumption upon Cubic/Servitor summon process.
                     - SiegeFlag are now immune to Swoop Cannon damages. The task is now backed by a Future for doDie / deleteMe cases.
                     - Drop FestivalMonster#isAttackableBy override (no specific mean).
                     - Doors can now be damaged by regular skills. Walls are still not attackable by anything except SiegeSummon. Swoop Cannon can't target or inflict damages to doors/walls.
                     - Fix orc mystic stat calculation. Ty Hasha.
                     - Fix Admin teleport (Pirate Tunnel). Ty shyr for report.
                     - Fix 3 HTM typos. Ty An4rchy for report.
                     - Fix isMortal() concept ; limit the HP drop to 1 and not 0.
                     - Properly set Attackable aggro over Summon doDie.

                  OfflineSweeTs

                  • Full Member
                  • ***
                  • Posts: 167
                  • L2topzone Votes: 55
                  • Servers reviews: 0
                  • Reputation: +290/-0
                    Re: [Project] aCis - Interlude
                    « Reply #248 on: July 05, 2020, 02:24:05 PM »
                    Changeset 392 (1847)

                    ExServerPrimitive, GeoEngine, Movement, Friend/BlockList, Enchant / Paperdoll


                    ExServerPrimitive
                       - Color is now defined only via Color, rather than int. Extra methods are dropped.
                       - Added addSquare, addRectangle methods for easier draw concepts.
                       - Updated AdminGeoEngine "can_see" command graphics.

                    GeoEngine - ty Hasha.
                       - Updated canSee, canMove and getValidLocation methods.
                          - Now using exact line of sight/movement and checks all cells in the way, rather than using LoS/LoM approximation using Bresenham's line algorithm (see https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm ).
                          - Computation more heavy per each iteration. Performs approx 25% more iterations per path (25% more geodata cells evaluated). Still worth the accuracy.
                       - Fix LoM check giving false positive result, when target is on "balcony".
                       - Added first iteration of canFloat check, can be used for both, flying and swimming. Though the movement itself should handle all special cases (like water level, when swimming from bottom up).
                       - Added new admin command "geo_fly" to check LoF.
                       - Misc.
                       
                    Movement
                       - Rework moveToPawn / moveToLocation concept, for both Creatures and Players.
                       - Introduce ValidatePosition debug (part of //show move) to visually see server<>client desync. Rework ValidatePosition.
                       - Fix most of server<>client desync.
                       - Fix dead/teleporting/disconnected over target follow.
                       
                    Friend/BlockList systems rework - ty RooT.
                       - Add missing packets and make a correct use of it.
                       - Delete //silence && //tradeoff admincommands.
                       - Move isBlockingAll concept to BlockList. Basic BlockList cleanup.
                       - Add missing blocklist check over clan invitation.
                       
                    Enchant / Paperdoll rework - ty RooT.
                       - Drop all admin commands from AdminEnchant except "admin_enchant".
                       - Drop enchant.htm, use quickbox instead.
                       - //enchant doesn't work if the same enchant is already set.
                       - Introduce Paperdoll enum. Rework most methods to use it.
                       - Big cleanup of Inventory. Move some overriden behaviors back to PcInventory. Add Javadoc. Move ChangeRecorder out and rename it ChangeRecorderListener.
                       
                    Organization
                       - Delete unused configs : INVENTORY_MAXIMUM_QUEST_ITEMS / DEBUG_PATH / LOG_LOGIN_CONTROLLER.
                       - Delete 2 unused ItemInstance variables.
                       - Few unused methods deletion over SendablePacket.
                       - Move ItemLocation and ItemState to gameserver.enums.items.
                       - XCast/XMove/XAttack now use generics, _creature is renamed _actor and now uses proper instance type which avoid cast.
                       
                    Bugfixes
                       - Introduce back NPC castle guards. It will be kept like this until SpawnManager introduction.
                       - Fix NPE related to castle guards / mercenaries Castle attribution.
                       - Fix ControlTower castle guards spawns cleanup over doDie.
                       - Fix NumberOutOfRange exception over hero fight loading. Ty BIGMANF.
                       - Fix GMViewWarehouseWithdrawList packet. Ty StinkyMadness.
                       - Fix Blacksmith Rooney spawn time. Ty vampir.

                    OfflineSweeTs

                    • Full Member
                    • ***
                    • Posts: 167
                    • L2topzone Votes: 55
                    • Servers reviews: 0
                    • Reputation: +290/-0
                      Re: [Project] aCis - Interlude
                      « Reply #249 on: July 14, 2020, 02:49:35 PM »
                      Changeset 393 (1913)

                      L2DatabaseFactory, CreatureStatus, tryToX, Weight system, Organization, Bugfixes


                      L2DatabaseFactory
                         - Rename it ConnectionPool. Move it to commons.concurrent, use static instead of Singleton.
                         - Use MariaDbPoolDataSource instead of C3P0. Delete related JARs.
                         - Indirectly fix "SQLNonTransientConnectionException: (conn=13) unexpected end of stream, read 0 bytes from 4" after inactivity time.
                         - Update MariaDb connector to 2.6.1.

                      CreatureStatus
                         - Merge CreatureStatus and CreatureStat. Use of generics, add Javadoc. Use internal variables instead of getter/setter.
                         - Delete all getters used as shortcuts from Creature/Player.
                         - Rename setCurrentX to setX (right for CP, MP, HP).
                         - Move Cp related methods to PlayerStatus.
                         - Delete all redundant StatusUpdate calls. Basically, whatever which was calling setX()- X being HP, MP, CP.
                         - AddMp and reduceMp are slightly edited to avoid to call setMp if value isn't worthy to be edited. Implement CreatureStatus#addHp based on those.
                         - Implement setMaxHp/HpMp/CPHpMp. Those are optmized to call StatusUpdate only once.
                         
                      tryToX
                         - Intentions use direct methods to avoid to "guess" parameters type. It also shortcuts writting style by a lot.
                         - Delete SkillUseHolder container/use, which was generating a lot of objects.
                         - Players previous stance isn't hidden anymore by ACTIVE triggering IDLE. When a Player calls ACTIVE or IDLE, it goes directly to IDLE.
                         
                      Weight system - Ty Hasha
                         - Addition of PlayerStatus#isOverbuden (80% volume check), with uses.
                         - Fixed pet weight calculation. AltWeightLimit applied to pets too.
                         - Fixing AltWeightLimit config being double parameter read as int.
                         - Fix potential bug, when removing weight penalty functions from Pet.
                         - Fix multiple item extraction to first check available slot and than create items.
                         - Update ConditionPlayerWeight to use weight penalty, updated XMLs.
                         - Added missing WEIGHT_PENALTY stat, updated XMLs to AdvExt values.
                         - Dropped Creature#_isOverloaded, as only Player and Pet may get overloaded. Overload solved by checking speed == 0, as L2OFF.
                         - Added missing system message in MoveBackwardsToLocation.
                         - Fixed Pet not getting effect of weight penalty.
                         
                      Organization
                         - Rename commons.concurrent > commons.pool.
                         - Delete unused effect EffectCombatPointHealOverTime and EffectType.COMBAT_POINT_HEAL_OVER_TIME.
                         - CreatureAttack#doAttack is correctly overriden in Attackable and Player cases.
                         - Rename StatusType to ServerType. Rename related methods / variables.
                         - Generate StatusType out of StatusUpdate packet.
                         - Move _exp, _sp, _level to PlayableStatus.
                         - Delete isChampion() concept. The whole custom is dropped.
                         - Rework Formulas#calcCrit and calcMCrit.
                         - Some Blow/Pdam cleanup.
                         - Delete isBehindTarget() / isInFrontOfTarget(). The concept is wrong, since effected isn't specially actual getTarget().
                         - Move isBehind / isInFrontOf / isFacing from Creature to SpawnLocation. Any WorldObject can now call it.
                         - Rework targetLost to handle more checks, rename it isTargetLost.
                         - Siege#announceToPlayers is renamed Siege#announce and allow SiegeSide as parameters (making it possible to call it independently for ATTACKER and DEFENDER, or both).
                         - Delete Player#isInSiege concept, since it's wrongly used (used as a mixed "isSiegeParticipant" and "isInSiegeZone" checks).
                         - GMs are now affected by death penalty and by castle foreigner teleport.
                         
                      Bugfixes
                         - 3200-3299.xml is partially fixed (reviewed 15+ item skills).
                         - Add missing check regarding Baium Angelic Vortex. Ty Kitsos.
                         - Fix SiegeGuard NPE during attack. Ty henrique for report.
                         - Fix "Need to press ctrl to attack siege guards". Ty henrique for report.
                         - Fix SiegeGuards respawn upon end of a Castle siege. Ty henrique for report.
                         - Fix Guards can't be debuffed at any case. Ty shyr for report.
                         - Add back interact possibility with FriendlyMonster. Ty shyr for report.
                         - Fix Gatekeeper CANNOT_PORT_VILLAGE_IN_SIEGE condition. Ty Denzel for report.
                         - Add missing Broadcasting Towers spawns. Ty henrique.
                         - Introduce INTERACT for Summons. It basically is a MOVE_TO with shift possibility.
                         - Fix a ClassCastException over PlayerAI interaction (boards use).
                         - Fix a ClassCastException over RequestActionUse (throne use). Ty henrique for fix/report.
                         - Summons react to shift command over attack.
                         - Summons return back to owner if isTargetLost is triggered (interact, cast, attack).
                         - Summons owner follow status is now broken while sent to attack/interact.
                         - Add missing SUMMON_GAVE_DAMAGE_S1. Correct override. Ty StinkyMadness.
                         - Summons can't be sent to attack dead targets. Ty StinkyMadness.
                         - Fix "When you're running and click on npc to speak with it, your char only stops on client, but continues to run on server". Ty SlugeR for report.
                         - Fix "Trying to cast skill + moving teleports you on client". Ty SlugeR for report.
                         - Fix proper uses of tryToSit/tryToStand. You shouldn't "tryTo" when using a skill, but directly execute it.
                         - Fix pick up animation timer. Ty SlugeR.
                         - Add retail C5 implementation of Charm of Courage.
                         - Fis death on siege properly decreases xp by 1/4.
                         - Add proper check messages for siege summons attempts.
                         - Fix siege process timer, based on AdvExt.

                      OfflineSweeTs

                      • Full Member
                      • ***
                      • Posts: 167
                      • L2topzone Votes: 55
                      • Servers reviews: 0
                      • Reputation: +290/-0
                        Re: [Project] aCis - Interlude
                        « Reply #250 on: January 04, 2021, 12:53:14 PM »
                        Changeset 394 (1972)

                        Scripts, Teleport system, Seven Signs, Organization, Bugfixes


                        Scripts
                           - Introduction of Tutorial / NewbieGuide - Ty howlrang/Marcatu for initial cleanup of L2J script.
                           - Fix following quests : 101, 102, 103, 104, 105, 106, 107, 108, 257, 260, 265, 273, 293.
                              - Rewards are done using rewardItems instead of giveItems.
                              - Fix ss/sps beginners rewards amount.
                              - Rewards are now secured by a PlayerMemo var instead of QuestState var, making it exploit-free (case of 257, 260, 265, 273, 293).
                           - Q105 now rewards regular ss/sps ng, aswell as potions.
                           - Q260 / Q265 reward formulas are fixed using L2OFF.
                           
                        Teleport system
                           - Revamp whole teleport system, using lord_rex initial share.
                           - goto/tele/etc bypasses are deleted, and replaced by only those 2 versions : instant_teleport and teleport_request. Move the teleport logic to Npc. Children classes can override isTeleportAllowed(Player).
                           - Implement TeleportType enum, based on L2OFF AI content.
                           - Implement instantTeleports.xml. Those teleports only check Npc#isTeleportAllowed(Player), while regular teleports check siege, item consumption and Npc#isTeleportAllowed(Player).
                           - Improve teleports.xml, reparsing the content using L2OFF. The model now holds the Castle, teleports are organized by npcId and by TeleportType. The initial data was double check with RooT's work, allowing to add 10 missing ids and cut 60+ pointless ones.
                           - The HTM which shows teleports is now built out of nothing from data. All existing, related HTMs are deleted (scripts and regular teleporters).
                           - Add few missing "-pk" HTMs (30162, 30836, 31964).
                           - Add (back ?) FREE_TELEPORT config.
                           - Rename "teleporter" HTM folder to "gatekeeper" (to match class names).
                           - Rename script ToIVortex > DimensionalVortex.
                           - Add castle chamberlains teleports aswell - parsed from L2OFF GF, since the content of Vanganth and AdvExt was lacking. They are not yet implemented.
                           
                        Seven Signs - Ty Hasha.
                           - Updated all HTMLs to L2OFF GF, formated them, fixed obvious mistakes, typos and names.
                           - Added missing HTML with - not enough adena to purchase Records of Seven Signs.
                           - Fix xxxx_priest_2c.htm to not containCatacomb/Necropolis teleport location link (Spam is not allowed of Gnosis owner lost -> no teleport).
                           - Fix "Failed to retrieve cabal from bypass command." upon trying to contribute Spam is not allowed Stones while Seven Signs is in Competition period.
                           - Characters with 1st class transfer can now join any side.
                           - Delete ALT_GAME_CASTLE_DAWN / ALT_GAME_CASTLE_DUSK configs. Replace it by SEVEN_SIGNS_BYPASS_PREREQUISITES.
                           
                        Organization
                           - Add //show html, which toggles on/off the HTML path for GMs (similar to L2OFF). There is no associated config, and is set to false by default.
                           - Secure //set class, which now checks dummy ClassIds, and provide more infos upon fail.
                           - Introduce QuestState#rewardNewbieShots method for easier management of beginner reward.
                           - RadarList#addMarker/removeMarker now accept a Location as parameter.
                           - QuestState#addRadar/removeRadar only accept Location as parameter.
                           - Hardcode all Locations used in Quests for easier management. Replace some int[][] for Location[].
                           - MIMYU SpawnLocations are downgraded to Locations.
                           - Delete all unused SkillTypes.
                           - Drop all "Alt" and "Game" from either Config .properties or java side. Few Config renames.
                           - Cleanup all checks regarding TAKE_CASTLE, STRIDER_SIEGE_ASSAULT, SIEGE_FLAG and SUMMON_FRIEND - moving methods from Player to dedicated handlers.
                           - Generate NpcTalkCond enum. Rename and generate on Npc #validateCondition(Player) > Npc#getNpcTalkCond(Player), which now acts as overriden. Cleanup all uses.
                           
                        Bugfixes
                           - Fix Benom spawn timer.
                           - Fix trade NPE, upon empty lists pushing "Start" button.
                           - Fix Broken actions upon invalid trade windows checks.
                           - Fix Summon Friend and alike skills. Remove the 50 radius check. Add a SystemMessage and avoid the cast on yourself.
                           - Fix Gate Chant, adding SUMMON_PARTY SkillType.
                           - Fix Elpy AI. Ty Bruns87.
                           - Allow Config.OLY_MIN_MATCHES to be correctly spread over queries when a Config reload occurs.
                           - Fix a stackoverflow over siege end. Ty Kitsos for report/fix.
                           - Fix StriderSiegeAssault, using skill target instead of getTarget().
                           - Fix bow attack reuse over CreatureAttack#stop() call. Ty MonKEY fo report.
                           - Delete active siege check on Wyvern Managers + class cleanup.
                           - Switch Schuttgart CHs to correct order, fixing CHs doors and spawn.
                           - Auto loot Config properly checks inventory size.

                        PS : Q257 is now race bound to HUMAN. While NOT RETAIL, it looks like a NCSOFT fail :
                           - It defeats the C3 layout being than "all races get access to 13k ss / 6k sps".
                           - Out of 13 newbie quests, it's the only "race unbound" quest.
                           
                        If you manage to find any retail info about why it has been done that wrong way, I'm willing to revert it.




                        Changeset 395 (2038)

                        GeoEngine, StatSet / MemoSet, AggroList, Gatekeeper, Raid Curses, Bugfixes, Organization


                        GeoEngine - Ty Hasha
                           - Added MoveDirectionType enum with pre-calculated constants.
                           - Added getValidSwimLocation, which calculates last accessible swimming location. It also handles getting out of water correctly.
                           - Dropped geo coordinate validation when converting from world coordinates (getGeoX, getGeoY).
                           - Added world coordinate or geo coordinate checks in various can/get methods. GeoEngine now support processing of coords, when outside of world.
                           - Fix LoM check giving false positive result, when target is on "balcony".
                           - Simplified GeoEngine#getWorldX/Y calculation.
                           - Added new admin command "geo_fly" to check LoF.
                           - Fixing movement blocked / pathfinding fail /  by dual-layer (e.g. Sirra's pond).
                           
                        StatSet / MemoSet
                           - Implementation of MemoSet, a CHMap storing String pairs.
                           - StatsSet is renamed StatSet and moved to common.data.
                           - NpcMemo and AbstractMemo are deleted.
                           - Lazy initialization concept is deleted from PlayerMemo and ServerMemoTable.
                           
                        AggroList
                           - Introduce AggroList container, gathering all methods related to aggro.
                           - Move few methods here and there for an easier and more logical use (notably, hold AggroInfo instead of Creature and compute back getHating).
                           - Rework and cleanup methods, for easier use and/or optimization.
                           - AggroList#stopHate/reduceAllHate trigger an AI reaction when a most hated isn't foundable.
                           - Implement //info aggro for easier aggro management, include it in the existing panel.
                           - Fixes related to that refactor :
                              - AggroList#reconsiderTarget doesn't consider anymore actual most hated as a valid choice.
                              - The aggro isn't cleared anymore if the most hated becomes out of range (so the second on the list inherits the attack stance).
                              - Fix multiple aggro values (all are checked). "Raid related" use their own formula.
                              - AggroList#randomizeAttack() don't build anymore aggro like crazy and can now work on non aggressive, 0 getAggroRange().
                           
                        Gatekeeper
                           - Delete 35001 > 35341 instant locations / associated HTMs.
                           - Fix all Ivory Tower Gatekeepers, using proper systems.
                           - Fix few HTMs typos.
                           - RaceTrack > MonsterRaceTrack script rename.
                           
                        Raid Curses
                           - Correct implementation of Raid Boss curse system. Ty shyr for report.
                           - Trigger it exclusively for Playable during a regular hit.
                           - Regular RaidBoss now casts AntiStrider skill during a regular hit.

                        Bugfixes
                           - Fix revive animation. Remove the paralyze effect upon revive. Ty StinkyMadness.
                           - Fix deadlock over AttackableAI#onEvtAttacked.
                           - Fix broken movement Intention (fix few, linked, issues such as boat moving in ground, etc).
                           - Secure all spawns position using World borders.
                           - Fix doAttackHitByPole logic (ss consumption is fixed, add allowPeaceAttack() check) and optimize it.
                           - Fix "Focus Attack" skill target amount.
                           - Implement missing Spam is not allowed of Strife siege banish behavior.
                           - Fix rewardNewbieShots for Q273 and alike. Ty shyr for report.
                           - Fix skillId 2217 leading to Inventory NPE. Ty shyr for report.
                           - Fix Peace Zone messages/checks for attack/cast. Ty StinkyMadness.
                           - Add RandomizeHate effect, used by 3 different skills (used notably by Confusion). Ty shyr for report.
                           - Delete PenaltyMonster instance and introduce FishingBlocker script using L2OFF.
                           - Rework Monastery script to fit with L2OFF.
                           - Fix ON_SKILL_SEE being centered on actor and not on acting player.
                           - canScheduleAfter is desactivated for AttackableAI. Fix onSpellFinished behavior, mage AI, aggro movement over a Confusion cast, etc.
                           - Fix //reload npc, add //reload script. Ty nighty for report.
                           - Shift Z upon teleport action.
                           - Fix the NPE over CreatureAttack#onHitTimer.
                           
                        Organization
                           - Add World#isOutOfWorld method.
                           - Remove all -100 / +100 from WorldObject#spawnMe/setXYZInvisible.
                           - Add Location#addRandomOffsetBetweenTwoValues method.
                           - Optimize Attack process.
                           - Baium script heavy cleanup. Introduce Quest#addGrandBossSpawn.
                           - Delete unused SummonCast.
                           - //info is slightly edited / reorganized. 2 buttons are added, AggroList and knownlist
                           - Quest#onSkillSee handle Creature[] targets, not WorldObject[].
                           - Quest#showResult is slightly edited (secured html tags, move few null checks).
                           - All "data containers" holding a single Queue/Map/List now directly extends it.



                        Changeset 396 (2123)

                        Scripts, Bugfixes, Organization


                        Scripts - Ty Hasha.
                           - Add missing Q501 and Q503. Ty RooT and Hasha.
                           - Rework entirely Quest to be able to handle basic operations without a QuestState. All regular scripts are now QuestState free.
                           - QuestState now extends MemoSet.
                           - QuestStatus enum implementation, SQL is edited accordingly.
                           - Add ElmoderenCemeteryTeleporters, splitted from Q620_FourGoblets. NPC 31919 and 31920 changed to Folk type, moved HTMLs.
                           - Merge GoldenRamMercenary instance with Q628, and edit NPCs to Folk.
                           - Move death event registration from Player to Quest.
                           - Quest loading process is moved from Enterworld to Player#restoreCharData.
                           - Implementation of QuestList, a Player container holding QuestStates.
                           - Entire script reorganization and renames, to fit with future changes.
                           - Complete rework of all Sagas, using dedicated npcIds, itemIds, NpcStringIds. Ty Hasha.

                        Bugfixes
                           - Revert one edit introduced in 395, leading to quest html modified in sysmsg. Ty shyr for report.
                           - Fix rechargeShots bug upon toggle activation. Ty MasterRoshi for the fix.
                           - Edit rank > ranking over clan privileges to bypass MySQL reserved word RANK. Ty Hasha for the fix.
                           - Summons can't trigger pvp flag over their masters upon attack.
                           - Fix SummonAI stackoverflow.
                           - Add missing PRIVATE_STORE_NOT_WHILE_CASTING sysMsg.
                           - Fix bow>melee>bow cooling down exploit. Ty StinkyMadness.
                           - Fix Player rotation over interaction, for both regular and Walkers.
                           
                        Organization
                           - Implement Npc#forceAttack, delete AttackableAIScript#attack and cleanup all uses.
                           - Delete AccessLevel allowPeaceAttack, takeAggro, gainExp concepts. They were defeating the contract about GMs being as "playerish" as possible.
                           - Priviledge > Privilege typo.
                           - Drop unused CreatureMove#canfollow.
                           - Drop few ActionFailed uses.
                           - Move ON_ATTACK call from Attackable to Npc (allow futher custom or non custom usages).
                           - Add few missing NpcStringIds.
                           - BossInfoType stores NpcStringId instead of Strings.
                           - ExShowScreenMessage packet is cleaned up. SMPOS is mandatory.
                           - AbstractGroup#broadcastOnScreen is added.
                           - Npc#broadcastNpcShout and broadcastOnScreen are added.

                           
                        PS : Following SQL update is needed for live servers:

                        ALTER TABLE `clan_privs` CHANGE `rank` `ranking` INT NOT NULL DEFAULT '0';

                        UPDATE `character_quests` SET `var` = '<cond>' WHERE `var` = 'cond';
                        UPDATE `character_quests` SET `var` = '<flags>' WHERE `var` = '__compltdStateFlags';
                        UPDATE `character_quests` SET `value` = 'CREATED' WHERE `var` = '<state>' AND `value` = '0';
                        UPDATE `character_quests` SET `value` = 'STARTED' WHERE `var` = '<state>' AND `value` = '1';
                        UPDATE `character_quests` SET `value` = 'COMPLETED' WHERE `var` = '<state>' AND `value` = '2';



                        Changeset 397 (2224)

                        Geoengine / Movement, Admin commands, Scripts, Bugfixes, Organization


                        Geoengine / Movement
                           - Drop L2D concept. With years, it got less and less uses (was invalid for LoS, and can be calculated in another mean for geopath). L2OFF and L2J are, anew, fully supported.
                           - Fix Z being shifted too high, leading to Z layer misplacement (forts outside wood ladder). Ty Sahar.
                           - Fix geopath heuristics. Ty Hasha/Sahar.
                           - First iteration of multilayer geopath support (Barakiel column, fort stairs/plateforms, etc) using binary heap. Ty Hasha for the implementation.
                           - Fix the 2 IOOBEs related to canSee / canMove (since MoveDirectionType implementation). Ty Hasha.
                           - Fix swim movement issue. Ty Sahar.
                           - Remove the collision radius offset shrinker in order paths being properly executed (notably visible for Attackable stucking in corners). Introduce back some client<>server desync.
                           
                        Admin commands
                           - Addition of AdminCommand model, storing parameters and description of the admin command.
                           - Addition of Pagination class, used to easily cut your data and format it under HTMs. Ty StinkyMadness.
                           - Addition of multiple useful methods into IAdminCommandHandler to cut some target selection redundancy. Ty StinkyMadness.
                           - activeChar > player rename.
                           - Delete all admin HTMs related to skills (data/html/admin/skills). Skills list is generated from //skill list.
                           - Move previous //help logic to new //link command.
                           - //announce without params properly calls the panel.
                           - //help is now generated using adminCommands.xml content. Previous static help system is deleted.
                           - AdminDoor //open_all and //close_all are deleted (no use).
                           - Merge //bkpage with //bk, //knownlist_page with //knownlist. A bookmark name can't be anymore a number.
                           - All related server admincommands are merged into //server param.
                           - All related siege commands are merged into //siege param castleName.
                           - All related castle commands are merged into //castle param castleName.
                           - All related zone commands are merged into //zone show "id"|all|clear, //zone calling the panel.
                           - All related geoengine commands are merged into //geo.
                           - All related pathfind commands are merged into //path.
                           - All related skills commands are merged into //skill and //clan_skill. Greatly improve //clan_skill, allowing to add, delete, add all and delete all skills of a Clan.
                           - All related summon commands are merged into //summon. Generate AdminSummon out of AdminRideWyvern/AdminEditChar content.
                           - All related effect commands are merged into //effect. Merge AdminBuffs with AdminEffects. //effect now handle set, remove and visual parameters. Edit admin panels accordingly.
                           - All related item creation commands are merged into //item. Generate AdminItem out of AdminCreateItem. //item coin can accept radius. Drop //reward_all.
                           - //info over Player got a new look, added collision radius/height infos over Npc.
                           - //runmod is deleted, //instant_move now accepts 0|1|2.
                           - //recall_party and //recall_clan are merged into //recall.
                           - //goto is deleted, //teleportto is used instead. All "goto" subcommands (ch, cw,...) are also renamed "teleportto".
                           - //tele_areas is deleted.
                           - //move_to is renamed //teleport. As L2OFF, it can accept only 2 parameters, being X and Y - Z being calculated based on X/Y coords and actual Player Z.
                           - //polymorph is now a toggle, merging the 4 previous admincommands to it. Delete the possibility to morph into an Item (too much bugged).
                           - //invul and //undying don't work anymore on other targets than yourself.
                           - //para becomes a toggle. Delete //para_all and //unpara_all (no use).
                           - Delete //special (not existing).
                           - Delete all redundant commands ending with "_menu".
                           - //abnormal and //social only affect your current target. There is no more player or radius check.
                           - //ban, //ban_acc, //ban_char and //ban_chat are all merged. Same for //unban.
                           - //kick, //kick_non_gm are merged. //character_disconnect is dropped.
                           - Merge //kill, //res, //heal to new AdminManage, which now use [name[radius]] parameters. Delete //res_monster. Delete AdminHeal and AdminRes. //areacancel is renamed //cancel and moved to AdminManage.
                           - Merge AdminGm with AdminAdmin. Rename //gm to //gmoff.
                           - //ch chId parameter is moved from first to second place (//ch param chId).
                           - Delete //cw "info". It is now part of regular //cw, similar to //siege, //zone, //ch...
                           - Heal/kill/res/cancel/open/close now accept parameters over //admin quickbox. Added a "Cancel" button upon //admin.
                           - Merge //find_character, //find_ip, //find_account and //find_dualbox into //find. //show_characters is renamed //list. Generate AdminFind for it.
                           - Delete //clan_info (collide with //pledge info), //st (collide with //effect visual), //get/reset_skills (you can't ninja anymore skills set of another Player).
                           - Generate AdminEditChar //remove out of //removereuse and //remove_clan_penalty. Add //remove death_penalty.
                           - Drop //forge and AdminForge. Move left //msg to AdminAdmin.
                           
                        Scripts
                           - Optional item (e.g. fish) isn't considered as quest item anymore for 3rd class quest. Ty Hasha.
                           - Add Medusa and BrekaStronghold AIs. Ty Hasha.
                           
                        Bugfixes
                           - Fix 2 NPEs due to AggroList rework. Ty Sahar for report.
                           - Fix AttackableAI NPE over thinkIdle. Ty Sahar for report.
                           - Fix CreatureCast/CreatureAttack NPEs (definitive edition). Ty Sahar.
                           - Fix Doors being non attackable during SiegableHall. Ty Sahar.
                           - Fix registration to SiegableHalls. Ty Sahar.
                           - Fix Devasted Castle guards. Ty Sahar.
                           - Fix BabyPet / Pet skill level. Ty Hasha.
                           - Fix RaidPointManager not being properly saved + few optimizations. Ty AshenOne for report.
                           - Validate teleport location if a random offset is used. Ty Hasha.
                           - Fix invalid PK check over gatekeepers. Ty Dimityr203.
                           - Add few more X/Y/Z check validation upons spawns (quest spawns, minion teleport, pet spawn). Ty Hasha.
                           - Servitors/pets now spawn heading towards the Player, and their distance is moved from 30 to 40. Both Pets and Servitors use the same spawn rules.
                           - Fix Buy shop showing wrong shop quantity. Ty StinkyMadness.
                           
                        Organization
                           - FloodProtector is moved to its own enum, on enums folder.
                           - Add AggroList#getMostHatedCreature for easier usage.

                        PS  : Since geoengine doesn't accept anymore L2D format, the exact same geodata is now shared under L2J format. See public sources topic to download it back.

                        OfflineSweeTs

                        • Full Member
                        • ***
                        • Posts: 167
                        • L2topzone Votes: 55
                        • Servers reviews: 0
                        • Reputation: +290/-0
                          Re: [Project] aCis - Interlude
                          « Reply #251 on: January 28, 2021, 06:08:59 AM »
                          Changeset 398 (2308)

                          Admin commands - part II, Petition, TradeList, TargetHandler, Community Manager, Olympiads, Formulas, Bugfixes, Organization


                          Admin commands - part II
                             MovieMaker
                                - Fully rewritten, merged under //movie and //sequence. Delete MovieMakerManager.
                                - Sequences are stored under TreeMap for automatic sort based on index.
                                - Work even if indexes aren't following each other.
                                - Sequences parameters are set on individual columns for easier read.
                             Delete AdminNpc, AdminCamera, AdminShop admincommandhandlers.
                                - Delete //walker, merged with //show (walker).
                                - Delete //gmshop, merged with //buy (no params needed).
                                - Delete //show_shop, merged with //info (shop).
                                - Delete //show_shoplist, replaced by simple //buy.
                                - Delete old //camera (redundant with //movie, almost impossible to use)
                                - Rename //cameramode > //camera. Fix 2 issues (knownlist is properly refreshed, the camera doesn't bounce back to initial position anymore).
                             AdminPetition
                                - Merge all admin commands related to petitions to //petition (show, unfollow, reject, join, reset, view).
                                - Implement //add_peti_chat and //force_peti from ALT+G panel.
                             - //setnoble is merged with //set (noble).
                             - Add missing checks for //remove. Ty StinkyMadness for report.
                             
                          Petition
                             - Overall cleanup (merge containers, Stream usage, Javadoc, multiple checks added, unhardcode HTMs, improve HTMs details). Rework ChatPetition to avoid to iterate upon sent message.
                             - Allow petitions to be saved over server shutdown (lazy save), and properly loaded back (both responders and petitioner receive the Petition window with stored messages).
                             - Implement the petition feedback system, and show it upon CLOSED state.
                             - You can now add multiple users over a single petition (//add_peti_chat). If such added user "cancels" the petition, he can either cancel it if GM, or simply leaves it if regular user.
                             - You can now enforce your target to petition with yourself (//force_peti). It will generate a perfectly regular Petition.
                             - Add the possibility to switch from one Petition to another (active petition returns as PENDING if none active GMs are part of responders).
                             - You can now move from one Petition to another simply joining another Petition - previous Petition will return as PENDING.
                             - You can now unfollow current Petition without having to end it - it will return to PENDING if no left responders are GMs.
                             - Set back the Petition as PENDING and remove associated responders if state is IN_PROCESS but no messages were sent.
                             - Multiple integrity/sanity checks were added (avoid to reject if already REJECTED, etc).
                             
                          TradeList
                             - Add Javadoc.
                             - Add missing sysMsg ONCE_THE_TRADE_IS_CONFIRMED_THE_ITEM_CANNOT_BE_MOVED_AGAIN over self-locked TradeList.
                             - Add missing sysMsg PRIVATE_STORE_UNDER_WAY over you/partner manage store mode.
                             - Add missing sysMsg EXCHANGE_HAS_ENDED over unsuccessful trade - the most common unsuccessful trade being 2 empty validated TradeLists.
                             - Fix an exploit moving distance check from trade request to validation. Ty StinkyMadness for report.
                             - SendTradeDone packet now uses a static approach.
                             
                          TargetHandler
                             - Add noicon over Recover Force.
                             - Fix Signets symbols.
                             - Delete TargetHandler PET.
                             - Fix Treasure Keys.
                             - Clear charges over Player death.
                             - L2Skill addSummon/addCharacter methods aren't static anymore.
                             - Rework canDoCast concept. Introduce ITargetHandler#meetCastConditions for Playable conditions, fixing numerous target issues over cast.
                             
                          Community Manager
                             MailBBSManager
                                - Move "Mail" class out of it.
                                - Don't lazy load mails anymore, everything is done on startup - which avoid to db query to find last mail id.
                                - Use PlayerInfoTable to retrieve isGm() instead of db query.
                             FavoriteBBSManager
                                - Introduce Favorites management (loading, saving, deleting being functional ; proper bypass saving being NOT due to the system chaos - mail coded in a way, memo in another, etc).
                             Misc
                                - Rename Manager > manager and bb > model packages.
                                - Fix NPE over ClanBBSManager access upon clan creation. Ty Gigi85 for report.
                                - Add the possibility to close Community Board using static approach (ShowBoard.STATIC_CLOSE).
                                - Rename all related SQL tables to "bbs_".
                                - Create ForumType, ForumAccess enums. Delete TopicType.
                                - Rework the Forum/Topic/Post management and move it from "BBSManager"s to "CommunityBoard". Delete CPost concept. Structure isn't lazy loaded anymore, db connections are far, far lesser.

                          Olympiads
                             - Rename queries, tasks.
                             - Remove synchronized, put _nobles as ConcurrentHashMap.
                             - Drop _heroesToBe List (no use to retain it), compute it directly on HeroManager#computeNewHeroes.
                             - loadNoblesRank() > processRankRewards(), use Entry to iterate data instead of keySet()/get().
                             - saveNobleData() "to_save" concept is removed, instead use INSERT ON DUPLICATE KEY. Also use addBatch/executeBatch instead of generating multiple PreparedStatement.
                             - Merge few one-shot methods with their calls (scheduleWeeklyChange/addWeeklyPoints, init/updateCompStatus, olympiadEnd/updateMonthlyData).
                             - Delete _nobles == null checks (impossible).
                             - OlympiadStat doesn't call 4 times the same content anymore.
                             
                          Formulas
                             - Hit accuracy calculation : Raise the lowcap from 20% to 30%. Modifiers are now directly applied over acc/eva diff rate (which x2 the impact). Base rate is 90, not 80.
                             - Blow damage : fully rework the formula.
                             - Blow rate : fully rework the formula.
                             - Pdef calculation : Full Armors don't count LEGS bonus anymore.
                             - Shield rate versus bows is now x3, out of 30%.
                             
                          Bugfixes
                             - Fix pole attack over Players on peace zone. Ty StinkyMadness.
                             - Fix CCE over Infinity Axe "Discord" effect. Ty Sahar for report.
                             - Rework EffectConfuseMob > EffectDistrust. Only affect Monsters, add a radius check, called only once.
                             - Fix 80+ Quests being broken prior to rev 396 Hasha refactor. Ty StinkyMadness for report.
                             - Add few missing IdFactory cleanup (bbs_mail<>playerId, bbs_favorite<>playerId, bbs_post<>topicId, bbs_post<>playerId).
                             - Don't spend SS over failed Blow. Don't show ATTACK_FAILED message aswell.
                             
                          Organization
                             - Add Recovery Scrolls upon //buy "Scrolls" tab. Ty Somename.
                             - Implement TeleportMode enum.

                           

                          Sitemap