the Phrozen Forums
  Graphics and Animation
  Error??

Post New Topic  Post A Reply
profile | register | preferences | faq | search

UBBFriend: Email This Page to Someone! next newest topic | next oldest topic
Author Topic:   Error??
Sear999
Squire

Posts: 39
From: California
Registered: Jul 2001

posted 27 January 2002 13:55     Click Here to See the Profile for Sear999   Click Here to Email Sear999        Reply w/Quote   
Ok, I've replaced 2 of the Necromancers Golems with other monsters with dcc changing. They work just fine in act 1, no problems what so ever. But a few moments (like 15 seconds) after entering act 5 I get this Error

Location: ablo2\source\D2client\Engine\GfxUtil.cpp , line #1352
Expression: eComponent < NUM_COMPONENTS

Does anyone have any Idea what this is means?? I haven't tested it in act 2,3, or 4 yet. Any help would be very much appriciated.

Thanks

IP Logged

Alkalund
Honorary Warlord

Posts: 964
From: Florianópolis, Santa Catarina, Brazil
Registered: Apr 2001

posted 27 January 2002 14:04     Click Here to See the Profile for Alkalund   Click Here to Email Alkalund        Reply w/Quote   
I had this error myself a few days ago, and while I don't know EXACTLY what is causing it, here goes a couple of suggestions you can try:
1) If you're using Hex Editor to modify animdata.d2, make sure you're in OVERWRITE mode (this is what solved my problem, I was using it on insert mode, so CRASH )
2) You must use the animdata.d2 that is in d2exp.mpq. If you use the one in d2data.mpq you most likey will get a crash of some sort (specially since you said you problem was in act5)

What i find weird with your crash is that you said it works ok in act1... so to me you are using the wrong animdata.d2... could be wrong though

------------------
Alkalund

IP Logged

Apocalypse Demon
Moderator

Posts: 4023
From: Mississauga, Ontario
Registered: Oct 2001

posted 28 January 2002 19:17     Click Here to See the Profile for Apocalypse Demon   Click Here to Email Apocalypse Demon        Reply w/Quote   
Well, I just got a weird crash when I killed my Beholder in the game. It seems to happen rarely but only when it dies(it's corpse)

Assertion Failure
Location : C:\Projects\Diablo2\Source\D2CMP\SRC\FastCmp.cpp, line #1871
Expression : dwStride>=pCel->dwWidth

Anyone know what this is?

------------------
God gave me a brain to use but I miserably failed to use it to my advantage

IP Logged

Myhrginoc
Honorary Warlord

Posts: 1326
From: Percussion U
Registered: Dec 2001

posted 28 January 2002 20:45     Click Here to See the Profile for Myhrginoc   Click Here to Email Myhrginoc        Reply w/Quote   
Is there an oversized frame in the walk animation?

IP Logged

Apocalypse Demon
Moderator

Posts: 4023
From: Mississauga, Ontario
Registered: Oct 2001

posted 28 January 2002 21:01     Click Here to See the Profile for Apocalypse Demon   Click Here to Email Apocalypse Demon        Reply w/Quote   
The error is not in the walk, it's in the corpse animation. And the beholder corpse animation is quite small but fits perfectly.

------------------
God gave me a brain to use but I miserably failed to use it to my advantage

IP Logged

Alkalund
Honorary Warlord

Posts: 964
From: Florianópolis, Santa Catarina, Brazil
Registered: Apr 2001

posted 29 January 2002 06:47     Click Here to See the Profile for Alkalund   Click Here to Email Alkalund        Reply w/Quote   
Hmm... I got this error before too, but not with the corpse animation (it was the neutral animation of my Ravager I think), I'm just trying to remember how I solved it

While I can't remember this, I will post something curious here. Apparently the cause for this
Assertion Failure
Location : C:\Projects\Diablo2\Source\D2Client\Engine\GfxUtil.cpp, line #1352
Expression : eComponent < NUM_COMPONENTS

is related to the number of frames of a specific animation, replaced by a specific monster. Let me explain this more clearly:
I tried to replace the Yeti with my Skeleton Warrior, did everithing ok, and... CRASH. Then I tried replacing the animations one by one, to see wich one was the problem. All of them passed the test, except the walking animation. Mine had 152 frames, the Yetis' had 96.
Hmm, so apparently just modifying animdata.d2 is not enough in some cases. I tried to modify YEWLHTH.cof as well, replacing there also the number of animation frames, and adding the sequence of 01's needed in the end of the file, and CRASH. Same error.
Ok, so I deleted 32 frames of my walking animation. Now it had 120, tested and crash. 112 crash, 104 crash, 96 WORKED (of course it had to work, it's the Yetis' framecount ).
This gets even more weird when I remembered that the 160-frame walk animation of the lich worked perfectly with the quill rat !!

Ok guys, so there's a greater force acting here, not just animdata.d2. I see only one possibility as of now, though it seems very unlikely: for each animation type there are framecounts that are not allowed (in my case the walking crashed with 152, 120, 112, 104).

I'm going to do some more tests later, not enough time right now

So, what you guys think of this??

------------------
Alkalund

IP Logged

Myhrginoc
Honorary Warlord

Posts: 1326
From: Percussion U
Registered: Dec 2001

posted 29 January 2002 11:18     Click Here to See the Profile for Myhrginoc   Click Here to Email Myhrginoc        Reply w/Quote   
COF files are a little more complex than that. You were partially right to add to the end of the file as you did. But there are other bytes you need to add too.

The first byte gives you the number of layers the animation uses for sprite manipulation.

The second byte gives you the number of frames per direction. This value is used in determining the quantities of bytes for the last two parts. The third byte gives you the number of directions, so the total number of frames is Byte 2 * Byte 3.

There are then a number of bytes I haven't figured out yet.

Fourth, you get a series of nine-byte structures ending with the three-letter weapon class and a zero byte (probably a null-terminated string). You get one structure for each layer. I haven't cracked the entire structure yet, but I think this must identify which DCC files are part of the animation this COF file governs.

Fifth is a series of one-byte values equal to the number of frames in the animation. Most values are zero. I suspect this has a synchronizing function between the animation and the gameplay...e.g. a weapon connects on the eighth frame.

Lastly is a layer table that is number of layers wide by number of frames long.

You edited the layer table without adding bytes to the previous structure. Try inserting some zeros in front of the first layer table byte and see what happens.

I uploaded two tables, one for all the COFs I could extract and one for all the DCCs (about 45,000 files). They should be posted on the Keep soon. The DCC table is missing some important information that I haven't figured out how to extract yet, such as frame sizes and offsets. I have seen the source code for CVDCC.DLL (download from the CV website), but I don't know C++ at all---if anybody wants to help me with how those values are stored I'll be happy to expand my table.

One warning: I know there is at least one corrupted COF file in my table (amblxbow.cof)...when I look at it in a hex editor it doesn't resemble any other COF. Anybody had any crashes with Amazons using crossbows? Or is this a bad file but an unused mode so it never comes up? Or do I just have a bad copy? I never use crossbows so I don't see anything happening.

[This message has been edited by Myhrginoc (edited 29 January 2002).]

IP Logged

All times are Central Standard Time

next newest topic | next oldest topic

Administrative Options: Close Topic | Archive/Move | Delete Topic
Post New Topic  Post A Reply
Hop to:

Contact Us | The PhrozenKeep

© PhrozenKeep.com . all buttons made by the Evilenglishman . swords and shields by DigiBO.


Ultimate Bulletin Board 5.47c