[TUTORIAL] Making custom chests with controlled drops V.2

Post here about all aspects of D2 mod making whether it's information, problems or whatever. Please specify whether your post is relating to Classic D2 or the Expansion.

Moderator: Nizari

User avatar
Xenast
Retired staff
Angel
Posts: 765
Joined: Wed Nov 05, 2003 12:11 am
Location: Elliot Lake, Ontario

[TUTORIAL] Making custom chests with controlled drops V.2

Post by Xenast » Wed Jan 24, 2007 8:27 am

Introduction
Ok, for this tutorial I will go over the steps required to make simulated chests. This is done by making monsters that appear as chests. When we are done the only way to open the chest will be via physical attacks (missles such as arrows will not work).

These chests will function exactly like D2 chests, and aside from a slight string display difference, will be exactly the same as a regular chest in game, except you can fully customize the drop of these chests.

This tutorial will be a little longer then others, but that is because I will add notes on all the changes for those interested. I also take some extra steps other may not, but everythings in the details, so its best to do things properly.
You will also need some basic mod knowledge to make this work (know how to edit strings, basic drop editing, ect).

Here is a screenshot of a chest that has been opened, as well as 2 others beside it:
*Screenshot*
As you can see the only difference between this and a real chest is the red background behind the name, other then that they are exactly the same.

Part I: Extracting/Converting the Chest Animations

First thing we must do is extract the chest Animations, rename them, and place them in their new directory. You can use any chest animation you want, however for the purpose of this tutorial I used the act 2 horadric item chest animation, which is code "xk".

Now open d2data.mpq and extract the following files:
data/global/objects/xk/tr/xktrlitnuhth.dcc
data/global/objects/xk/tr/xktrlitonhth.dcc
data/global/objects/xk/tr/xktrlitophth.dcc
data/global/objects/xk/cof/xkNUHTH.cof
data/global/objects/xk/cof/xkNONTH.cof
data/global/objects/xk/cof/xkNOPTH.cof

To figure out what token each chest animation uses, extract and open objects.txt and look at the "token" column for each chest type


Now, go to your mod directory and make the following folder:
data/global/monsters/!C/tr

