How Melee Weapons Lose Durability in (Offline) Single Player Mode
#1
Greetings, Lurkers, Drumar here,

I've been playing a bit of Ironman in single-player Diablo using the GOG Galaxy 2.0 gaming download, and really like playing the Rogue.  Of course the durability of items is of huge importance to her, since she cannot repair weapons/armors/shields like the Warrior can.

I decided to investigate how weapons lose their durability, and think I've found how it happens -- to Melee weapons, at least.  It doesn't quite jive with Jarulf, but then again it's repeatable and you can do it yourself to confirm it.

(I went into this at the time NOT having read Jarulf's formula at 3.7.1 that states for a melee weapon, the chance that it will lose a durability is 1 chance in every 30 hits (so about 3.3% per hit).)

My (un-informed) hypothesis was that the game kept some sort of running tally on how many times the melee weapon had swung and connected with either a foe or a barrel, and should that tally exceed a specific random "durability-tally" number (R = 100?) then the weapon would lose a durability point, and then the swing/connect tally would reset to 0 and the random durability number would randomize (R = 100) anew.

I decided to try and check this by making a single-player game wherein I killed foes one at a time, counting the number of swings the weapon connected with each foe (and keeping a running tally on paper), and checking the durability of the weapon after each connecting swing, including killing blows, AND saving the game after each kill IF no durability from the weapon had been lost. Once a durability point was lost on the weapon, I'd simply leave the game without saving, close the entire game of Diablo, reboot Diablo, reopen the game to the last save point, and repeat the kill and see what happened.  (This would also check to see if closing and re-opening the game reset the tally number as far as the R=100 limit was concerned.)

The data obtained was . . . . unusual.

Allow me to share.

I created a brand new Rogue, bought a club from Griswald, entered the dungeon, and then saved the game.  Then I followed the above protocol -- counting connecting swings, checking weapon durability, and saving the game after each kill (if no durability had been lost).

I continued this until I reached a room where, when I killed its one occupant with a single blow -- a Skeleton Captain, gonna call him Fred -- the club lost a durability point.

I thought, "Aha!  Now to find out if anything resets if I reload from the prior saved position." 

Reloaded the last save (club at Dur = 20, and right outside Fred's room), entered room again, killed Fred again. 

Club lost one durability.  

Repeat procedure x 3.  Same result x 3.

Left game without saving.  Closed Diablo.  Rebooted Diablo.  Reloaded the Rogue game to the last save point outside Fred's room.  Entered room and killed Fred.

Club lost one durability.

So I thought I had found that specific club's "durability breakpoint," and that from now on whenever I readied this weapon and killed something in melee, it would lose a durability point, regardless of whether the game was closed/rebooted or not.

To check, I reloaded the game again, and instead of entering Fred's room, went another direction in the dungeon.  Met up with a Fallen(spear), killed it with a single blow.  Checked club.

No durability loss.

Huh.  That's odd.  Continued the trek.  Killed two more Fallen(spear), two regular skeletons, and a rat.  After each kill, checked the club.

No durability loss.

OK, I thought, "Maybe it has to be a Skeleton CAPTAIN, like Fred is, that has to be killed."  Found one.  Killed it.  Check club durability.

No durability loss.

Enough of this theoretical crap.  Reloaded the Rogue game, went directly to Fred's room, entered it, killed Fred with one blow.

Club lost one durability.

Huh.  OK, new idea.  Reloaded game again to the save outside Fred's room.  Walked back to town and Gris.  Bought another club, a dagger, a small axe, a buckler, and a small bow, (so all at 100% durability).

Went back into the dungeon and walked to Fred's room.  Saved game.  Entered Fred's room...

Each time I killed Fred with one of these melee weapons -- new club, dagger, small axe, buckler(!) -- the weapon lost one durability!

(Not so the bow.  Couldn't get the bow to lose a durability no matter how many times I reloaded the game and killed Fred with this bow, either at a distance or when I allowed Fred to move adjacent to me and I then killed him at "Melee range" with the bow.  Huh again.)

This data would suggest that somewhere the game coding has some monster "storage byte" that keeps track of whether the monster is a "regular" one or a "toughskin" one, and that there is further coding that causes the melee weapon to lose durability when the "toughskin" monster is killed in melee combat.  (Has anyone see such a coding byte, or found a byte that seems to have an unknown purpose?

The durability lost is always 1.  (All tests were done on dungeon level one, though, so I'm not sure about further deeper dungeon levels and their monsters.)

The durability loss only happens when you KILL the foe.  If you just damage it without killing it, and then run away and check your melee weapon's durability, it hasn't lost any durability.

I've repeated this several more times with other characters -- including using Warriors and Mages instead of Rogues -- in other single-player games -- and I'm confident the results are repeatable.  Try it yourself.  

I would assume that this "durability loss" mechanic would be the same in multi-player -- why design two separate algorithms to carry out the same task? -- though I don't know how to test this.



I've never heard of this before, anywhere.  Anyone know anything about this?
Reply
#2
The data for each monster type certainly does not contain such a value.

Without access to Jarulf's notes on how the specific algorithm for determining when the durability is lost (it's definitely NOT once every 30 hits), my guess is that the RNG uses the monster's unique ID as a seed, and since the monster will always have the exact same ID each time the game is loaded from a save, you will always get the same result from a specific monster. irregardless of when you kill it.
"What contemptible scoundrel stole the cork from my lunch?"

-W.C. Fields
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)