-
Posts
5,365 -
Credits
0 -
Joined
-
Last visited
-
Days Won
67 -
Feedback
0%
Content Type
Articles
Profiles
Forums
Store
Everything posted by Tryskell
-
Project Geodata Converter from any format
Tryskell replied to MrIndex's topic in Server Development Discussion [L2J]
L2D (if you speak about aCis L2D format) was abandoned long time ago, there wasn't enough benefits for the uses. We use basic PTS format now. -
Request Attack Speed problem with ultra status server [aCis]
Tryskell replied to Hash's question in Request Server Development Help [L2J]
Thread.sleep should never been used like that, it's the worst you can do. Dig into lack of synchronization, maybe. Set _isAttackingNow/_isCastingNow to AtomicBoolean, add synchronized over _moveTask if there's not. Normally, setIntention is synchronized and it's impossible to override it. Another explanation is maybe your atkspd is too big than it generates very, very little tasks timers. Lower than 40ms (depends about your CPU cycle), timers got no guarantee to be properly managed if it uses System.currentTimeInMillis. -
Source aCis - another CRAPPY interlude server
Tryskell replied to Tryskell's topic in Server Shares & Files [L2J]
As previously said, I'm editing all associated texts through the different medias regarding initial fee, which is now set at 200€. Access through contribution is still reachable for 100 cookies . Monthly fee is untouched. For reminder, can be obtained from bounties - which are paid tasks - or as reward for any committed contribution. Valid reports are also rewarded with , they are rewarded in same time than the bugfix. -
Source aCis - another CRAPPY interlude server
Tryskell replied to Tryskell's topic in Server Shares & Files [L2J]
Hello everyone, I will be afk up to 1st January ! I will celebrate the new year with my girlfriend, eating some "boeuf bourguignon" ! For all people who stay alone during the holidays (and others ), I wish you great health and success in what you undertake, being love or business ! Regarding aCis initial fee Initial fee of the project will rise from 100€ to 200€ at 1st January. The monthly fee of 10€/month isn't affected. This rise is due to multiple factors : aCis is the only L2J pack to get retail AI system ; I want to restrict people to access aCis using money, and emphasize contribution over money ; Found and banned leakers will be punished harder if they do so ; Just to be perfectly transparent, another rise is already planned when skills refactor will be ended, rising the price to 300€ (which is still less than L2OFF, but will be as complete but more editable). Requested amount of cookies to become part of Inner Circle will be kept at 100 in all cases, to promote reporting, coding and sharing. Main goals of 2024 Main development axes are already know for 2024 ; skills and zones will be the main targets for this year. Reported bugs will be fixed occasionally, as always. If we got time, a side quest could be another Movement refactor - which would benefit from Vector approach - and LoS - which I find lacking. Some Bounty Hunt will be eventually deployed for those particular cases. -
Source L2Dot Net Interlude Project
Tryskell replied to Elfo's topic in Server Development Discussion [L2J]
Elfo never followed its own L2J projects for more than 3 consecutives months and will never do so. That's like a running gag or a prophecy you can't go through, like aCis being a never-ending project. For his defense, he got way better things to do and is far more successful on his Youtube channel. Also, anyone is up to pick what Elfo left ; don't be that sort of ppl requesting fully functional code. The GIT is still functional so you can follow his path. -
Discussion [L2J] Looking for L2J/OFF Developer
Tryskell replied to รoftcorє's topic in Server Development Discussion [L2J]
Try to join a live project community. Generally, you will get more help, faster, and it will also be more accurate. If you need general help (common to all L2J or using L2J itself), you can request help here too https://maxcheaters.com/forum/43-request-server-development-help-l2j/ - I help since 2011 (I got like 1.5 or 2k posts in dev help section), depending the subject - and some others still do. You can continue to request for paid lessons, but I should warn you, the vast majority is filled with scammers, then you got maybe 100-200ppl worldwide which are ok tier and are able to do most things, then you got maybe 10-20 ppl who are really good. Finally, if you got a Java question, you can use chatGPT and stackoverflow website, which is generally "on point". 90% of my Java knowledge is about Baeldung website and stackoverflow answers (type your question on google, and pick stackoverflow.com answers). https://www.baeldung.com/get-started-with-java-series -
Discussion [L2J] Looking for L2J/OFF Developer
Tryskell replied to รoftcorє's topic in Server Development Discussion [L2J]
Better use an active fork or L2J itself and join their community (generally, each project got at least a Discord) - you will generally find dedicated ppl to answer your questions. About practicing, as I said, you have to at least understand Java OOP concepts (mandatory, will help you a lot to understand what you exactly do - if not, you will eventually guess it after 2-3 months). You should apply manually customs (adapting them from one project to another is even better, since it forces you to seek through files). Start with basic customs, few lines max. Then raise the difficulty with more advanced customs. In the meantime, try to modify them for your needs or experiment. It's really annoying and hard to apprehend for a newbie, but you should also read and understand about git/svn (version control systems). Those systems allow you to generate "restore points" everytime you commit in your project, allowing you to eventually revert back. It will be extremely useful once you do crap. Gitlab / github (GIT technology) is the way to go those days, but SVN is really fine (and easier to use, since more basic) if you work alone. Try even with a non Java project, it's not important, from the moment you understand how to generate such a repository, commit over it, and be able to revert back. If you don't use such system, your project will eventually break one day, and you won't be able to revert what you did. That's basically how I lost my first Java project, back in 2010. -
Discussion [L2J] Looking for L2J/OFF Developer
Tryskell replied to รoftcorє's topic in Server Development Discussion [L2J]
You just need time and dedication - if you don't have those, you probably shouldn't lose your time developing. Moreover with the astronomical amount of shared customs, guides and alike content over all L2J related forums / youtube channels. If you don't want to "academically" learn Java, but get some fun learning how L2J (and Java) works, the best is to simply try to adapt customs over a vanilla source. Second step would be to modify it as you like, and the third step would be to code your own. Start with easy to adapt customs, then go into more complex stuff. You have to read first about basic Java concepts, called OOPs concepts, to avoid to waste your time. It's mandatory and will save you some time. L2J is 30% Java and 70% project hierarchy understanding, seeing how bad and lame some "developers" are, strictly anyone with some time can become a "L2J developer" (which is mostly copy-pasting code made by other, talented, people and reselling it). A good source is normally organized and Javadoc documented. If not, avoid to use that. Finally, client and server are two entirely different concepts (one is illegal and the other legal, btw :D), and generally ppl tend to "subclass" on either one or the other. -
Source aCis - another CRAPPY interlude server
Tryskell replied to Tryskell's topic in Server Shares & Files [L2J]
And 3.3 is out since 9 november. -
Source aCis - another CRAPPY interlude server
Tryskell replied to Tryskell's topic in Server Shares & Files [L2J]
GC usage was reduced by 50% prior to JDK21 (4 cycles saved prior to Virtual Threads implementation), but CPU usage never reached any high level. 1 player on, 400 mobs minding their own business. -
Source aCis - another CRAPPY interlude server
Tryskell replied to Tryskell's topic in Server Shares & Files [L2J]
Long time no see, isn't it ? I take advantage of my 37th year of oldness (15/11/1986) to announce the release of revision 407 ! It took one year and half to produce such content, but here we are, finally ! I would like to thank any contributor (being coder, tester or money support) who participated to this release, which is, by far, the most important of all (466 commits done)- both in terms of edited files, released technology and content. Achieved work is abyssal, and got nothing to do with what you have seen - in either aCis, and definitively not in other pack. The AI content is already in a really decent shape, but will be eventually cleaned during the next months. Some special and original content is already in preparation for the incoming months. Thanks to people who continue to believe to my dream and embraced it, and for others (leakers, trashtalkers... and BR folks, in general), well, you already know where you belong ! I'm extremely lazy to attach files to show you content, you can eventually reach aCis discord, over #for-your-eyes-only, to see some of the work done on geopathing, and, of course, test directly latest branch over Blackbird PTS (using //show path) ! Changeset 407 (3136) JDK21, Pathfind, RelationManager, Boats, NpcData, Desires, AI / Script, SpawnManager, RestartPointData, Clan privileges revamp, ItemInstanceTaskManager, InventoryUpdateTaskManager, Bugfixes, Organization JDK21 aCis officialy supports JDK21 ! Enhanced instanceof pattern matching from JDK14 ThreadPool uses virtual threads from JDK21 .collect(Collectors.toList()) > toList() from JDK16 Convert few classes using record pattern from JDK21 Pathfind Abandon the buffer pooling approach, allocating wrong buffer size. Indirectly fix complex middle distance pathfinding being unprocessed. Refresh the heuristics to use Euclidean. Give up diagonals heuristics leading to strange diamond shape pathing. Big overall cleanup. Ty LaRoja. Pathes are being executed up to x100 faster. Values don't exceed 50ms anymore. Ty LaRoja. Thanks to previous point, MAX_ITERATIONS was moved from 3500 to 10000, allowing more complex pathes. The Config can be virtually deleted, but it is kept for security valve. RelationManager - by LaRoja Rework friend and blocklist relations to be handled simultanously, avoiding SQLIntegrityConstraintViolationException upon /friendinvite someone and then /block him. Decrease the amount of SQL entries by 2, rename character_friends > character_relations. Introduce RelationManager. Add missing THE_PLAYER_IS_REJECTING_FRIEND_INVITATIONS check - for non-GM player trying to invite GM Players. Fix S1_BLOCKED_EVERYTHING check - it must check target's isBlockingAll statut, not player's. Add FriendAddRequestResult for all negative checks. Boats - by LaRoja Rewrite Boat system ; data is handled by XML. Rewrite boarding concept, which now works better than L2OFF. Fix known issues (ghost boats, boats moving on territories, isBusy concept generating instability). Boarding now trigger PEACE and NO_SUMMON zone types. Trying to summon while onboard trigger proper SystemMessageId. NpcData Reparse all NPC templates using our internal parser. The data can be reparsed at will according needs. Most stat values are now set as double instead of int to avoid to lose accuracy. Many missing variables were added, aswell as all AI params, which are used by scripts. Templates don't hold anymore enchant effect. Attack distance is not calculated anymore based on weapon, but as a template variable. Fix indirectly all "exotic" weapon bearers (sarbacane, throwing knives...) which weren't considered as a BOW. Minions don't have anymore min/max count. NpcSkillType now hold all types used by L2OFF AI - from 6-8 to 111. NpcType system is dropped. Desires All NPCs can now register "Desires", which are Intentions with a weight. Biggest Desire weight is processed - others are stored, waiting to be processed, allowing scripters to fully manipulate a NPC. Added multiple missing events. AI / Scripts - by Bandnentans Deletion of main behavior of AttackableAI loop. All NPCs become "empty shells" and must be fully driven by scripts to handle their behaviors. A NPC without a script won't do anything, nor react. Introduce DefaultAI tree based on L2OFF scripts, which add 150+ individual AIs instead of the 3 previous behaviors (FIGHTER, MAGE, HEALER). Introduce all epic bosses - as retail. Introduce all regular bosses - as retail. Introduce all regular attackable trees - as retail. Split //info ai and add //info script with running QuestTimers. Aggro transfer upon Summon death is moved from Summon#doDie to script. Implement Black Judge script. Ty Denzel for report. Indirect bugfixes due to AI rework : Attackables weren't attacking when mana is depleted. Ty stepbystep for report. Attackables were idle if already buffed with similar buffs (eg. a Player launching Might on a Npc which could buff with Might, was making him totally idle). Ty stepbystep for report. Bosses were struggling choosing the proper intention. SpawnManager Maximum number of NPCs per Territory is fixed. Ty Denzel for report. Reintroduce //delete for Spawn (which is used by //spawn). Introduce privates based on Spawn (811 occurences). RestartPointData Replace entirely MapRegionData - delete mapRegions.xml and add restartPointAreas.xml instead. Implement RestartArea and RestartPoint, used by SoE/death teleport. Handle Race and karma based spawns. Data is parsed from L2OFF. Delete spawns from TownZones. TownZones aren't considered SpawnZone anymore. Extract MapRegionData#TeleportType and rename it RestartType. Add //show restart [area|point]. Implement location localization upon PartyMatching. Clan privileges revamp Use PrivilegeType enum instead of Clan ints. Delete _clanPrivileges out of Player. It's now calculated based on power grade and Clan. Rework Clan#setNewLeader method. Rework few packets : ManagePledgePower, PledgePowerGradeList, PledgeReceivePowerInfo, RequestPledgePowerGradeList Add a missing sysMsg over RequestPledgeReorganizeMember. Implement //pledge transfer - your target replaces his Clan leader. ItemInstanceTaskManager - by LaRoja Introduction of a lazy-SQL save of ItemInstances (1min task running for everyone), saving the vast majority of SQL queries related to items. InventoryUpdateTaskManager - by LaRoja Introduction of a single task allowing to process an IU packet. Fix indirectly any type of visual issue : Fix adena duplicate. Fix harvest reward duplicate. Avoid to send multiple IU packets, all operations are batched and executed after a short delay. In case of identical stackable items edits in short timelapse, only the operation is updated. Delete all custom cases of ItemList used because of lazyness - except the retail ones. Bugfixes Cubic chooses enemy target based on owner isAttackableWithoutForceBy (which will handle all cases). Fix the 1.001% elemental bonus deleting the attacker getAttackElementValue part off the calcElementalSkillModifier. Fix teleport price upon weekends / 7s period. Ty Denzel for fix. Fix //help search button. Ty l2drim for report, StinkyMadness for fix. Add few missing sanity checks for PartyMatchRoom manage/join/answer. Ty MrThirtyOddSix for the report. Fix quotes in .sh db installer. Ty Vladalien for the fix. Fix a potential NPE over FishingStance. Ty newuser for the report. Fix Lottery event end day. Ty henrique for fix. Add missing db save for shortcuts upon skill addition. Ty Anarchy for report. Rework //set sex/class switch to avoid the need of restart. Ty LaRoja for the fix. Refresh Summon infos for owner upon effects removal methods. Ty bios for report. Desactivate arrow based movement (buggy and exploit friendly). Add distance check on L2Skill#getEffects. Should solve Olympiad prebuff. Ty BiggBoss for fix idea. Fix NPE + ConcurrentException upon Festival of Darkness save. Fix NewbieHelper NPC interaction when dropping Tutorial progress. Ty LaRoja for the fix. Fix Petition system objectId management. Fix an issue where the pet referenced by a Summon Item saved as "item on ground" was deleted upon server restart. Fix missing visual effect over skillId 3159. Ty KejbL for fix. Fix CP/HP/MP upon restart with Hennas on. Ty Denzel for report. Fix client critical errors (all related to HTM max size excess) upon : //info drop/spoil. Ty Denzel for report, LaRoja for the fix. //list_spawns. //info spawn, upon big amount of minions. Ty Denzel for report. Make Traveler's weapons non-enchantable. Ty Denzel for report, LaRoja for the fix. Fix Dual Fists weapons animation/damage. Ty Bandnentans for report. Fix following behavior : casters, over failed cast check, must stop movement. The rotation towards target can't be properly added, NCZOFT aswell does it wrong and lately deleted it. Rework getUniqueItems, adressing 2 issues - Ty LaRoja for the initial share. You can now give back Apprentice and Traveler weapons towards Miss Queen (due to non-tradable state of the item). Ty x-user for report. You can now put an SA over augmented items (you could already put an Augment over a SA weapon). Ty Denzel for report. Fix mounted Player stats penalties using C2 notes. Ty Gigi85 for report. Fix teleport as PK to owned castle or CH. Ty Denzel for report. Fix the SQLIntegrityConstraintViolationException upon store manor data, reparsing manor data using AdvExt. Ty Denzel for the report. Don't save CONT effects upon character disconnection (Battle Force, Spell Force). A SkillChannelizer handler would be the ideal solution, but it will wait for a potential Skill refactor. Fix few Shadow Weapon issues - Ty RooT for the fixes Every equip action / login must decrease lifetime of 1 minute, as stated by IL patch notes. The first equip doesn't trigger it. Add missing messages upon destroying such item from inventory. Add missing message upon disarming the weapon upon mana == 0. isShadowWeapon() check was wrong. Give the possibility to edit stackable items on a trade. Tu Anarchy for the report, StinkyMadness for the fix. Fix the last NPCs unrelated to TerritoryStatus (NPEs upon null Castle). Organization Update MariaDB to 3.1.4. //info over NPC now handle all possible //info types. Move castle and clanhall classes under residence package. Ty Minutis for the idea. More uses of TRUNCATE over DELETE FROM. Drawn shapes using ExServerPrimitives now build vertical lines for a 3D visual effect. Add few utility methods over IntIntHolder, IXmlReader and StatSet. Fix big length Announcements formatting over //announce all. Ty artemis for fix. New Players don't save anymore following values : karma, pvpkills, pkkills, clanid, deletetime, cancraft, online, isin7sdungeon, clan_privs, wantspeace, nobless, power_grade. Delete characters table cancraft/clan_privs columns. Don't load cancraft/online over CharSelectInfo. -
Help Unknown packet on state: CONNECTED
Tryskell replied to Enduro's question in Request Server Development Help [L2J]
You use an invalid or customized client. If it's on a live server, the dude either tried to craft and send a packet (using L2PHX) or tried to connect using an invalid/customized client. Shortly said, a packet was sent (generally by client) which was denied by gameserver which define which packet is supposed to be triggered. It avoids packets to be triggered manually, on unwanted times (eg a packet craft using connection packet during ingame would probably lead to issues). Some anticheat systems can also generate new packets, leading to that type of error. -
Discussion Eclipse Fail Build
Tryskell replied to byEvanthe's topic in Server Development Discussion [L2J]
https://stackoverflow.com/questions/749709/how-to-deal-with-the-urisyntaxexception -
Help Password Manager aCis 401
Tryskell replied to eScz's question in Request Server Development Help [L2J]
We use BCrypt implementation, search over sources for "bcrypt". -
LF l2j Acis NPCs on the roofs of the buildings lf some support!
Tryskell replied to carvage's question in Request Server Development Help [L2J]
Simply use 401, it doesn't have that issue - but will have other type of issues. -
Help What abbout types of lineage clients ?
Tryskell replied to xeox's question in Request Server Development Help [L2J]
Read patch notes. https://legacy-lineage2.com/news/career.html -
Guide Could not restore char data PROBLEM
Tryskell replied to NifO_TOP's topic in Server Development Discussion [L2J]
Provide the logs, it will give you details regarding the issue. For now simply check for "Could not restore char data" on your project, and revert or fix your customs on the given method. Basically you got a method call returning nothing ("null") while it should be set. Either you missed a != null check, or you messed up the logic. Eg. if you do player.getInventory().addItem but never set _inventory before on that Player, then it ends as NPE because getInventory() isn't set and returns null. So, null pointer exception. -
LF l2j Acis NPCs on the roofs of the buildings lf some support!
Tryskell replied to carvage's question in Request Server Development Help [L2J]
It's indeed a geodata issue, it can be hotfixed server-side but it's not the proper way to do it. Proper way is to reparse geodata or to fix it manually, some floors are strangely generated. Hasha decided to leave it as it was, to manually fix it. About RUSacis, you shouldn't use it for multiple reasons : - they don't hesitate to re-use my project/name without any type of permission, and monetize it - they don't support the main project in any way or shape (share or report) - they're already outdated (by a large margin) and got no vision of what need to be fixed since they only follow my own path. Understand than the main updates (SpawnManager and all other important subsystems) actually come from my own work. Using 402+ is also an error, imho. Even if SpawnManager was added and is functioning, multiple other systems depending about it were adding later on. You should stay on rev 401 (which got old spawn system but is perfectly fine for a custom high rate server). Don't support leakers and stealers. -
Help After teleport or revive critical errors
Tryskell replied to usedy07's topic in [Request] Client Dev Help
Texture/shadow maps errors are 95% due to client edition. -
Help l2 acis interlude
Tryskell replied to madbill's question in Request Server Development Help [Greek]
Well, my answer is still reliable. You can reach another chronicle altering packets structures and opcodes + adding missing functionalities which were introduced in later chronicles. Datapack would still be IL oriented, so you also have to reparse it (using L2OFF, and you're lucky since GF is the only viable datapack and you won't have to bother about data being true or false). It's an extreme time-consuming action, and you shouldn't handle it alone, except if you already mastered L2J. But well, do whatever you want with your free time ;). Being GF, H5 or Classic chronicle doesn't really matter. Some even tried to port aCis as Hellbound, from what I know. -
Help l2 acis interlude
Tryskell replied to madbill's question in Request Server Development Help [Greek]
I got no clue what is "fg". You can use upper client (Classic, H5 or whatever), but you have to adapt all packets to match the client requirements (which is the edition of existing packets - opcodes and structures - and the addition of new packets - to support whatever client window). aCis is dedicated to IL (aCis stands for "another Crappy interlude server"), there is an eventual project to make it running using an upper client, but that's definitively not my priority right now and if I do it, that would be either extremely costy or for myself. About your custom table (and customs in general) it's not because you add a random config/table it gonna magically work. For your custom table to work, you have to add the whole server side to load your table on server, since there is no custom items table by default on aCis. The easiest way is to copy-paste an existing object from XML and add it on existing XMLs. There is strictly no uses to make a custom items SQL table. -
Help l2 acis interlude
Tryskell replied to madbill's question in Request Server Development Help [Greek]
All static (any template type : npc, item, zone, skill...) data is stored into XML, db is for dynamic data. I didn't get your first question. -
As said Melron, HeroManager.getInstance().isActiveHero is a sublayer of isHero and verify if the hero is actually a real one. The "valid hero" state unlocks when you reach the NPC and pick the title. Also, requesting my help while using "rusacis" is a "foutage de gueule", at best (in french, I let you translate) and also a outright lie from yourself (they - and you - don't base on free rev 401).
-
Discussion Best setup for lineage 2
Tryskell replied to kochanie3375's topic in General Discussion [English]
A pentium 4 3 ghz, 4 giga of RAM and an ATI RADEON 9800 PRO. -
I already figured it :P