"!C" will be our new animation token for the monster, you must make sure no other monsters use this token in monstats.txt (no existing entries use special characters, such as ! and #).

Copy xktrlitnuhth.dcc, xktrlitonhth.dcc, and xktrlitophth.dcc to this folder. Rename them to the following:

xktrlitnuhth.dcc renamed to !ctrlitnuhth.dcc
xktrlitonhth.dcc renamed to !ctrlitddhth.dcc
xktrlitophth.dcc renamed to !ctrlitdthth.dcc

I highligthed the changes in bold to make it easier to read.

NU is the monsters Neutral animation, used when it is no moving. DD is the monsters corpse animation. DT is the animation the monster plays as it dies.
If you use cv52 with the dcc addon you can open the three dcc's and see why we assigned each monster animation the file we did.


Now in the mod directory add the following folder:
data/global/monsters/!C/cof

Now copy xkNUHTH.cof, xkNONTH.cof, and xkNOPTH.cof to the folder. rneame them to the following:
xkNUHTH.cof renamed to !CNUHTH.cof
xkNONTH.cof renamed to !CDDHTH.cof
xkNOPTH.cof renamed to !CDTHTH.cof

Note: It is very important you do this step right. If you make any typos, place files in the wrong place, the animation won't work properly.

Part II: Adding animdata.d2 lines

Next, extract animdata.d2 from d2exp.mpq. Use animdata_edit to convert the file to a txt file, and open it. Find the following lines:
XKNUHTH
XKONHTH
XKOPHTH

Now, create three new rows at the end of the file. Copy the above lines into these rows and rename the first column as follows:
XKNUHTH renamed to !CNUHTH
XKONHTH renamed to !CDDHTH
XKOPHTH renamed to !CDTHTH

As with renaming the animation files, if you make a mistake here, it will also cause animation errors. Be careful and take your time.

Part III: Monstats.txt Entries

Ok, if you made it this far, your done the most tedious part. Now, go to the end of monstats.txt and add a new row. Give it the following entries (If I don't mention a column, leave it blank):

Id: Chest1
hcidx: 704 (or if you have added new lines before use the next avilable value)
Baseid: Chest1
NameStr: Chest1 Your string id, don't forget to add it to your string file after
MonStatsEx: Chest1
MonProp: chest1
AI: Idle This AI allows the chest to be idle, as well as prevents hirelings from targeting the chest
Code: !C Make sure this matches the code you used for the animation/animdata.d2 files
Enabled: 1
MinGrp: 1
MaxGrp: 1
Velocity: 0
Run: 0
Rarity: 1If left blank chests will not spawn. Higher values will increase the number of chests spawned.
Level: 1 (same for all difficulty settings)
monsound: chest1
Umonsound: chest1
Threat: 1 This will make sure minions/hirlings dont attack the chest unless your literally standing on top of it
isSpawn: 1
Boss: 1 This will make the chest immune to curses as well as a few other unimportant unseen effects
killable: 1
noAura: 1 This will prevent the chest from receiving auras fro monsters, which would look out of place
petIgnore: 1 Apparently disabled in 1.10, it is supposed to make hirelings/minions ignore the monster
Noratio: 1 If left blank elemental damage immunities will not work properly
minHP:1 (same for all difficulty settings)
maxHP:1 (same for all difficulty settings)
Ac: 1 (same for all difficulty settings)
Treasureclass columns: Whatever you want, heres how you get your custom drop
Eol: 0

We did not use the immunity columns here because they will display under the chest name, which won't look right. Instead we add damage immunitues with monprop later in the tutorial.


Part IV: Monstats2.txt Entries
Ok, same deal as the monstats.txt explanation:

Id: Chest1
Height: 3
OverlayHeight: 3
pixHeight: 96
SizeX: 1
SizeY: 1 Take values from the same columns for the chest you converted in objects.txt
MeleeRng: 0
BaseW: hth
HitClass: 3
TRv: lit
TR: 1
TotalPeices: 1
mDT: 1
mNU: 1
mDD: 1
dDT though dRN: 8 in each column
Restore: 1
noOvly: 1 Only set if noaura is set to 1 in monstats.txt, prevents visual glitches
isSel: 1
isAtt: 1
deadCol: 1
unflatDead: 1 alone this column does nothing, but with the deadCol it makes it so players can't alk on the corpse, which is another detail to making the chest appear real
Shadow: 1
light-r: 255
light-b: 255
light-g: 255
Heart: xxx
BodyPart: xxx
Infernolen: 1
RessurectMode: NU
Eol: 0

Part V: Testing
Ok, now spawn the chest via levels.txt to see if it working right (you should be able to walk up and "kill" it, and the whole process should look like you opened a chest).
Many of you will probably find animation errors (no "corpse", chest doesn't appear at all). This is 99.9999% caused by messing up steps 1 and 2. I confused the files myself the first time I tried this and spent hours fixing and testing typos. The above will work if you have done everything right.

Anyway, once you confirm you have the above done right, there is a few more steps, outlined below.

Part VI: Sound Effects
Time to make the chest play that nice little sound effect when you open it. Open monsounds.txt and make a new row, give it the following entries:

id: chest1 This entry much match your monstats.txt "monsound" and "Umonsound" entries
DeathSound: object_chest_small
Eol: 0

Thats it, run the game and open your chest, it should now have sound.
There is also 2 more chest noises, "object_chest_large" and "object_chest_special", use whichever suits you best. Also, the names to put in the "Deathsound" column are referenced from sounds.txt for those of you wondering

Part VII: Properties.txt
What does this have to do with anything you ask? Well, before we give our chest its elemental immunities, we need to add one more property. We are going to also make our chest immune to missles, primarily useful for preventing arrows from opening the chest.

This actually quite simple, open properties.txt and make a new row with the following entries:

code: missim
*done: 1
func1: 1
stat1: passive_avoid This stat already exists in itemstatcost.txt
Eol: 0

What passive_avoid actually does is give the player a chance to avoid missle attacks while standign still, but we will make it simmulate immunity by granting 100% chance to avoid.
You can also add a string entry to the *desc column and use this as an item stat also if you wish.


Part VIII: Giving the chest elemental immunitues
Ok, we are at the last required step. Here we will use monprop to make our chest immune to all elemental damage, as well as apply our missle immunity.

Id: chest1
prop1: missim This is our missle immunity property we created earlier
min1: 100
max1: 100
prop2: res-all
min2: 200
max2: 200
prop3: res-mag The res-all stat does not cover Magic Damage, hence why we added mag-res on its own
min3: 200
max3: 200
Eol: 0

IMPORTANT: You must add the above entries for each difficulty column, or else your chest will only have immunities on Normal Difficulty.

Part IX: Final Test, Check List
Ok, congrats, you now know how to make your own custom chests. Below is a final list of things to check:
~Animations work properly
~Monster auras do not affect chest
~Player cannot walk through chest
~Player cannot walk through chest after its been opened
~Posion, Magic, Cold, Lightning, Fire damage do not damage chest
~Curses cannot be applied to chest
~Missles such as arrows will not open the chest

Part X: Spawning the chest
Its best to spawn the chest as an object and later insert it into a ds1 of choice, I won't cover how to do so here, as a tutorial already exists for that.
Adding ANY Monsters and ANY Objects to a DS1 (by Paul Siramy)

Part XI: Optional Touches
Yup, even when you think your done, theres more. The following is some examples of just how versatile these chests are.

Automap
Remember how quest related chests have their own automap? The same can be done with our chests.

Open monstats2.txt, and add the following column entries:
automapcel: 318
noMap:1

Thats it, now go in the game, and your chest will have an automap.

Trapped Chests
Since we have already added a monprop row for the chest, we can add a death-skill, which can essentialy make a very customized trapped chest.

Open monprop.txt and add the following:
prop4: death-skill
par4: skill id from skills.txt that you wish to use for the trap
min4: minimum skill level
max4: maximum skill level

Extra Display
You can also add a small message under the chest name by editing the following in monstats.txt (this text would go in the same size/place immunities are usually listed at for monsters in-game):

DescStr: add the string for your extra txt message

Concepts
1. Since the chest is immune to elemental damage, you can place it near a monster that has an aura that grants physical immunity, thus making the chest unable to be opened before the monster is killed. Just make sure if you do this you go back to monstats.txt and make "noaura" column blank.

2. For advanced modders, you can also make the chest immune to physical damage, and create a new damage type that only effects this chest. Then, you place the new damage type on a "key", thus making soft-coded locked chests.
Discussion of softcoded new damage types can be found here

3. The above technique can also be applied to other objects. For example, you could make a simulated shrine that applies a benificial curse to you when it "dies".

Part XII: Credits
librarian, Nefarius and onyx for corrections/improvements. See This thread for more information.
Last edited by Xenast on Wed Feb 14, 2007 2:10 am, edited 2 times in total.

User avatar
librarian
Junior Member
Champion of the Light
Posts: 356
Joined: Wed Dec 07, 2005 7:47 pm

Re: [TUTORIAL] Making custom chests with controlled drops

Post by librarian » Wed Jan 24, 2007 10:29 am

Heiho,

I'm no experienced modder, thus appreciating greatly your work :-)

Minor nits or uncertainities on my side:
Monstats.txt Settings
Noratio: 1 If left blank elemental damage immunities will not work properly
I don't understand this one, elemental immunities are added via MonProp ?-/

You also may set Nevercount=0 to prevent the chest counting for total number of monsters in a given map, plus lowering the amount of Chests via Sparsepopulate column. Unless you only spawn it via ds1-editing, that is.

Setting boss=1 will prevent the Chest from being cursed, also it makes sure it'll always gain the assigned mLvl.

The Idle AI actually causes hirelings, but no pets to ignore the unit already.

MonStats2:
CorpseSel=0 will prevent the former chest to be revived or CE'd. Not sure if DeathCol/Unflat Columns are enough to prevent this.


What about preventing such chests being opened via shooting arrows/bolts (or throwing weapons) to it? Setting a ac-miss property with quite high values seems to be too much effort, since you've to change SaveBits in ISC then. It is not that important.


Concepts:
- via Splenddeath and minion1 columns in MonStats you can make a 'Pandora Box'. Let an invisible egg spawn on death which can hatch every monster you like. Multiple monsters, multiple times, actually :-)

Really nice work!
so long ...
librarian

current status: (re-)tired
vanilla FAQtoids

User avatar
Nefarius
Retired Admin
Cherub
Posts: 11607
Joined: Sat Jun 15, 2002 8:13 pm
Location: Where the blood forever rains

Hand-picked

Re: [TUTORIAL] Making custom chests with controlled drops

Post by Nefarius » Wed Jan 24, 2007 10:47 am

If you set noaura to false, make sure noovly is true in monstats2 otherwise it will look weird as they'll be visually effected by stuff.

As for noratio, that doesn't relate to resistances in anyway, only to elemental damage dealt by the monster. As long as you don't add >32767 resistance via monstats it will work fine.
Last edited by Nefarius on Wed Jan 24, 2007 10:49 am, edited 1 time in total.
''(...) The game can basically be considered unhackable. '' - Blizzard Entertainment (30th May 2000)
Black Omen Productions | MetalStorm: Progress Report | Screenshots

User avatar
Xenast
Retired staff
Angel
Posts: 765
Joined: Wed Nov 05, 2003 12:11 am
Location: Elliot Lake, Ontario

Re: [TUTORIAL] Making custom chests with controlled drops

Post by Xenast » Wed Jan 24, 2007 7:45 pm

Thanks for the feedbacks so far :)

As for noratio, that doesn't relate to resistances in anyway, only to elemental damage dealt by the monster. As long as you don't add >32767 resistance via monstats it will work fine.
When I was testing the resistances weren't working, and setting noratio to 1 was the only thing that did make them work (Before setting to 0 level 1 poison nova's were killing it, even when I spawned 150% pois res via monstats.txt and had the immunity display on the monster).
If you set noaura to false, make sure noovly is true in monstats2 otherwise it will look weird as they'll be visually effected by stuff.
Will add that to the next revision ;)
I don't understand this one, elemental immunities are added via MonProp ?-/
If you add them via monstats.txt the immunities display under the monster name, which looks out of place, which is why we use monprop.
Setting boss=1 will prevent the Chest from being cursed, also it makes sure it'll always gain the assigned mLvl.
I will give this a test, and if it works as you say, I'll be able to shorten the tutorial a bit ;)
CorpseSel=0 will prevent the former chest to be revived or CE'd. Not sure if DeathCol/Unflat Columns are enough to prevent this.
Yup I did this originally as well, but forgot to include. Will also be added next revision.
What about preventing such chests being opened via shooting arrows/bolts (or throwing weapons) to it? Setting a ac-miss property with quite high values seems to be too much effort, since you've to change SaveBits in ISC then. It is not that important.
Being a workaround, it is going to have some flaws, so I am not to worried about this. Good placement in game could avoid players accidently shooting it.
The Idle AI actually causes hirelings, but no pets to ignore the unit already.
Never tested hirelings, but pets only attacked it when I standing righ ton top of it with 1 threat. I will add this to the idle AI note.

