Problem with RC and resurrecting.

Report core bugs regarding the Ultima Online Emulator Core release (version 097). You can attach your Core Dump. One bug per post.

Moderator: POL Developer

Locked
neizarr
Neophyte Poster
Posts: 30
Joined: Thu Dec 07, 2006 11:33 pm

Problem with RC and resurrecting.

Post by neizarr »

I haven't changed anything related to the deathrobe item, yet when I do a resurrect on a character, I get the following error.

Assertion Failed: equippable( item ) (It is impossible to equip Item with ObjType 0x1f03), .\charactr.cpp, line 1035
Aborting due to assertion failure.

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

There is no crash dump, just that error. Also, the following is my tiles.cfg entry for that item..

tile 0x1f03
{
Desc robe
UoFlags 0x00404002
Layer 23
Height 1
Weight 3
Movable 1
Equippable 1
DescPrependA 1
}

Which says it is equippable, so I don't understand why that error is popping up. If this is a known bug then sorry for reporting it again. For reproducability, it happens every time I try to resurrect a player with the resurrect(who) function.

If there is a workaround, thanks in advance for pointing it out to me.

Oh, this is win32, latest RC.
MuadDib
Former Developer
Posts: 1091
Joined: Sun Feb 12, 2006 9:50 pm
Location: Cross Lanes, WV

Post by MuadDib »

Check for an entry in all your itemdesc.cfg for that number also, and see if there is a problem there. Tiles.cfg is just the tiles from the UO Client, not your items you have defined in itemdesc.cfg. So check that first
neizarr
Neophyte Poster
Posts: 30
Joined: Thu Dec 07, 2006 11:33 pm

This is my itemdesc entry for it.

Post by neizarr »

I don't really see anything per say that raises any red flags. If I create the item and equip it via the paperdoll it equips just fine.

Armor 0x1F03
{
Name deathrobe
AR 2
Coverage Body
Coverage Legs
Coverage Arms
newbie 1
maxhp 1
dyeable 1
equipscript :combat:equip
unequipscript :combat:unequip
controlscript :combat:itemControl
destroyscript :combat:destroy
}

Furthermore, in an attempt to take the various other scripts out of the mix, I deleted equipscript, unequipscript, controlscript, and destroyscript from the itemdesc.cfg file, then started the shard, logged in, .killed myself, and resurrected, and same exact error.

Is anyone else able to confirm this as happening with them or not happening with them?
User avatar
Austin
Former Developer
Posts: 621
Joined: Wed Jan 25, 2006 2:30 am

Post by Austin »

When you suspect a core bug, especially one that you assume would affect all shards - the best place to go first is to the POL Distro shard.

http://forums.polserver.com/viewtopic.php?t=820

Try .kill on yourself and .resurrect and see if anything happens.
MuadDib
Former Developer
Posts: 1091
Joined: Sun Feb 12, 2006 9:50 pm
Location: Cross Lanes, WV

Post by MuadDib »

I'll have to wait till I get home to check into the line of the error it reported, but, can't help but think it's something more unique to your shard/scripts than it is a core bug
neizarr
Neophyte Poster
Posts: 30
Joined: Thu Dec 07, 2006 11:33 pm

Post by neizarr »

Tried it at the distro shard and it didn't crash.

I'm still at a loss though. I'm using the .res of old 094, which was a simple script that worked through 094, 095, 096. I guess something is not working with the item, yet I can equip the item if I just .create 0x1f03 and drag it onto the paperdoll.

I guess I'll just have to put off going to 097 for a while. If this is happening only to me, and it appears it is, and yet I have no more info to give(no crash dump), then I don't see how to resolve it. I'll try to re-read all the core-changes notes to see if there is possibly something I am missing. If anyone has any suggestions I'm looking for help.
MuadDib
Former Developer
Posts: 1091
Joined: Sun Feb 12, 2006 9:50 pm
Location: Cross Lanes, WV

Post by MuadDib »

ok.........................

Do you equip this item during death/res, via script??????????
neizarr
Neophyte Poster
Posts: 30
Joined: Thu Dec 07, 2006 11:33 pm

Post by neizarr »

I'm not entirely sure of the context of your question so I'll answer the two ways I can see.

1) Can I equip this item (0x1f03) via script?

Yes. I .create 0x1f03 and it puts a deathrobe at my feet. I type .equip target the robe, target myself, and it equips it to me. I can also equip it via dragging it onto the paperdoll.

2) Do I equip it via some sort of resurrect script?

No. I have a much more complicated resurrect script than what I am using to generate this error, both the more complicated and the simpler one crash the shard. Below is the simple script that is crashing the shard. So far as I know this item is created by core whenever you use the Resurrect(who) function.

