Crushing Blow Tables
#1
The Crushing Blow info for missles on these pages contradict each other. I'd normally just assume Tommi was correct and that the AS was...not. However I noticed that Jarulf got credited with the information in both instances. Which Jarulf should I believe? This one or this one?

And happy Valentines Day technical geeks! :wub:
Reply
#2
Rule of thumb is: "Don't trust the Arreat Summit".

Tommi's page is more detailed about the damage dealt, so I'm inclined to agree with his. The Arreat Summit also incorrect in stating that Crushing Blow damage is applied AFTER the normal damage. On Tommi's, it says that Crushing Blow damage is applied BEFORE the normal damage. I recall testing that showed that crushing blow actually was applied before, allowing low damage weapons to kill a big-health monster in 1 shot where it would otherwise be impossible. I think it was a Crystallion test...
"Yay! We did it!"
"Who are you?"
"Um, uh... just ... a guy." *flee*
Reply
#3
Seems Geoff applied my info a bit wrong 8or I wa unclear when I sent it to him). Have to check it out and correct it.

I have personally not checked if CB applies before or after normal damage is applied. So that info doesn't come from me. Since I think the info on AS is currently only what I sent him, that is not so strange. I know that they rewrote the hit event code quite a bit with 1.10 and that has lead to a change in where some effects is done. Never thought CB would change place though. I will put it on a list to check (not that I know if I ever get to the list :) ).
There are three types of people in the world. Those who can count and those who can't.
Reply
#4
JustAGuy,Feb 14 2004, 11:56 PM Wrote:Rule of thumb is: "Don't trust the Arreat Summit".

Tommi's page is more detailed about the damage dealt, so I'm inclined to agree with his. The Arreat Summit also incorrect in stating that Crushing Blow damage is applied AFTER the normal damage. On Tommi's, it says that Crushing Blow damage is applied BEFORE the normal damage. I recall testing that showed that crushing blow actually was applied before, allowing low damage weapons to kill a big-health monster in 1 shot where it would otherwise be impossible. I think it was a Crystallion test...
That info was from librarian (as the credits say), who got it from a German site. I'm inclined to believe it unless tests that show contradictory results are reported.
Hammer of Atur
PvE/RP World of Warcraft Guild
Argent Dawn (European RP server), Alliance side

Dwarf Campaign
Awarded Custom Campaign for Warcraft III

