Main Menu

Recent posts

#1
Announcements / Re: Last aCis updates
Last post by Tryskell - June 17, 2025, 09:17:23 PM
Changeset 411 (3596)

ZoneManager, Manors, Cursed Weapon, AI, Bugfixes, Organization

/!\ Fishing is currently malfunctioning. Wait next revisions for item/skills reparse + fish rework.


ZoneManager - Ty Bandnentans for the backup job
   - Rework ZoneManager, parsing L2OFF zones and associated parameters.
   - Zones are now handled by name, and not anymore by custom, dynamic, id - making them easier to invoke, and allowing retail script to invoke them aswell.
   - Zones are now extending Territory, and don't use anymore shapes (Circle/Rectangle/NPoly). Default shape is Polygon, cut into Triangles, through Territory. One more step down to delete "zone.form" package and ZoneForm class.
   - All zone types are added as L2OFF. Custom zone types are deleted (ARTIFACT, SCRIPT,...) and good names are provided (Boss = NoRestart, NoLanding = NoFly, etc).
   - NoRestart zones type (eg. previous Boss) behavior is now matching retail, and uses retail parameters aswell. It normally fixes the "instant teleport back to town when entering boss zones through few teleporters" issue.
   - Implementation of onLogin/onLogout/onEnterRegion/onExitRegion methods types for zones.
   - Implementation of EffectZoneTaskManager (a universal 666ms ticking task for all effect zones) and ZoneRevalidationTaskManager (a universal 666ms Creature revalidateZone task, avoiding multiple calls).
   - Migrate zone related Stat Func application to zone onEnter/onExit, deleting ZoneManager#getZone calls upon stat calculation (run speed, hp/mp regen).
   - Fix moving from same zone type to same zone type ; it doesn't consider to going out (hotfix). Should notably fix water re-entrance issue.
   - Delete custom CastleTeleportZone, use retail Mass Teleporter HTMs and AI params.

Manors - Ty LaRoja for fixes
   - Fix an issue where turning in crops to the Manor Lord for materials would incorrectly add adena to the castle vault instead of deducting it, while seed sales are correctly handled.
   - Fix an issue where the "Stop Purchase" button did not properly clear all crops. The last crop would remain set, and the manor wouldn't fully disable unless all adena was manually removed from the vault.
   - Introduce //manor [change], allowing manually a manor cycle to run.
   
Cursed Weapon
   - CW passive skill is properly cleaned up. Ty Denzel for report.
   - Don't store anymore Player reference on CursedWeapon.
   - Store CursedWeapon reference upon Player, rather than itemId - for faster acquisition.
   - Fix a NPE upon CursedWeapon#endOfLife.

