December 01, 2021, 02:25:07 PM

Recent posts

Pages 1 ... 6 7 8 9 10
Announcements / Re: Last aCis updates
Last post by Tryskell - September 29, 2019, 06: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.
Newcomers, read this / Re: Latest free sources and ge...
Last post by Tryskell - September 28, 2019, 05:22:45 PM
GitLab offering more services and options than GitHub, both private/public projects are now migrated to it.
Newcomers, read this / Re: How to get access to lates...
Last post by Tryskell - September 25, 2019, 06: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 - August 30, 2019, 01: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.
Crappy servers / Re: L2Free returns: 10/08 !
Last post by henrique - August 10, 2019, 06:03:05 PM
Registration and download released.
Get ready, grand opening today at 6pm! (UTC-3)

Crappy servers / Re: L2 Order VS Chaos Returns:...
Last post by sahar - July 28, 2019, 06:08:25 PM
New season starts 9 August.
Made many balance improvements, added new Daily Quests system and a new Hybrid map: Anakim VS Lilith Arena.
Don't miss it !
Crappy servers / Re: L2Free returns: 10/08 !
Last post by henrique - July 26, 2019, 09:30:07 PM
New season coming, begins on August 10, 2019 at 6PM. (UTC -3)
Server information updated in the first post.  :ork1_10:
Announcements / Re: Forum Announcements
Last post by Tryskell - July 21, 2019, 01:51:34 PM

  • Addition of forum links, to avoid to copy-paste 50 times per day links to people. I will definitively stop to answer such stuff in future.
  • Addition of Bug reports subsections : "Movement", "SpawnManager". Edit "AIs" for "AIs / Scripts".
Newcomers, read this / Re: Latest free sources and ge...
Last post by Tryskell - July 18, 2019, 01:44:05 PM
GitHub migration

I inform you than both public and private SVN repositories moved to GitHub. Since Eclipse got default GIT integration, it's normally easier to parameter it.

GitHub offers collaborative tools. You can easily fork public sources and share your contributions (called pull request). Source owner can then decide to accept them or not, which make them accessible to anyone in return.

aCis private repository is still hidden. Rules aren't modified, but will maybe evolve for customers, since diff patch system seems hard to be done.

SVN repositories won't be updated from now on.
Newcomers, read this / Server installation
Last post by Tryskell - July 08, 2019, 07:04:20 PM
MariaDB with HeidiSQL

Download and install MariaDB from it's official site. I recommend to install latest stable version, which is, at the moment, 10.4.11 (direct link).

HeidiSQL is included into MariaDB package. It is a free replacement of Navicat SQL.

Note, you can also use MySQL Server 5.5, but ONLY for free revision 370. So, to avoid re-installation, I suggest to stick with MariaDB.

JDK 8 / 11

Download JDK 8 / 11, depending of your sources revision. Free sources uses Java 8, from revision 381 JDK 11 is a must.

Pick it on AdoptOpenJDK website, select the Java version you would like to download and hit the button.

If you downloaded the installer from AdoptOpenJDK site, you can skip this step, as the installer adds the Java path itself.

Follow it only if you downloaded OpenJDK / Oracle / archive version as it requires manual edits.

You must add Java path to the system environments when using JDK 11. Java 8 automatically adds it to the path, so for free sources skip this part.

Right click on your Computer > Properties > Advanced system settings > Environment variables, select the Path variable and click Edit button > path to JDK, default "C:\Program Files\Java\jdk-11.0.5\bin"

Eclipse IDE

Download latest Eclipse IDE, at the moment, 2019‑12. It does not really matter which version you choose, Eclipse IDE for Enterprise Java Developers or Eclipse IDE for Java Developers.
I recommend the second one, Eclipse IDE for Java Developers, as it's lighter and contains everything you need.

Importing the project from shared sources - customer case

Importing the project from GitHub

Project compilation and configuration

Updating server

After some personal edits, you will need to do following :

  • If you edited core side : compile the pack, pick l2jserver.jar library and copy/paste it in the libs folder of your loginserver/gameserver, depending what you edited.
  • If you edited datapack : replace whatever you edited.

Preparing the client

Windows 10 users, if your game does NOT start : DOWNLOAD new engine.dll
Pages 1 ... 6 7 8 9 10