Cycle 380-389 focus : movement refactor, quests end. Changeset 385 (1468) is up ! Scripts, CommandChannel edit, Bugfixes, Organization

Recent Posts

Crappy servers / Re: Any working PvP server on aCis pack?
« Last post by asaki on Yesterday at 02:17:01 AM »

Thank you! I've contacted with support team of that server, hope they will reply.
Couldn't login to their server, nor register at forum. Tried using VPN but it didn't help.
Crappy servers / Re: Any working PvP server on aCis pack?
« Last post by asaki on Yesterday at 01:30:39 AM »
There is L2OvC, but they are on H5 season right now.

Thank you for reply! Hope to find and test one on interlude season.
Crappy servers / Re: Any working PvP server on aCis pack?
« Last post by Tryskell on October 19, 2019, 05:38:33 PM »
There is L2OvC, but they are on H5 season right now.
Crappy servers / Any working PvP server on aCis pack?
« Last post by asaki on October 19, 2019, 11:29:48 AM »
Hello guys! I've checked the list on this forum section but it seems there are no working PvP server yet.
They're either reopened on another pack or preparing for opening or have low rates (x2) or unable to login from my region, etc.
Could you please advise any currently working PvP server on aCis pack?
Regards and the best wishes!
Announcements / Re: Last aCis updates
« Last post by Tryskell on October 17, 2019, 11:41:33 PM »
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

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

   - 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.
   - 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 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.
Announcements / Re: Last aCis updates
« Last post by Tryskell on September 29, 2019, 07:20:09 PM »
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
   - 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.
   - 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.
   - 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.
   - 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 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.
Announcements / Re: Latest free sources and geodata
« Last post by Tryskell on September 28, 2019, 06:22:45 PM »
GitLab offering more services and options than GitHub, both private/public projects are now migrated to it.
Announcements / Re: How to get access to latest private source
« Last post by Tryskell on September 25, 2019, 07:07:01 PM »
Price section is reworked to be more clear. Addition of payment methods section.

You can now pay me in LTC/DOGE cryptos (the ones with lowest fees). Because I like to lose money over cryptos, feel free to use it. :dw2_14:
Announcements / Re: Last aCis updates
« Last post by Tryskell on August 30, 2019, 02:56:06 PM »
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.
   - 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.
   - 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.