New Ring of Speed Record
New Ring of Speed Record
Correct me if I'm wrong, but I believe I just found the largest Ring of Speed in Mangband history. In a Greater Vault at 6300' I discovered a granddaddy speed ring.. +18!!!
King of the Hill Baby!
-
- Iridescent Beetle
- Posts: 244
- Joined: Sun 27.10.2002, 21:16
- Location: Eugene, OR
- Contact:
Re: New Ring of Speed Record
Damn, I thought my +17 that I just found would be it. I couldn't remember what you'd found.
/brag
/brag
When the winds of change blow hard enough, the most trivial of things can turn into deadly projectiles.
Re: New Ring of Speed Record
I would assume +20 as with damage, accuracy, protection etc. However there has been a rumor floating around to the effect that according to the code there is theoretically no limit. Anyone else want to comment on this and post the relative portions of the source for us to view? At any rate +18 is the largest I've ever heard of anyone actually finding in any Mangband variant. I've found 1 +17, seen another +17 in the black market on the old Catcarnage Ironman server and Bigjuan found a +17. I've seen and heard of less than 10 total +16's and there are perhaps a few more +15's but less than 20 total that I've ever heard of.. point being that regardless of the 'max' value, rings with plusses greater than 10 are extremely uncommon, and those bigger than +15 are so rare as to be almost unique.
King of the Hill Baby!
Re: New Ring of Speed Record
Summary of this message: There is NO maximum bonus for a Ring of Speed, but they get extremely uncommon after awhile.
I'll take you up on the challenge and post the relevant source code!
Here it is, directly from object2.c, function a_m_aux_3 which is called from apply_magic, which is called from place_object, the function called when an object is dropped or created on the dungeon floor.
-----------------------------------------------
/* Ring of Speed! */
case SV_RING_SPEED:
{
/* Base speed (1 to 10) */
o_ptr->pval = randint(5) + m_bonus(5, level);
/* Super-charge the ring */
while (rand_int(100) < 50) o_ptr->pval++;
-----------------------------------------------
After this is run, it checks to see if it's cursed, and if so, it curses the object, breaks it, then negates the pval (speed.)
So what this is telling us is that the base speed is a random number between 1 and 10. Then, there's a 50% chance of adding one, then a 50% chance of adding another, etc, etc.
Here are the probabilities of getting the first 0-4 (rand_int is base 0):
+0 20%
+1 20%
+2 20%
+3 20%
+4 20%
The probabilities of getting the next 0-4 are dependent upon object_level. object_level is always the level the item is generated on, unless it's on an Out-of-Depth square in a vault's initial generation, in which case it's incremented by (roughly) rand_int(out-of-depth amount). Roughly, it's going to be somewhere around this for object levels near zero, and the bigger distribution goes farther towards the higher numbers at higher object levels:
+0 to +1: 79.4%
+1 to +2: 15.2%
+2 to +3: 4.2%
+3 to +4: 0.4%
+4 to +5: 0.1%
Here is the probability of getting something over the combined base:
+1 50%
+2 25%
+3 12.5%
+4 6.25%
+5 3.13%
+6 1.56%
+7 0.78%
+8 0.39%
+9 0.20%
+10 0.10%
+11 0.05%
+12 0.01%
+13 0.006%
So, the probablility of getting your +18 was likely to be somewhere around 0.00004% which is really freaking crazy.
Some assorted notes:
m_bonus is a function in object2.c that gives normally distributed random numbers, where the normal distribution can be shifted to higher numbers.
rand_int is a macro #defined in z-rand.h to Rand_div, which is found in z-rand.c
level is exactly the same as the global variable object_level, and this is passed into apply_magic by place_object. This is bad code design!
-----------------------------------------------
Thank you, thank you! I'll be signing autographs after the show, behind building 4. Don't forget to tip your waiter!
I'll take you up on the challenge and post the relevant source code!
Here it is, directly from object2.c, function a_m_aux_3 which is called from apply_magic, which is called from place_object, the function called when an object is dropped or created on the dungeon floor.
-----------------------------------------------
/* Ring of Speed! */
case SV_RING_SPEED:
{
/* Base speed (1 to 10) */
o_ptr->pval = randint(5) + m_bonus(5, level);
/* Super-charge the ring */
while (rand_int(100) < 50) o_ptr->pval++;
-----------------------------------------------
After this is run, it checks to see if it's cursed, and if so, it curses the object, breaks it, then negates the pval (speed.)
So what this is telling us is that the base speed is a random number between 1 and 10. Then, there's a 50% chance of adding one, then a 50% chance of adding another, etc, etc.
Here are the probabilities of getting the first 0-4 (rand_int is base 0):
+0 20%
+1 20%
+2 20%
+3 20%
+4 20%
The probabilities of getting the next 0-4 are dependent upon object_level. object_level is always the level the item is generated on, unless it's on an Out-of-Depth square in a vault's initial generation, in which case it's incremented by (roughly) rand_int(out-of-depth amount). Roughly, it's going to be somewhere around this for object levels near zero, and the bigger distribution goes farther towards the higher numbers at higher object levels:
+0 to +1: 79.4%
+1 to +2: 15.2%
+2 to +3: 4.2%
+3 to +4: 0.4%
+4 to +5: 0.1%
Here is the probability of getting something over the combined base:
+1 50%
+2 25%
+3 12.5%
+4 6.25%
+5 3.13%
+6 1.56%
+7 0.78%
+8 0.39%
+9 0.20%
+10 0.10%
+11 0.05%
+12 0.01%
+13 0.006%
So, the probablility of getting your +18 was likely to be somewhere around 0.00004% which is really freaking crazy.
Some assorted notes:
m_bonus is a function in object2.c that gives normally distributed random numbers, where the normal distribution can be shifted to higher numbers.
rand_int is a macro #defined in z-rand.h to Rand_div, which is found in z-rand.c
level is exactly the same as the global variable object_level, and this is passed into apply_magic by place_object. This is bad code design!
-----------------------------------------------
Thank you, thank you! I'll be signing autographs after the show, behind building 4. Don't forget to tip your waiter!
By appreciation, we make excellence in others our own property. (Voltaire)
-
- King Lich
- Posts: 315
- Joined: Sat 26.10.2002, 15:00
- Location: Mangband Project Team Member
- Contact:
Re: New Ring of Speed Record
Yeah, the global object_level stash has bit me more than once, The more annoying part is there's inconsistancy on whether it 's passed, or just referenced directly. This turned out to be a major issue when dealing with the level respaning code, and is also related to why Alter Reality is so broken.
definately needs to be fixed.
definately needs to be fixed.
Are you not entertained?
Is this not what you came here for?
-- Maximus Decimus Meridias, The Gladiator
Is this not what you came here for?
-- Maximus Decimus Meridias, The Gladiator
Re: New Ring of Speed Record
Lousy stinkin' luck. I sell anything below +10 and I had a +10, +11, and +12 while i wore a +13. I thought that with high speedies being rare an all, I'd finally stop having to allocate MORE space to speedie stacks. And there the game has to go and give me a +19, forcing me to put my +13 in yet ANOTHER stack. Man, my luck finding speed rings is just BAD.
Version 3.12
GAT d- s++:- a14 C++++ UL+ P L+ E? W+ N+ o? K---- w--- O-- M-- V? PS--- PE++ Y+ PGP- t+ 5? X- R+ !tv b+++ DI+++ D+ G+ e- h! !r !z
GAT d- s++:- a14 C++++ UL+ P L+ E? W+ N+ o? K---- w--- O-- M-- V? PS--- PE++ Y+ PGP- t+ 5? X- R+ !tv b+++ DI+++ D+ G+ e- h! !r !z
Re: New Ring of Speed Record
Maegdae: Anything found or done on my server does not count towards world records threads, or your general respect level as a player. It is a custom server biased towards giving you better items and being much easier and sometimes purposefully cheezy in general. Having played as long as you have, I thought you would understand that by now.
By appreciation, we make excellence in others our own property. (Voltaire)
Re: New Ring of Speed Record
Maegdae, would you be interested in playing CHESS, sir?
Re: New Ring of Speed Record
Chess? I don't really know how to play that
(

Version 3.12
GAT d- s++:- a14 C++++ UL+ P L+ E? W+ N+ o? K---- w--- O-- M-- V? PS--- PE++ Y+ PGP- t+ 5? X- R+ !tv b+++ DI+++ D+ G+ e- h! !r !z
GAT d- s++:- a14 C++++ UL+ P L+ E? W+ N+ o? K---- w--- O-- M-- V? PS--- PE++ Y+ PGP- t+ 5? X- R+ !tv b+++ DI+++ D+ G+ e- h! !r !z
Re: New Ring of Speed Record
Has the frequency/speed bonus on speed rings been changed on the dserv.rh.rit.edu server?
Version 3.12
GAT d- s++:- a14 C++++ UL+ P L+ E? W+ N+ o? K---- w--- O-- M-- V? PS--- PE++ Y+ PGP- t+ 5? X- R+ !tv b+++ DI+++ D+ G+ e- h! !r !z
GAT d- s++:- a14 C++++ UL+ P L+ E? W+ N+ o? K---- w--- O-- M-- V? PS--- PE++ Y+ PGP- t+ 5? X- R+ !tv b+++ DI+++ D+ G+ e- h! !r !z
Re: New Ring of Speed Record
Yes, that was one of the first month's changes. FYI, There are people on the server with MUCH bigger speed rings than yours.
By appreciation, we make excellence in others our own property. (Voltaire)