Jump to content

Recommended Posts

Posted (edited)

L2JSERVER MOST PRECISE DROP STRATEGY

Patch applies for DeathDropChanceMultiplier > 1
Provides more precise formula for amountMultiply
when used with PreciseDropCalculation = True.

 

Additional information regarding default critical issue can be found below.
https://bitbucket.org/l2jserver/l2j-server-game/issues/337/major-issue-for-rates-above-x1

 

Drop Precision Strategy

Source: IGroupedItemDropCalculationStrategy.java

https://bitbucket.org/l2jserver/l2j-server-game/pull-requests/35

 

NpcViewMod providing final summed values that are easy compared to off data,
as well corresponds according to Drop Precision Fix.

Source: NpcViewMod.java
https://bitbucket.org/l2jserver/l2j-server-datapack/pull-requests/30

 

This fix resemble open source patch for the
Official L2J free open-source server emulator!
https://www.l2jserver.com/
anybody is permitted to use it for non profitable purposes.
I reserve rights over the formula and the piece of code formed by myself as well as its structure.
Meaning renaming something doesn't make you rightful owner of my code.
I do not accept the use of my code for profitable purposes.
Meant being sold as is, a piece of code, sold as service or being used on projects that run for profitable purposes.

 

 

 

 

Edited by Cherish
  • Like 1
  • Thanks 1
  • Upvote 1
  • Cherish changed the title to L2JSERVER MOST PRECISE DROP STRATEGY
  • 2 weeks later...
  • 3 months later...
Posted (edited)

Hello people of the internet.
If anyone ever wondered, I would like share additional info on why this  patch is available on these forums.

To do so, I'm required to give you some personal background history on Lineage 2 and L2JServer.
Hang there, it's gonna be long.

 

private class ICherishDropStrategy extends BackgroundHistory {

Lineage 2 and L2JServer took important part in my childhood, I play Lineage 2 since its has ever been released and by young age I have been inspired to host my first ever server, powered by L2JServer.

Please take in consideration that I have been young and just a regular user.
I remember trying to rise L2JServer, C4 Scions of Destiny for one year, unsuccessful. With some questionable compiled files found on the internet and following guides which I could not understand. C5 Blood Oath was my first successful attempt to host L2JServer and trust me It felt awesome. I probably spent months discovering project features and I couldn't get exhausted. 😄

 

Custom features is what made it stand out. L2JServer doesn't just give you the ability to emulate a server, it gives a whole lot of extend to be manipulated. I was very fascinated by what you could do with it and off coarse to play with friends.

Hobby orientated, I've have been playing and hosting games trough the open source project since C5 Blood Oath.

 

Back in the days, project had a different structure and support for python. A lot of it had been implemented by hobbyist at the time, said with respect to all L2JServer developers.
Around High Five, L2JServer project got hit by some drastic changes, project team decides to rewrite architecture in pure java and in more professorial manner, for which I give many thanks to all main branch developers, many thanks to all contributors to this project.


project.isAwesome; 💖


I have been user up until High Five. At times of reconstruction, many things changed.
L2JServer generally turned into Beta Unstable, making many things unusable.
Generally making L2JServer unusable.  💔

Team chooses to focus re-implementing retail behavior and that is fine!

Time passed, great contributions, a lot of work has been rewritten, many key elements implemented.
But one issue persisted, issue making me unable to enjoy this project.

I was unable to play on multipliers. 💔
In specific, any kind of drop multiplier.

The drop multiplier feature existed, but generally unusable due to the changes in architecture.
I have already given up on project, since I tend to enjoy playing with custom.rates() and so many others do. 💔


More time has passed, and initiate by the alias Battlecruiser has intended to re-implement an already existing feature into few separate strategies. That feature is PreciseDropCalculation, it resembles a formula which calculates drop chance of an item when multiplied and provides adequate drop quantity. Obvious issue arises, old formula does not fully comply with new structure.

Thus game still being unplayable on multipliers. 😢


Time has passed again. I stood tuned for issue status ...
Year is 2020 and L2JServer still unplayable on multipliers.
I almost lost all hope in this project. I stood very disappointed, then I tough what if some-one can fix this or what if I can fix that? 💪
With no previous experience in development I started reading files.
I did a lot of search and a lot of research.
While I keep seeking assistance by active members .
Issued inquiry on BitBucket as suggested by team.
Have been looking for paid development and even freelance.
Nobody could fix the multiplier ... 😕


I've spent 2 months in dedication and a month reading over and over again all those strategies, that none had clue how they function.
After long examination, I had already focused on area I believed that new formula should be implemented.

Week in testing, I have determined to be the right piece of code, but yet unable to fix the issue.

It was a matter of trials and errors until i make it work, but in the end it worked.

Very poorly written but it worked.


At last, I was able to play on L2JServer again!  🥳


I've spent another week or two into compressing down and improve it's efficiency until I couldn't do further changes.

 

It may sound funny, but look what L2JMobius underwent to "fix" their drops on multiplier and not many L2JServer derivative was ever able to fix it.


This is how my baby steps in Java presented a critical fix for the drop calculator of a project which has been broken and repelling users for 12 years.
 

Here, we have come close to the answer. 🤔

I did a commit to main branch, share my code with others that may find it useful.


Instead I got bombarded with negativity from some team members.
Referring to it as "4 lines of code", that code is being a "small fix" and those do not deserve credits.


I disagree, effort spent in analytics to implement those "4 lines of code" in the right place of an already persistent structure while maintaining functionality and providing a fix for a global drops strategy of a project is not to be considered a "small fix".


I have been asked multiple times to contribute code to main branch
with out consensus.
Eventually got demoted and restricted access in certain aspects of the project.

 

This is the hidden content, please

 

That said, I tend to share this code publicly as a stand alone patch.
For anyone that may find it useful and have the basic skills to apply it.
For the record, code can be further improved.
For those familiar or tend to learn. It can be compressed with another line and maybe "double" the performance.*
Regardless, code is functional and will definitely perform well for the purpose.


}
 

