zerodowned

Moderator
Does anyone happen to know how to override the gumpid that shows on the paperdoll when you equip an item?

What I'm trying to do you can see here: http://www.servuo.com/archive/new-backpacks-this-is-not-a-custom-file-item.300/

I can set the container id, but there doesn't seem to be a way to set what shows up on the paperdoll

From what I understand the OnAdded method is for when something is added to the paperdoll

-mirror post on Runuo - will update both sites once it's resolved
 
Haha. Milva's making sure I jump right back in.

Let me look into it today if someone doesn't beat me to it. Briefly looking tho, it looks like @zerodowned is asking a scripting question, rather than an art question and scripting is my weakness. So we'll see....
 
The whole problem I know from past experience even when scripted is, to get this working on the paperdoll as a container. On ATA we had a few custom ones they worked fine -except when trying to use on the paperdoll :) (but then maybe the scripting was off also not sure) Sorry Safera!! :)
Maybe looking at a back pack in UOFiddler might give a bit more information?
 
Ok, being as my computer took a dump and I have absolutely no UO stuff on this one...and the fact that I have been out of the loop for some many months now, it will take me a little time to reload everything and try to test this out. Until then, here are some links that I found, which may be helpful in some way. I'm hoping that many heads are better than one and that, together, we can figure this out....and cuz I think being able to have different backpacks is a kind neat. ;)

To start off with, here is my old tutorial on adding custom wearables to your paperdoll (I'm going to need this to refresh my own memory):
http://www.runuo.com/community/thre...s-clothing-armor-weapons.534840/#post-3975344

Backpack is layer 21
According to Tannis: http://www.runuo.com/community/threads/custom-artwork-how-to.54706/#post-396652

Thagoras reminds us that the hex code for the backpack layer is
/// Backpacks.
/// </summary>
Backpack = 0x15
as declared in Item.cs
http://www.runuo.com/community/threads/question-about-layers.496308/#post-3798229

Insanity notes that the following flag is for changing the paperdoll:
Can Alter Paperdoll = 0x02
This may not matter at all, but I'm noting it just in case.
http://www.runuo.com/community/threads/gumping-noobs.503956/#post-3836008

Just a reminder that we need to be mindful of client versioning with regards to missing paperdoll items:
http://www.runuo.com/community/thre...ipped-armor-on-paperdoll.535475/#post-3980170

Some scripting hints:

You CAN add a new backpack if yours gets deleted. I would expect that using this script as an example, we can figure this out.
http://www.runuo.com/community/thre...-deleted-how-to-ad-new-one.96541/#post-808099

Someone made an instanced steal-able backpack script...which may help in our quest or, at least, ehnance it, if we figure it out:
http://www.runuo.com/community/thre...rkaround-dynamic-backpacks.49199/#post-354764

Making sure that an item is, indeed, equipped:
http://www.runuo.com/community/thre...ipped-on-paperdoll-check.534544/#post-3982428

Double-clicking to equip/unequip an item:
http://www.runuo.com/community/thre...usx-not-working-properly-on-2-3.536343/page-2

Looks like both September and Lord-greywolf have made custom backpacks in the past.
Maybe they are still around and can be asked for their input?
http://www.runuo.com/community/threads/custom-artwork-backpacks-help.100106/

Did you know that default backpacks have a weight? I didn't.
http://www.runuo.com/community/threads/status.489529/#post-3764207

Hopefully, this gets us all off onto a "thinking" start, at the very least. I'll post if I figure out anything more.
 
September was on ATA :)(they never worked on the paperdoll :/) But thanks so much Safera for the great information! I did find that the backpack is handled in container.cs I did find all the gump ids for inside and outside.
Edit: oh wait I guess they did work on the paperdoll but everything was one sided (items in the pack) has been so long I forgot :) I don't have the server -just the client files, but they would be custom where these are in the client. @Hammerhand he might still have the custom packpack script though :) But I doubt this would help for the paperdoll?
 
Last edited:
i might have found a solution but cannot test it right now, was going to say that it probably requires a packet override then noticed in VitaNex / Extensions / Server / ItemExt.cs

public static class ItemExtUtility
{
public static int GetPaperdollArt(this Item item, bool female)
{
return item != null && item.Layer.IsValid() ? ArtworkSupport.LookupGump(item.ItemID, female) : 0;
}


just putting down the results of my own searching
 
I have both an old and new client downloaded now and here are my notes so far...

I found out that gump id 50422 is the paperdoll backpack gump and that there are no paperdoll images (or gumps) made for the new backpack graphics, which means that they are just meant for being used in-game.

However, that doesn't mean that you can't make your own for use on the paperdoll. It's also important to note that there is no item data nor tiledata for gumpid 50422.

I'm going to try adding a new backpack as a simple wearable item to see how that works then we can work from there to make it into a workable container (using your code).

Here are my notes so far:

Client 7.0.41.1 (Patch Unknown)

HEX : DEC : DESCRIPTION: SIZE :IN BOTH CLIENTS?

Strappy pack

0x775E (30558) open 230,204 x
0x775F (30559) closed 52,59 x

Snowy pack

0x7760 (30560) open 230,204 x
0x7761 (30561) closed 52,59 x

Bloody backpack

0x7762 (30562) open 230,204 x
0x7763 (30563) closed 52,59 x


Main pack

0x3C (60) open 230,204
0x50 (80) closed 56,50
0x2652 (9810) closed size 56,50
0x2653 (9811) closed sideways size 52,59
0xC4F6 (50422) closed icon 260,237

------------------------

Client 7.0.23.1 (Patch 65)

0x3C (60) open 230,204 <-- all backpacks, graphic that u put stuff into
0x50 (80) closed 56,50
0x2652 (9810) closed 56,50
0x2653 (9811) closed sideways 52,59
0xC4F6 (50422) closed icon 260,237 <--paperdoll graphic
 

Attachments

  • backpackscreen.jpg
    backpackscreen.jpg
    669.9 KB · Views: 103
Last edited:
Alright, I think I've got it...

I'm attaching a screenshot of the bloody backpack on the ground in-game and also on the paperdoll.

I'll make up the graphics for all 3 of the packs as well as one or two more as soon as I get a chance as well.

I'll put together a how-to also, but I'd really like a copy of the finished scripts that turn them into usable containers as that is beyond my ability. Please and thank you.
 

Attachments

  • Bloody_Backpack.jpg
    Bloody_Backpack.jpg
    755.5 KB · Views: 103
Alright, I think I've got it...

I'm attaching a screenshot of the bloody backpack on the ground in-game and also on the paperdoll.

I'll make up the graphics for all 3 of the packs as well as one or two more as soon as I get a chance as well.

I'll put together a how-to also, but I'd really like a copy of the finished scripts that turn them into usable containers as that is beyond my ability. Please and thank you.

i'm very interested in seeing how you got an item to add the correct image to the paperdoll
as for turning them into usable containers, if it's a custom item that you're adding with a patch to the client files - I'm not sure how to do that.
 
I can set the container id, but there doesn't seem to be a way to set what shows up on the paperdoll

What's the code look like that you have for making the containers now?

It isn't client hacking or anything sketchy like that, but because there is no paperdoll graphic already in the muls, you do have to make custom gump graphics and add them to gump.mul & gumpidx.mul using UOFiddler.

Pretend like you are writing code using the current backpack gump image ID and all that you have to do is substitute the new ID# later.

When changing out backpacks though, it seems like the best route is to remove all items from the default backpack and have it placed into the new backpack before deleting it.

Here is a link with a short discussion on the topic:
http://www.runuo.com/community/threads/help-with-backpack-remove-pad-please.25211/

I'm attaching the coinciding paperdoll graphics here:
http://www.servuo.com/archive/7-backpack-gump-image-sets.310/
 
Last edited:
I didn't see a paperdoll gump for any of them. Which id# was it?

oops. I just read the # u gave - going to look

Update: #30563 is not a paperdoll gump I don't think. Not sure what it's used for, but a paperdoll gump would need to be size 260x237.

(Now you have me curious though so I'm going to see what happens if I try to use #30563 as a paperdoll graphic...brb with my findings...)

Update #2:
Yeah, Gump ID #30563 does not work as a paperdoll graphic. I'm attaching a screenshot of what happens when you try to use it as one. You'll see that it gets put in the upper left of the paperdoll (see the red arrow), instead of where it should (by the blue arrow).
 

Attachments

  • BackpackID_30563.jpg
    BackpackID_30563.jpg
    756.7 KB · Views: 88
Last edited:
I didn't see a paperdoll gump for any of them. Which id# was it?

oops. I just read the # u gave - going to look

Update: #30563 is not a paperdoll gump I don't think. Not sure what it's used for, but a paperdoll gump would need to be size 260x237.

(Now you have me curious though so I'm going to see what happens if I try to use #30563 as a paperdoll graphic...brb with my findings...)

Update #2:
Yeah, Gump ID #30563 does not work as a paperdoll graphic. I'm attaching a screenshot of what happens when you try to use it as one. You'll see that it gets put in the upper left of the paperdoll (see the red arrow), instead of where it should (by the blue arrow).

interesting, how did you get it show up on the paperdoll though?
 
I didn't see a paperdoll gump for any of them. Which id# was it?

oops. I just read the # u gave - going to look

Update: #30563 is not a paperdoll gump I don't think. Not sure what it's used for, but a paperdoll gump would need to be size 260x237.

(Now you have me curious though so I'm going to see what happens if I try to use #30563 as a paperdoll graphic...brb with my findings...)

Update #2:
Yeah, Gump ID #30563 does not work as a paperdoll graphic. I'm attaching a screenshot of what happens when you try to use it as one. You'll see that it gets put in the upper left of the paperdoll (see the red arrow), instead of where it should (by the blue arrow).
also, just a thought, the upper left hand corner of the paperdoll background would be location x=0, y=0
i mention that because even though it isn't going to the correct location, it does show up. so there seems to be missing code to simply say where on the paperdoll you want it to be
so i'm hoping to see how you got it to show up and maybe we can figure out the location issue from there
 
also, just a thought, the upper left hand corner of the paperdoll background would be location x=0, y=0. i mention that because even though it isn't going to the correct location, it does show up. so there seems to be missing code to simply say where on the paperdoll you want it to be. so i'm hoping to see how you got it to show up and maybe we can figure out the location issue from there

That's beyond the scope of scripting server-side. When everyone else was telling you that "it couldn't be done", this is what they meant when they said it was "client-side". Short of creating a new client, you cannot tell the client HOW to display the images. Even if you could hack the client to display all graphics of a particular type to display in a certain place, this would affect all images of that type, not just one in particular. The way that I usually get around things is to think outside of the box and manipulate the things that I know I can change; in this case, the graphics.

Now, with that being said, Milva had an idea that might work if you are dead-set against changing and redistributing mul files:
We know that we can create gumps using gump studio or scripting and we know that we can put gumps anywhere on the screen that we want. Using that work-around, you could always create a gump using gump ID #30563 and having that pop-up OVER the paperdoll, in the place where you want it to.

Otherwise, if adding graphics to the mul file IS ok with you, the easiest way to achieve custom backpacks on the paperdoll is to simply make new paperdoll graphics (I made coinciding paperdoll graphics here) and add them to the mul files as I've outlined here:
http://www.runuo.com/community/thre...s-clothing-armor-weapons.534840/#post-3975344

Then, you just use a simple script (see below) to add the item to the game:

Code:
using System;
using Server;

namespace Server.Items
{
	public class Pack : Backpack
	{	
		
		[Constructable]
		public Pack ()
		{
			Weight = 2.0;
			Name = "Pack";
            ItemID = 50403;			
		}

		public  Pack ( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );

			writer.Write( (int) 0 );
		}
		
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();
		}
	}
}

What I need help with is making that item into a container???

Here's my input regarding the container code:

What's the code look like that you have for making the containers now?

It isn't client hacking or anything sketchy like that, but because there is no paperdoll graphic already in the muls, you do have to make custom gump graphics and add them to gump.mul & gumpidx.mul using UOFiddler.

Pretend like you are writing code using the current backpack gump image ID and all that you have to do is substitute the new ID# later.

When changing out backpacks though, it seems like the best route is to remove all items from the default backpack and have it placed into the new backpack before deleting it.

Here is a link with a short discussion on the topic:
http://www.runuo.com/community/threads/help-with-backpack-remove-pad-please.25211/

I'm attaching the coinciding paperdoll graphics here:
http://www.servuo.com/archive/7-backpack-gump-image-sets.310/

Can you help bringing this home?
 

Attachments

  • Pack.cs
    558 bytes · Views: 10
So basically there is no way to use multiple backpack arts/gumps all displayable on the paperdoll? Its either one, or another, or another.

I think that was the original point of the thread, was to figure out how to swap between different backpack arts. Or maybe I completely misinterpreted it. If I did, that's ultimately my question.
 
I think that was the original point of the thread, was to figure out how to swap between different backpack arts.
I also thought the point was to swap between different backpack arts? But I could be wrong. If it's swapping, that's what I showed how to do.

So basically there is no way to use multiple backpack arts/gumps all displayable on the paperdoll? Its either one, or another, or another.

No. You could use the same theory to show multiple packs on the paperdoll. The only thing you would have to do differently is make them show on different layers. Right now, the backpack I have made is using the backpack layer. You could make another pack and have it "worn" on a different layer without any issues. The only other thing you would have to consider is making new paperdoll graphics with the backpack positioned where you could see it. Right now, the paperdoll is a bit crowded, but you should be able to resize the backpacks or reposition them so that multiple would fit at once.
 
I wouldn't think that any one would want just the new packpacks on every char? Giving them as a reward or donation item, so if you could just remove the backpack, put the new one on then it would be fine? Just creating new backpack scripts with the new ids? But then what do I know :)
 
Right, that's basically what I thought and what I did. The problem is that I don't know how to make my new backpack into a container. Right now, it's just a wearable. But I deleted the default backpack. Then I just made a new backpack that can be picked up in-game and put on. The problem I have is that I don't know how to make it a real container so would need someone to take my Pack.cs and turn it into a real container.

The other problem that others mentioned (see here) was that there are items that may get deleted if you don't remember to move them to the new backpack container first, before deleting the old default backpack.

I think we are approaching this topic from different angles. Maybe that's why we aren't seeing eye-to-eye.

I think m309 and OP may be wanting to know how to change out item id#s of the default backpack, which is a scripting question and not something I'm familiar with. I don't know how to change out item id's on the fly within a script. I don't even know how to script.

So I came to the problem from a different angle. I treated the backpack like any other wearable and just made new ones.

I think we are very close to the solution. It's like a circle and the two ends are sooo close to meeting, we just need someone to get us the rest of the way.

Can anyone program my Pack.cs into a usable container? That should do what we want in the end.
 
I think we might be overcomplicating this. @zerodowned, do you know what the hex ItemID is for the new backpacks? I don't use a new client, so I'm not sure.

If you have the ID for the item the gump is associated with (not the gump itself), can you just try changing the Backpack ItemID to the new one and see what happens?
 
@m309 You are on the right track.

But the catch is that there are NO paperdoll gump ID's for the new backpacks. I had to make those paperdoll gumps (download here)

  1. So the first step is that a shard owner would have to add the artwork into the gump mul (using my tutorial).
  2. They would then need to take that new gump id and either:
    1. Change the gump id of the default backpack script to the new gump id
    2. OR make a new backpack script for the new backpack(s)
 
@Hammerhand he might still have the custom packpack script though :) But I doubt this would help for the paperdoll?
I do still have my entire server & client copies. Including a lil thing called ATAPack.cs... with the Layer, Rectangle2D Bounds, DefaultGumpID & DropSound... the works. ;) public class ATAPack : BaseContainer
 
This one can be used to create a new backpack script for each one... ie: BloodyPack has ItemID of 0x1111 That goes in the BloodyPack.cs.. StrappyPack has ID of 0x2222, that goes into the StrappyPack.cs. Once you have the artwork set in the client, you can remove the players default pack & use [add to add the new pack into the game & then place it on the avatar so it shows in the paperdoll.
*ItemID's are just an example of course*
 

Attachments

  • ATAPack.cs
    972 bytes · Views: 19
Last edited:
Nice check that out Safera :)maybe twist Hammerhand arm to use it and create the 3 backpacks :) my client isn't high enough, darn!
 
I think we might be overcomplicating this. @zerodowned, do you know what the hex ItemID is for the new backpacks? I don't use a new client, so I'm not sure.

If you have the ID for the item the gump is associated with (not the gump itself), can you just try changing the Backpack ItemID to the new one and see what happens?

problem is there is no Item for the new backpacks, there's only the gump the shows up on the paperdoll and the container gump.

my thoughts are that either OSI can either change the paperdoll image that shows up ( this would have to be do-able in game from what I understand ) or there's a nodraw tile associated with the paperdoll gump image.

is there somewhere in the client files i can see a list of items and the gump image they're associated with?
 
realized that fiddler has a Dress tab that shows the linked itemid and gump ids. there are two for the normal backpacks but nothing for the three new ones.
 
problem is there is no Item for the new backpacks, there's only the gump the shows up on the paperdoll and the container gump.?
I already made the new graphics that were missing and uploaded them to Servuo.

my thoughts are that either OSI can either change the paperdoll image that shows up ( this would have to be do-able in game from what I understand ) or there's a nodraw tile associated with the paperdoll gump image.

You could change it in game using [props or you could check out the script that Hammerhand uploaded as it works. (I have tested it.)

I'm attaching a commented version of the ATA Backpack .cs script to make it a little easier to tailor. When using Hammerhand's script, you should also check "Container" in UOFiddler in the Tiledata tab.

Another thing to note is that there seems to be a down-side to scripted backpacks...all items seem to drop to the left-hand side of the pack.
[Read here for more info regarding the limitations of scripted backpacks here.]

(I am going through now to see if there any other additional options available for client-declared backpacks gumps. I will let you know if I find any additions, other than the default backpack image id.)

is there somewhere in the client files i can see a list of items and the gump image they're associated with?

You can use UOFiddler, but it doesn't tell you directly which files are associated with which necessarily, but it does let you switch between gumps, item art, and tiledata. Tiledata shows some graphic id associations (e.g. animation ids associated, etc.) And, like you said, the Dress tab helps.
 

Attachments

  • BloodyPack.cs
    1.4 KB · Views: 10
Another thing to note is that there seems to be a down-side to scripted backpacks...all items seem to drop to the left-hand side of the pack.

not sure about that one, I always thought that's what this did:
public override Rectangle2D Bounds
{
get{ return new Rectangle2D( 44, 65, 142, 94 ); }
}
edit: I think what this does it sets the bounds for where items can go if you drag and drop something onto the item.

side note: I was playing around with it just now and changed the defaultgumpid to 0x7763, the backpack gumpid, not the backpack container id. when you double click the backpack in the paperdoll, it opens the paperdoll backpack art (as expected) BUT you can drag and drop items into it...like a normal backpack.
i changed the gumpid back to 0x7762 and the items did go into the backpack layer.
 
ok, now i'm certain that the Rectangle 2D Bounds does determine where an item can go, but only if you drag and drop it onto the container item

I change the bounds to Rectangle2D( 0, 0, 300, 300 )

and this is what happened after dropping a few things onto the item

ai.imgur.com_w8XOmWQ.jpg

but if i drag and drop an item in the container as normal, it won't let me put item in those outlying areas
 
I'll be super excited if you figured this out! (I'm out of town unit tonight though so only on my phone.)

But are you saying that you left the default (container) Itemid? If so, how did you get the paper doll art to change?
 
I haven't gotten it to showup on the paperdoll, but see the picture?

ai.imgur.com_oBWQGgn.jpg

if i double click my backpack it opens up the backpack gump below. i can then drag and drop stuff onto it, and it goes into my backpack layer, as thought it were showing up in the paperdoll.

and yes, all client side, no custom files
 
Oh ok. Right. But if you change the paperdoll graphic (Itemid) to a custom graphic, I don't think it lets you use the full backpack.

That's where I was having problems. It seems that if you change to a custom paperdoll/in-game Itemid, it doesn't matter what you type into the rectangle2d code, you still can't use the full backpack. (Unless you use one of the 5 other ids I listed in the other post.)
 
Last edited:
Back