use uo;

program resonly(who, text)

Resurrect(who);

endprogram

If there is some other context you mean, I'm sorry for missing it.

Thanks for any help.
User avatar
Austin
Former Developer
Posts: 621
Joined: Wed Jan 25, 2006 2:30 am

Post by Austin »

A quick test.. in your scripts/misc/equiptest.src file, after the program line, put a 'return 1' to temporarily make anything equippable there and comment out the script lines for equipping, destroying, etc, in the itemdesc.cfg entry

See if that fixes the problem.
Then slowly reenable the scripts it uses and test.
neizarr
Neophyte Poster
Posts: 30
Joined: Thu Dec 07, 2006 11:33 pm

Post by neizarr »

I will try that tomorrow, for tonight I need to put this away. But I did a search and don't have an equiptest.src in my scripts/misc folder or anywhere at all for that matter.

Is that file required? My 096 test core shard seems to run fine without it, and the first mention of equiptest in core-changes.txt is by Racalac on 1-30 of what I guess is 2004.

I will create the file and pull the various scripts out of itemdesc.cfg tomorrow though and report back. Thanks for the suggestion.
neizarr
Neophyte Poster
Posts: 30
Joined: Thu Dec 07, 2006 11:33 pm

Post by neizarr »

I went ahead and tried it anyway, no dice. :(

use uo;

program equiptest(who, item, startup)

return 1;

endprogram

That is my equiptest.ecl program located in scripts/misc.

Same error when I do the .resonly script.
Pierce
Forum Regular
Posts: 420
Joined: Thu Feb 02, 2006 8:33 am

Post by Pierce »

tile 0x1f03
{
Desc robe
UoFlags 0x00404002
Layer 23
....
}
You have to edit your tiledata.mul and run uoconvert again after making the changes.
Layer 23 is for Legs (outer) (skirt/kilt) equipment. This has to be Layer 22 instead for the death robe.
neizarr
Neophyte Poster
Posts: 30
Joined: Thu Dec 07, 2006 11:33 pm

Post by neizarr »

Serious? About the layer needing to be 22 I mean? Can a dev confirm this? Because I specifically switched around the layers on my shard because I didn't like the way OSI did them and have been using a custom setup forever now that has worked fine with 096. I don't see why the core would suddenly start demanding we follow OSI's layer scheme when it didn't before. I would actually prefer just an option to not have the shard create a deathrobe at all on resurrection to this whole mess, especially since that is something that is entirely scriptable. My scripts in fact the first thing they do on resurrection normally is delete the death robe.

Before I go around messing up my whole layering scheme though, can someone verify that this is a check that is suddenly added to 097? That death robes must be on layer 22? If so, is there any chance we could get a servspecopt.cfg option to turn off creation/equipping of death robes on resurrection altogether? I have never known POL to get more restrictive about things like this as versions roll along, only less, so this is quite a shock if true.
neizarr
Neophyte Poster
Posts: 30
Joined: Thu Dec 07, 2006 11:33 pm

Post by neizarr »

Gosh, that was it. I didn't go so far on hopes that the tiledata.mul file didn't have to synch with the tiles.cfg file to do the test.

But for some reason I haven't figured out yet, POL is now making checks against layers? When did this happen and why? I would really prefer those checks be taken out, since I detest OSI's layering scheme and have changed all my shard's layers and even used some of those that are not official.

Not to mention, there is a new client that plans to allow any layer to be used(up to 128 of them). What purpose would POL possibly have to restrict layers at all? I would really like to ask that these restrictions be yanked out, as I think they are contrary to the whole concept of flexibility that POL has always seemed to support.

So two suggestions come out of this I guess that I hope the devs will seriously consider.

1) Remove any layer restrictions at all from the server, there is no reason I can see for even checking this, what possible need has the server for restricting what layer an item is assigned to?

2) Make a servspecopt.cfg option to allow disabling creation and equipping of a death robe on use of the Resurrect(who) function in uo.em. Or just remove the death robe creation/equipping and make scripts handle that as they should.

In the mean time I have the workaround that I just changed my tiles.cfg for the death robe to layer 22 instead of layer 23 like I was using before. But I really hope POL isn't going in the direction of specifying what layers are used for what like this, and worry that it does so in other places too.

For the Devs to test this, they can probably just go into the distro shard, make the change to the death robe item to go to layer 22 and then restart the shard, .kill themselves, and .res and it should crash like clockwork. Though I am assuming this check is somewhere in the server and easily found without seeing it actually happen.

Thanks!
Last edited by neizarr on Tue Dec 12, 2006 11:36 am, edited 1 time in total.
neizarr
Neophyte Poster
Posts: 30
Joined: Thu Dec 07, 2006 11:33 pm