User avatar
librarian
Junior Member
Champion of the Light
Posts: 356
Joined: Wed Dec 07, 2005 7:47 pm

Re: [TUTORIAL] Making custom chests with controlled drops

Post by librarian » Thu Jan 25, 2007 1:04 am

Heiho,
Xenast";p="305880" wrote:
I don't understand this one, elemental immunities are added via MonProp ?-/
If you add them via monstats.txt the immunities display under the monster name, which looks out of place, which is why we use monprop.
I've understood that part of the story, my quoting of your posting seems to be a bit on the short side :-)
I've just never read of Noratio affecting something given in MonProp. If it does I'll have to recheck a _lot_ of things in my own MonProp. The mere thought of it drives me nuts ...

But in reply to Nefarius' comment you wrote it affected resistance from _MonStats_, which I also never heard of, but will tone down my panic a bit ;-)
so long ...
librarian

current status: (re-)tired
vanilla FAQtoids

User avatar
mirecek
Dark Alliance Beta Test
Arch-Angel
Posts: 1218
Joined: Sun Sep 11, 2005 10:04 am

Re: [TUTORIAL] Making custom chests with controlled drops

Post by mirecek » Thu Jan 25, 2007 9:23 am

And how about spawning? Can be this chest spawned on directly controlled place or only way is populate map like monsters entries in levels.txt?
"Each of those few chords separated by complete silence feels like a knife wound to the heart"

