|
|
 |
 |
 |
 |
|
 |
 |
|
 |
 |
|
 |
|
Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum) |
 |
|
 |

10-07-2008, 09:55 PM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
It took me a while to figure out how to make a good scaling system that will work on any server no matter what the maximum level is, but I think I finally got it.
I edited the code in my post above and added the new level scaling code into it. Now, if someone can tell me how to check if the character is out of combat, I think we can get this in and tested and into the SVN right away
I wasn't originally planning to use it on my server, but now I think it could actually be pretty cool. So, I will at least try it out and see how players like it. Just need that out of combat check to finalize it
The way the scaling works is you set this rule:
RuleI(Character, OOCRegenLevelScale)
in the rule_values table to be anything from 0 to 100. Then, this is an idea of what will happen:
0 = OOC Regen Level Scaling is disabled - OOC Regen will default to whatever the rules are set to
1 = Barely any OOC Regen Level Scaling - This wouldn't hardly be noticeable if at all for any level
50 = At level 1, the HPs would regen at almost exactly the rate that the OOCRegen rules are set to. At max level, they would regen at 50% of that rate
100 = Most extreme scaling to where max level almost gives no OOC regen bonus at all, but at level 1 they get almost exactly the full OOCRegen rates. And in the middle, they would get about 50% of the regen rates.
I think this leaves alot of options to adjust OOC regen for almost any server. The only other way to break it down any better would be to make individual level range settings for it, but I really don't think that is necessary.
Last edited by trevius; 10-08-2008 at 06:03 AM..
|
 |
|
 |
 |
|
 |

10-07-2008, 10:11 PM
|
Demi-God
|
|
Join Date: May 2007
Posts: 1,032
|
|
Quote:
Originally Posted by trevius
0 = OOC Regen Level Scaling is disabled - OOC Regen will default to whatever the rules are set to
1 = Barely any OOC Regen Level Scaling - This wouldn't hardly be noticeable if at all for any level
50 = At level 1, the HPs would regen at almost exactly the rate that the OOCRegen rules are set to. At max level, they would regen at 50% of that rate
100 = Most extreme scaling to where max level almost gives no OOC regen bonus at all, but at level 1 they get almost exactly the full OOCRegen rates. And in the middle, they would get about 50% of the regen rates.
|
just to clarify. When you say
"100 = Most extreme scaling to where max level almost gives no OOC regen bonus at all"
you mean that:
the increase in regen as you level is small (like say 25 per tick at 50, which only grows to say 26 at a 100m by which time your mana pool/hp prabobly 5x times as large),
and NOT that your regen per tick gets smaller as you level up? =)
in otherwords you ment to say (i presume)
"Most extreme scaling to where max level almost gives no OOC regen bonus GROWTH at all"
in other words if you gain more regen you gain very little, but it does not become smaller than on previosu level =)
|
 |
|
 |
 |
|
 |

10-07-2008, 11:12 PM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
Sort of, but I think you are making it more complex than it is.
When you set OOC regen, it is in increments of 1% per tick. So, you could set your OOCRegen to a minimum of 1% per tick, which would mean to go from 0 to 100% at any level would take exactly (100 / 1 * 6 = 600 seconds) 10 minutes. If you have OOC Regen set to 2%, then it would take (100 / 2 * 6 = 300 seconds) 5 minutes and so on. It is regening a % of your total hps no matter what gear or buffs you have on.
The scaling works by subtracting a percentage from the OOC regen. Depending on the rule setting and the level of the character and the max level set for the server, your regen could scale in a wide variety of ways. It checks your level against the max level setting for the server, so if you are level 1 and the server goes to level 50, you are 2% of the max level. If you were level 25 on the same server, you would be 50% of the max level. And, if you were level 50, you would be 100% of max level.
Now that it has your percentage, it can then multiply that number with the scaling rule. So, if your scaling rule is set to 50, then it will multiply your level percentage (explained above) with 0.50 (scale rule setting / 100). Using the level 50 max level explained above, and having a level 1 character, the math for this rule would look like this:
0.02 * 0.50 = 0.01
So, it then multiplies the OOCRegen by 0.01 and subtracts that total from your current OOCRegen per tick. So, it would only subtract a very small amount.
But, if you were level 50 in this same scenario, the math would look like this:
1 * 0.50 = 0.50
And when it multiplies that with your OOCRegen and subtracts it, you end up regening half as fast as you were at level 1. So, a level 1 might take 5 minutes to regen from 0 to 100, but a level 50 would take 10 minutes to regen from 0 to 100.
If your scaling rule is set to 100, then you will regen at almost the full OOC regen at level 1, but it will scale down so that by the time you get to max level, you will not regen any extra at all from OOCRegen.
I did make a slight mistake in what I said in that line you quoted though, it should have been this:
"Most extreme scaling to where max level gives no OOC regen bonus at all"
Ok, so maybe I just made it even more complex than you made it lol. But at least this is accurate. And the system should work perfectly and be easy to understand if you try it out a little once it is finalized.
|
 |
