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

0 Members and 1 Guest are viewing this topic.


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

    Zaken, Four Sepulchers, Dimensional Rift, Cleanup, Bugfixes

       - 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().
       - 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).
       - 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).

    Share via diggShare via facebookShare via linkedinShare via myspaceShare via redditShare via twitter