There is no greater sorrow than to recall happiness in times of misery. Draconian

User avatar
onyx
Retired Admin
Throne
Posts: 9377
Joined: Fri Apr 18, 2003 12:38 pm
Location: Sofia, Bulgaria

Hand-picked

Post by onyx » Thu Jan 25, 2007 9:25 am

You can spawn them anywhere you want using this technique.
ONYX
Read The Terms of Service before posting!

Back to Hellfire - Site | Forum
Also visit: Incandescence * Diabolic Cartography * Inventharia * Diablo Evolution

User avatar
cheractor
Junior Member
Paladin
Posts: 204
Joined: Tue Apr 27, 2004 5:18 am
Location: Mars

Re: [TUTORIAL] Making custom chests with controlled drops

Post by cheractor » Sat Jan 27, 2007 4:33 pm

This chest can't be locked, and can be opened by an arrow, and it's looks weird to attack a chest and see it opening "automaticly".

But hey, you can use death-skill freely, no need to worry about the traps on your chest will one-hit kill low level characters. Just make several chest with different death-skills, you can gain full control of your traps on these chest.

User avatar
Nameless
Forum Legend
Power
Posts: 3357
Joined: Tue Feb 14, 2006 6:38 am

Re: [TUTORIAL] Making custom chests with controlled drops

Post by Nameless » Sat Jan 27, 2007 5:59 pm

Just wondering if you'll also get bosspacks of chests or champion chests...

User avatar
Nefarius
Retired Admin
Cherub
Posts: 11607
Joined: Sat Jun 15, 2002 8:13 pm
Location: Where the blood forever rains

Hand-picked

Re: [TUTORIAL] Making custom chests with controlled drops

Post by Nefarius » Sat Jan 27, 2007 6:52 pm

If you spawn it via levels.txt and don't fix the broken code that makes it use the incorrect columns on nm and hell (well it isnt actually broken, but badly designed [IMHO]...)

I can add the column fix to the next version of the extlevels.dll for v1.11b
''(...) The game can basically be considered unhackable. '' - Blizzard Entertainment (30th May 2000)
Black Omen Productions | MetalStorm: Progress Report | Screenshots

User avatar
Xenast
Retired staff
Angel
Posts: 765
Joined: Wed Nov 05, 2003 12:11 am
Location: Elliot Lake, Ontario

Post by Xenast » Sat Jan 27, 2007 9:43 pm

This chest can't be locked, and can be opened by an arrow, and it's looks weird to attack a chest and see it opening "automaticly".
Its not perfect, its a workaround. Of course it can't be locked in the tradition sense, only in the way I described at the at end of the tutorial.

