The following kod support has been added for guild shields: (note, still in it's young stage. Make note of wierd behavior). (Note2: 3rd person overlay art does not yet exist).

- SYSTEM.KOD

- IsGuildShieldAvailable(color1,color2,shape) Returns FALSE if: both color1 and color2 are grey color1 and color2 match another guild's color, and color1 = color2 color1, color2 and shape match another guild's stuff. otherwise return TRUE
- Guild shields were also added to the item templates. Therefore, 'dm item coat of arms' will create a guild shield for you.

- GUILD.KOD

- Added three properties: piColor1, piColor2, piShield_shape
- Added three functions to access these:

- GetPrimaryGuildColor()
- GetSecondaryGuildColor()
- GetShieldShape()

- Added a function to see if a guild has these set. (Unset colors are set to GRAY).

- HasGuildColors()

- Added a function to set these values

- SetGuildColors(color1,color2,shape) This will fail if you send out of bounds colors.

- GUILSHLD.KOD

- Added function to see if guild has colors

- IsShieldColored() Returns FALSE if guild is Gray & Gray. Otherwise TRUE
- ChangeGuildShieldColors(color1,color2,shape,override)

- Use this to change a guild shield to it's new values for color1, color2, and shape.
- This will fail if the guild shield already has colors, or if you send out-of-bounds colors.
- 'override' overrides the color check, good for testing.

- Constructor() Calls ChangeGuildShieldColors with default values, grey & grey. These values CAN be overridden in the constructor.

- UTIL.KOD

- These functions are used for player clothes as well as guild shields.
- System (SYS) is built off of util, so call system to access these functions:

- EncodeTwoColorXLAT(color1,color2) Given two colors, what is the 'xlat' (palette translation) the client needs?
- DecodePrimaryColor(XLAT) Given the XLAT, what's 'color1'?
- DecodeSecondaryColor(XLAT) Given the XLAT, what's 'color2'?

- BLAKSTON.KHD

- Constants for colors (referred to above as color1 and color2).
- Odd things will happen if you use values out of range.

- XLAT_TO_RED = 0x00
- XLAT_TO_SKIN1 = 0x01
- XLAT_TO_SKIN2 = 0x02
- XLAT_TO_SKIN4 = 0x03 %% note: skin3 uses skin4
- XLAT_TO_ORANGE = 0x04
- XLAT_TO_GREEN = 0x05
- XLAT_TO_BLUE = 0x06
- XLAT_TO_PURPLE = 0x07
- XLAT_TO_YELLOW = 0x08
- XLAT_TO_GRAY = 0x09
- XLAT_TO_SKY = 0x0A

- These are used to determine if a color is out of bounds.

- XLAT_LOW_VALUE = 0x00
- XLAT_HIGH_VALUE = 0x0A

- Constants for shield shapes (referred to above as 'shape'.)

- SHIELDSHAPE_SLASH = 1
- SHIELDSHAPE_HALF = 2
- SHIELDSHAPE_HORIZ = 3
- SHIELDSHAPE_CHECKER = 4
- SHIELDSHAPE_DEFAULT = 1 (same as slash)

- These are used to determine if a shape is out of bounds.

- SHIELDSHAPE_LOW = 1
- SHIELDSHAPE_HIGH = 4