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

0 Members and 1 Guest are viewing this topic.


  • Full Member
  • ***
  • Posts: 161
  • L2topzone Votes: 34
  • Servers reviews: 0
  • Reputation: +290/-0
    Re: [Project] aCis - Interlude
    « Reply #200 on: August 09, 2014, 06:18:43 PM »
    Changeset 329

    Quests, Herbs, Misc

    Quests rework by roko91 - part 1 (initial patch is splitted in 2, next part go from Q401)
       - Fix drop chances and/or logic at onKill using retail C4 rates.
       - Add (or even remove !) monsters IDs at onKill.
       - Fix few NPC spawn/despawn times delays.
       - Improved readability and/or performance.
       - Tryskell edition made on roko91 patch :
          - Q101, Q340 : roko91 misconception.
          - Q102 : invalid state where HTM couldn't be sent on cond 2/3.
          - Q296, Q345 : invalid rate system.
          - Q348 : didn't include changes, have to rework it.
          - Q369 : deprecated variables should be dropped :P. Fix onKill section aswell, as it misses a check regarding other type of shards.
       - General cleanup made up to Q400 (was previously stopped to Q360).

       - Addition of "deep blue" drop rule for herbs.
       - In case multiple herbs are dropped and AUTO_LOOT_HERBS config is on, the addItem is correctly made, but only one item is added. Drop the isFlying() check.
       - Fix herbs destroy time.

       - Unify naming convention between herbs and items destroy time configs.
       - Fix the spawn protection config, which now uses a task (+ different message when timer expires). Added a visual effect aswell.
       - Doors Func are dropped.
       - Dropped deprecated embedded svnversion for both DP and GS projects.
       - isOutOfControl() got more checks included (stun, paralized, sleep), and is overidden on L2Summon to add isBetrayed() check.
       - Replace RequestActionUse isMovementDisabled() pets checks for isOutOfControl(). Add a missing isOutOfControl() check on useSkill.
       - Delete EVT_ARRIVED_REVALIDATE AI event, as it isn't needed for anything. More to be done for movement, probably will go after geoengine rework.
       - Fix a Connection leak on //remove_clan_penalty admincommand. Ty SkyArg.



    • Full Member
    • ***
    • Posts: 161
    • L2topzone Votes: 34
    • Servers reviews: 0
    • Reputation: +290/-0
      Re: [Project] aCis - Interlude
      « Reply #201 on: August 12, 2014, 05:45:01 AM »
      Changeset 330

      Quests, Misc

         - addition of Q230, Q233, Q327 - ty to sharers.
         - addition of victory pose on quests completion in few quests. Ty roko91 for the list.
         - Fix spawn protection task NPE (## happens). Ty sahar.
         - Drop a useless parameter on notifyDeath() method.
         - Drop methods && variables related to snoop system. Cleanup AdminGmChat.
         - Drop the svnversion check, cleanup both build.xml.
         - AdminEffects handler :
            - Move //para_all && //unpara_all commands higher to don't be overwhelmed by //para && //unpara. Paralize visual effect is now stucked to old effect 2.
            - Drop sendPacket when a broadcastPacket is also sent.
            - Multiple random cleanup, going from merging checks to messages addition.
            - //play_sounds is renamed //jukebox (to avoid to mess with //play_sound).


      • Full Member
      • ***
      • Posts: 161
      • L2topzone Votes: 34
      • Servers reviews: 0
      • Reputation: +290/-0
        Re: [Project] aCis - Interlude
        « Reply #202 on: August 31, 2014, 04:00:18 PM »
        Changeset 331

        Quests rework (part 2), Misc

        Quest rework - Ty roko91.
           - Addition of Q417, Q420.
           - Recode of Q605, Q606.
           - Fix the invalid reward id on Q405.
           - previous commit got all details about what is added, removed, edited on existing quests. This commit is effective from Q401 up to latest quest. Compared to roko91 patch :
              - Drop useless exitQuest(true) on STATE_STARTED.
              - Q403 : fix onKill for npcId 27038. Extract getItemEquipped( checks to avoid code repetition.
              - Q405 : fix onKill (could infinitely drop the qItem), revert hasAtLeastOneQuestItem use (wrong logic, it's && and not ||).
              - Q415 : addition of a missing Gantaki HTM, cond 9.
              - Q417 : move cond 2 obtention (to avoid permanent setInt/sound).
              - Q419 : improve Martin's STATE_STARTED case.
              - Q420 : Wrap Mimyu talk in a cond 4 check (avoid an exploit). Fix an if/else in Maria. Fix a permanent setInt/sound on Byron, when "deluxestone" occurs. Drop useless items checks on dragons cond 6/7.
              - Q421 : cleanup STATE_CREATED.
              - Q508, Q509, Q510, Q601, Q602 : general cleanup.
              - Q617 : revert npcId 31271 01 and 02 HTMs to handle STATE_CREATED easily.
              - Q618 : cleanup cond/items checks on onAdvEvent(
              - Q644, Q645, Q646, Q647, Q649 : general cleanup.
              - Q651, Q652, Q653 : use Location[] instead of int[][] to hold positions.
           - rename getIsSpoiledBy() to getSpoilerId(). Same for setter and _variable.
           - fix the Class Master and simplify the code using ItemHolder, ty Hasha.
           - create a dedicated Class Master, npcId 50006. Revert L2Class of 31228 to L2Npc.
           - revert to initial buffer visuals. The amount of text generated by skill names is too big in few cases, leading to client crash.
           - fix and cleanup Ketra/Varka buff system (the last buff was out of index check).


        • Full Member
        • ***
        • Posts: 161
        • L2topzone Votes: 34
        • Servers reviews: 0
        • Reputation: +290/-0
          Re: [Project] aCis - Interlude
          « Reply #203 on: September 14, 2014, 06:27:26 AM »
          Changeset 332

          Quests, Party, Misc

             - Q235 : drop few qItems before the end of the quest. Add Mimir's Elixir skill effect. Cleanup hasQuestItems checks. Ty Root.

             - Fix a ConcurrentException on L2Party.
             - Add disband and expel messages.
             - Add AltLeavePartyLeader config to edit the way the party lead change is processed.
             - Revert rev 313 bow change, cleanup calculateTimeBetweenAttacks().
             - Cleanup ClanHall.java, fix a ConcurrentException. Add removeAllFunctions(), which avoid to generate one db connection per deleted function.
             - Drop redundant BeginRotation serverpacket. Activate those packets on L2GamePacketHandler. Allows to rotate using arrows keys.
             - Cleanup AdminDoorControl handler, fixing redundant open/close process, pointless checks and making error handling more friendly.
             - Make Exception on client packets more informative, which avoid to look on logs.
             - Edit Zariche to be considered as NONE weapon instead of FIST (avoid double hit system).


          • Full Member
          • ***
          • Posts: 161
          • L2topzone Votes: 34
          • Servers reviews: 0
          • Reputation: +290/-0
            Re: [Project] aCis - Interlude
            « Reply #204 on: December 25, 2014, 01:00:28 PM »
            Changeset 333

            GameTimeController, Misc

               - Apply latest L2J version, fixing the moonwalk issue. Keep the DE passive skill system.

               - Fix one NPE vulnerability on L2Buffer getScheme() method.
               - Add the "banned" effect on character selection if a character access is <= -100. Ty RooT.
               - Fix setNewLeader( duplicate entries (coming with rev 311). Ty SweeTs.
               - Fix database_installer.bat entries. Ty RooT && Fronex.

            Changeset 334

            GeoEngine rework - a big thanks to Hasha for this awesome piece of code !

            The Readme.txt on "data/geodata" is updated with numerous important informations regarding geodata types && configurations. Consider to read it !

               - Moved all geoengine related stuff to one package.
               - Massive cleanup/split/rework of all geoengine classes.
               - Created geoengine.properties config file, removed unnecessary variables.
               - Certain variables merged with L2World.

               - Removed unnecessary interface and SingletonHolder, pure inheritance is used now.
               - Dropped canEnterDirection() methods and Direction class, as replacement added getNSWE(...) method, which returns directly geocell NSWE byte (four flags) loaded from geodata files -> avoid getting same geocell data multiple times.
               - Regions are loaded according to config file definition.
               - Added posibility to load L2J and L2OFF geodata.
               - Implemented new geodriver with new geodata storage approach (kept in Blocks).
               - Removed method concerning LoS and movement, now geodata contains only physical description of the terrain.
               - Point3D and Location cleanup, NodeLoc now extends Location...for better usage in future.
               - Spawn Z coord is now compared with geo Z. When it differs too much, use spawn Z instead of geo Z -> fix spawn problems.
               - Slight rework of geodrivers, now they differ between each other only in storage system.
               - Geodata type is set by config, each geodriver loads correct geodata regardless geodata type.
               - Added geodata path to config (you can move them to specific folder, not only /data/geodata).
               - GeoDriverArray is fastest geodata container at the moment. Kept GeoDriverBlock for some test purposes. Both work just fine.

               - Added native support for geodata converter.
               - Creates diagonal (*.L2D) geodata files from L2J (*.L2J) or L2OFF (*_conv.DAT) ones.
               - Converter can be launched using "GeoDataConverter.bat/sh" after pack building.

               - Various scrapes of code put together to create PathChecker class.
               - Additionally reworked, less code better performance.
               - Performs “see” or “can move” checks for movement, attack and spelluse systems.
               - Splitted “see” and “can move” checks. "see" is way easier and faster.
               - Added Z coord calculations -> fixed problem with seeing over flat obstacles and floors.
               - PathPointChecker merged with into PathFinding package (more logical, better for future changes).
               - Recoded LoS checks, more durable, during one iteration checking both LoS directions.
               - LoS now taking object height in consideration, added 2 configs for LoS checks (percent of height of the object, where starts the LoS check line and max obstackle height, which can exceed this virtual line).
               - using this inheritance structure Pathfinding -> PatchChecker -> CellPathFinding depending on geodata setting (GeoData: 0..door checks, 1..door and geodata checks, 2..door and geodata checks and pathfinding.
               - Big rework of canSee check, should be faster, more transparent and also fixes several wrong evaluated cases (thank you guys for report).
               - PathChecker is loaded correctly according to the config setting (standard/diagonal).

               - Removed GeoPathFinding classes, CellPathFinding is used as default.
               - Removed SingletonHolder, added support to load own pathfinding system.
               - All buffers are loaded during initialization.
               - Cleaned up path post-filter -> fixed famous NPE error, no javolution needed.
               - Equation for A* node weight corrected -> leads to getting better optimized path.
               - Fixed weird movement between path nodes.
               - PathFinding using same loading model as GeoData (Null... or Cell...), provides better usage of PathFinding (no need to check GeoData config setting everytime you access PathFinding).
               - Since we are in beta, remove debug system.out messages.
               - Slight adjustment of post filter when the path is calculated...should make now no world->geo->world->geo coordinates calculations
               - Big rework of coordinate containers. Point3D transformed to Location (world XYZ); Location transformed to SpawnLocation (world XYZ, heading); NodeLoc transformed to GeoLocation (geo XYZ, nswe); all are using inheritance, all can be combined together.
               - PathFinding is loaded correctly according to the config setting (standard/diagonal).
               - Reverted back a part of code, which causing path to lead 1 cell away of obstacle (helps to avoid corners), added new config "ObstacleMultiplier" to multiply weight of such cell by X.
               - Improved path post-filter to do all steps in one iteration -> cleaner, faster and drop of "MaxPostfilterPasses" config.
               - Created new A* pathfinding algorithm (CellPathFindingDiagNew), it uses dynamic lists, it is possible to construct path in difficult/multilayer terrains, available only for DIAG geodata now, though bit slower than current 2D array A* -> deserves cleanup/rework to gain better speed.
               - Created new JPS pathfinding algorithm (CellPathFindingJps), which is basicly A* with hefty rules. BE AWARE, it is for test purpose only, since it is semi-functional (only short and "easy" distances are OK) and available only for DIAG geodata. Possible to improve in the future.
               - Character no longer stop moving, but continue in execution of the path, when you click to un-reachable destination.
               - CellPathFindingNewDiag: now calculates estimated minimal size of open-list buffer and set it as initial value...should lead to less array resize.
               - Reworked several configs and config file.
               - Following commands dissapear :
                  - admin_show_path
                  - admin_path_debug
                  - admin_show_pn
                  - admin_geo_z
                  - admin_geo_type
                  - admin_geo_nswe
                  - admin_geo_los
                  - admin_geo_position
               - Following commands appear :
                  - admin_geo_pos
                  - admin_geo_can_see
                  - admin_geo_can_move_beeline
               - server_menu.htm ("Server" tab from //admin) is edited to reflect changes on geodata commands.
               - updated the geodata Readme.txt with important informations.
               - added a map with blocks names, and unsupported blocks (ty RooT).


            • Full Member
            • ***
            • Posts: 161
            • L2topzone Votes: 34
            • Servers reviews: 0
            • Reputation: +290/-0
              Re: [Project] aCis - Interlude
              « Reply #205 on: December 27, 2014, 03:46:11 PM »
              Changeset 335

              AdminCommands, UserCommands, GrandBosses && BossZone, Trainers, Misc

                 - Delete //manualhero, as it's a mirror command of //sethero.
                 - Delete //saveoly, it's already handled by task or shutdown.
                 - //gmliston && //gmlistoff are merged into //gmlist (which works as a toggle now).
                 - Cleanup AdminMaintenance (new Integer.intValue(), really ?!).
                 - Delete command id check (pointless).
                 - /time now benefits from GTC rework.

              GrandBosses && BossZone
                 - Baium town-teleporting waker issue is now fixed.
                 - All GrandBosses scripts are cleaned up :
                    - variable names follow regular conventions (caps for static, etc).
                    - uses of SpawnLocation instead of int[] when it's possible.
                    - unification of variables names.
                 - Cleaned up L2BossZone, fixing issues with registered players - ty Hasha.

                 - Add support for trainers no skills HTMs. Ty ArhsGr && ErHard.
                 - Fixed numerous HTM typos, notably psychotic PNJ names (A single NPC had 3 different names...).
                 - Remove npcIds 30926, 30927 from L2Trainer.
                 - Reworked few scripts.
                 - Added getStringHour() method into GTC, which return a formatted 00:00 String without having to go by a godamn Calendar object.


              • Full Member
              • ***
              • Posts: 161
              • L2topzone Votes: 34
              • Servers reviews: 0
              • Reputation: +290/-0
                Re: [Project] aCis - Interlude
                « Reply #206 on: January 01, 2015, 11:06:37 AM »
                Changeset 336

                Stats cleanup, Misc

                Stats cleanup
                    - Cleanup few useless calcStat. It will save objects and calculation times.
                    - Drop following Stats : ATK_REUSE, MP_CONSUME, BOW_MP_CONSUME_RATE, HP_CONSUME_RATE.
                    - Rework the way SA Cheap Shot is handled. Deletion of ConditionWithSkill.
                    - Fix an HTM issue with Q023, ty RooT.
                    - Fix an issue with trade/private shops, ty RooT/UYFrank.
                    - Numerous cleanups based on Eclipse warnings I switched on then off. Notably :
                        - Delete another "Item" nested class, use ItemHolder instead.
                        - ConditionPlayerBaseStats is dropped.
                        - Fix 20+ so-called 'possible ressource leaks' (missing rset/statement .close()).
                        - AdminHandler AdminUnblockIp (not even working...) is dropped.
                        - Few unused methods parameters are dropped.
                        - Method setLastCords(x,y,z) renamed for saveCurrentCoords(), as parameters were unused.
                    - Typos fixed. Notably :
                        - Pa'agrio and not Paagrio.
                        - Galion and not Gallion.

                Changeset 337

                Knownlists, Cursed Weapons, NextAction, Misc

                Knownlists - ty Hasha
                    - Drop getActiveChar() method which was creating a lot of calls/casts.
                    - Complete //knownlist command.

                Cursed Weapons - ty Hasha
                    - Loading method is moved on a most appropriated class, leading to a drop of numerous methods and few Map .get(.
                NextAction - ty Hasha
                    - Remove all Lists types, handling only singles CtrlEvent / CtrlIntention.
                    - Dropped items (and notably Cursed Weapons) can't be picked up when a private store is activated, ty dandilo && RooT.
                    - Revert a code section introduced on rev 329, which was f****g range of attacks (adding 100 range no matter what), ty Hasha.
                    - Few missing stuff about Geodata regarding admincommands are fixed, leading to miscalculations, ty Hasha.
                    - Fix a missing internal check for reworked //gmliston, ty Hasha.
                    - Based on FindBugs and UCDetector plugins :
                        - Drop numerous unused methods.
                        - Drop of ConditionInventory, ConditionItemId.
                        - Drop some useless convert (like "long to long", "casted int to a Math.round() returning an int", etc).
                        - _lastX, _lastY, _lastZ converted into Location _savedLocation. Drop of saveCurrentCoords().
                        - Drop of Location _lastServerPosition (unused).
                        - ObservationReturn(L2PcInstance) became ObservationReturn(Location).
                        - Drop dozens of useless variables/configs in Config.java.
                        - Edit 2 stranges Map .remove( arguments to match with the good arguments.
                        - Drop _effectTemplates from Item (no uses).


                • Full Member
                • ***
                • Posts: 161
                • L2topzone Votes: 34
                • Servers reviews: 0
                • Reputation: +290/-0
                  Re: [Project] aCis - Interlude
                  « Reply #207 on: January 09, 2015, 09:14:33 AM »
                  Changeset 338

                  Tasks Managers - by Hasha

                     - Task managers are using directly Runnable interface, not nested class anymore.
                     - Iteration methods are changed from for-each to iterator -> support element removal during iteration.
                     - Use of Map.Entry instead of keySet() / get(), leading to an performance boost on all existing tasks.

                     - Moved checks for decay delay to "add" method ; iteration compares and doesn't calculate.
                     - Added new method for corpse action (Corpse Drain Life, Harvest, Sweep).

                     - New manager created from 2 sources.
                     - Implements old TakeBreakTaskManager, to notify long activity for players.
                     - Implements ingame time system from old GameTimeController, to handle day/night cycle && spawns, plus Shadow Sense skill.

                     - New manager created from 2 sources.
                     - Implements old ItemsAutoDestroyTaskManager to destroy items on ground.
                     - Implements old ItemsOnGroundManager, to save dropped items on ground.
                     - New configs, which are more logical and have better usage.
                     - Reworked drop methods to support new interface of the manager.
                     - The processes of save/load items to/from database are simplified.
                     - Cursed weapons can be now picked by anyone, no longer drop-protected to killer/killer party.

                     - Fix a bug which was forcing all regions to update knownlist, when at least 1 player was detected in a region.
                     - Full update for NPCs is performed much more often now, since there are NPCs, which need it (e.g. Cabale buffers).
                     - Cleanup/sort all knownlist classes.

                     - Created from old GameTimeController.
                     - Handles only characters movement (keep max priority thread design).
                     - Remove game time ticks system, everything is calculated using real time (attack, bow attack, cast break, movement, etc) -> leading to:
                        - Improved accuracy of movement, thought there is still issue with it (requires next rework)
                        - fixed bow attack delay with high attack speed
                        - fixed bow attack & skill cast/movement, skill is now casted/movement is performed after bow attack is completed

                     - New manager.
                     - No longer 1 created task per equipped shadow item, shadow items are now handled by a single task.
                     - Mana ticking is now handled with higher precision (each second instead of each minute).
                     - Thanks to previous, equip/unequip/equip a shadow item no longer decrease timer by 1 minute per equip.
                     - Fixed an inventory bug when equipped shadow item disappears.

                     - Redesigned abstract Task class.


                  • Full Member
                  • ***
                  • Posts: 161
                  • L2topzone Votes: 34
                  • Servers reviews: 0
                  • Reputation: +290/-0
                    Re: [Project] aCis - Interlude
                    « Reply #208 on: January 19, 2015, 08:31:45 AM »
                    Changeset 339

                    Java 8, Libraries / Projects, Misc

                    Java 8
                       - Update your JDK to JDK 8 ! aCis officialy uses Java 8 for now. Java 7 isn't supported anymore.
                       - Drop Base64, use native Java one.
                    Libraries / Projects
                       - The MMOCore project is dropped, and directly integrated to "acis_gameserver" project under "net.sf.l2j.commons.mmocore". The JAR is NOT needed anymore.
                       - Java-engine library is updated to latest L2J version, 1.8.
                       - ECJ library is updated to latest L2J version, 4.4.
                       - Formatting rules applied on Hasha commits.
                       - Fix previous commit regarding missing itemsonground stuff (db installer).
                       - Fix ShortCutInit packet, to handle reuse delays on player relog. As this packet is now correct, drop a packet update on ItemSkills. Ty RooT.
                       - Fix a potential exploit regarding ItemSkills consumed items (skill was launched before item consumption). Ty RooT.
                       - Fix a NPE on Q374. Ty RooT.
                       - Fix few typos on HTMs.
                       - Add the possibility for a GM to shift-click on a player to see directly the panel. Ty RooT.
                       - Replace numerous keySet() / get() for a best counter, Entry.Map (20% to 50% faster).
                       - Fix Village Map Bulletin positions. Ty RooT.
                       - Added prices for A grade top tier weapons. Ty raphael.fersan.


                    • Full Member
                    • ***
                    • Posts: 161
                    • L2topzone Votes: 34
                    • Servers reviews: 0
                    • Reputation: +290/-0
                      Re: [Project] aCis - Interlude
                      « Reply #209 on: January 29, 2015, 09:00:33 AM »
                      Changeset 340

                      Caches, Announcements, Misc

                         - Filters are moved back into classes.
                            - Drop of //admin_fix_cache_crest admincommand.
                            - Drop of OLD_PLEDGE related stuff.
                            - BMP filter edited for DDS one, crests are stored under .dds format file. Consider to CONVERT .bmp into .dds !
                            - Crests are stored on a Map for an easier management.
                      Announcements - Ty Sikken, xblx (&& me ofc).
                         - Renamed Announcements > AnnouncementTable, moved into datatables. Addition of Announcement model. General cleanup and rework.
                         - Addition of critical announcement type.
                         - Addition of scheduled announcement ; you can schedule your announcement to happen X times, every Y times.
                         - Saved under XML format instead of TXT.
                            - Drop of //reload_announcements (handled directly by AdminAdmin //reload generic admincommand), //announce_menu (no use).
                            - Merge of numerous announcements admincommands, now handled by //announce <list|all|add|add_auto|del>.
                            - Addition of //say admincommand (critical counterpart for //ann).
                            - Old //announce renamed for //ann.
                         - Little reorganization on Gameserver.java.
                      PS : so basically, regarding Announcements admincommands, you only have :
                      - //ann && //say for instant announcements type.
                      - //announce <list|all|add|add_auto|del> for advanced mode.
                      - //reload announcement.

                      Hasha shared a little .bat to automatically make the .bmp > .dds transfer. You can find it HERE


                      • Full Member
                      • ***
                      • Posts: 161
                      • L2topzone Votes: 34
                      • Servers reviews: 0
                      • Reputation: +290/-0
                        Re: [Project] aCis - Interlude
                        « Reply #210 on: February 01, 2015, 07:30:40 AM »
                        Changeset 341

                        MMOCore, Announcements, Eclipse settings, Scripts, Misc

                        MMOCore - basic update to latest L2J version.
                           - Add a try/catch to avoid core crashing.
                           - Disable Nagle's algorithm (better latency, but bigger bandwitdh usage). It's a real time application, for love of goodness !
                           - Client is setted on putPacketIntoWriteBuffer method.

                           - Fix an issue regarding Announcement limit.
                           - Add //announce all_auto, allowing to announce auto tasks. Add the appropriate button on Announcements admin panel.

                        Eclipse settings
                           - Added project based Java8 compliance on both projects.
                           - Copied project settings from gameserver to datapack. It seems I was using workbench settings on datapack.
                           - Fix few missing stuff on datapack, such as static keywords or nested return.
                           - "Incomplete switch cases on enum option" is now setted to "Ignore".
                           - addition of SecondClassChange script. I can't test all cases and HTMs, so please report any issue on forums.
                           - addition of Q662. Ty RooT.
                           - numerous packets cleanups
                              - clean one nested Item Class.
                              - improve readability or performance.
                              - reduce the amount or complexity of variables / parameters when not needed.
                              - HennaInfo is fixed, the class level defines the number of henna slots. Ty RooT.
                           - getItems() from Inventory returns a List, not an array anymore.
                           - Fix possible double attacks issue, ty Hasha.
                           - Decrease timer between multiple pickups.
                           - Added a new multisell bypass, with a newbie check for L2Merchant exchange equipment. Ty ArhsGr.
                           - Fix a NPE regarding CrestCache rework. Ty katara for report.


                        • Full Member
                        • ***
                        • Posts: 161
                        • L2topzone Votes: 34
                        • Servers reviews: 0
                        • Reputation: +290/-0
                          Re: [Project] aCis - Interlude
                          « Reply #211 on: February 06, 2015, 09:31:54 AM »
                          Changeset 342

                          FloodProtectors, Scripts, Misc

                             - Simplified FP system (took L2JFree one). Timers are still configurable via config, all others configs are dropped (totally pointless).
                             - A parameter setted to 0 means the action is always possible (you can enable/disable any FP that way).
                             - Added new FPs - GLOBAL_CHAT, TRADE_CHAT, SOCIAL.
                                - GLOBAL_CHAT && TRADE_CHAT FPs are desactivated by default. GLOBAL_CHAT handles "All" and "Shout" chats.
                                - SOCIAL timer has been tweaked to handle animations at the most global running speeds. Edit if you don't like.

                             - addition of Q224, Q228, Q663. Ty to roko91 and RooT.
                             - Fix, anew, the movement stuck issue.
                             - Drop the empty folder in taskmanager.
                             - You can use arrows UP and DOWN to move the character without making your client crashes. No configs.
                             - Chats and RollDice handlers cleanup (nothing fantastic). Roll dice message is sent to anyone.
                             - Complete StopRotation packet. Ty RooT.


                          • Full Member
                          • ***
                          • Posts: 161
                          • L2topzone Votes: 34
                          • Servers reviews: 0
                          • Reputation: +290/-0
                            Re: [Project] aCis - Interlude
                            « Reply #212 on: March 12, 2015, 08:21:03 AM »
                            Changeset 343

                            Scripts, Inventories, Misc

                               - Addition of Q220, Q226. Ty roko91.

                               - Drop the unused "block" system on PcInventory.
                               - Drop the "quests slots" system on PcInventory. Easier slots check.
                               - Fix Packet Forge tool. Ty roko91 for the fix.
                               - Fix a NPE on ShortcutInit packet.
                               - Fix a NPE on removeCrest().
                               - Fix a NPE on calculateRewards(), overhit related. Ty SweeTs for the fix.
                               - Added a missing check on pickup method, related to overweight. Now you can't be 110% full...
                               - RequestDestroyItem got its checks edited, with the addition of CANNOT_DESTROY_NUMBER_INCORRECT message (for both < 1 and > max item number conditions).
                               - Remove GMs priviledges on few packets, leading to a most appropriated casual player experience for : attack stance on restart/logout, slot/weight overbuy, outofcontrol Action.


                            • Full Member
                            • ***
                            • Posts: 161
                            • L2topzone Votes: 34
                            • Servers reviews: 0
                            • Reputation: +290/-0
                              Re: [Project] aCis - Interlude
                              « Reply #213 on: March 15, 2015, 05:55:26 PM »
                              Changeset 344

                              Duels - part I, Misc

                              Duels - part I

                              I decide to commit first part of Duels, as there is already a lot of work.
                              All is functional, and far better written than before. Part 2 will get few fixes && little tweaks for Party Duels, probably 10% of what I'm commiting now.

                                    - General cleanup : aCis code style, DuelState Enum creation, setIsInDuel > setInDuel rename. Numerous comments && Javadoc as documentation.
                                    - Fix a ConcurrentException on DuelManager (couldn't handle simultaneous Duel creations).
                                    - Duel id is correctly calculated (it was probably very, very sad before).
                                    - Chaotic players (karma > 0) can't start or accept a duel request.
                                    - Fix a potential ConcurrentException on buff/debuff storing.
                                    - Fix a NPE with _playerConditions.
                                    - Fix few custom String for SystemMessage counterparts.
                                    - Fix the way duels handle disconnected players. It is considered as a surrender, as L2OFF. Ty sahar for report.
                                    - Fix an issue with surrender SystemMessage winner name.
                                    - Fix the max range for duel request && check task.
                                    - Fix the check task
                                       - It is fired once the duel is accepted (instead of after countdowns). A duel can now be disturbed during the countdown.
                                       - Added missing checks for party duels (zones, interrupted state, distance, pvpflag).
                                    - Fix RequestDuelAnswerStart checks, which are now exactly the same than RequestDuelStart packet.
                                    - Fix when a party in a command channel requests or accepts a party duel, that party is automatically withdrawn from the command channel.
                                    - Fix parties teleport, which are ported back to previous stored location no matter the duel end (in prevision to arena coordinates).
                                 Victory/lose animations
                                    - Fix an issue with kneel animation for 'B player/party winner' case.
                                    - Add Victory animation for winners.
                                    - Animations are sent even if one side is missing.
                                    - Revert party duel timer to 120 seconds (retail time).
                                    - The 1vs1 countdown is setted to 5sec instead of 3sec + "void" 3sec. Messages for 5, 4, 3, 2, 1 cases.
                                    - The party countdown is setted to 30sec instead of 20sec, with messages for 30, 20, 15, 10 cases. It also uses 5, 4, 3, 2, 1 messages from 1vs1.
                                    - Drop the 5sec timer at the end of a duel.
                                    - The two left tasks, CheckTask && StartTask, use scheduleGeneralAtFixedRate to avoid to generate tasks every seconds.
                                 - Rework PartyMatchList, ExListPartyMatchingWaitingRoom serverpackets.



                              • Full Member
                              • ***
                              • Posts: 161
                              • L2topzone Votes: 34
                              • Servers reviews: 0
                              • Reputation: +290/-0
                                Re: [Project] aCis - Interlude
                                « Reply #214 on: April 15, 2015, 12:43:49 PM »
                                Changeset 345

                                L2JFree Commons - part I, Misc.

                                L2JFree Commons - part I
                                - StringUtil :
                                - Holds all String related methods (gathered from misc places).
                                - Addition of 8 static DateFormat to avoid to generate objects. Unify the date writing style over the whole source (few still missing).
                                - Cleanup existing methods, improving performance or readability.
                                - StringUtil.append() allows to append any type of objects, instead of simply strings (which avoid all valueOf / toString).
                                - Util.implodeString() is dropped, use String.join() - Java 8 feature - when possible.
                                - Point3D class is dropped (redundant with Location).

                                - Drop few invalid IDs from RaidbossInfo script.
                                - Fix removeDuel method.
                                - Format adenas amount on wedding manager, ty oceeman.
                                - Few cleanups, improving readability / performance :
                                - L2OlympiadManager, RequestOlympiadMatchList : getOlympiadTasks() creation to handle loop easier.
                                - AdminManor handler : addition of static manor.htm.
                                - FriendsBBSManager, ClanBBSManager, RegionBBSManager, MailBBSManager : replace String concat on loops for StringBuilder.
                                - MailBBSManager : creation of MailType enum.
                                - L2AuctionnerInstance : use a StringBuilder instead of String concat loop.
                                - RaidBossSpawnManager : the long > long > date > format is cleaned up... You can directly use long to format, lol.
                                - SevenSignsFestival : correct use of String.join().
                                - PetDataTable : fix a strange use of int array > string format.
                                - Drop of GMAudit for bans and buffs action.
                                - Q419 : fix the strange array > list > array > 'custom method' formatting
                                - All StringBuilder have been reviewed and fixed. The convention name is "sb".
                                - All NpcHtmlMessage have been reviewed. The convention name is "html".

                                PROTIPS TO FEEL LIKE A STRING GOD
                                - Since JDK 1.5, String concatenation is AUTOMATICALLY replaced by StringBuilder. Don't bother about concatenation, EXCEPT in one case (see below).
                                - FOR loops should always use a StringBuilder, NOT A CONCATENATION.
                                - If numerous types of element must be attached, you definitively should use StringUtil.append() method.
                                - DON'T USE '+' inside StringUtil.append() to seperate parameters, but ',' !
                                « Last Edit: April 15, 2015, 12:44:19 PM by SweeTs »


                                • Full Member
                                • ***
                                • Posts: 161
                                • L2topzone Votes: 34
                                • Servers reviews: 0
                                • Reputation: +290/-0
                                  Re: [Project] aCis - Interlude
                                  « Reply #215 on: April 29, 2015, 11:54:49 AM »
                                  Changeset 346 (rev 352)

                                  Commons, Holders, Misc

                                     - StringReplacer class, used for next Log rework (delimiter).
                                     - Rnd uses ThreadLocalRandom* (Java7 feature)
                                     - Addition of MathUtil, holding commonly used math methods.
                                     - isEmpty() addition for StringUtil.

                                     - ItemHolder && SkillHolder are merged for a more generic IntIntHolder (as there are numerous ways to use an Int<>Int class).
                                     - Deletion of StatusUpdate Attribute class, use IntIntHolder instead.
                                     - final static > static final.
                                     - AdminRepairChar (admin_repair && admin_restore) handler is dropped (pointless).
                                     - AdminBookmark / AdminSkills / BookmarkTable use a better approach to filter results.
                                  *More performance infos about ThreadLocalRandom on http://java-performance.info/java-util-random-java-util-concurrent-threadlocalrandom-multithreaded-environments/


                                  • Full Member
                                  • ***
                                  • Posts: 161
                                  • L2topzone Votes: 34
                                  • Servers reviews: 0
                                  • Reputation: +290/-0
                                    Re: [Project] aCis - Interlude
                                    « Reply #216 on: May 17, 2015, 10:32:24 AM »
                                    Changeset 347 (366)

                                    Tradelist, AI, Misc

                                       - General cleanup, drop logs.
                                       - Fix a ConcurrentException.
                                       - Create a new package model.tradelist, and split TradeList and TradeItem.

                                       - Drop AIAccessor (better OOP approach).
                                       - Little cleanup and organization of ai package (creation of ai.model).
                                       - L2PcInstance pickup time is upped to 250ms, from 100ms (and previous was 500ms).
                                       - L2PcInstance getAI() follows other getAI().
                                       - Revert synchronized keyword on doAttack (causing issues).
                                       - Drop the Flee behavior for Mage/Priest AI types (not retail and buggy).
                                       - Better OOP approach for doRevive().
                                       - You can't sit anymore on a throne which is already occupied - ty RooT.
                                       - Fix a visual issue when logging/teleporting near a throne sat player - ty RooT.
                                       - Few Iterator cleanup, handled in a more elegant way.
                                       - Fix 15+ "potential ressource leak". Adapt latest SQLAccountManager.
                                       - Fix //zone_visual without parameter, merge //zone_visual_clear and //zone_visual.
                                       - Drop internal WarehouseItem classes from SendWarehouse(Deposite/Wthdraw)List. Drop GM check.
                                       - Replace the 3 uses of CopyOnWriteArraySet, which is a performance overkill crap.
                                       - L2World cleanup (rename methods && variables).
                                       - AdminEditChar : cleanup listCharacters() method.
                                       - PrivateStoreType Enum type creation.


                                    • Full Member
                                    • ***
                                    • Posts: 161
                                    • L2topzone Votes: 34
                                    • Servers reviews: 0
                                    • Reputation: +290/-0
                                      Re: [Project] aCis - Interlude
                                      « Reply #217 on: June 10, 2015, 04:08:19 PM »
                                      Changeset 348 (379)

                                      Scripts, Refactor, Misc

                                      The scripts stuff has been made due to external compiler taking huge time to compile, prior to JDK8.

                                          - Drop the external compiler, leading to -8mo RAM usage at startup and 2 libs drop. Server starts in 14sec instead of 1min+.
                                          - All scripts are moved inside core side ; scripts HTMs are moved into data/htm folder.
                                          - scripts.cfg is replaced by scripts.xml ; it is moved to data/xml.
                                          - Drop the possibility to load/reload/bypass scripts (drop associated configs && admincommands).
                                          - Addition of ScheduledQuest, which will be used later for tasks rework / events.
                                          - L2AttackableAiScript avoids to check NpcTemplate (- 6000+ .get()).

                                          - Rename old Util.Util to HexUtil, and move to commons.lang.
                                          - Creation of package commons.math, move MathUtil && PrimeFinder inside.
                                          - Move MinionList to gameserver.model.

                                          - Fix a Config related to packets debug, ty RooT.
                                          - Fix a ConcurrentException on RecipeShopManageList, and add another exploit check.
                                          - Fix checkPvpSkill, ty Versus.
                                          - Fix a double flag addition on siege flag spawn, ty Versus.
                                          - Use ConcurrentSkipListMap for subclasses and cubics (concurrent AND ordered).
                                          - Add a single method on NpcTable, which allows to drop 4 "single used" methods.

                                      Due to the huge refactor (thousands files are moved), the pack will be exceptionnally fully shared, to give you idea about how it is organized now.
                                      It's also probably easier to copy-paste folders && packages directly rather than using the diff patch (which is 19mo, 350k lines long).

                                      Changeset 349 (389)

                                      Scripts, RandomAnimationTaskManager, L2Attackable, Misc

                                          - Addition of Q414, Q416, Q639 - ty roko91, DarthVader (and me for the Q639 rewrite ;p).

                                          - Drop RandomAnimationTask stored variable on L2Npc (pointless).
                                          - Creation of RandomAnimationTaskManager, a single task holding NPCs social animation behavior. Avoids to create one task per NPC every 10-40sec ; with a single player online, it's ~120 saved tasks every 10-40sec on a random farm area.
                                          - cleanup (variables / overriden methods / big methods / get && setters).
                                          - getHateList() doesn't generate new List objects.
                                          - _attackByList rework
                                              - No lazy initialization. Avoids volatile/synchronized stuff.
                                              - Use concurrency to avoid issues.
                                              - Better OOP approach (moved from L2Character to L2Attackable).
                                              - Fix the following performance issue : Dying L2Character(s) generate HashSet for nothing (as getAttackByList().clear() calls the lazy initialization on doDie).
                                              - As a Set doesn't allow double values, drop .contains() check on addAttackerToAttackByList.

                                          - Fix an issue with mail system.
                                          - Revert previous commit regarding static DateFormat ; it can lead to misformatting.
                                          - Put Logger on L2Object level, drop others post-L2Object loggers.
                                          - Drop cw_reload admincommand (redundant with //reload cw) && misc cleanup about //reload (help, combobox, etc).
                                          - Addition of 2 missing NPC templates (2 quest monsters). Rename npcId 32008 "Gremory" for easier tracking.
                                          - ItemId 8056 Key of Splendor Room isn't considered as a quest item anymore.


                                      • Full Member
                                      • ***
                                      • Posts: 161
                                      • L2topzone Votes: 34
                                      • Servers reviews: 0
                                      • Reputation: +290/-0
                                        Re: [Project] aCis - Interlude
                                        « Reply #218 on: July 29, 2015, 07:48:00 AM »
                                        Changeset 350 (401)

                                        ArmorSets, Memo system, Misc

                                           - Rework ArmorSetsTable to use regular writing style (both dp / core). It's probably faster to handle directly an integer array rather than creating a List of HashMap...
                                           - ArmorSet uses a int[] to store the set, which avoids to generate an integer array everytime you use the admin command "create set".
                                           - Drop XMLParser, and cleanup XMLDocumentFactory from unused stuff.

                                        Memo system
                                           - Addition of PlayerMemo, NpcMemo && AbstractMemo. Edit ServerVariables system to reuse AbstractMemo ; rename it ServerMemo.
                                           - AbstractMemo is a StatsSet with a AtomicBoolean which checks if updates have been made or not (used to make clever saves).
                                           - PlayerMemo is loaded on player instance creation, and saved on player cleanup.

                                           - FishingChampionshipManager instance is harmonized.
                                           - StatsSet getObject() is reworked.
                                           - Fix a CCE (as throne system uses mount system). Ty Versus for report.
                                           - Drop nokarma && character_list admincommands (they already exist under set_karma 0 && character_info).
                                           - Fix a IOOBE on find_character (prior to page system cleanup).
                                           - Fix a NFE on remove_skills. Send page 1 if parameter was invalid.
                                           - Few StringBuilder inner concat -> StringUtil.append cleanup.
                                           - _disabledSkills doesn't use lazy initialization anymore. isSkillDisabled() method are merged.
                                           - Fix few postIL invalid skillIds checks. Ty raphaelfersan.
                                           - Fix 2 Oly SystemMessage, ty ErHard.
                                           - Access level trade-based SystemMessage are formatted. Ty ErHard.
                                           - Fix few HTMs encoding issues.
                                           - Fix Summon Friend item consumption update, and add a message for missing items, ty JDruidas.
                                           - Fix //npc_index, ty JDruidas.


                                        • Full Member
                                        • ***
                                        • Posts: 161
                                        • L2topzone Votes: 34
                                        • Servers reviews: 0
                                        • Reputation: +290/-0
                                          Re: [Project] aCis - Interlude
                                          « Reply #219 on: September 14, 2015, 01:25:19 PM »
                                          Changeset 351 (416)

                                          Sex Enum, Sex-based collision, GameServerRegister, ClassId cleanup, Misc

                                          Sex Enum - Ty lord_rex.
                                             - setsex admincommand allows only etc, female and male states. There is no more toggle possibility. If you set nothing or a wrong Sex, it defines it as male by default. If the character sex is already setted to the given sex, then it doesn't edit it.
                                             - Fun fact : etc state for player looks like female. For koreans, women are objects...
                                          Sex-based collision implementation - Ty lord_rex.
                                             - Fix oversized weapons on females (notably visible for dwarves).

                                          GameServerRegister is reworked to match aCis database installer standards.
                                             - Add "clean" option, which allows to drop a SINGLE server.
                                             - Keep the possibility to drop all servers using "cleanall".
                                             - Add "exit" option.
                                             - Rework "help" : renamed as "list" and it is easier to see if an id is already used.
                                             - Informations refresh is correctly handled (before you had to close and launch back the program to get it updated).

                                          ClassId cleanup - Ty Hasha.
                                             - ClassId is merged with old PlayerClass, allowing some nice optimization.
                                             - Race is renamed ClassRace.
                                             - ClassType is dropped, use regular int instead.
                                             - Possible subclasses for a class are generated and stored on a sexier way. Fix also an issue if the method was used on a custom way.
                                             - Drop 3 variables from xml/classes (already handled by ClassId enum).
                                             - Multiple FindBugs fixes.
                                             - Rework throne sit system to be stored on its own int, because it was using mount system int and was causing issues.
                                             - Fix the following issue : Wrong parameter count '2' for SystemMessageId: SM[761:S1_CANT_ENTER_ALLIANCE_WITHIN_1_DAY]
                                             - Fix Q625 npc messages for retail ones. Ty SweeTs.

                                          Changeset 352 (427)

                                          Quests, Movement, Cleanup, Misc

                                             - Addition of Q221 && Q229, ty roko91.
                                             - Add numerous SOUND_ITEMGET sounds to match aCis quests standards.

                                          Movement - Ty Hasha.
                                             - Fix movement multiplier.
                                             - You can't walk anymore if you're mounted (avoid moonwalk issue).
                                             - Few animation based interactions use movement multiplier ; drop getAnimationTimer().
                                             - Multiple uneccessary overidden methods are cleaned up.
                                             - Fix player based water speed (not based on run speed, got its own value).
                                             - Fix player based walking speed (not based on run speed, got its own value).

                                                - Few variables are renamed (boolean notably), and the class is more organized.
                                                - _vehiclePosition is now a SpawnLocation in order to keep track of heading information (used for a packet).
                                                - Drop GatesRequest && SummonRequest classes.
                                                - Better use of OOP for initCharStatusUpdateValues() method.
                                                - Merge isWearingArmorXType methods, and add checks for NONE and SHIELD cases. isWearingArmorType(ArmorType) is the result !
                                                - Internal "one shot" Runnable classes are dropped.

                                                - L2BoatInstance is merged to L2Vehicle (no use to get abstract), L2BoatAI is renamed L2VehicleAI for the occasion.
                                                - Fix oust system. Add deletion message on ticket consumption.
                                                - Vehicles packets writing style is unified and avoid to generate Location objects.
                                                - Improvement of Location && SpawnLocation classes. The idea is to refresh the object instead of creating a new one.

                                             - Fix NextAction infinite loop (must be cleaned once action is done). Ty Kraker for report.
                                             - Add ActionFailed on onIntentionInteract (to fix multiple clicks). Ty Hasha.

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