|
 |
 |
|
 |

10-07-2008, 11:46 PM
|
Demi-God
|
|
Join Date: May 2007
Posts: 1,032
|
|
well, basing it off a % may have an inherited flaw where at some point you level from say lev 69 to 70 and suddenly your regen drops DOWN , and i don't mean by % but by actual hp/mana per tick. and that should not happen. - you shoudl nto loose any regen as you level up. The could be no growth, or very little growth, or dimishing growth, but it should not go backwords.
for exmaple, let say for levels 1, 10, 25 and 50 your ooc regen coudl be like this:
no growth at all : 5 , 5, 5, 5 (it starst at 5 per tick mn or hp and it stays there)
small growth: 5, 6,7,8 (your regen growth but VERY slowly - and as you udnerstand 5 at lev 1 is MASSIVE while 8 at 50 is almost nothing compared to yoru mana/hp pool)
fast growth: 5, 10, 20, 40 (regen rapidly rising in atempt to catch up with your mana/hp pool)
any of the above are valid, but the actual ammount regen per tick should be becoming smaller
another important point- try NOT to base the final formula of the MAX level cap allowed. As server developes and people start rising max level cap to add more content, the previously set up rule values will no longer match up and would have to be recalculated every time
a simple build for formula imho is following: you set the formula in actual ammount of mn or hp per tick rather in %, AND a growth rate.
For exmaple:
Rule 1: (base regen per tick) - let say 5
Rule 2: (growth per level) - this one can be set in decimals for exmaple 0.25
(or in other words it grows by +1 each 4 levels)
What thsi means: thsi means that at any given level your regen is 5+(level-1)*0.25
so at level 50 your regen is 5+50*0.25=17.5 per tick.
Whenever this number is suficient compared to your mana/hp pool is a whoel diffirent matter AND admin can tune this up either altering the BASE or the Growth
alternatively setting the to say 2 gives you +2 extra mana per level, so at lev 50 your regen becomes 5+50*5=255 per tick =)
so its rather simple AND whats important- no involvement of max lev cap =)
|
 |
|
 |
 |
|
 |

10-08-2008, 12:51 AM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
LOL, you are completely misunderstanding the point here :P
The system you describe is already in place as their is already a level based HP regen increase hard coded into the system to match EQLive. The current system will scale up as you level, but since it matches the old live system, this is for HP regen in or out of combat. It is also a very small regen increase which is barely noticeable at all.
Then, items and buffs/bonuses/AAs get factored into your total HP regen. This is slightly better, but again, it works the same if you are in combat or out of combat. With enough HPs, you could still be waiting 20+ minutes to fully regen HPs or Mana.
A while back, a rule was added so that you could increase the total character regen by a multiplier. The rules are HPRegenMultiplier and ManaRegenMultiplier and they start at a default of 100, but you can set them up or down to increase/decrease the in/out of combat regen rates. So, lets say you get 10 natural regen on your character and you have an item that gives +10, and also a buff that gives +10, your total would be 30HP regen per tick. These rules will multiply that amount times the percent you set the rule to. Since it is set to 100 by default, 100% of 30 is still 30. But, if you set it to 50%, then 30 is reduced to 15. Or, if you set it to 200%, then 30 becomes 60 per tick. Using these rules, you can quickly adjust regen rates and they will still scale based on levels/AA/Gear/Buffs. The flaw with doing this is that it not only increases out of combat regen, but also in combat regen. So, if you set it really high, your players will regen quick while out of combat, but they will also regen very fast while fighting mobs.
My new rules only deal with out of combat regen. Let's forget about the scaling for now so I can explain the basics of it. The whole point of OOC regen is to make it so players can regen quickly to recover from a fight and start a new fight without having to wait for 20 minutes to regen. So, obviously you want them to regen at a faster rate than the normal HP regen total. To do this, we just set the rule to whatever % we want players to regen per tick. So, 1% would take 100 ticks to regen to full, which is 6(seconds)X100 = 600 seconds AKA 10 minutes. If you set it to regen 20% per tick, then it would be 100/20=5, so 5 ticks. And 5 ticks = 30 seconds, so they would regen from 0% to 100% in 30 seconds. It doesn't matter what level they are, anyone will regen at that exact rate when they are not in combat.
By scaling per level, I am talking about making regen times take longer as you level. So the idea is that regening from 0 to 100% at level 1 might only take 30 seconds, but at level 70 you could set the scaling to regen them to full in 30 seconds, or 60 seconds, or 5 minutes, or whatever you want the max level regen time to take. So low levels could regen to full very quickly, but you could set high levels to take longer to regen to 100% if you wanted it to be that way. By disabling the scaling system, a level 1 would regen in the exact time it takes a level 70 to regen from 0 to 100%.
You are also misunderstanding the max level portion of the code. It pulls that level from your rules, so it doesn't matter what your server has the max level set to, it will work exactly the same on every server. You could have max level of 10, or max level of 200 and still have exactly the same options and flexibility. So, do not worry at all about the math getting thrown off by custom servers, because it won't be. I spent a couple of hours figuring out the exact math so that it will work flawlessly in all scenarios. The equation is fairly simple now that I have it figured out, but actually creating that equation was pretty tough.
I am not sure how I can explain this to you any better than I already have. It took me a while to figure out how to do it, so it might be a little tough to grasp. But, once you get a chance to test it out, I think you will understand and agree that it works well 
|
 |