AI
   - Fix aggressive monsters behavior. Ty Denzel for report, Bandnentans for fix.
   - Fix EvilateA/B not respawning demons. Ty Bandnentans for report.
   - Fix a conditional NPE over PartyLeaderHeretic2Aggressive AI.
   - Fix Gordon script NPE. Ty Sahar for report.
   - Move most DefaultNpc methods to Npc (npc isn't a parameter anymore, but the method caller).
   - Overload NpcAi#addCastDesire with NpcSkillType parameter, since it was hard to read and error-prone.
      Exemple with    -> npc.getAI().addCastDesire(attacker, getNpcSkillByType(npc, NpcSkillType.DD_MAGIC), 1000000);
                  -> npc.getAI().addCastDesire(attacker, NpcSkillType.DD_MAGIC, 1000000);.
   - Implement NpcMaker#areaSetOnOff and Npc#areaSetOnOff. AIs can now activate and de-activate areas based on behavior (generally spawn and dying). Uncomment all scripts areas triggers.
   - Implement Creature#isInThisTerritory, checking if a Creature is in a parametrized zone name. Uncomment all scripts areas triggers.
   - Re-introduce back RandomAnimationTaskManager for Folks. Ty Bandnentans for report.
   - getSeeRange() is now minimal Config.DEFAULT_SEE_RANGE - can't be lower - notably fix Gordon ON_SEE event.
   - Implement NODE_ARRIVED EventHandler. Fix Gordon continuously running after attacking someone.

Bugfixes
   - Sanitize the username string in AuthLogin as it is in RequestAuthLogin. Ty artemis for fix.
   - //set title is fixed (allows more than one token, and spaces between words). Add the possibility to clear title with no parameter.
   - Add a missing sysMessage upon regular Pet's name set, remove one check processed by regex (and which had invalid sysMessage).
   - Fix a "day 1" issue related to CH : if your clan was holding any CH, HP/MP regen was applied no matter the CH zone you were currently set.
   - Remove run stance upon Npc#reduceCurrentHp, making Walker run when being hit. Ty Denzel for report.
   - Fix an issue where Castle owners couldn't register for SCH. Fix the related SystemMessageId.
   - Allow blocked interaction to scan at higher range.
   
Organization
   - Config : Introduce NAME_REGEX_PATTERN and TITLE_REGEX_PATTERN, delete ZONE_TOWN Config.
   - Territory "Polygon to Triangle" algorithm is edited for an adapted version of Earcut (earcut4j without the hole handling), allowing monotone polygon and using Z-order curve index for faster spatial partitioning.
   - Rewrite Triangle#intersects method to be more accurate.
   - Drop grandboss_list SQL.
   - The few "var" are now named "variable", prior to var keyword addition in Java.
   - Update MariaDB connector from 3.1.4 to 3.5.3.
   - Add //set pvp <number> and //set pk <number>.
   - RoomInfo improvement - allocate and reuse a single List, rather than nullify it and create a new one.
#2
Announcements / Re: Last aCis updates
Last post by Tryskell - May 15, 2025, 11:01:26 PM
Changeset 410 (3371)

Makers, NpcAi / Desires, Cursed Weapon rework, Bugfixes, Admincommands, Movement, Organization


Makers
   - Fix ghost corpses.
   - Introduce task manager for MultiSpawn spawn schedule.
   - Introduce task managers for Npc respawn and despawn tasks.
   - Add missing random treasurebox maker.
   
NpcAi / Desires
   - AttackableAttack > NpcAttack, allowing ATTACK_FINISHED event over Npc.
   - Merge all reduceWeight from NpcAI operations.
   - Don't broadcast MoveToPawn packet for cast hold scenarii. CH and CP managers use hold cast. Probably way more to add.
   - Rework DesireQueue#addOrUpdate to avoid to generate a List.
   - Drop _isInHitAnimation, avoid twice runAI calls upon attack end animation, save a ThreadPool.
   - Implement Desire#isInvalid, used over the main loop to clean invalid Desires. All sided getDesires().removeIf are dropped, notably over AggroList/HateList.
   
Cursed Weapon rework
   - Fix potential task scheduling issues, reworking the whole layers. Reduce code by 1/3.
   - Use L2OFF formulas/data for item drop rate, staging process.
   - CW end duration now decreases when killing other Players.

Bugfixes
   - Revert schedule part from ThreadPool.
   - Fix Pet inventory IU. Ty Denzel for the report.
   - Fix Pet item timestamp reuse delay. Ty artemis for the fix.
   - Disable automatic beastshots when his owner dies. Ty Root for the report.
   - Player cannot craft while casting a skill, nor trade. Ty Root for the report.
   - Add missing weight checks for player/summon pickup, and player craft. Ty Root for the report.
   - Implement /graduatelist command, which displays a list of clan academy graduates for the past week. Ty RooT for the report.
   - Fix PLAYING_FOR_LONG_TIME concept ; rest message is server related, not Player related. Ty RooT for the report.
   - Player should stop movement when opening store.
   - Fix Q351 occurences of itemId 4310 by 4407 one + slight fix.
   - Fix Q365 missing memoState + poison skillId. Ty Root for the report.
   - Fix Q417 Torai despawn over cond 11.
   - Fix Q216 4 missing npcIds. Ty Karudin for the report.
   - Fix the invalid comment of DeleteCharAfterDays Config.
   - Fix NPC drop penalty level calculation. Ty Bandnentans for the report.
   - Items are now dropped in a 30/45 donut shape around dropper. Ty Bandnentans for the report.
   - PartyMatch fixes
      - Don't show Party members or CW holder as available waiting members.
      - You can't show overall List or join a PartyMatch room as CW holder.
      - CW owner, upon acquisition, leave PartyMatch system.
      - PartyMatch window is now automatically closed upon Player#removeMeFromPartyMatch.
      - Remove Player from PartyMatch if Player and newly joined Party leader PartyMatch rooms differ.
      - You can't join or be invited in a PartyMatch room if already partying/CW holding.
   - Fix ShowLicence config when set to false. Ty artemis for the fix.
   - Fix maximum number of macros. Ty artemis for the fix.
   - Fix invalid IU update over //enchant. Ty artemis for the fix.
   - Fix Castle Mass Gatekeeper HTMs. Ty kingNik0n for the fix.
   - Drop _disabledItems implementation. Won't be used by next refactors. Ty artemis for the report.
   - Fix loading handlers under debug. Ty Keku for the fix.
   - Fix character_macroses table structure (commands = 12x32 chars minimum).

Admincommands
   - Merge all old spawn admincommands (//list_spawns, //spawn, //unspawnall, //respawnall, //delete) to //spawn and //unspawn (previously //delete). Generate //help. //unspawn works over all ASpawn.
   - Merge all old fence admincommands (//spawnfence, //deletefence, //listfence) to //fence [add|remove], generate AdminFence. They now use proper Pagination. You can also teleport to it.
   - Implementation of //show manor.
   - Implementation of //set quest <id> [cond]. Related items must be hand-given.
   - Implementation of //set henna [page] [add|remove symbolId]. The hennas are still bound to game logic (slots, canBeUsedBy).
   
Movement - Ty LaRoja, Bandnentans
   - Fix Boats IOOBE.
   - Adapt getHeight logic from L2OFF.
   - Introduce back WASD movement, handle boat board/unboard.
   - Fix WATER/FLY movement logic.
   - Avoid to pathfind diagonal cells with detected obstacle.

Organization
   - Addition of QuestVars class, holding all related variables from quests (itemIds, npcIds, questNames, sounds, etc), allowing to reduce length of each script while reusing variables. 100+ cloned variables were deleted.
   - Refactor geometry package and Territory. Territory is now a unique 3D shape, holding any type of 2D geometry.
   - Remove few useless Location#clone uses.
   - Implementation of ItemContainer#forEachItem.
   - Clean many unused FrequentSkill. The whole enum is questionable.
   - Drop MathUtil#checkIfInRange, implement WorldObject#isInStrictRadius (involve collision of that WorldObject, and potential WorldObject parameter).
   - WorldObject#isIn2DRadius parameter is now a Point2D, not a Location (since a Location inherits Point2D, Location are still usable as parameter).
   - Rework Pagination#generatePages to handle page number > 1000.
   - Use Pagination over Tryskell SchemeBuffer. Ty CUCU23 for the share.
#3
Crappy servers / L2Valkyria
Last post by ErHarD - December 05, 2024, 11:25:33 PM
Good evening everyone!

The big moment has arrived! L2 Valkyria opens its doors today, 06/12/2024, at 21:00 Greece time (GMT +2)!
Come join us to relive the nostalgic days of Aria and Victoria (C3) and experience Lineage 2 once again! Our server has been crafted with thousands of hours of dedication, combining the nostalgia of old school Lineage 2 with the latest features of the Classic client.
If you can handle the late nights and the "PVP in SODA," Valkyria is for you.
Come and experience this unique journey with us again!

https://l2valkyria.com/
Valkyria is based on aCis  :dw1_4:
#4
Crappy servers / L2KvN (Koofs Vs Noobs)
Last post by giwrgosmastergr - November 06, 2024, 07:17:44 PM
📢Big Announcement! L2KvN is Back!🎉

🔥We are excited to announce that your favorite Lineage II - L2KvN server will be live again on November 17th, 2024!🔥 

⚔️Get ready for epic battles, endless adventures and the ultimate Faction experience we've all been waiting for! Bring your friends, gather your clan and get ready to conquer the world of Lineage II all over again!
⚔️After much preparation and waiting, our legendary server Lineage II - L2KvN is back stronger than ever! The moment you've all been waiting for has arrived!

⚡Prepare your clan, gather your allies, and prepare for the ultimate Lineage II experience! The doors are opening again, and only the strongest will conquer the world of L2KvN!

📅GrandOpening Date: 17/11/2024
💥Time according to the country:
20:00 Greece (Athens)
20:00 Russia (Moscow)
00:00 Russia (Novosibirsk)
05:00 Russia (Vladivostok)
14:00 Brazil (Brazil)
13:00 Argentina
20:00 Lithuania
18:00 UK
13:00 USA (Eastern Time)
10:00 USA (Pacific Time)

🌟 What to expect:
Epic battles and new challenges
New events and unique rewards
Updated environment and improvements for an even better experience
And of course, the company of all the legendary players who made L2KvN what it is!

🛡�We hope to see you all there for the ultimate L2KvN revival! Stay tuned for more information and updates.
🔔Don't miss it – Stay tuned for all the details and new updates!

The game is just beginning... Again!💪

⚡Server website:     https://l2kvn.com/
⚡Server discord:   https://discord.gg/unn2XBhwef

*Based on acis last free rev <3
#5
Newcomers, read this / Re: Public sources
Last post by Tryskell - October 11, 2024, 07:49:20 PM
Public revision is moved to rev 409, geodata link is refreshed.
#6
Newcomers, read this / Re: How to access private sour...
Last post by Tryskell - September 27, 2024, 10:28:20 PM
Since last massive leak as explained as 07/09 (notably all development branches), I don't accept anymore financial newcomers that easily. People will have to contribute 100 cookies worth of contributions (bug reports/fixes) as a first step to be accepted as Donator. Free user can join after sharing over 200 cookies out of contributions, compared to 100 cookies before.

You can say thanks to RusAcis, and notably his worthless leader, UnleashedForce.

The size of users will continue to shrink if more leaks occur, until true helpers only will be left.

New prices are as following :

Joining price: 200€ + 100 cookies, or 200 cookies
This fee has to be paid if you are joining aCis project. Next month, and all other months, you will have to donate only basic monthly donation.

Monthly price: 10€ / 10 cookies
This fee has to be paid every month.

I won't accept any new join fee before the 100 cookies contribution. Your money will be instantly sent back.

Also, in the same shape of idea, actual supporters/donators have to be active to stay in sources. It doesn't have to be a particular amount, you just have to share from time to time *anything*. I don't accept anymore silent ppl. Only useful people will be kept.
#7
Announcements / Re: Last aCis updates
Last post by Tryskell - September 07, 2024, 07:21:07 PM
Changeset 409 (3301)

SCH, Castles, IU, Npc movement, Drop rate rework, Bugfixes, Organization


SCH - Ty Bandnentans for the good work
    - All SCHs are normally fixed and working.
    - CH decorations are reworked (they got their own XML, related Configs are dropped).
    - Aden CHs got the Wyvern option, as stated in Patch Notes. Ty Denzel for report.
    - CH features levels are corrected. Ty Denzel for report.
    - Fix NPC clan crest issue.

Castles
    - Keep Castle next tax percent instead of resetting it to 0.
    - Implementation of missing variables over Castle vault management. Ty KejbL for report.
    - Remove doublons over Residence npcIds. Add npcId 35552 HTMs. Ty //Dev for report.
    - Fix the tax income calculation.
   
IU
    - Add PAPERDOLL as potential location for IU (fix gm enchant, arrows consumption). Ty Roko91 for report.
    - Fix weight calculation over login. Ty KejbL for report.
    - Fix inventory update upon teleport (BSOE consumption). Ty //Dev for report, La Roja for fix.
    - Fix inventory weight upon NPC buy.
   
Npc movement
    - MOVE_TO desire is cleansed over onEvtBlocked, avoiding to build infinite desire.
    - Don't add MOVE_TO desire if given Location isn't reachable.
    - FLEE doesn't call event upon onEvtBlocked (that event means something wrong happened, it's then impossible to trigger "regular" FLEE checks).
    - Use Location#equals in few scripts.
    - NpcAI#thinkFollow cleanup (-8 arrays, -24 List#get, -8 distance2D).
   
Drop rate rework
    - Main idea is to iterate each category X times, as if X monsters were killed. No % re-calculation or whatever, it's plain and simple. x50 means you got the calculated drops of 50 monsters.
    - Avoid to generate IntIntHolder, manage the drop/spoil using a Map<Integer, Integer> instead, which also allow to merge similar itemIds.
    - Categories % are tested no matter if drop or spoil, which allow levelMultiplier to be properly applied.
    - Monster#dropItem is moved to Npc#dropItem, which allow any Npc to drop an item and avoid cast.
    - "killer" is now part of all Npc#dropItem, meaning the item is properly item protected.
   
Bugfixes
    - Fix a ClassCastException over Quest#onClanAttacked.
    - Fix a NegativeSizeArrayException upon client logging. Drop few logging errors related to invalid client attempts.
    - Fix NPE over Q635.
    - Fix PDAM calculation prior to rev 399 physical attack/skill split. Ty Yoska for report.
    - Fix TradeList automatic title cleanup. Ty Denzel for report/fix.
    - Add back missing Config.PARTY_XP_CUTOFF_METHOD "none" option. Ty CUCU23 for report/fix.
    - Fix "upper roof" NPCs. Ty Bandnentans for fix.
    - Fix Seven Signs individual stone contribution method. Ty //Dev for report.
    - Fix Q372 reward table and drop rate. Ty //Dev for report.
    - Q348 now distributes drops as party-random, despite the client info. Ty Denzel for report.
    - Fix Benom teleports out. Hardcode other in/out Locations. Ty //Dev for report.
    - Don't show Crystallize icon on inventory for Bounty Hunters (was an addition of CT1 GP1). Ty Bandnentans for report.
    - Replace "weightPenalty" for "weightLimit" over skills XMLs. Ty //Dev for report/fix.
    - When Heroes participate in a raid against Antharas, Valakas, and Baium, the boss monster has a chance to shout out the Hero characters' names. Ty deekay for fix.
    - Fix isRaidBoss implementation (a raidboss minion without master was considered raidboss).
    - Fix Nurse Ants not healing the Queen Ant larva.
    - Fix a SQLException over Olympiad server startup.
    - Fix a SQLException over Clan member removal (since clan privs rework).
    - Fix default 30169 npcId HTM. Ty Bandnentans for report.
    - Fix Festival Guide missing rift option. Ty Denzel for report/semi-fix.
    - Few dwarven/general manufacture fixes
        - Add the missing max recipe integrity check.
        - Upon shop fail, call back the manage window.
        - Upon shop fail, don't cleanup the manufacture list.
        - Upon shop success, cleanup the reverse manufacture list (successful general shop resets dwarven, successful dwarven shop resets general).

Organization
    - Rework HtmCache and CrestCache to use NIO. Move CrestType to enums.
    - Implementation of WorldObject#forEachKnownType / WorldRegion#forEachType & forEachRegion - Avoid List overhead in numerous popular locations (notably broadcastPacket or region checks - which are done on every knownlist check).
    - Rework SkillList packet, it is now handled as other packets. Delete Player#sendSkillList method.
    - Delete DeadlockDetector class and related configs.
    - Add GameServer#isServerCrash, based on LaRoja implementation - without uses, for now.
    - Move IPv4Filter class to commons.network, delete net.sf.l2j.util package.
    - Add DefaultSeeRange config, use the retail value 450 instead of 400.
    - Add more records, ty LaRoja for the merge request.
    - Delete unused dimensionalRift.xml.
    - Few ItemContainer optimizations.
    - Rename all ocurrences of adenas to Adena.
    - SonarLint / UCDetector fixes :
        - Drop MathUtil#limit, use Math#clamp instead (introduced in JDK21).
        - Drop following unused Configs : FS_TIME_ENTRY, FS_TIME_END, RAID_MINION_RESPAWN_TIMER.
        - Few public / protected / private edits. A lot more to come.
        - switch cases are merged (introduced in JDK12).
        - Boolean object is compared to Boolean.FALSE/TRUE, not directly tested as a boolean.
        - String#replaceAll is replaced with String#replace when a regex pattern isn't involved.
        - Generate few records : Sequence, TutorialEvent.
        - Few class-based variables are now local.
        - Use HashMap.newHashMap instead of new HashMap when the capacity is known (static final maps). HashMap.newHashMap avoids to set 0.75 capacity when it's not needed.
        - LogRecord record is renamed LogRecord logRecord, due to record being now a keyword.
        - Use proper Singleton pattern for instance type (notably listeners).
        - Generate private constructors calling IllegalStateException for utility classes.
#8
Announcements / New leak involved, and its cou...
Last post by Tryskell - September 07, 2024, 01:19:08 PM
Hellllllo everyone ! Good news for some, bad news for others : aCis was, once again, leaked.

It wouldn't be that problematic if it was old content, or even last revision 408 ; but this time, the whole content of under development/master branches was leaked out. One pack project is actually reselling NEXT revision content - before even being announced on aCis forums.

The mole/leaker is still part of customers, and is still capable to leak data, at the date I speak about.

Since I'm on a joyful mood, following events will occur :

PIRATE PLANK MINIGAME

Since we got restricted amount of donators (we're actually 13 on sources counting developers, over all), it's not extremely hard to actually delete the mole ; few ppl are actually matching the description, and a list can be easily generated based on time leak, potential country, contributions,...

Which basically end with that representation :



How will it work ? Everytime a new leak will occur, the following donator on the board will jump out of ship (and Talking Island waters are kinda cold). Since I'm not a monster and got principles, I will send back spent money for the non-granted months to the kicked dude. You won't be added back to the sources, anytime. The game ends when the mole is dropped out, or when I'm alone with my most loyal peeps around.

CONTRIBUTION

Leftover donators will have to contribute to the pack, being reports or code edits. Silent people won't be renewed anymore solely based on money.

In the same order of idea, I will now request a minimum of 100 cookies contribution before accepting any new ppl on the gitlab - which anyway won't be hard to do if you're a minimum invested into the pack.

If you understood the concept, free ppl can access gitlab sharing for 200 cookies contribution (100+100), and donators can access with 100 cookies + 200€. Regarding monthly contribution, there are no special numbers to achieve, stay active and you will stay.

PUBLIC REVISION WILL STEP UP

Next rev 409 will be exceptionally released as public revision. This revision got unique reworks, notably AI (L2OFF GF 1:1) and pathfind systems (up to 100 times faster, see #for-your-eyes-only over aCis discord for screens proofs).

This revision got a lot of new content, and is far ahead of any other L2J pack in terms of AI fidelity with L2OFF - even the costier.

ENDING WORD

Thanks to all loyal people who have, will or currently support this pack - one of the very few to offer unique reworks.

L2J community, as a whole, unfortunately never stepped up or shined by its cleverness or integrity - and is more preocuppied to add poorly written customs over quality leaked sources.

The olympic medal goes to the poop-eater project owner applying straight leak, not even knowing what exactly is the changeset content (because yes, he doesn't know)... It's actually sad real people follow and pay for your work, but well, good job surfing on my own merits, I guess. Maybe one day you will go out of my shadows, and make your own path. That's the best I can wish you.

So, my thanks to the few beacons of light in this mere pool of shadows. That's essentially for you (and for my own pleasure, ofc) I continue to work on this hobbyist project - started almost 14 years ago.
#9
Newcomers, read this / Re: How to access private sour...
Last post by Tryskell - August 15, 2024, 08:47:52 PM
Cryptos section was slightly edited to reflect current state, it's not 2017 anymore so you have to choose crypto AND network.

I will deliver the deposit address by PM.

QuoteI will accept any cryptos from the coinmarketcap top 10th. Simply provide me in PM (discord/forums) the crypto/network to use (avoid ETH, big fees), and I will deliver you the deposit address in return by PM.
#10
Crappy servers / Re: L2Free returns on May 17th...
Last post by henrique - April 24, 2024, 12:22:09 AM
New season coming, begins on May 17, 2024 at 20:00. Server Timezone (UTC-3) :O

Server information updated in the first post.  :ork1_10:

L2Free.org  :hu1_4: