Jump to content

Tryskell

Legendary Member
  • Posts

    5,359
  • Credits

  • Joined

  • Last visited

  • Days Won

    62
  • Feedback

    0%

Everything posted by Tryskell

  1. 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.
  2. 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.
  3. And 3.3 is out since 9 november.
  4. 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.
  5. 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.
  6. 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.
  7. https://stackoverflow.com/questions/749709/how-to-deal-with-the-urisyntaxexception
  8. We use BCrypt implementation, search over sources for "bcrypt".
  9. Simply use 401, it doesn't have that issue - but will have other type of issues.
  10. Read patch notes. https://legacy-lineage2.com/news/career.html
  11. 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.
  12. 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.
  13. Texture/shadow maps errors are 95% due to client edition.
  14. 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.
  15. 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.
  16. 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.
  17. 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).
  18. A pentium 4 3 ghz, 4 giga of RAM and an ATI RADEON 9800 PRO.
  19. I already figured it :P
  20. The public sources are open source, it's not because there is a private, more advanced version it makes the first statement wrong. Public sources are shared without any specific rules - except the basic one to don't be a faggot. As I already told you, I don't need testers at this point - and testers is the easiest things to get. You complain about slow dev, I tell you I need devs - you tell me it needs to be ended to get some help/report, I tell you it then has to be slow. You tell me I will miss an opportunity with Classic, I tell you it's a waste of time to split between 2 projects (and so, get 2 very slow projects instead of 1 slow project). It's a neverending circle - let's stop from here ;).
  21. It's pointless to add pedals if the supposed "bicycle" isn't a bicycle to begin with. You can add as much pedals as you want, a plane with pedals won't do a lot. If you're fooled by dirty fixes, well, good for you. You're not my main target. "Real" helpers are the one who followed aCis in its darkest moments and continued to support it afterwards : When skills were entirely deleted and replaced by GF and H5 version (2011) When quests were entirely deleted and replaced by Java self made version (2012) When 385-391 cycle was fully buggy, and people continued to report (90 related issues were fixed in 1 year) When I had the idea to implement Desire system, and one crazy dude jumped into the hellhole with me (and actually carry me) I got my own inner roadmap on my head, and it follows its way. Each cycle got a general direction, btw. Simply "wait" the princess being saved, and hope than in the end, the king is kind enough. Also, explain me why I would make an open-source project if it's already playable ? What's the point, to begin with ? Make you rich while wasting my time ? I address myself to developers, not greedy admin servers.
  22. You already know my position about it. If I manage to end IL, I will eventually move to other chronicles. There is no use to split between chronicles for now, it's a waste of time and would lock me in eventual reworks (which I would have to reproduce X times per X maintained chronicles). IL is my priority, it's my main chronicle. I don't care what players want, or even worst, server admins who "wait". The point of an emulator is to emulate, if you build a gameboy emulator, that's not to have a gameboy advance. Moving to a chronicle is an easy cake, given the fact you got the data. Downgrading to C1/C4 would be actually easy. Moreover if someone did the packet opcodes/structure for you. Some ppl moved aCis to HB, some others to Freya,... Really, it's not hard. Just time consuming, and probably far lesser than whatever I did so far. Data is generally the annoying part.
  23. People wouldn't use aCis as much as they do, and there wouldn't have "that much" custom shares regarding aCis if that was the case. I wouldn't recommend my own pack if sources weren't available, period. No source makes the customization ecosystem pretty much dead. Even if I personally never cared about customization, denying it from ppl is stupid. Still, that's not to you to decide which is good or bad for people. As I already said, you have to promote packs doing good. People KNOW what they are paying for. It's not a "scam", it's just terrible practice, and that terrible practice is rewarded by people who buy and promote that behavior. If you want it to stop, stop using those packs, drop related topics and stop speaking about them. In reverse, help packs "playing the game" as much as you can. It's as simple as that. The main problem with that behavior is than you "wait" it becomes better. If all of you "waiters" were actually picking a pack and helping the dude, I'm sure no matter the pack you choose, it would be already ended. Getting a dirty Frintezza and getting no clue what is actually done core-side to make it working doesn't mean your pack is ok to be used. Copying-pasting L2Free 2007 scripts folder (and yes, there are a lot of those copy pastes) doesn't make your pack good, while you got strictly no clue how it's supposed to work. If your point is only to get a playable server, picking such content and agglomerating it on aCis will still be a better pack. There is no fortresses on IL, btw. If you saw it on an IL server, it's completely custom. If you speak about SCHs, 3/6 were perfectly working before AI rework, now they have to be redone.
  24. aCis got ~150 opened tickets for 1025 archived (which is ~85 per year). Amount of tickets doesn't mean a lot, it's vastly influenced by the amount of reports you got, the team's dedication to filter reports (clones, invalid), etc. It's sure if you got like 500+ tickets, you probably better should stop your project or recruit paid ppl. The maximum aCis had was something like 350 - that was just after the release of the buggiest aCis revision, which is, in date, 389/390.
  25. Tbh I don't really understand where you, guys, are pathing by. Don't promote Lucera (and others packs, but I see only Lucera matching the topic) on MxC to begin with (self board dropped, share links dropped,...), if your point is to forbid that type of product. If people are unable to edit sources because some RU dude is selling, without hiding the fact it's precompiled/obfuscated, that's not your business. People can and do choices by their own. Instead, try to promote/endorse packs which go the correct way. What you do is just brassing wind (no offense). If people are ready to pay 100/200€ for an obfuscated / precompiled and unfinished pack, well, it feels dirty but Darwin exists for a reason.
×
×
  • Create New...