![]() |
#1 |
Hellband maintainer
Join Date: Jul 2007
Location: New York, the Big Apple
Age: 43
Posts: 367
Donated: $120
![]() |
![]()
Greetings,
I do not understand what these numbers represent: N:12:Restoring G:,:d I:80:19:500 W:20:0:1:1000 A:20/8:30/4:40/1 D:Eating this rare mushroom will restore your body and mind. I can see a list of 'locale' and 'chance', for each kind, but what do these numbers do in the game?
__________________
* Are you ready for something else ? Hellband 0.8.8 is out! * |
![]() |
![]() |
![]() |
#2 |
Prophet
Join Date: Dec 2009
Posts: 9,024
![]() |
This is saying "at depth 20, this item has rarity 8, at 30 it has rarity 4, at 40 it has rarity 1". When the game chooses to allocate an item, it sums up rarities of all items in the game, scaled by how out-of-depth they would be, then picks one. For example, say the game only had two items: the Mushroom of Restoring, and a Dagger that had a flat rarity of 1 at every depth. At depth 20, then, the game would say "the mushroom is 8 times more likely to drop than the dagger", and generates an allocation range with 9 buckets in it. The first 8, covering values from 0 to .88888... (i.e. 8/9) go to the mushroom, the last 1 goes to the dagger. The game generates a random number between 0 and 1, looks in the allocation range, and generates whichever item corresponds to where it landed.
At depth 30, it does the same thing, except this time the mushroom is only 4 times more common than the dagger, so the mushroom gets values from 0 to .8, and the dagger the rest. And at depth 40, the two split the range 50/50. In other words, rarity of one item always depends on rarities of every other item in the game. You can only make an item more (or less) common by comparison with other items, and you can't state anything about what percentages of all items are a given item without looking at the percentages of everything else. (NB I'm not 100% certain that higher numbers are more common; it might be the reverse, in which case you'd need to invert the example so the mushroom is 1/8th as common as the dagger, then 1/4th, then 1:1, at the respective depths). |
![]() |
![]() |
![]() |
#3 |
Vanilla maintainer
Join Date: Apr 2007
Location: Canberra, Australia
Age: 55
Posts: 8,589
Donated: $60
![]() |
Higher numbers are in fact less common; this makes sense with the ,Restoring entry because it gets more common the deeper you go.
__________________
One for the Dark Lord on his dark throne In the Land of Mordor where the Shadows lie. |
![]() |
![]() |
![]() |
#4 |
Hellband maintainer
Join Date: Jul 2007
Location: New York, the Big Apple
Age: 43
Posts: 367
Donated: $120
![]() |
Got it, thanks guys!
__________________
* Are you ready for something else ? Hellband 0.8.8 is out! * |
![]() |
![]() |
![]() |
#5 | |
Knight
Join Date: Mar 2015
Posts: 755
![]() |
Yet Another Dummy There...
I'm trying to figure out how alloc works, please help ![]() After past messager, it seems format changed.. Now it's Quote:
Blade~ of Chaos alloc:10:70 to 100 on depth 10, rarity of this blade is from 70 to 100.. VS Dagger alloc:20:0 to 100 on depth 20, rarity of dagger is from 0 to 100 I'm trying to figure out how it works.. In previous message there was different structure, eg A:20/8:30/4:40/1 - is like the deeper we go - the more often we would meet mushroom... "Higher numbers are in fact less common", so the higher rarity - the more rare item. Back to dagger&blade: at depth 10: blade got ~85 rarity; dagger got ~(50/2)=25 rarity, right? So dagger would be in ~3.5 times more often than blade. at depth 20: blade got ~170 (?) rarity; dagger got ~50 at depth 40 blade got ~ 340 rarity; dagger got ~100 ? Wierd. It seems I make something wrong. Lets take a lantern: alloc:70:5 to 100 So at depth 70.. wait. Depth 70 for a lantern? ![]() ![]()
__________________
https://tangaria.com - persistent online multiplayer roguelike game tangar.info - my website ⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽ My chars @ angband.oook.cz youtube.com/GameGlaz — streams in English ⍽ youtube.com/StreamGuild — streams in Russian |
|
![]() |
![]() |
![]() |
#6 |
Knight
Join Date: Nov 2008
Posts: 753
![]() |
The 10 is the rarity, the 70 to 100 is the depth, not the other way round.
__________________
The Complainer worries about the lack of activity here these days. |
![]() |
![]() |
![]() |
#7 | |
Vanilla maintainer
Join Date: Apr 2007
Location: Canberra, Australia
Age: 55
Posts: 8,589
Donated: $60
![]() |
There are two problems here. One is that the OP was talking about a variant (probably Hellband) which used an older way of specifying how items are found.
The second problem is that the comment is out of date - I am changing it to Quote:
means frequency of 10, found on levels 70 to 100 means frequency of 20, found on levels 0 to 100. Note that frequency ranges from a high of 80: Code:
name:Cure Light Wounds alloc:80:1 to 15 Code:
name:Power Dragon Scale Mail~ alloc:1:100 to 100
__________________
One for the Dark Lord on his dark throne In the Land of Mordor where the Shadows lie. |
|
![]() |
![]() |
![]() |
#8 | ||
Veteran
Join Date: Apr 2007
Posts: 1,947
Donated: $40
![]() |
Indeed, the file format changed rather a long time ago in Vanilla but not all variants have the newer syntax.
Quote:
"Commonness" is how many entries it gets in the object generation table for a given depth. So if it has 100, it will get 100 entries, if it has 10, it'll get 10 entries. So Quote:
The old syntax had 'rarity', where rarity of 1 = 100 entries, 2 = 50 entries, 4 = 25 entries, 8 = 12 entries etc., and you could specify multiple rarity/depth pairs to change the allocation through the dungeon.
__________________
takkaria whispers something about options. -more- |
||
![]() |
![]() |
![]() |
#9 |
Knight
Join Date: Mar 2015
Posts: 755
![]() |
![]()
Wow! Now it's clear! Thank you, friends!!
![]() The problem was in description of this value, as there is two notes in object.txt: 1) # alloc: commonness : min " to " max // good one; especially with your great comments which makes everything so clear! 2) # 'alloc' is for allocation - depth and rarity, in pairs. It is used to # ensure that certain vital items such as food and recall scrolls # are found throughout the dungeon. The "allocation" depth need not # match the depth as specified in the "properties:" line. // got an error?
__________________
https://tangaria.com - persistent online multiplayer roguelike game tangar.info - my website ⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽ My chars @ angband.oook.cz youtube.com/GameGlaz — streams in English ⍽ youtube.com/StreamGuild — streams in Russian |
![]() |
![]() |
![]() |
#10 |
Prophet
Join Date: Dec 2009
Posts: 9,024
![]() |
I want to highlight takkaria's answer, in particular the fact that how much of a given item you find depends on how much of other items you find. You can't change how many items are generated overall by changing the allocation rules, in other words; you can just make a particular item more or less likely than other items to get "chosen" when the game decides to produce an item.
This is part of why, for example, Potions of Speed are more common early on: they have a fairly flat distribution across the entire game, but at the top of the dungeon there are very few items that can get generated, so a relatively higher proportion of them are Potions of Speed. |
![]() |
![]() |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Competition-agnostic item allocation | Derakon | Development | 14 | December 14, 2016 22:27 |
dummy question: diff | will_asher | Development | 14 | September 19, 2010 06:12 |