Jump to content

aCis - another CRAPPY interlude server


Tryskell

Recommended Posts

  • 3 months later...
Spoiler

Don't be too happy, it's already some old footage (January). I decide to "cut it" here because leftover content is irrelevant.

 

Changeset 406 (2670)

 

Four Sepulchers, SpawnManager, Bugfixes

 

Four Sepulchers - ty Hasha
    - Q620_FourGoblets now extends ScheduledQuest, handling both FourSepulchers script and FourSepulcherManager. It now uses SpawnManager lists.
    - Missing room behaviors are added (such as Charm of Corner room, etc)
    - Change NPCs' type from SepulcherNpc to Folk. Moved and checked HTMLs.
    - Goblets are not quest items (kept during abort) as per L2OFF. Chapel Key is quest item as per L2OFF.
    - When accepting quest while having Antique Brooch, set cond 2 directly.
    - Fix opening of "Sealed Boxes" at "Ghost Chamberlain of Elmoreden" as per L2OFF.
    - Fix Ghost of Wigoth (Four Sepulchers) HTML logic.
    - Fix Ghost of Wigoth (Pilrimg's Temple) HTML logic, added missing HTMLs.
    - Fix Q620 Sealed Boxes droplist and chances.

 

SpawnManager - ty Hasha
    - Spawns heading is now set between 0 and 65536.
    - Rename events.

 

Bugfixes
    - Fix skill cast animation being interrupted when attacking with a bow. Ty Sluger for report, Sahar for fix.
    - Fix Siege Summon unsummon upon teleportation.

Edited by Tryskell
Link to comment
Share on other sites

Long time no see 🙂 !

 

Rejoin fee deletion

 

Since 21th October 2022, the "rejoin fee" concept has been deleted. The initial fee is still 100€, and you still have to pay monthly to get access. If you lose access and want access back, pay 10€ minimum. I reserve the right to refuse you access if you abuse the system.

 

PTS is refreshed with feature/IU-update branch for a short time being !

 

This branch adds a unique way to refresh Pet and Player inventories, supposingly fixing any type of bad uses of InventoryUpdate packet, queuing changes and sending them after a short delay (333ms actually).

 

Pet and Players also hold one unique packet per entity, avoiding the generation of thousands and thousands of packets. Finally, "lazy" uses of ItemList are dumped (crystallization and wherever places "complex" operations regarding inventory update was done and L2J decided to lazyfix it with a ItemList send), and ItemInstance doesn't hold anymore ItemState. All changes are automatically done and sent.

 

Up to Sunday 12th Feb, reported issues regarding inventory management will reward you x2 more cookies (4-20 cookies max instead of regular 2-10 cookies), depending about issue severity. The branch will then be shortly commited into master branch.

 

Triskl, when next rev plx man ?

 

It's not because there is currently no "public" revision, there is no work done in background. We're currently at commit 2832, which is 162 commits above current release.

 

For the changeset lovers (and I know there are), the next revision is currently 77 lines long (and obviously more with the introduction of InventoryUpdate rework).

 

Happy candlemas !

Edited by Tryskell
  • Upvote 2
Link to comment
Share on other sites

The initial topic is refreshed concerning Cookies (to be shorter and easier to understand) and Bounty / Bounty Hunter concept is added (was added on Discord since few years, but not on main topics).

 

I'm currently working over items :

  • lazy SQL saving (1min single task, every modification is kept in a list and addBatch/executeBatch and list is cleared) instead of 1 query per item edition, which will save probably 80-90% of SQL server activity. That task handles item add/update/deletion, pet deletion and augmentation add/deletion.
  • InventoryUpdate packet will be automatically filled and sent, there is no more savage ItemList or IU packet stacking on each other. Wrong uses of InventoryUpdate are indirectly fixed. It's also optimized for stackable cases in very short spans (getting proper values if I macro 50 Player#addItem, without InventoryUpdate spam). ItemList is only used on Player login or if inventory must be displayed.

AI is on hold state from my side, one of my dudes currently struggles with Frintezza script.

Edited by Tryskell
  • Like 1
  • Upvote 2
Link to comment
Share on other sites

  • Trance featured this topic
  • 2 weeks later...

Im sorry , dont want to get into your discusion , I need to write to somebody in acis and I need to pass this What is the project name ? Hint : acronym of "another Crappy Interlude server".:  
Somebody can tell me the answer ? Will be greatfull !!! Maybe Mr.Tryskell ?

Link to comment
Share on other sites

  • 2 weeks later...
On 3/9/2023 at 1:56 PM, BigSem said:

Im sorry , dont want to get into your discusion , I need to write to somebody in acis and I need to pass this What is the project name ? Hint : acronym of "another Crappy Interlude server".:  
Somebody can tell me the answer ? Will be greatfull !!! Maybe Mr.Tryskell ?

 

Hi, it looks lke you struggle with aCis registration on forums. I accepted all pending activations from forums. Project name is simply "aCis".

 

About aCis, I'm back on AI. Inventory stuff seems to work pretty much fine and is part of master branch.

Edited by Tryskell
  • Upvote 1
Link to comment
Share on other sites

On 3/19/2023 at 7:21 AM, Tryskell said:

 

Hi, it looks lke you struggle with aCis registration on forums. I accepted all pending activations from forums. Project name is simply "aCis".

 

About aCis, I'm back on AI. Inventory stuff seems to work pretty much fine and is part of master branch.

 

Is the latest version suitable for live servers? Have you heard stories that aren't what you tell me? Na 401 tem travamentos bug or auto consumption of memory and CPU usage is constant. I fixed those things in my aCis.

Link to comment
Share on other sites

  

2 hours ago, Williams said:

 

Is the latest version suitable for live servers? Have you heard stories that aren't what you tell me? Na 401 tem travamentos bug or auto consumption of memory and CPU usage is constant. I fixed those things in my aCis.

 

You mentioned that you've fixed the issues, but how it would be ready for a live server when only a few fixes have been shared. It would be helpful and appreciated if you could share more information about the fixes or the process. It's always great when everyone can collaborate and learn from each other.

If you choose not to share this information, it is unreasonable to expect others to.

I, along with @Tryskell(I believe), am completely fed up with the arrogance of these so-called "developers." They perform half-baked fixes on critical issues and have the audacity to call it a major accomplishment.

You all deserve your fate!

Link to comment
Share on other sites

3 hours ago, Trance said:

  

 

You mentioned that you've fixed the issues, but how it would be ready for a live server when only a few fixes have been shared. It would be helpful and appreciated if you could share more information about the fixes or the process. It's always great when everyone can collaborate and learn from each other.

If you choose not to share this information, it is unreasonable to expect others to.

I, along with @Tryskell(I believe), am completely fed up with the arrogance of these so-called "developers." They perform half-baked fixes on critical issues and have the audacity to call it a major accomplishment.

You all deserve your fate!

 

I use the Free 401 version he must have already fixed it how am I going to share something he has already done?

Link to comment
Share on other sites

7 hours ago, Williams said:

 

I use the Free 401 version he must have already fixed it how am I going to share something he has already done?

Why not? Many people still use the free version or your fix could be more optimal/of use to Tryskell. Sharing is never bad, unless we're talking about something that has been shared already multiple times.

Link to comment
Share on other sites

Hi,

 

the only bug I know about which could generate unstability is boats system, I don't think any other system generates unstability. Boats got a rework branch based on latest, and was heavily delayed because one of my dudes was supposed to work on it and left it, multiple times. Another dude took the task.

 

I let "a lot of stories" for drama queens - if you got something to report or share you can contribute and get rewarded for it, otherwise I or a member of my community will eventually find or do it if we got such a report.

 

That remembers me that guy, alzwhite or whatever, which built a special hate towards aCis (or most probably, me). He is the sort of "story teller" than you should avoid to be, generally speaking. He just shadow talks, like, he found something massively wrong, but won't tell you anything about it - and eventually call you idiot or shit-talk you because you don't know what he talks about.

 

 

On 3/20/2023 at 10:26 PM, Trance said:

  

I, along with @Tryskell(I believe), am completely fed up with the arrogance of these so-called "developers." They perform half-baked fixes on critical issues and have the audacity to call it a major accomplishment.
 

 

That's not even a problem, actually. Such project generally got a low life expentancy, impact a low amount of ppl (not the ones I would aim or who interests me, anyway) and they basically promote my own pack in the process (without the need to speak myself RU/BR).

 

The real sad part is in case some of their fixes are actually correct, they are simply put into the void and wasted. If the fixes are incorrect, at worst it could be used as a base for a more proper fix - that would save me some times for other things.

 

I believe than open source in L2J never really worked (see what happens with L2J itself) since at least 2012 (aCis going freemium). Or maybe I misconcept "open source" : if the goal is to generate a lot of side projects and only few survive, then yes, it's open source and yes it's a successful model.

 

In terms of cooperation, if most of those side projects were actually concerned by finishing a chronicle, they could. I believe people don't want it end. It's probably a mix of multiples things, ego being the main part of it (and yes, if you figure out what I say, I'm also part of the problem :)).

 

Fortunately, I can count on a very good quality community, and even if people left (and I can't blame, on a 10y scale, some boys became men and actually grew kids - not me, but at least one of them ;)), some new heads replace them. My community can do it without the help of the side projects, but we would do it faster with their help.

 

About arrogance and ego, I stopped to bother since few years already. If such project dies (and they generally do), well, karma did the job for me. I don't need to bother about it. It's just sad to see that wasted spent time.

 

Edited by Tryskell
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

  • 7 months later...

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.
Edited by Tryskell
  • Like 2
  • Thanks 1
Link to comment
Share on other sites

On 3/20/2023 at 8:14 PM, Williams said:

 

Is the latest version suitable for live servers? Have you heard stories that aren't what you tell me? Na 401 tem travamentos bug or auto consumption of memory and CPU usage is constant. I fixed those things in my aCis.

 

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.

 

spacer.png

Edited by Tryskell
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




×
×
  • Create New...