The prince have lifted the curse hanging upon the kingdom
and all lived happily ever after.


Long story, short. Intellectual property rights.

   
Edited by Cherish
Posted (edited)
6 hours ago, Kalatinomizes said:

Your name should be Childish and not Cherish!
No more comment's.

Thanks, there will always be that Childish part of me, love playing L2JServer.

Edited by Cherish
Posted (edited)
On 4/19/2021 at 8:01 AM, yeiij said:

Showing private conversation says more about who you are than what it says about the subject.

 

giphy-downsized.gif

Nowhere have been stated to be private, leader is main branch representative.
I'm just a regular member.

 

 

 

On 4/18/2021 at 10:28 AM, Xtellia said:

Changing drop rate calculatons is 1h of work at max... How did it take 12 years?

L2JEternity commit revision 2092 March 17, 2021

@LordWinter

L2JSunrise commit revision 1091  April 18, 2021
@`NeverMore

 

Edited by Cherish
Posted
17 hours ago, Cherish said:

Nowhere been stated to be private, leader is main branch representative.
I'm just a regular member.

 

 

 

L2JEternity commit revision 2092 March 17, 2021

@LordWinter

L2JSunrise commit revision 1091  April 18, 2021
@`NeverMore

 

Seriously? Do you think that a year after l2jserver released an update and Sunrise adapted this piece of code has become better?

I completely changed all formulas for calculating chances of items, taking into account all sorts of third-party bonuses from the server. But at the same time, I derived my formula so that when the rates change, all the chances and amounts are linked and increase smoothly. Because everything that is implemented in other servers did not suit me.

I made an announcement with a clear example of calculating the drop in this topic. Formulas are unique

 
  • Like 2
Posted
On 4/17/2021 at 4:33 AM, Cherish said:

 

 

1444488490_uselessdiscussion.png.32c324003a3bc09b33cae9ae744e98da.png

 

 

incompetent.png.5471eaaaf1167fd30d4c3fd7419f3997.png

 

12persistandnew.png.427bc08ab962e667fad36c3e2a27f8d3.png

 

896362706_finalzoey.JPG.75a808d66049982b8d9d8e8a7eabf564.JPG

 

i left their channel because i invited a guy from another server in discord into mine but we had in common l2j so he reported me in their staff and kicked me.. that was at least pussy move from the first guy and at least stupid to kick me without warning me why but as project leader he has no power over them its at least i have kids and they do as they please but im still in command.

Posted

@Nightw0lf
Yes lately some randoms got in control over l2jserver, but is the leader that give them the privilege to do whatever they want. I'm not gonna dive into discussing them, they don't really matter.
Overall L2JServer is good project and maintained professional structure. Has very large base and support for more recent java++.

@LordWinter
No offense, I really enjoyed your project on the test server. Personally have referred it to some people that needed a ready to go pack. If I had money to spare I would have purchased it and you know that. 🙂

 

  • Upvote 2
  • Downvote 1
  • 2 weeks later...
Posted

Cherish threw a fit because he wanted credits for 4 lines of code, not to mention he was continuously derailing discussions offtopic because he was going into opinionated tangents about random things. The credits thing was the worst fit ive seen him throw and im not surprised he got booted from the discord for that.

L2JServer has certain criteria about giving credits which you can read here: https://www.l2jserver.com/forum/viewtopic.php?f=29&t=30453&p=182222#p182580

Based on these rules did he deserve credits other than in the commit comment? That's for each one of you to decide.

 

Also theres no randoms taking over L2JServer, if anything the new team members have brought the pack back to life. Theres a lot of cool shit coming like complete High Five Skills with proper handlers and a targeting rework that both will address a lot of issues.

 

Generally i see a lot of ego from people involved in the l2j scene, this needs to stop unless you like to be paying hundreds of dollars or euros for subpar work.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

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...