![]() |
#1
|
|||
|
![]() As mentioned in the title, I would like to discuss regarding how endurance is currently working on this server. This is not meant to suggest that the current logic should be changed in anyway, but rather to understand what is already implemented so that myself and others can adjust our strategies accordingly. This is probably going to be a long read - beware!!
Background: I am playing a now 16 gnome warrior on the server. I am using duel wield and in my primary I have a bull smasher and in my secondary a fine steel short sword. At level 13 when I received duel wield, I almost immediately used these two weapons and being a gnome my DW skill was maxed for the level after just a night or two. During level 13, 14, and even half way into 15 (was a great xp group, so I didn't run to train 1 point in DA) I had no endurance issues. Last night I logged in a trained several points in DA. Someone auctioned cheap bronze greaves and I bought my first bronze piece so far. Most of my armor is banded with a patchwork piece or two yet. At this point I found an xp group in nro at a derv camp. When we first started we just had a few people and pulling mobs was slow going, and my endurance seemed to be holding out ok. I started to see some triple hit rounds even. After a little while, we were a full group and my DA was maxed for my level and we were pulling one after another. This is when I started having really big problems with my endurance. My endurance was ALWAYS below 50% after a pull. By the time the next pull arrived, I would only be around 60% endurance and quickly drop back down to < 40%. As others have commented previously, there seems to be a BIG (double maybe?) increase in delay once endurance is < 50%, and it seems with this delay my endurance will hover around 30 - 40% for a while. Probably due to swinging slower costing less endurance. Being less than 50% endurance right now reduces DPS to a pitifully small amount. Someone else was pulling, so I was able to sit between pulls but the endurance regen was very slow and even have a couple minutes between pulls only allowed me to get back up to around 60% or sometimes if I was lucky around 65%. At the end of the fight I would be back to 30% or so. So the end result was that the entire night I was stuck at around 40% endurance, and it was a constant battle of trying to get my endurance up. Now the obvious course would be to use a different weapon or 2H to try to reduce the endurance usage, but rather than just doing that I started thinking about what could have caused the big change from level 14 to level 15 and want to discuss the details to understand better what is impacting endurance. Here are the factors I have thought of so far that may have resulted in the big change to my endurance cost: 1) Double Attack - just trained this skill last night, and this seems like it should be the main reason for this change. This would mean that endurance cost is being considered for every attack, both DW and DA. So if DW and DA both succeed, my endurance adjustment should be something like: endurance = endurance - (4 attacks * endurance cost) Of course, endurance cost should very according to the weapon and perhaps other factors... 2) First Bronze Armor piece - do different types of armor have different endurance costs associated with them that are considered when attacking? Meaning that purchasing my first bronze armor piece resulted in additional endurance cost? If this is the case, then I would probably go back to banded until I can find something with a smaller endurance cost. 3) Endurance Regen Rate - what affects the endurance regen rate? Last night before logging I decided to buy two +2 STA earrings to see if it would help, but soon realized that I wasn't sure if it impacted the regen rate or not. Or whether it even impacted the total endurance pool. The hope is that by buying some gear I could offset the endurance costs. Investigation... Finally I decided to grab the project eq svn source and started digging through the code to see what I could find there. So my code below is just based on that code since I do not have access to p1999's source. Attack Endurance Costs: I have looked through the code, and was not able to find any endurance cost during the attacking routine. I didn't have VS loaded up on the machine I was on and just used notepad to search through the files so I may have missed it. Anyone have insight into this? Is endurance cost during attacking unique just to p1999's source (wouldn't think so...)? I would like to know what factors it is considering (such as armor type/weight) when determine the endurance cost for each attack. I see that it is using a common Attack routine for both regular attacks and DA/DW, so I'm assuming the endurance cost routine should be in there and that it happens for all of them as suggested in point #1. Endurance Regen Rate: Found the following code for endurance regen rate: Code:
int32 level=GetLevel(); int32 regen = 0; regen = int(level*4/10) + 2; regen += spellbonuses.EnduranceRegen + itembonuses.EnduranceRegen; regen = (regen * RuleI(Character, EnduranceRegenMultiplier)) / 100; SetEndurance(GetEndurance() + regen); The code above also brings up more questions for me: what spells and items have endurance regen? How to tell if items have this effect (does it show in the description as +Endurance Regen or something)? Does anyone know of any examples? Or is this item endurance regen bonus used to handle different armor types as I mentioned - where bronze armor type could actually have a negative endurance regen associated with it? I am unclear how the mechanic is being used. There is another routine regarding buffs that cost endurance I noticed, but I'm assuming that "buffs" is not referring to traditional caster type buffs but rather to rogues sneaking/hiding, etc. Anyone more familiar with the code that has some idea on this? Endurance Pool: Looks like stamina is not even specially considered when determining the max endurance value. Here is the code: Code:
int Stats = GetSTR()+GetSTA()+GetDEX()+GetAGI(); int LevelBase = GetLevel() * 15; int at_most_800 = Stats; if(at_most_800 > 800) at_most_800 = 800; int Bonus400to800 = 0; int HalfBonus400to800 = 0; int Bonus800plus = 0; int HalfBonus800plus = 0; int BonusUpto800 = int( at_most_800 / 4 ) ; if(Stats > 400) { Bonus400to800 = int( (at_most_800 - 400) / 4 ); HalfBonus400to800 = int( max( ( at_most_800 - 400 ), 0 ) / 8 ); if(Stats > 800) { Bonus800plus = int( (Stats - 800) / 8 ) * 2; HalfBonus800plus = int( (Stats - 800) / 16 ); } } int bonus_sum = BonusUpto800 + Bonus400to800 + HalfBonus400to800 + Bonus800plus + HalfBonus800plus; max_end = LevelBase; //take all of the sums from above, then multiply by level*0.075 max_end += ( bonus_sum * 3 * GetLevel() ) / 40; max_end += spellbonuses.Endurance + itembonuses.Endurance; This was my first time looking through the code, and I'm not sure how different the p1999 source is so I'm not sure the code references are even valid. If it is, then at least it helps us to make some educated decisions. Any thoughts? Hoping to get some more information from the community and the devs on how endurance is currently working. | ||
Thread Tools | |
Display Modes | |
|
|