|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
07-08-2009, 02:57 PM
|
Sarnak
|
|
Join Date: Oct 2008
Location: USA
Posts: 92
|
|
Rogue Max Backstab Damage Rule
Well I was thinking since there are now rules for the monk damage attacks and archery, there should be one for rogue's backstab damage. Granted I don't know what KLS has left to do to the formulas for backstab damage, but for custom server purposes this should be a temporary solution. Now I've just been delving into the code for the first time, so this is only my second attempt at something like this. I was comparing all the rule additions for monk/archery so I think I've figured this out. My only thing is I don't know if it would be better to use RuleR or RuleI...but I'll give both examples below and maybe someone can give me some better insight.
Another thing to note is this is just for max backstab damage above level 25. I would think min backstab damage is relatively fine, and damage below level 25 should be a moot point.
First RuleI:
Code:
ruletypes.h
----------------
ADD
RULE_INT ( Combat, MaxBackstabBonus, 10) //% Modifier
AFTER
RULE_INT ( Combat, RoundKickBonus, 10) //% Modifier that this skill gets to str and skill bonuses
Code:
special_attacks.cpp
--------------------------
REPLACE
max_hit = (((2*primaryweapondamage) * GetDamageTable(BACKSTAB) / 100) * 10 * GetSkill(BACKSTAB) / 355) + ((level-25)/3) + 1;
WITH
max_hit = (((2*primaryweapondamage) * GetDamageTable(BACKSTAB) / 100) * RuleI(Combat, MaxBackstabBonus) * GetSkill(BACKSTAB) / 355) + ((level-25)/3) + 1;
Or using RuleR:
Code:
ruletypes.h
----------------
ADD
RULE_REAL ( Combat, MaxBackstabBonus, 1) // % Modifier to Max Backstab Damage (.5 = 50% base damage, 1 = 100%, 2 = 200%)
AFTER
RULE_INT ( Combat, RoundKickBonus, 10) //% Modifier that this skill gets to str and skill bonuses
Code:
special_attacks.cpp
--------------------------
REPLACE
max_hit = (((2*primaryweapondamage) * GetDamageTable(BACKSTAB) / 100) * 10 * GetSkill(BACKSTAB) / 355) + ((level-25)/3) + 1;
WITH
max_hit = ((RuleR(Combat, MaxBackstabBonus)*(2*primaryweapondamage) * GetDamageTable(BACKSTAB) / 100) * 10 * GetSkill(BACKSTAB) / 355) + ((level-25)/3) + 1;
Like I said I'm not sure which route would be the best way to go or if I even did it right, any help would be appreciated. =)
|
|
|
|
07-08-2009, 04:08 PM
|
|
Demi-God
|
|
Join Date: Mar 2009
Location: Umm
Posts: 1,492
|
|
KLS prabobly didn't see a need for BS rule cause BS has recently was changed to be based of new weapon property field called backstab_damage, which now used as base for BS sintead of normal weapon dmg (I am not however sure if this works for T. or just for SoF?)
This is a guess however =)
Nothing against the rule thought =)
|
07-08-2009, 04:12 PM
|
Sarnak
|
|
Join Date: Oct 2008
Location: USA
Posts: 92
|
|
Yeah, I don't believe that field is being used just yet. It shows on items, but I don't think it's being used in the formula. Like I said this is just a temporary thing if people wanted to use it. /shrug
|
07-08-2009, 04:57 PM
|
|
Demi-God
|
|
Join Date: Mar 2009
Location: Umm
Posts: 1,492
|
|
well as of 6/15 changelog it says:
Recommended SQL: (This is recommended for databases that don't stay current with PEQ or are custom)
UPDATE items SET backstabdmg = damage WHERE backstabdmg = 0 AND itemtype = 2;
I guess it means that weapon no longer use normal DMG for BS base- though best way to test this is to take a weapon with high normal dmg, 1 bs dmg and see how mcuh it stabs for with the latest build
|
|
|
|
07-08-2009, 05:05 PM
|
Sarnak
|
|
Join Date: Oct 2008
Location: USA
Posts: 92
|
|
Quotes from Trevius:
Quote:
I am sure those will be added in eventually. But, adding in Heroic stats is my first priority. Once I know how to add one, the others should be cake. For spelldmg and healamt, each of those would have to be coded in separate places, so it would be different than coding in Heroic stuff, which is why I am not doing them all at the same time. After Heroic stats, I will probably try to see about doing backstabdmg next, because that is a pretty cool stat IMO, considering I played a rogue on live for years. I like the idea of being able to have hard hitting weapons that devs don't have to nerf down just because they don't want insane backstabs from Rogues. I looked through the PEQ items table and it looks like many/most of the piercers already have the backstabdmg setting set. I will still put up a simple MySQL query when I add it for databases that can't update to PEQ so Backstab will still work perfect for them. Basically, I think this would work well:
|
Quote:
Well, I wasn't able to get to actually having the server make use of any of the new stats tonight, but I was able to get them all working to show up on items in game when using SoF.
I still plan to start the server side calculations by adding in Heroic stats first, but I am still not sure what exactly needs to be done to do it. From testing, I did verify that not only do Heroic stats increase the cap by the value set, but they also add that many of that particular stat for the value set. So, if you are capped at 300 STR and your items actually total 300 STR, and then you get an item that has 10 Heroic STR on it, you will then have 310 STR showing.
I will mess with it more tomorrow night and see if I can figure out how to handle the code for that stuff.
I also added in the field for normal (non-heroic) SV Corruption, since it wasn't coded yet. The Corruption and stuff will be the hardest stuff to add since it isn't anywhere in the source yet. At least the other stats are already everywhere they need to be and to code in Heroic stats should just mean making it add the extra values and increase the caps.
|
Fields are just for looks atm. They don't do anything, yet.
|
|
|
|
07-08-2009, 05:12 PM
|
|
Demi-God
|
|
Join Date: Mar 2009
Location: Umm
Posts: 1,492
|
|
roger that
|
|
|
|
07-08-2009, 05:18 PM
|
|
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
Yeah, the new backstabdmg field in the items table will work for all clients once it is added to actually be factored into the source code. I don't see much of a reason for a rule for this since the new field should make it easy enough to fully customize all bs damage for all items, or even just for specific weapons as needed. If no one else gets the new stats added soon, hopefully I will be able to get to them sometime soon. I tried looking into getting them added already, but there are a few things I wasn't understanding. Usually a second look after taking a break from it will help me to understand it better. If anyone has coding suggestions to implement the new stats, I am all ears.
The rule isn't a bad temporary option if servers wanted to add it to thier source manually for now, but I don't personally think it should be added to the SVN just to be removed shortly after when the new item stat code goes in.
|
|
|
|
07-08-2009, 05:26 PM
|
Sarnak
|
|
Join Date: Oct 2008
Location: USA
Posts: 92
|
|
Yeah, I figured it would only be temporary either way. Maybe this was the wrong forum, but just posted it incase anybody wanted to use it for now.
|
07-08-2009, 06:14 PM
|
Developer
|
|
Join Date: Apr 2009
Location: USA
Posts: 478
|
|
Although, it might be nice to have a rule to adjust the BS damage across the board so if a server wanted to increase all BS damage by 10%, they wouldn't have to go edit every item in the DB that has BS damage.
|
02-15-2011, 03:53 PM
|
Fire Beetle
|
|
Join Date: Feb 2011
Posts: 11
|
|
Quote:
Originally Posted by trevius
Yeah, the new backstabdmg field in the items table will work for all clients once it is added to actually be factored into the source code. I don't see much of a reason for a rule for this since the new field should make it easy enough to fully customize all bs damage for all items, or even just for specific weapons as needed.
|
Very elegant...thank you. Will this work on summoned weapons for water pets also?
|
|
|
|
09-28-2010, 01:41 AM
|
Fire Beetle
|
|
Join Date: Jan 2010
Location: Michigan
Posts: 4
|
|
+BS does not work.
Rogue Backstabs should be able to break 10k with assassin's strike and epic 2.0.
We've tested quite a bit with the bug testing team and found that comparing rogues with zerks here versus on live met with a massive discrepancy.
The augs will correctly increase a weapon's normal damage number but the number used to compute backstab max hit does not receive the increase. (jagged glowing prism)
1) Damage augments e.g. jagged glowing prism are not currently having any affect on rogue backstab damage.
2) On live Rogues parse equivalent to zerks in tacvi/omens/2.0 gear
3) On EMU zerks outparse rogues significantly in the same gear configuration.
I believe the root issue of the problem lies in the calculation of backstab max hit (max and min hit are the two big determinants of backstab damage, these are calculated then sent to a general damage routine to determine how much damage is actually done). All of the variables in the max hit calculation are easily obtainable except one, it shows up in the code like this:
GetDamageTable(BACKSTAB)
I'm not very intimate with the emu server code so I have not been able to locate exactly what this does, but to venture a guess I'd say it is pulling a value from a table in the database. Based on data supplied by Wildd (thanks Wildd) I estimate that the current value this is returning for a lvl 70 rogue is about 273. Based on the second hand recollections of live data that I have from Wildd and Irrelevant (thanks guys) I estimate that this value should be somewhere in the 356-400 range for lvl 70 rogues to get the max backstab hit they deserve.
with duelist maxed, bs *6900 and some changes with duelist *4900 and epic, Fabled gear pieces,rest of time gear. Yeah our dps is broken, last parsed fight was vex 2400 dps zerker 2k dps monk 1600 dps rogue 1550 dps terraa rogue ( she is healing ) 600 dps on this fight. We had the mobs back at least 95 % of the time. I hope rogues dps will get fixed atm it really sucks to what the class should be the best at.. its only middle of the road.
*** i have maxxed over 150 accuracy ( with trib) best fero cleave combat effect 48 worn attack at least 100 over the cap ****
So my hypothesis is that this is not actually a bug but rather a lack of implementation of lvl 66-70 content. I'm guessing that the backstab damage table only contains values for rogues up to lvl 65. If I am right the solution should be easy (simply expand the table) once you have some good solid live data to pin down exactly where the 66-70 values should be.
1.) If rogue dps is deemed too low, a +backstab% skill modifier of a large amount or an increase to the cap (currently 235, capped both according to #myskills and the skills window) might be an elegant solution; it would increase only backstab damage and not modify agro generation at all.
Backstab: DB+DI*x(where x is an integer between 1 and 20, and where DB is 123)
Backstab 235+12% values:
25dmg weapon: DI = 48.5, DI20 = 1142
24dmg weapon: DI = 46.5, DI20 = 1097
20dmg weapon: DI = 37.5, DI20 = 919
15dmg weapon: DI = 26, DI20 = 690
Backstab 235 (no skill modifier) values:
15dmg weapon: DI = 22.5, DI20 = 618
Asuumed: DB is the same for all tests. My Strength, Attack, Accuracy, and AAs were the same throughout the parse.
DI is a function of weapon damage times backstab modifier times some variable. It was assumed that it was (weapon_dmg*backstabskill/100), but this does not appear to be the case; there must be some other monkey-wrench involved. The difference between DI intervals on a modifier of 12% (going from 235 to 262) is relatively colossal; this was only noticeable on such a lower level dagger because any dagger post-Ifir has the backstab mod on it.
I played rogue for 8 years ( or longer ) on live i love the class i can deal with all of its shortfalls and ill try to be patient while we work on this but really i mean come on really? from a mobs back we should out dps monks (equal gear and aa) and Berzerkers should not be 2x rogue dps ( equal gear and aa) if the state things are acceptable to all the non rogues then everytime a new rogue asks me a question i will do my best to scare them into a class that dosnt SUCK
Its been tested, now it needs to be solved.
Thank you,
Nevuti the Irreverent Server.
( Credit to: Terraa, Wiild, Nevuti, Irresponsible, Irrelevant )
http://irreverentlabs.com/EQ/
|
|
|
|
09-28-2010, 03:12 AM
|
Fire Beetle
|
|
Join Date: Jun 2010
Location: mmmeh
Posts: 8
|
|
I'm here to confirm that (at least on Irreverent server) there seems to be something wrong with rogue's Backstab damage post-level 65.
I think Nevuti is very passionate about his class, and his information (along with others') has provided insight into the nature of a problem that we at the Irrevent imagine rogues are facing throughout EMU.
|
09-28-2010, 04:24 AM
|
Demi-God
|
|
Join Date: Aug 2010
Posts: 1,742
|
|
In the current emulator code, GetDamageTable(BACKSTAB) returns 305 for a level 70 rogue. The function is in attack.cpp.
The relevant part is here:
Code:
int16 dmg_table[] = {
275, 275, 275, 275, 275,
280, 280, 280, 280, 285,
285, 285, 290, 290, 295,
295, 300, 300, 300, 305,
305, 305, 310, 310, 315,
315, 320, 320, 320, 325,
325, 325, 330, 330, 335,
335, 340, 340, 340,
};
if(GetClass() == MONK)
return (dmg_table[GetLevel()-51] * (100+RuleI(Combat,MonkDamageTableBonus))/100);
else
return dmg_table[GetLevel()-51];
The actual formula for the max hit is:
Code:
max_hit = (((2*backstab_dmg) * GetDamageTable(BACKSTAB) / 100) * 10 * GetSkill(BACKSTAB) / 355) + ((level-25)/3) + 1;
backstab_dmg is the number from the backstab damage field on the weapon. If you substitute your actual weapon damage and skill values into the formula it should help to see if the max is matching up.
|
09-28-2010, 02:49 PM
|
Fire Beetle
|
|
Join Date: Jan 2010
Location: Michigan
Posts: 4
|
|
Thanks for the support, and Many thanks for the actual code. It means a lot, even to other players that are as passionate about their class as I'am to mine.
|
09-29-2010, 12:18 PM
|
The Solo Server
|
|
Join Date: May 2007
Posts: 416
|
|
Nevermind, I see the spam. Tsk..tsk.
But, this is good research and follow up and I am so proud of the EMU community coming together to assist in this!
__________________
OP of Irreverent Server (The Solo Server)
Our Forums
|
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 09:21 AM.
|
|
|
|
|
|
|
|
|
|
|
|
|