forums | blogs | polls | tutorials | downloads | rules | help

Error message

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in remember_me_form_alter() (line 78 of /var/www/siegetheday.org/sites/all/modules/contrib/remember_me/remember_me.module).

Figuring out what drops where

So I started playing DS again and am tying to track down some of my favorite weapons. The tricky thing seems to be figuring out what drops where. For example the unique "Steel Death" is a really rare item overall, but drops very frequently in normal grescal chests / chamber of stars chests and almost nowhere else. The 33 strength leg cleaver is another really rare item, but has a propernsity to drop from Gom, and I've never seen it drop anywhere else.

I looked through the logic.dsres to check out the item templates and the mob templates, but am coming up empty handed. I was hoping for an "item level" on the items, that would determine where they drop, because they seem to have a really narrow range where they can drop. Similarly while I see where monster's inventories are generated, and while I see them say something like "chance = 0.25; il_main = #*/84-128" I don't know how to interpret what this means, or how that number 84-128 is tied to an item that they may drop. I also don't see different numbers for normal/veteran/elite yet it's obvious the drops are different.

Can anyone help me interpret this? My main goal is to be able to track down the 64-strength leg cleaver, if it can even drop in the base game. I found a 54-strength Leg Cleaver on elite pit of despair before, and I've always suspected that chest to have the best drops anywhere in the game, but again it would be great to have a more exact answer than that.

Steel Death has pcontent_special_type = rare, unique; so yes its gonna be only in certain areas. the key though is to look at the various chest(containers.gas) in logic.dsres and look at their drop rate like u mentioned earlier "chance = .25" so that means 1 out of 4 tries on a particular chest might get u that sword but 75% or 3 out of 4 of those chests wont get that sword... its kinda like a lottery ticket... armed with the information of what chests have the best chance of droping rare, unique swords can look at the map side (extract the ds map) and do a search of each container in each region it just may be that its meant to be mostly in grescal...
anyways that's kinda confusing, hopefully someone with even more knowledge of pcontent and chest drops can respond.

Thanks for your post. I undertand that there may be a "25% chance to drop a rare sword" but what I don't understand is how it's decided that the rare sword wll be a Steel Death and not a dragon wing for example. Looking at the items themselves in logic.dsres there's nothing that assigns an "item level" of sorts to them. It would make sense if the grescal chest dropped items in a certain item level range and steel death fell into that range but a dragon wing did not.

3W_chest_csl_03_sd_r2
[oneof*]
{
chance = 0.2;
il_main = #weapon/-rare(1)/212-249;
il_main = #armor/-rare(1)/510-598;
il_main = #*/-rare(1)/92-212;
}
that particular chest has 20% chance while some of the other chests were doing a measly .004
looking at steel death again wonder if maybe it the modifier max etc it was doing like 214 so it would fit the 212 249 range possible, but there is key somewhere in the code, I haven't played or modded original ds in years so not really sure.

Yup. This is a pretty good chest, there are even better ones for example

3W_chest_csl_04_un_path2ce

[oneof*]
{
il_main = #weapon/-unique(2)/250-303;
il_main = #armor/-unique(2)/881-962;
il_main = #*/-unique(2)/250-303;

Sounds like one of the grescal chests, since they usually always drop 1 unique. The point is, even if this tells me it drops a unique with "strength" of 250-303, I'm not sure how to relate that to the items in the game. For example if I knew the dragon wing has a "strength" of 251 then you could say, this chest can drop a dragon wing. But if the dragon wing has a "strength" of 249, you can say it cannot. But I can't find such a value for the weapons. The modifier max I think applies to what mods the item can get for example the highest leg cleaver has a modifier range of 98-112 and it usually gets high pcontent mods like Outlandish of Glory for example.

So the more I try to read on this site and others, it seems that each item must have an Item Level which helps determine which mob can drop it. Unfortunately for the life of me I can't find this value anywhere, it's definately not among the template/regular/interactive .gas files in logic.dsres. If anyone could point me to where the item levels are stored it would basically answer the question.

BL001 wrote:
So the more I try to read on this site and others, it seems that each item must have an Item Level which helps determine which mob can drop it. Unfortunately for the life of me I can't find this value anywhere, it's definately not among the template/regular/interactive .gas files in logic.dsres. If anyone could point me to where the item levels are stored it would basically answer the question.

Hi BL001,
All of the information on a specific item is located within the template for that item. It does not say where the item may be dropped but it does give all the other specifics about the item. If you look at the template you will see equip_requirements = melee:#item_level - 2.0 and Pcontent base and variants so if for example if variant 1 var1 has a level of 25 it is simple math 25 - 2 = 23. So the first variant of this weapon would be available to a melee character of level 23 even if he or she could not use it. So within the templates for an item look at equip_requirements and the base and var sections of PContent.

Elf

You mean here?

[t:template,n:sd_ra_g_o_st_2h_avg]
{
doc = "Leg Cleaver";
specializes = base_sword;
[aspect]
{
model = m_w_swd_017;
}
[attack]
{
f damage_max = 233.000000;
f damage_min = 78.000000;
is_two_handed = true;
}
[common]
{
pcontent_special_type = rare, unique;
screen_name = "Leg Cleaver";
}
[gui]
{
active_icon = b_gui_ig_i_ic_swd_007;
equip_requirements = strength:26;
inventory_height = 4;
inventory_icon = b_gui_ig_i_w_swd_129;
inventory_width = 1;

I don't see anything like what you describe, beside the strength requirement to equip it. Surely this doesn't control where it can drop. Some armors have a strength requirement of 15 or 16 but are quite high level and can be found in veteran/elite places rather than in normal with the basic 15/16 STR items.

Am I looking in the wrong place?

Even then, I feel like there has to be something else which governs which item can drop where, because clearly there's a certain range of items you find in each place. For example normal grescal will never drop a dragon wing, but will drops lots of steel deaths, while veteran chickens will drop lots of dragon wings and never a steel death.

BL001 wrote:
You mean here?

[t:template,n:sd_ra_g_o_st_2h_avg]
{
doc = "Leg Cleaver";
specializes = base_sword;
[aspect]
{
model = m_w_swd_017;
}
[attack]
{
f damage_max = 233.000000;
f damage_min = 78.000000;
is_two_handed = true;
}
[common]
{
pcontent_special_type = rare, unique;
screen_name = "Leg Cleaver";
}
[gui]
{
active_icon = b_gui_ig_i_ic_swd_007;
equip_requirements = strength:26;
inventory_height = 4;
inventory_icon = b_gui_ig_i_w_swd_129;
inventory_width = 1;

I don't see anything like what you describe, beside the strength requirement to equip it. Surely this doesn't control where it can drop. Some armors have a strength requirement of 15 or 16 but are quite high level and can be found in veteran/elite places rather than in normal with the basic 15/16 STR items.

Am I looking in the wrong place?

Even then, I feel like there has to be something else which governs which item can drop where, because clearly there's a certain range of items you find in each place. For example normal grescal will never drop a dragon wing, but will drops lots of steel deaths, while veteran chickens will drop lots of dragon wings and never a steel death.


The sword you are referencing does not have a pcontent block it is only a basic sword. What I was referring to would be something like this.
[t:template,n:hm_g_c_2h1m_avg]
{
  doc = "Mallet";
  specializes = base_hammer;
  [aspect]
  {
    model = m_w_hmr_012;
  }
  [attack]
  {
    attack_range = 0.5;
    f damage_max = 91.000000;
    f damage_min = 75.000000;
    is_two_handed = true;
  }
  [common]
  {
    screen_name = "Mallet";
  }
  [gui]
  {
    active_icon = b_gui_ig_i_ic_hmr_002;
    equip_requirements = strength:24;
    inventory_height = 3;
    inventory_icon = b_gui_ig_i_w_hmr_020;
    inventory_width = 2;
  }
  [pcontent]
  {
    [base]
    {
      f modifier_max = 4.000000;
      f modifier_min = 0.000000;
    }
    [c_fin]
    {
      f damage_max = 102.000000;
      f damage_min = 84.000000;
      equip_requirements = strength:26;
      inventory_icon = b_gui_ig_i_w_hmr_021;
      model = m_w_hmr_013;
      f modifier_max = 11.000000;
      f modifier_min = 2.000000;
    }
    [c_mag]
    {
      f damage_max = 250.000000;
      f damage_min = 204.000000;
      equip_requirements = strength:51;
      inventory_icon = b_gui_ig_i_w_hmr_023;
      model = m_w_hmr_015;
      f modifier_max = 50.000000;
      f modifier_min = 36.000000;
    }
    [c_str]
    {
      f damage_max = 178.000000;
      f damage_min = 146.000000;
      equip_requirements = strength:39;
      inventory_icon = b_gui_ig_i_w_hmr_022;
      model = m_w_hmr_014;
      f modifier_max = 35.000000;
      f modifier_min = 19.000000;
    }
    [o_avg]
    {
      f damage_max = 125.000000;
      f damage_min = 103.000000;
      equip_requirements = strength:30;
      inventory_icon = b_gui_ig_i_w_hmr_032;
      model = m_w_hmr_015;
      f modifier_max = 19.000000;
      f modifier_min = 7.000000;
    }
    [o_fin]
    {
      f damage_max = 152.000000;
      f damage_min = 124.000000;
      equip_requirements = strength:34;
      inventory_icon = b_gui_ig_i_w_hmr_034;
      model = m_w_hmr_012;
      f modifier_max = 27.000000;
      f modifier_min = 12.000000;
    }
    [o_mag]
    {
      f damage_max = 290.000000;
      f damage_min = 238.000000;
      equip_requirements = strength:58;
      inventory_icon = b_gui_ig_i_w_hmr_036;
      model = m_w_hmr_015;
      f modifier_max = 61.000000;
      f modifier_min = 44.000000;
    }
    [o_str]
    {
      f damage_max = 211.000000;
      f damage_min = 173.000000;
      equip_requirements = strength:45;
      inventory_icon = b_gui_ig_i_w_hmr_035;
      model = m_w_hmr_014;
      f modifier_max = 43.000000;
      f modifier_min = 29.000000;
    }
  }
}

This and the shops and drops in an area of a map would specifies what would be found. You could always edit a specific shop to contain your item.

Elf

Still not clear how this works. What part of that text is responsible for determining which parts of the game, ie whch monsters and stores can drop it? I mean there has to be something linking what level an item is to where it can be found. All I see is the pcontent stuff which I assume refers to the strength of mods that can be found on the item.

Take this item for example:

[o_str]
{
f damage_max = 211.000000;
f damage_min = 173.000000;
equip_requirements = strength:45;
inventory_icon = b_gui_ig_i_w_hmr_035;
model = m_w_hmr_014;
f modifier_max = 43.000000;
f modifier_min = 29.000000;

All this tells me is it has 45 strength required to equip and can carry mods that have a power between 29 and 43. My experience from the game tells me the vendor in Hiroth would probably carry it but the one in Elddim wouldn't. What in the text above determines this?

My intuition tells me something is missing, some kind of item level. In diablo 2 for example, the stone of Jordan had an item level of 45, meaning it would drop somewhere in the middle of the game, where another unique ring would have an item level of 80 or 90, dropping only at a later boss, who would actually be less likely to give you the Stone of Jordan. There has to be something like that at work here, unless the modifiers themselves also determine where the item can drop, which again doesn't make sense given some items have a modifier min/max of 1-297 and clearly can't be dropped by a Krug.

Basically I still have trouble linking it to the inventories of mobs or chests, which will say something like

"
il_main = #weapon/-unique(2)/250-303;
il_main = #armor/-unique(2)/881-962;
il_main = #*/-unique(2)/250-303;"

to determine what they will drop.

BL001 - the game tends to be random when attempting to locate a specific item. The item may be in a shop or barrel or trunk one time and not the next. Because this is based on many things. The randomness of the barrel, the level of the character and so on.
You could modify a specific barrel or trunk to always give the weapon you want. You could modify a shop in the starting town to contain the weapon, even if your character could not as yet use it. You could also modify the starting hero so that their inventory contained the item. even more than one of them if you so desired.
For example when I am testing a change I made to something in DS1 I have a special inventory I give my starting character which it totally different than what a normal starting character gets.

I know you are trying to figure out where an item might be found, if I want a specific item I put it somewhere by editing the a shop inventory, a barrel inventory such that it contains the specific item and only that item.

Otherwise I just play the game and hope the gods of randomness smile on me.

If you want I can show you how to modify a specific shop or character inventory to contain a specific item.

Elf

Thanks but I know how to give myself an item, I want to actually find it. I'm kind of wierd, the sort of gamer who plays very few games but plays them to completion. Now that I'm going through DS again after like, a decade, I really wanna find some of my old faves. It would be no fun to edit them in.

I still can't believe that items are random. The game can't be totally random. Look at the mallet example. You still haven't explained why that mallet would be sold in Hiroth but not Elddim. It depends on the stats of the shopkeeper but also on the stats of the item. Item's aren't dropped randomly or sold randomly. There HAS to be something that governs them, or the game would be broken. Think about going through the game from the beginning. Items aren't dropped randomly. The early areas drop low level items, the mid areas drop mid level items, the chamber of stars can drop a steel death but not a dragon wing, chicken level can drop a dragon wing but not a steel death, etc. It definately is not random. Even if you used a lvl 150 character to go through the game, the exact same pattern is evident.

You say an item dropping depends on the level of the character and the randomness of the barrel, but there must be a third variable, an item level of sorts. That's what I'm trying to find out.

You actually kind of allude to it in one of your earlier posts when you say " equip_requirements = melee:#item_level - 2.0"

Maybe this is the item level I'm looking for? Do you know where to find these item levels?

.. and I wish there were somebody who understands the numbers and could explain how they work. Really explain, in detail.

There's a clue in Logic.dsres: look inside at world/contentdb/pcontent.gas where all the modifiers are defined and you'll see that each has a power= value (e.g. the "of Hardiness" suffix is worth 6). Alongside that file is another, world/contentdb/pcontent.skrit. I've not tried to make head or tail of it but at first glance it seems to be what puts together the inherent power value of an item with the power of the modifiers to come up with a total to compare what the shopkeeper is supposed to sell or the monster or chest is supposed to drop.

So where do inherent power values come from? Maybe the same place gold values come from, that is they get calculated somehow from all the other attributes.

Thanks for your post Richard. Its a very interesting skrit file but I don't totally understand it since I was never into modding DS. Again I'm not sure where it's calling inputs like "item_power" or "total_power" from. Is the whole power of an item just determined by the minimum and maximum pcontent it allows? That can't be all that goes into it, take the 26-strength leg cleaver for example: it's max pconent is a wimpy 6 and the min is 0, yet it is a pretty high level item in it's own right. I still feel like there's another variable that I'm not grasping.

Can anyone help with this? One would think that on one of the last forums for people who mod and play DS there would be someone who knows how item drops are determined...

HardLess's picture

All of those are taken from the file "pcontent.skrit"

Firstly the item class is evaluated :

It's random but with hardcoded chances.
A number between 0 and 100 is randomly created:
If the number is lesser than 95 then it's a normal object.
If the number is lesser than 97 then it's a rare object.
If the number is between 98 and 100 then it's a set object.
Then if it's a rare and the item level is lesser than 6 the item will be a normal.

Then the general type is evaluated:(Same as the item class)

It's random but with hardcoded chances.
A number between 0 and 100 is randomly created:

If the object is normal:
If the number is lesser than 38 then it's an armor piece.
If the number is lesser than 66 then it's a weapon.
If the number is lesser than 70 then it's an amulet.
If the number is lesser than 78 then it's a ring.
If the number is lesser than 84 then it's a spell.
If the number is lesser than 96 then it's a reagent.
If the number is lesser than 100 then it's a spellbook.

If the object is unique, rare or set:
If the number is lesser than 52 then it's an armor piece.
If the number is lesser than 87 then it's a weapon.
If the number is lesser than 92 then it's an amulet.
If the number is lesser than 100 then it's a ring.

Then if the object is an armor piece:

It's random but with hardcoded chances.
A number between 0 and 100 is randomly created:
If the number is lesser than 22 then it's a body armor.
If the number is lesser than 44 then it's an helmet.
If the number is lesser than 66 then it's gloves.
If the number is lesser than 88 then it's boots.
If the number is lesser than 100 then it's a shield.

If the object is normal or rare:
(Level 0 object won't get modifiers)
A number between 0 and 100 is randomly created:

If normal:
If the number is lesser than (40 + Chance to find magical item) then it will have 1 modifier
If the number is lesser than (60 + Chance to find magical item) then it will have 2 modifiers

If rare:
If the number is lesser than 50 then it will have 3 modifiers
If the number is lesser than 100 then it will have 4 modifiers

It's pretty much everything, If you want more details on how modifiers are evaluated I can give you that.

For all items:
Armor 38 % chance
Weapon 28 % chance
Amulet 4 % chance
Ring 8 % chance
Spell 6 % chance
Reagent 12 % chance
Spellbook 4 % chance

For rare, unique or sets:
Armor 52 % chance
Weapon 35 % chance
Amulet 5 % chance
Ring 8 % chance

For all items:
Normal item 95 % chance
Rare item 1 % chance
Unique 1 % chance
Set 3 % chance

For all armor pieces:
Body Armor 22 % chance
Helmet 22 % chance
Gloves 22 % chance
Boots 22 % chance
Shield 12 % chance

I hope I helped,

HardLess.

#UPDATE:
About the type like melee, ranged weapon or cmagic and nmagic spell,
It's easy it's 50-50.

Sorry hardless but that didn't help. Are you talking about DS1? I don't remember reagents or items with 3-4 mods...

Also, it still doesn't answer where item levels can be found and how the game determines the range of items that a mob/chest can drop.

As you can see from the discussion above we saw that mobs drop items with a certain range of power or item level, what I'm trying to figure out is how that item level is calculated. When a chest is described as dropping items with power 251-337 and a different chest is described as dropping in the range 140-170, I want to know what those numbers mean and how they are calculated for an item.

HardLess's picture

My bad, extracted the wrong file. Laughing out loud

This is what I found...

An item in DS1 must have a pcontent component.

	[pcontent]
	{
		[base]
		{
		  f modifier_max = 1.000000;
		  f modifier_min = 0.000000;
		}
	}

In the pcontent component there is a variable known as force_item_power. Which is by default 10 if you don't modify it.

			[base]	// $ special "base" rule that adds modifier_min/max and/or force_item_power to the base type
			{
				modifier_min = 1;							// (optional)
				modifier_max = 4;							// (optional)
				force_item_power = 10;						// (optional)
			}

Hope it helps a bit more ;).

HardLess.

Ok, but how are these numbers used to put together an item level? As you can see in the discussion above chests or monsters drop items in a certain range such as "140-170" or "250-337" but I don't see these values listed for items in their templates, nor do I see a well-explained formula for how an item gets an item level or power generated for it.

So how does the game determine where this

[c_mag]
		{
		  f damage_max = 738.000000;
		  f damage_min = 246.000000;
			equip_requirements = strength:64;
			inventory_height = 4;
			inventory_icon = b_gui_ig_i_w_swd_131;
			inventory_width = 1;
			model = m_w_swd_020;
		  f modifier_max = 112.000000;
		  f modifier_min = 98.000000;

can appear in game? How does it get translated into the inventories of certain mobs but not others?

HardLess's picture

If I really understand the question and the code here it is.

I could be wrong but I think that the drop is hardcoded and the only thing I can do is trying to help you by a bit of guess

A chest have a item_power_max and a item_power_min as it's described here:

				[oneof*]
				{
					chance = 0.4;
					il_main = #weapon/50-108; //Here a weapon min = 50 and max = 108
				}

When open the chest create a weapon like this:

power = item_power_min + item_power_max / 2

(In this case power = 79)

if it's a weapon :

power = power - (power * ((((item_power_max - item_power_min) / 2) / power) / 10))

(In this case power = 79 - (79 * ((((108 - 50) / 2) / 79) / 10)), so power = 76.1)

Here is a part I can't really help:

I think that the specific type of a weapons is 50 chance to be a ranged or melee like in DS2 ???

Then if it's a melee weapon it's an axe, an hammer or a sword 33% chance ???

If it's an axe power = power * 0.79365

(Here power = 60,396765)

Take a look at "pcontent.skrit" for more info.

I hope it helps,

HardLess.

You understood the question but I don't thnk you're right in interpreting the pcontent.skrit. I think the formula refers to calculating a power for an ITEM, which is then used to see what chests/mobs can contain it. I've yet to really understand how the formula spits out a number, because I've calculated a "power" for certain items that I know can drop from certain mobs, and it doesnt add up.

It would definately help if someone could provide an interpretation for how that skrit file comes up with a final "value" for each item.

Here's my attempt at understanding it, using a dragon wing (modifier max 81, min 47)
So I caan calculate a total power for it using the formula there as 62.3. The problem is I know that a dragon wing gets dropped by chickens in veteran who drop items in the 251-335 range, so I'm missing something.

Simlarly the leg cleaver sword would have a power of 104.3*.79365 = 82.77 but I know for a fact it is a very high level drop.

A later section of the skrit calls upon something called total_power to come up with mods for the weapon:

float calc_modifier_power$( ePContentType type$ )
{
	// calculate the requested power of the new modifier

	// input: total_power$
	// input: modifier_count$
	// input: item_is_normal$
	// input: item_is_rare$
	// input: item_is_unique$

......

else if ( item_is_rare$ ) || ( item_is_unique$ )
    {
	  	if ( type$ == PT_WEAPON)
	    {
		    if ( total_power$ >= 250.5 )
			{
				if ( modifier_count$ == 1 )
				{
					power$ = GoMath.RandomFloat( 0.07, 0.3 ) * total_power$;
				}
				else if ( modifier_count$ == 2 )
				{
					power$ = GoMath.RandomFloat( 0.035, 0.15 ) * total_power$;
				}
		    }

I am having trouble understanding where this total_power comes from. If you notice 250 is the highest range, which makes snese given that the stronger enemies in the game can drop weapons up to 421 in power.

HardLess's picture

The information you are searching for are hardcoded in the exe file. So the only thing we can do here is trying to guess from the code that we can read. I'm pretty sure that what is written in the pcontent.skrit is roughly what is written in the exe but the other way around. The way an item's power is calculated in the pcontent.skrit is (in my mind) the reversed way that the exe do in order to generate an item from a specific power level. You just have to reversed the code here to understand how drop is evaluated and generated. We can't be sure of what I'm saying but the only way we could be sure of this is to use reverse-engineering on the exe file and try to find and understand the assembly code given. Which is especially hard to do if you didn't study assembly language. I think that none here in the current community is capable of doing this. I don't know everybody's knowledge but I'm pretty sure of this.

Perhaps searching a bit more in the game's files you can find a bit more details on the drop system, but If think this "pcontent.skrit" is more or less the answer to question.

I hope it helps,
See you,

HardLess.

It seems like such a simple thing to have included in the item templates, something like an item level that would fit into the ranges of drops that monsters carry..

The DungeonSiege.exe file contains the information you are looking for and it is hard coded. I was able to find this out by asking a friend to read this thread and look at what is contained in the various patch files associated with DS1/LoA. He was able to tell me that the information missing from the calculation is located in the exec. file. He also told me to make a calculation on where a specific item could be found would require some major work.
He could maybe figure it out, but he is currently on an oil platform in the North Sea reprogramming a dill rig so he does not have the game with him and it has been like 10 years since he has even played the game. He should be back in Scotland sometime this summer and he said after spending time with his family he would look into it if it had not already been solved.

Elf

BL001 wrote:
It seems like such a simple thing to have included in the item templates, something like an item level that would fit into the ranges of drops that monsters carry..

I did not really care that much about modding in DS1, however after scrolling through pcontent.skrit, it seems that the 'power$' variable represents some kind of item level.

The calc_item_power$() function is quite interesting, there must be the global (pre-defined) variables item_power_min$ item_power_max$ and I assume they carry the damage minimum and maximum of a weapon (or other values, but proportional to these stats).
For an armor piece it's probably twice the same value - wild assumption though, but comments it this function are partially speaking of 'defense rating'.

Now at the beginning of the calc_item_power$() function the average of item_power_min$ and item_power_max$ is taken to assign this power value (= item level?).
Rings and amulets have neither a damage or a defense stat of course, and there's actually a comment at the end of pcontent.skrit refering to that issue.

It's unclear to me how potion or spell drops are handled, but assumed once power$ represents the average stats value or a weapon or armor piece, it's significant that this number - by trend - will be increased for items that usually have lower stats (for example mage armors) and lowered for items with higher stats (like two-handed staffs). It seems that happens in order to get all item powers on the same (item) level as figher pieces have (armor or 1-handed).

power$ = power$ - (power$ * ((((item_power_max$ - item_power_min$) / 2) / power$) / 10))
An almost frightening formula - it took a while until I recognized that it is simply reducing the power$ by 5% of the diffrence of damage minimum and maximum - it must be intention that this formula is skipped for armor pieces (useless, if the assumption above is ok, the difference would be zero anyway).

Hence if a 1-handed sword does a damage of 20 until 30, its power should be 24.5 !(?)
No idea however if a drop request like '#weapon/21-28' really would be appropriate to produce this sword. There are several other things too that probably need to be taken into account - like the rather intransparent 'modifier' handling.

here is a link to a program that will let you open the exec file. Now a bit of warning. Copy the DungeonSiege.Exe to somewhere other than the game and use that copy to open and look about in.
http://www.restuner.com/howto-openfile.htm
Elf

I couldn't find this link on the site. I thought we'd sticky'ed it somewhere.

http://scottbilas.com/files/dungeon_siege/Skrit.html - The Dungeon Siege Technical Manual. Despite the subtitle, it is the only page. However, I recall at least one other source of his stuff, that mentioned how to get the DSMOD to dump the function parameters to a file for documentation purposes. That also included enum's etc. I don't remember if item_level details were in that output.

The document I'm trying to find was a paper written for a game industry conference that described the way the C++ functions exposed to the scripting engine could be made self-documenting, so if the C++ programs changed anything, the computer rewrote the doc.

Googling "Scott Bilas Dungeon Siege item level" gets me too much, but it's probably in there - and most of the results are useful, even if they don't answer this one!

Hey Germal, I thought about your formula and it looks simple enough and sort of makes sense. If we take max and min damage and use it to calculate item level, we get numbers that fit into the general "range" of drops in the monster's files. However I tried giving an item level to some items that I know drop in certain places, and it doesn't add up. I used the Dragon Wing, Steel Death, and 54str Leg Cleaver and came up with power values and just looked to see if the number they get ends up in the range of mobs that can drop them. Dragon Wing and Steel Death were both fine, appearing in veteran chickens and normal grescal chests respectively, but the Leg Cleaver didn't fit the formula. Based on max/min damage and the 2-hander multiplier it should drop in veteran chickens, where it most definately does not.

I guess all that's left is looking at the .exe file...

Edit: Ghastley's post just came up, going to have to look at this ^ ^

Edit2: At first glance, this stuff might be way over my head...

I found one of the documents I was looking for. Here. On this site!

http://www.siegetheday.org/?q=node/234 describes components.gas and that effectively tells you where item_level is defined, and how it gets used. It is described for DS1, but works the same way in DS2.

Hey Ghastley, thanks again for your help.. I saw the documentation for item_level in that link but I still don't know where to look up the item_level for the items that are in the game, nor how that item level gets used in drop calculation.

Hey Ghastley, so I see where there is some documentation of item_level in that file, but I'm still not sure where to a) find the item level for each item and b) how the item level gets used in drop calculation.

I'd really appreciate some help..

Pages