Post by neizarr »

Oh, just to be clear, though I probably sounded shocked and perhaps even a bit demanding in that last post, it was more shock than demand, trust me. I do feel strongly about what I was saying, but understand that these issues may not be of utmost importance to the devs or that there may be some reasons I don't see for why they had to change from 096 to 097 this way. I would appreciate if someone would take the time to explain to me what those reasons were, or if it was some oversight of some sort explaining they will be removed in the future(not even having to be 097 since I guess it is locked, but 098 test cores would be nice to have these layer restrictions pulled out of, particularly the ones that crash the shard).

I just wanted to make sure nobody thought I was yelling at them or being too pushy. There is a fine line between feeling strongly about something and being too vocal and too demanding and hopefully I didn't cross it.
Pierce
Forum Regular
Posts: 420
Joined: Thu Feb 02, 2006 8:33 am

Post by Pierce »

Hmm calm down?
This is imho client restricted. A robe is at 22. Cause the gumps are there too. What do you plan? I think you misunderstood the whole thing. If you plan to change the layers, ask EA to change the way their client goes. Perhaps i am wrong.
neizarr
Neophyte Poster
Posts: 30
Joined: Thu Dec 07, 2006 11:33 pm

Post by neizarr »

I'm calm, I just didn't want anyone to think I was angry or something.

As for the client, no, it isn't. There is nothing actually in the client that forces robes to be at layer 22 at all, you can in fact shuffle the layers all over the place as you please and to your pleasure. All that layers do is specify what overlaps what on the screen, and some layers "blank out" other layers. This is actually what I hate about certain layers OSI uses.

Not to mention, I used this scheme forever on 096, and it worked perfectly fine, so there is no reason whatsoever from the standpoint of the client for the server to force you to have any given item at any given layer except for perhaps the backpack because it is a carried container.

My layers are as follows for example, to the left is the OSI use, to the right is what I use :

By draw priority :

1 - Weapon one hand -- one handed weapons
2 - weapon two hand -- shield/two handed weapons
6 - helm/hat -- helms/hats
18 - Earrings -- earrings
10 - Neck -- gorgets, necklaces
12 - waist (apron) -- aprons, sashes
22 - torso -- *NOT USED* (supercedes 19, 5, 13)
23 - legs (outter) -- all overlaid dresses(antari, etc), jackets, cloth tunics, robes
7 - gloves -- gloves
19 - arms -- bracelets (wrist)
15 - unused -- arm coverings/armour
14 - bracelet -- dresses, all armour tunics, doublets, vests
9 - unused -- all loose pants(over thigh boots), all skirts
8 - ring -- normal shirts
17 - torso (middle) -- rings
13 - torso (inner) -- all shoes/boots
24 - legs (inner) -- *NOT USED* (supercedes 3)
3 - shoes -- stockings/tight fitting pants(under thigh boots)
4 - pants -- lower underwear
5 - shirt -- undershirt/bra/upper underwear
20 - back -- cloaks & tatoos


Unknown priority :

11 -- hair
16 -- facial hair
21 -- backpack
25 -- mount
26 -- vendors only layers
27 -- vendors only layers
28 -- vendors only layers
29 -- bank box

As you can tell, I don't use layers 22 or 24 for some very good reasons. That being that they supercede other layers. Superceding in this case meaning that if you put on something that uses that layer, all items worn on the superceded layers are made invisible. This is the silly "dress over armour" thing that I hated at OSI where you could wear a dress over chainmail and even though the dress is short sleeved and the chain long sleeved and obviously should cover to the neck line, it was blanked out if you had the dress on. I re-arranged my layers in order to make best use of what was available, bringing into use some of the previously unused layers and getting rid of layers 22 & 24. Basically I brought in layers 9 & 15, which were previously unused, put them to use, and then got rid of layers 22 & 24. There is absolutely no reason whatsoever that I can fathom why the shard needs to crash if I have robes on layer 23 instead of layer 22, and it certainly isn't because of the client, because I use it on layer 23 all day long every day of the week on my 096 production shard. Works just fine with the server, works just fine with the client. Has for over a year.
Pierce
Forum Regular
Posts: 420
Joined: Thu Feb 02, 2006 8:33 am

Post by Pierce »

In that case I totally misunderstood the whole thing :D
Sorry for that.
neizarr
Neophyte Poster
Posts: 30
Joined: Thu Dec 07, 2006 11:33 pm

Post by neizarr »

I'm glad you saw the discrepency actually in the layers, or I'm not sure I would have ever thought back to when I changed all those layers! I would have just given up on it as some weird fluke probably. So no need to apologize, you helped, and I just needed to explain why I was doing what I was doing better.
Xadhoom
Neophyte Poster
Posts: 30
Joined: Fri May 26, 2006 12:53 am