I haven't had any time for modding since I got this tutorial up, so it is going to receive a complete update soon. I will also include a section about spawning it since it seems to be somewhat of an issue.

librarian mentioned adding ac-miss property, which would make arrows and such not work if a high enough value was added, but I don't know how to edit itemstatcost savebits and if incorrect values will mess it up (hint: someone help me out with this one ;)

User avatar
Nefarius
Retired Admin
Cherub
Posts: 11607
Joined: Sat Jun 15, 2002 8:13 pm
Location: Where the blood forever rains

Hand-picked

Re: [TUTORIAL] Making custom chests with controlled drops

Post by Nefarius » Sat Jan 27, 2007 10:15 pm

Two things.

Its not perfect, its a workaround
In light of this I might release a plugin that lets people specify a TC in a objects.txt column (only need to port it v1.11b), shouldn't be too hard to do (as I've done it in 1.10 already).


As to a second thing. Make a aura that grants the chest 8388607 Magic Damage Reduction instead of resistances, that works far better. And instead of AC vs. MISSILE use PASSIVE_AVOID (at 100% ;) [give it 100% DODGE and it can only be opened when shot at with a bow (if you let out things like smite, which hit everything) ]).
Last edited by Nefarius on Sat Jan 27, 2007 10:19 pm, edited 2 times in total.
''(...) The game can basically be considered unhackable. '' - Blizzard Entertainment (30th May 2000)
Black Omen Productions | MetalStorm: Progress Report | Screenshots

User avatar
Xenast
Retired staff
Angel
Posts: 765
Joined: Wed Nov 05, 2003 12:11 am
Location: Elliot Lake, Ontario

Re: [TUTORIAL] Making custom chests with controlled drops

Post by Xenast » Sat Jan 27, 2007 10:40 pm

In light of this I might release a plugin that lets people specify a TC in a objects.txt column (only need to port it v1.11b), shouldn't be too hard to do (as I've done it in 1.10 already).
That would be awesome :D
As to a second thing. Make a aura that grants the chest 8388607 Magic Damage Reduction instead of resistances, that works far better. And instead of AC vs. MISSILE use PASSIVE_AVOID (at 100% icon_wink.gif [give it 100% DODGE and it can only be opened when shot at with a bow (if you let out things like smite, which hit everything) ]).
I never even thought of these, I will keep this is mind while drafting the next version ;)


EDIT:
CorpseSel=0 will prevent the former chest to be revived or CE'd. Not sure if DeathCol/Unflat Columns are enough to prevent this.

Leaving the column blanks prevents the corpse from being selectable

Concepts:
- via Splenddeath and minion1 columns in MonStats you can make a 'Pandora Box'. Let an invisible egg spawn on death which can hatch every monster you like. Multiple monsters, multiple times, actually :-)


From what I read Splenddeath has a slight graphical glitch with corpse, which is why I opted not to include this.

Make a aura that grants the chest 8388607 Magic Damage Reduction instead of resistances, that works far better.


I think I will stick with my original method, since it works and is much less work then creating a new aura.

Version 2 Changes
~added credits section
~removed curse section in favor of just setting "Boss" to 1 to simulate the effect
~added a new property to make chests immune to missles (such as arrows)
~added in noOvly column
~added link to new damage types
~added in short blurb about spawning the chest
~added third concept
Last edited by Xenast on Sun Jan 28, 2007 1:31 am, edited 1 time in total.

User avatar
librarian
Junior Member
Champion of the Light
Posts: 356
Joined: Wed Dec 07, 2005 7:47 pm

Re: [TUTORIAL] Making custom chests with controlled drops V.

Post by librarian » Sun Jan 28, 2007 1:54 am

Heiho,
CorpseSel=0 will prevent the former chest to be revived or CE'd. Not sure if DeathCol/Unflat Columns are enough to prevent this.
Leaving the column blanks prevents the corpse from being selectable
yeah, leaving it blank is the same like putting a zero into it (unless it's the eol column, of course).
Since we always clone rows for HoB the importance would vary with the cloned row. When you set up a row from scratch it is irrelevant.

Concepts:
- via Splenddeath and minion1 columns in MonStats you can make a 'Pandora Box'. Let an invisible egg spawn on death which can hatch every monster you like. Multiple monsters, multiple times, actually :-)
From what I read Splenddeath has a slight graphical glitch with corpse, which is why I opted not to include this.
this is correct. Splenddeath will also show the corpse animation of the new unit when the old unit dies. This looks hilarious with some units - Itchies and Thornhulks, as example, and of course it works fine with the Flayer Shamans spawning their 'carrier' Flayer on death - but will look out of place with lots of other units.
But when you use an invisible egg as minion1 you don't see new corpse animation, and it can hatch everything you want without graphics issues. This credit goes to Nefarius, who showed me the way some time ago.
so long ...
librarian

current status: (re-)tired
vanilla FAQtoids

User avatar
Bloodtitan
Posts: 35
Joined: Sun Jun 05, 2005 9:08 am
Germany

Post by Bloodtitan » Wed Feb 07, 2007 1:38 pm

i tried to do this but i failed. i did everything to point V but my chest won't spawn and i don't know why. i have added them to the halls of vaught, replacing the bugged vipers in nightmare and hell difficulty. i know when creating the level 3 monstertypes of the selection from levels.txt are chosen but sometimes, i suspect when the chests are supposed to spawn, only 2 types of monsters show up. this is the only hint i have.

i don't get any error messages and can play the game normally except for not getting the chests to appear.
any ideas ?

EDIT: it's not the map, i get the same thing for the Bloody Foothills.
EDIT2: for the xktrlitnuhth.dcc to rename, i don't get why the "nu" is bolded since it wasn't changed, the only change there is xk -> !c.
anyway, i crosschecked steps 1 and 2 as suggested but everything was renamed, extracted and placed correctly. perhaps the .dccs or .cofs got corrupted upon extraction, can anyone give me their filesize ?
Last edited by Bloodtitan on Wed Feb 07, 2007 5:02 pm, edited 2 times in total.

User avatar
onyx
Retired Admin
Throne
Posts: 9377
Joined: Fri Apr 18, 2003 12:38 pm
Location: Sofia, Bulgaria

Hand-picked

Post by onyx » Wed Feb 07, 2007 5:01 pm

Are the Enabled and IsSpawn columns set to 1 in Monstats.txt?
ONYX
Read The Terms of Service before posting!

Back to Hellfire - Site | Forum
Also visit: Incandescence * Diabolic Cartography * Inventharia * Diablo Evolution

User avatar
Bloodtitan
Posts: 35
Joined: Sun Jun 05, 2005 9:08 am
Germany

Post by Bloodtitan » Wed Feb 07, 2007 5:09 pm