Tommi's Diablo II information and guides
The de facto source of Diablo II game mechanics
Reply
#5
Did a check, and all hit events that are of the "do missile damage" and "do damage in melee" (type 5 and 6) are indeed done right BEFORE damage is dealt (and absorbtion is given back). At the same time, type 1 and 2 ("damaged in melee" and "damaged by "missile") are done. The ones done afterwards are type 9 and 10 (of course since they are the "kill" and "killed" ones). Quite a change in some cases I would say. So it is not only CB that has moved arround.
There are three types of people in the world. Those who can count and those who can't.
Reply
#6
Ohh, and some error on your page Tommi, regarding Open WOunds. You seem to list that OW "damage" is halved for all target types with a missile. That it not correct. Only versus players do you make a further reduction for missile attacks. So the table should look something like:

Code:
Target    Melee Weapon    Missile Weapon    
Player           1/4                      1/8
Boss Monster  1/2                      1/2
Other Targets     1                       1
There are three types of people in the world. Those who can count and those who can't.
Reply
#7
Oh. :o I need to correct that. I must have misread your OW post, then.
Hammer of Atur
PvE/RP World of Warcraft Guild
Argent Dawn (European RP server), Alliance side

Dwarf Campaign
Awarded Custom Campaign for Warcraft III

Tommi's Diablo II information and guides
The de facto source of Diablo II game mechanics
Reply
#8
Jarulf,Feb 15 2004, 04:00 PM Wrote:Did a check, and all hit events that are of the "do missile damage" and "do damage in melee" (type 5 and 6) are indeed done right BEFORE damage is dealt (and absorbtion is given back). At the same time, type 1 and 2 ("damaged in melee" and "damaged by "missile") are done. The ones done afterwards are type 9 and 10 (of course since they are the "kill" and "killed" ones). Quite a change  in some cases I would say. So it is not only CB that has moved arround.
Other than confirming that CB application order (and others) have moved, I find this a bit confusing... could you clear it up a bit?

Addtionally, if you poke around the end of your damage thread, the issue raised about testing suggesting that absorb "healing" is being applied twice is still unresolved, afaik. To recap, testing suggests that absorb (elemental straight... % not tested) is being added to HPs both before and after damage dealt. Since straight absorb occurs after resistance is factored it is totally uber in v1.10.

My personal suspicion is that things got moved around too much and Isolde lost track of some of the nitty gritty.
"He's got demons? Cool!" -- Gonzo, Muppet Treasure Island

"Proto-matter... an unstable substance which every ethical scientist in the galaxy has denounced as dangerously unpredictable." -- Saavik, Star Trek III

"Mom! Dad! It's evil! Don't touch it!" -- Kevin, Time Bandits
Reply
#9
Not sure what part you find confusing :)

Anyway. Hit events has always existed in the game. They are things such as CB, OW, mana after kill, damage to attacker and so on. They have always existed. Basically, they were all handled by one special function called at various places in the code. WHen calling it, one parameter would be an index value, telling what of the events to check for at that particular call. Basically, the calls would be once in the resitsance code, once in the doing damage code and once when a kill had occured. It was slightly more complicated since there was one index for a kill and one for being killed for example, so the call on a kill would be twice with different indexes.

Back before 1.10, in addition, there were various calls and code spread out to handle event like things, such as IM, Thorns, various cold armor, Bone Armor and so on. From the look of it, most of those have now been converted into events too. That would account for some movement such as for Bone/Cyclone Armor, since the event call in the resistance code only exist before any calcs are done, whole BA/CA was done in-between resistance and absorbtion before if I recall correctly. The same might abboly to things such as CB, IM and those, they al seem to be called before damage is dealt now, whiel being spread a bit before.

I have still not tracked some of the "events" down. I have no idea how Thorns is done now, since it has no event function or index attached to is, such as IM seems to have. But most other effects now seem to be event driven (from the look of data tables, have not checked code much).

Another difference that makes it slightly more troublesome to check is that there is a change in the technical aspect the game goes about checking for events to do. Before, there was one internal table which for each event had an index, and then some paramaters for how to handle it, including a pointer to the function to run for it. Now, there is no such table!!! AT least not in an easy to find way (and I have not run the game to trace it). Instead, through out the various txt data files (itemsstatscost, skills, missiles and so on), there are "eventfunc" colums and "eventtype" (or something like that, the type is a text entry that through events.txt is converted into the index number I mentioned above), which tells at what call the event function should be handled.

Also note that some of these events actually have to do with euiping or handling items, that was the case before and is so now too. I think the added skill upon hit for example is also an event now though.

Anyway, the main event function that gets an index, will no longer look into a table with all events to see which match the index and call them. Instead each player and monster will have a list upon itself with all events it should trigger, and the main event function looks thorugh this player/monster list and call the event functions that match the index. The pointer to the proper event function is stored inside the player/monster list, and only looked up when the list is created, not when you actually check for which events to trigger. This is no big problem, just made it take aslightly more time to find it, since you had to look at the point a player or monster GOT the effect on it that would trigger an event. For example, it is at the moment a player would be subject to a Thorns aura, or equiping an item with CB, that the game would set the list entry on the player which would include the pointer to the proper function and also the index type and so on. However, it was not that hard to find the function pointer table and the txt files pretty much has all the easy to see information about what stat or skill trigger which event (except I have not found Thorns for examaple). Phew. Not sure that help ease the confusion.

In any case, the different events are:

Idx event *desc
0 hitbymissile hit by a missile
1 damagedinmelee damaged in melee
2 damagedbymissile damaged by missile
3 attackedinmelee melee attack atttempt
4 doactive do active state skill
5 domeleedamage do damage in melee
6 domissiledamage do missile damage
7 domeleeattack do melee attack
8 domissileattack do missile attack
9 kill killed something
10 killed killed by something
11 absorbdamage dealt damage
12 levelup gain a level

I have not seen any call for absorbdamage. There seem to be none. The others are easy to find where they are called, although I have to check notes at home. Will post later today. If anyone is interested in which effects are tied to which event index, I can post that too.

As for absorbtion, I have not seen anthing that could sugest why it would be added twice for example (if that would be the case). On the other hand, I have not played the game in a while (well, I have done some tests, but have looked at the server code setting up games and such instead, seems a server now theoretically can handle 1024 games instead of the old max 128 for example) so I have not been able to check if the absorbed damage is applied twice, should be relatively easy to check for with a breakpoint on the absorbed damage location for example.
There are three types of people in the world. Those who can count and those who can't.
Reply
#10
Jarulf,Feb 15 2004, 04:20 PM Wrote:So the table should look something like:

Code:
Target    Melee Weapon    Missile Weapon    
Player           1/4                      1/8
Boss Monster  1/2                      1/2
Other Targets     1                       1
So OW is fully effective as a ranged weapon?

Wow, gogo Riphook!!!
Reply
#11
AS is now updated although there is some formating issues at the moment- Some text appears twice :)
There are three types of people in the world. Those who can count and those who can't.
Reply
#12
I scrolled up the AS page a bit, and got to this under open wounds

Quote:The damage per frame seems to be the following

does it seem strange to you that the official Blizz site is unsure about some game mechanics?

-Bob
Reply
#13
Bob,Feb 18 2004, 11:41 PM Wrote:I scrolled up the AS page a bit, and got to this under open wounds

Quote:The damage per frame seems to be the following

does it seem strange to you that the official Blizz site is unsure about some game mechanics?

-Bob
Well, it should really seem to me, not to them. But yeah, seems strange :)
There are three types of people in the world. Those who can count and those who can't.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)