|
 |
 |
|
 |

10-08-2008, 01:13 AM
|
Demi-God
|
|
Join Date: May 2007
Posts: 1,032
|
|
Trev - you missunderstanding me =)
I am TOO talking ONLY about OOC regen =) (for hp and mana)
Quote:
A while back, a rule was added so that you could increase the total character regen by a multiplier. The rules are HPRegenMultiplier and ManaRegenMultiplier and they start at a default of 100, but you can set them up or down to increase/decrease the in/out of combat regen rates. So, lets say you get 10 natural regen on your character and you have an item that gives +10, and also a buff that gives +10, your total would be 30HP regen per tick. These rules will multiply that amount times the percent you set the rule to. Since it is set to 100 by default, 100% of 30 is still 30. But, if you set it to 50%, then 30 is reduced to 15. Or, if you set it to 200%, then 30 becomes 60 per tick. Using these rules, you can quickly adjust regen rates and they will still scale based on levels/AA/Gear/Buffs. The flaw with doing this is that it not only increases out of combat regen, but also in combat regen. So, if you set it really high, your players will regen quick while out of combat, but they will also regen very fast while fighting mobs.
|
yes it was a significant problem when it come to tunign encounters since I had to choose between smaller downtimes and much easier ecounters. At the end I put it back to 100% and give players long recast healing/mana potions to be used during down time
The diffirence is that I am proposing to set the values for it in actual numbers rather than in % of total pool
Quote:
So the idea is that regening from 0 to 100% at level 1 might only take 30 seconds, but at level 70 you could set the scaling to regen them to full in 30 seconds, or 60 seconds, or 5 minutes, or whatever you want the max level regen time to take. So low levels could regen to full very quickly, but you could set high levels to take longer to regen to 100% if you wanted it to be that way. By disabling the scaling system, a level 1 would regen in the exact time it takes a level 70 to regen from 0 to 100%.
|
I am talking about the same thing =)
But again where you would want to put say X=2% of mana pool, I want to put X=25 mana per tick
regading the max lev cap - the problem is NOT what your lev cap is. the problem that cap may change at any given time and then your OOC regen bonus granted by the formula will be thrown off
For exmaple: my server goes live with max lev cap of 75... 3 month later I add new zones and raise cap to 90
If your formula uses max lev cap anywhere in calculation- the whole formula just started to produce DIFFIRENT results for the same levels than it was before.
in other words your if your formual is something like: Z=X+Y*K, where ANY of the variables is a max level cap, the moment lev cap changes, your result for say lev 28 is now complitly diffirent value
|
 |
|
 |
 |
|
 |

10-08-2008, 01:48 AM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
The only time that max level comes into play is with scaling. And assuming that most people wouldn't want to completely disable OOC regen at max level, if you raise your level cap, just raise the scaling rate as well to compensate for the difference.
If you were concerned with having the same OOC regen rates for levels even if your max level changes, all you have to do is adjust the scaling to match your new max level.
So, say your max level is 50, your scaling is currently set to 50%, and your OOC Regen is set to 20%. In this case, a level 1 would take exactly 30 seconds to regen from 0 to 100%, a level 25 would take exactly 45 seconds to regen from 0 to 100% and a level 50 would take exactly 1 minute to regen from 0 to 100. Now, say you upped your max level to 75, then you would just need to lower your scaling to compensate for that.
It sounds like all you want to do is add an extra OOC regen bonus based solely on level. Maybe characters get + 1 regen per level. So, level 10 would get +10 and level 50 would get +50 and so on. Or maybe it scales it so that it is diminishing returns the higher level you get so that it isn't a steady increase. Basically, this could be done by making OOC versions of HPRegenMultiplier and ManaRegenMultiplier. But, by doing it this way, people with more mana and hps will have to wait longer than people with less. And in order to make the OOC even work like it should, which IMO means it recovers much quicker than normal regen, you would have to set your OOC regen multiplier to be pretty high. And then you would have Items, AAs, Buffs etc all making that system a bit of a nightmare if they factored in. The multiplier could be done before those checks happen, which would avoid that. Either way, it seems like if you wanted a balanced perfectly scaling custom system, you would need to just build the whole thing manually in the source code.
If you or someone wants to write the code to do it exactly the way you want it, then feel free. But, I just don't think there would really be enough of a reason to use it over the one I just made :P And keep in mind that the more rules and math we add in to common checks, the more load it puts on the server. Customizing is good, but efficiency is also go. There needs to be a balance of what is worth doing and what is not.
|
 |
|
 |
Thread Tools |
|
Display Modes |
Hybrid Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 12:35 AM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |