Changes

Want to discuss changes to the UOX3 source code? Got a code-snippet you'd like to post? Anything related to coding/programming goes here!
Post Reply
Saint
UOX3 Apprentice
Posts: 162
Joined: Sun Feb 11, 2007 6:05 pm
Has thanked: 0
Been thanked: 0

Changes

Post by Saint »

I'm running through the world right now, and I'm basically looking at some interface stuff right now that I'd like to change back to the old old style of UO. Can some of these be toggled through javascript or am I looking at some source code changes?

My list:

Disable the little menus that come up for everything
Disable the information panels that pop up when the cursor hovers over an item
Fonts for everything should default to old style font, not new updated one
When stacked items are clicked, format should be like "100 gold coins" not "Gold Coins: 100".
Gray Name = Innocent + No Fame, Blue name = Fame + Good Karma, Red name = Fame + Bad Karma (will require additional scripts later though)
How do I keep players visible when they log out?
I want to change the help menu.
I want to remove that weapon book thing from the paperdoll.
Is it still possible to set bodies to have "full body" hues, which means even underwear is hued (infact, is it still possible to do this to any item? I remember some things specifically could either be partially hued [capes on rat men] or completely [a ratman's whole body])

And in general, what's a good rule of thumb to determine what's going to have to be a source code change and what is a Javascript change?
giwo
Developer
Posts: 1780
Joined: Fri Jun 18, 2004 4:17 pm
Location: California
Has thanked: 0
Been thanked: 0

Post by giwo »

I wouldn't say there's a firm line for what can be done in JS and what will need to be code. Honestly we are still in a transition period (albeit a very long one) of moving more and more code out to JS.

Disabling most of the client features you mentioned can be done by editing one of the login packets in the source. Look around line 2194 in CPacketSend.cpp

Offline PC's will always dissapear to non-GM's. To show offline players to GM's, try finding the setting in the uox.ini SHOWOFFLINEPCS and set the value to 1.

A full body hue can be accomplished by using 'dye VALUE and targeting a character. Note some hues automatically color the underwear, some do not. As for capes on rat men, I'm pretty sure that would have to be an entirely separate model number for the NPC, as I don't think OSI ever allowed monsters to wear clothes.

As for editing the help menu, that would need to be done in the code, I believe. Try looking in gumps.cpp.
Saint
UOX3 Apprentice
Posts: 162
Joined: Sun Feb 11, 2007 6:05 pm
Has thanked: 0
Been thanked: 0

Post by Saint »

giwo wrote: A full body hue can be accomplished by using 'dye VALUE and targeting a character. Note some hues automatically color the underwear, some do not. As for capes on rat men, I'm pretty sure that would have to be an entirely separate model number for the NPC, as I don't think OSI ever allowed monsters to wear clothes.
Ratmen didn't actually wear new capes, it was just automatically a part of their body and when you tried to hue a ratmen it would only hue his cape. Kind of like when you try to hue a halberd it would only hew the metal part and not the pole.


Is there any documentation for the c++ files? How do I handle these APDU numbers? Addition? Some of the numbers in this list don't have an explanation for what they do. Trying to just create a Pre-Renaisannce era, but can I still use expansion pack artwork?
giwo
Developer
Posts: 1780
Joined: Fri Jun 18, 2004 4:17 pm
Location: California
Has thanked: 0
Been thanked: 0

Post by giwo »

Ahh ok, I never noticed some of the hues worked that way on monsters as well as PC's.

There is very little documentation on the source, beyond what exists in the source itself. But I like to think of myself as a UOX3 dictionary. As for those values, you can | them or just add them together. Right now I think we basically enable all client features.

I'm pretty sure that the artwork is not reliant upon the features enabled on the client. So as long as you have an expansion client, they should display the new artwork.
Saint
UOX3 Apprentice
Posts: 162
Joined: Sun Feb 11, 2007 6:05 pm
Has thanked: 0
Been thanked: 0

Post by Saint »

So if I want none of the features would the value be 0x0000?

Also, where in the source code would I go to look for the definitions of Blue, Gray and Red names?
giwo
Developer
Posts: 1780
Joined: Fri Jun 18, 2004 4:17 pm
Location: California
Has thanked: 0
Been thanked: 0

Post by giwo »

cSocket.cpp line 1564, GetFlagColour().
Saint
UOX3 Apprentice
Posts: 162
Joined: Sun Feb 11, 2007 6:05 pm
Has thanked: 0
Been thanked: 0

Post by Saint »

If I wanted to add my own flags to give people with High Fame and low karma a red name and people with High Fame and High Karma a blue name, what files and methods would I need to look through?

I got to flag the person as soon as they meet the requirements.

Code: Select all

COLOUR CSocket::GetFlagColour( CChar *src, CChar *trg )
{
 
   /* 
    * Yellow = 0x0035  //Saints
    * 
    * Green  = 0x0043  //Allies
    * Blue   = 0x0058  //Goods
    * Gray   = 0x03B2  //Neutrals
    * Red    = 0x0026  //Bads
    * Orange = 0x0030  //Attackables
    *
    * Brown  =         //Animals
    *
    * */
        COLOUR retVal = 0x0058;
        switch( trg->FlagColour( src ) )
        {
        //ToDo: Add conditions for recognizing Good and bad
        //case FC_GOOD:                 retVal = 0x0058;                break; // Blue
        case FC_INNOCENT:               retVal = 0x03B2;                break; // Gray
        //case FC_BAD:                  retVal = 0x0026;                break; // Red
        case FC_NEUTRAL:      //Find suitable value for Brown/Beige color                
        case FC_CRIMINAL:               retVal = 0x0030;                break; // Orange
        default:                        retVal = 0x03B2;                break; // Gray 
        case FC_MURDERER:               retVal = 0x0030;                break; // Orange 
        case FC_FRIEND:                 retVal = 0x0043;                break; // Green 
        case FC_ENEMY:                  retVal = 0x0030;                break; // Orange
        case FC_INVULNERABLE:           retVal = 0x0035;                break; // Yellow 
        }

        return retVal;
}
Grimson
Developer
Posts: 802
Joined: Sat Jun 04, 2005 1:52 am
Location: Germany
Has thanked: 0
Been thanked: 0

Post by Grimson »

Have a look at UpdateFlag() in uox3.cpp.
Saint
UOX3 Apprentice
Posts: 162
Joined: Sun Feb 11, 2007 6:05 pm
Has thanked: 0
Been thanked: 0

Post by Saint »

I see it now, but how do I find the names for specific variables on players bodies that I want to look at? Example: I want to retrieve the amount of fame and karma they have.

And is the Good Neutral Evil AI stuff for NPCs defined in the DFN files?
Post Reply