yes :(
curious, i added a key to expansionstring.tbl named Chest1 but the description is something else, the actual "monster" name. this would not cause a bug or ?

User avatar
onyx
Retired Admin
Throne
Posts: 9377
Joined: Fri Apr 18, 2003 12:38 pm
Location: Sofia, Bulgaria

Hand-picked

Re: [TUTORIAL] Making custom chests with controlled drops V.

Post by onyx » Wed Feb 07, 2007 6:17 pm

I suspect that your chests are spawned in the levels, but they are invisible. This said, make a character with a bow and go shoot around, see if some chests will pop open out of nowhere.

If you're sure that your filename of the NU mode .dcc and your entries in Animdata.d2 are correct, check the AI of the chest-monster. Monsters tend to disappear like that if they try to use a mode that they don't have.
ONYX
Read The Terms of Service before posting!

Back to Hellfire - Site | Forum
Also visit: Incandescence * Diabolic Cartography * Inventharia * Diablo Evolution

User avatar
Bloodtitan
Posts: 35
Joined: Sun Jun 05, 2005 9:08 am
Germany

Re: [TUTORIAL] Making custom chests with controlled drops V.

Post by Bloodtitan » Wed Feb 07, 2007 7:01 pm

AI is set to Idle in monstats.

tried to test the invisible thing with a multishot amazon and found no chests.
extracted the animdata again to check the entries, all seems fine. animdata is in the right place since other new monsters work.
this is frustrating :(

User avatar
Doombreed-x
Retired staff
Arch-Angel
Posts: 1304
Joined: Thu Jul 15, 2004 6:40 pm
Location: No more flag. :(

Re: [TUTORIAL] Making custom chests with controlled drops V.

Post by Doombreed-x » Wed Feb 07, 2007 8:24 pm

Force spawn them the preset way and see if that works. (you can spawn them right in the town even, they just won't do anything and neither can you to them.)

User avatar
Bloodtitan
Posts: 35
Joined: Sun Jun 05, 2005 9:08 am
Germany

Post by Bloodtitan » Wed Feb 07, 2007 9:07 pm

i tried to spawn the chests in harrogath and nothing happened..

data\global\Monsters\!C\cof
!CDDHTH.COF = 39 bytes
!CDTHTH.COF = 47 bytes
!CNUHTH.COF = 39 bytes

data\global\Monsters\!C\tr
!ctrlitddhth.dcc = 577 bytes
!ctrlitdthth.dcc = 1.69 kbytes
!ctrlitnuhth.dcc = 428 bytes

are those sizes and names correct ?

User avatar
onyx
Retired Admin
Throne
Posts: 9377
Joined: Fri Apr 18, 2003 12:38 pm
Location: Sofia, Bulgaria

Hand-picked

Re: [TUTORIAL] Making custom chests with controlled drops V.

Post by onyx » Fri Feb 09, 2007 9:08 am

I'm sure that your problems aren't related to corrupted files.

Here's something to try - give the chest-monster a different token and try to spawn them, see if that works. Leave the AI alone and if the monster spawns, see if it acts like the chest is supposed to act. These observations would give you better view on what's working and what isn't, and might be the key to solving your issue.
ONYX
Read The Terms of Service before posting!

Back to Hellfire - Site | Forum
Also visit: Incandescence * Diabolic Cartography * Inventharia * Diablo Evolution

User avatar
Bloodtitan
Posts: 35
Joined: Sun Jun 05, 2005 9:08 am
Germany

Post by Bloodtitan » Fri Feb 09, 2007 9:38 am

sorry, i don't get what you mean with token and leave AI alone.. as you can see here, if it's not idiot proof i seem to fail :-|

User avatar
onyx
Retired Admin
Throne
Posts: 9377
Joined: Fri Apr 18, 2003 12:38 pm
Location: Sofia, Bulgaria

Hand-picked

Post by onyx » Fri Feb 09, 2007 10:09 am

The token is the first 2 symbols of the .dcc filename and the .cof filename. It's entered in the Code field of Monstats.txt and it's used to "tell" the game which animation to use for this monster. If your token code is incorrect in Monstats.txt, then no wonder that your monster is invisible. If it's correct, then change it to some existing monster code, just pick one, quill rat for example, see if that works.
ONYX
Read The Terms of Service before posting!

Back to Hellfire - Site | Forum
Also visit: Incandescence * Diabolic Cartography * Inventharia * Diablo Evolution

User avatar
Bloodtitan
Posts: 35
Joined: Sun Jun 05, 2005 9:08 am
Germany

Post by Bloodtitan » Fri Feb 09, 2007 11:30 am

ah ok. well it is !C so correct, trying to change now.

it did not work, i used a token of a working new monster and had set the chests to spawn in harrogath, halls of vaught and bloody foothills. no go for any of those.

i have absolutely no idea what i'm doing wrong, looking at the files and settings for 2 days now. i assume everyone else got this to work ?

Return to “General Mod Making”