Welcome to PenUltima Online. Click to login or register.
GetItemDescriptor(objtype)
Parameters:
Name Type
objtype int Objtype OR string ObjtypeName
Explanation
Returns a struct of all itemdesc.cfg properties for the objtype.
The keys are the property names, i.e. "Color", "Desc", etc. The values can be String, Integer, Real. The exceptions are "CProps" and "StackingIgnoresCProps". "CProps" is a dictionary where the CProp name is the key, and the value can be any packable type (i.e. array, struct, etc.). "StackingIgnoresCProps" is an array of strings.
Note: Descriptor of Weapon will return MinDamage and MaxDamage calculated from Damage-Dice too.
The primary use of this function is to pass it to any of the item creation functions, and the values in the struct will be used in place of the static itemdesc.cfg values. Use it to assign specific properties to an item during creation, rather than after. This allows easier stacking with existing item stacks.
Note: Not all properties can be assigned per-item, so editing the value in the descriptor struct will not be passed to the new item.
//For example, to stack with an existing stack with color 0x10 and cprop
use uo;
use polsys;
program testdesc(who,objtype)
    var ret := GetItemDescriptor(CInt(objtype));
    ret.Color := 0x10;
    ret.CProps.insert("blah","1"); //assuming the existing stack have this color and cprop
    ret.StackingIgnoresCProps.append("blingbling");    
    var item := CreateItemInBackpack(who,ret,10);
    if(item)
        print("OK!");
    endif
endprogram
To print the contents of the struct:
var ret := GetItemDescriptor(objtype);
foreach thing in ret
    print(_thing_iter + ": " + thing);
endforeach
Return values
A struct of all itemdesc.cfg properties and values.
Errors
"Invalid parameter type"
"Itemdesc.cfg entry for objtype X not found."
Related Configs
itemdesc.cfg