Post by Xadhoom »

neizarr wrote:Not to mention, there is a new client that plans to allow any layer to be used(up to 128 of them)
Where did you read about this? It would be amazing to have new layers to add items

Speaking about layers, also we have changed the use of some of them, but not the 22 nor 23, maybe it's the only one the POL checkes when resurrecting a player to verify if the player wears the ress robe
neizarr
Neophyte Poster
Posts: 30
Joined: Thu Dec 07, 2006 11:33 pm

Post by neizarr »

The same guy that made the program MulPatcher, which I'm sure most are familiar with as one of the best MUL editting tools out there, has written a fairly decent client and has said he wants to add to the # of layers available and a system for shard operaters to specify draw priorities.

You can find the current rendition at : http://varan.uodev.de/ as Client.zip

He has a number of his other tools there too. Although it hasn't been updated there for a while, he now patches it via a patcher that runs in the program, so once you install it and run it, it will look for further patches.

It is obviously still in development, and you will need to make sure your video drivers are up to date to use it, and it is more resource intensive than the normal UO client, but it is probably the most complete custom client I have ever seen. More complete than Krioss', who stopped development work on it long ago.

About the robe : Maybe that is so, though I dont' see why the server is handling creation of & equipping a robe to begin with. That seems like something the client should do in it's resurrect scripts anyway, so it is an added task it doesn't have to do and one which crashes people who have customized the use of those layers to not include the death robe.
Shinigami
Former Developer
Posts: 308
Joined: Mon Jan 30, 2006 9:28 am
Location: Germany, Bavaria
Contact:

Post by Shinigami »

neizarr wrote:About the layer needing to be 22 I mean? Can a dev confirm this?
confirm

it will not work if it isn't set as layer 22.

anyway, it is a bad idea to switch layers... there are ton's of cases hardcoded now - sure, maybe it is possible in feature to do it via config, but for the moment (e.g. u should never touch hair, beard, backpack, 22, hand1 and hand2 layers. u'll get in trouble if u try to dye something. and maybe more cases I didn't forgot.

Shinigami

p.s.: @devs: check create_death_robe() and equippable()
neizarr
Neophyte Poster
Posts: 30
Joined: Thu Dec 07, 2006 11:33 pm

Post by neizarr »

Well, layer 22 for death robe is not something that was the case before, this is new to 097 or more recent versions of 096 than what I was using(and still use primarily because of this issue alone now).

So I don't really see why this is a layer that POL would worry about, I don't see why POL even handles death robe equipping, much less validation, and I hope that a future death hook or means of handling this will stop it in the future. That said, if it doesn't, I guess I can stick with the 096 test core I have indefinately.

You missed a layer by the way, 25, the mount layer, plus the various merchant layers should all probably not be shuffled. But clothing layers and the undefined ones I think should be free game, including shuffling layer 22 to other non-deathrobe uses and the deathrobe to another layer.

I'm probably the only person in the world that shuffles layers like this, so good or bad design, the inertia is tremendously against fixing it just for me I'm sure. Of course, I feel it is a bad design decision and was the day it was introduced to POL. POL has many good design decisions, this one flies in the face of the basic concepts IMO. It is forcing a specification of layers when it has no serious reason to.

Hands : Sure, need to know where those weapons and shields are so combat works.
Hair/Beard : Sure, it is a bit special because it can't be equipped/unequipped via paperdoll.
Mount : Sure, need to know where the mount tile is to determine how to deal with mounts.
Backpack : Sure, need to know where the backpack is so you can put things in it regularly.

But death robe? Why are you even equipping one? Much less why are you now validating for it being on a specific layer? And why even then are you crashing someone's shard over this silly thing not checking out to be true? Is it really a thing worth crashing a shard over that the death robe didn't get equipped? Is this worth shutting down the shard suddenly with no save? I just don't see the overwhelming importance of this check. Is it that POL is just super-modest and will freak out if someone is resurrected without wearing a deathrobe? Oh! Heavens be! Someone resurrected, and they aren't wearing a death robe! Someone might call out the ESRB! Shut down the shard before someone sees!!

Sounds silly ...doesn't it?
Last edited by neizarr on Wed Dec 20, 2006 5:56 pm, edited 1 time in total.
Marilla

Post by Marilla »

Now that's a fine example of a #1 rant if I ever saw one! :lol:
neizarr
Neophyte Poster
Posts: 30
Joined: Thu Dec 07, 2006 11:33 pm

Post by neizarr »

Sue me for having some fun. :)

I thought the ESRB comment was funny at least!
Locked