[phpBB Debug] PHP Warning: in file /home/polserve/docs.polserver.com/pol099/singlefunc.php on line 6: include_once(<!DOCTYPE html> <html dir="ltr" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta name="keywords" content="ultima online, ultima online emulator, uo, emu, server, packet, emulator, pol, penultima, custom client" /> <meta name="author" content="POL Development Team" /> <meta name="description" content="Penultima Online Emulator for private Ultima Online Server Software" /> <meta name="revisit-after" content="1 day"/> <meta name="robots" content="index, follow" /> <META name="y_key" content="2429576fcce7a2e4" /> <title>PenUltima Online ( POL )</title> <link href="https://www.polserver.com/style.css?v=20240802.1" rel="stylesheet" type="text/css" media="all" /> <link rel="shortcut icon" href="https://www.polserver.com/favicon.ico" type="image/x-icon"> <script type="text/javascript"> function ExpandContract(s) { var bulletE = document.getElementById("bullet_"+s); var spanE = document.getElementById("span_"+s); var Expanded = bulletE.innerHTML; if(Expanded == '[+]') { spanE.style.display = 'block'; bulletE.innerHTML = '[-]'; } else { spanE.style.display = 'none'; bulletE.innerHTML = '[+]'; } } function SwapVis(s) { var spanA = document.getElementById("span_"+s+"_a"); var spanB = document.getElementById("span_"+s+"_b"); if(spanA.style.display == 'block') { spanB.style.display = 'block'; spanA.style.display = 'none'; } else { spanA.style.display = 'block'; spanB.style.display = 'none'; } } function CheckLength(frm_, elm_, maxchars) { var thing = document.forms[""+frm_].elements[""+elm_]; var len = thing.value.length; if(len > maxchars) { alert('Too much data in the text box! Please remove '+ (len - maxchars)+ ' characters'); return false; } return true; } </script> </head> <body> <div id="header"> <div class="container"> <div id="logo"> <img src="https://www.polserver.com/images/title.png" alt="PenUltima Online" width=460 height=102 /> </div> <div id="navigation"> <ul id="navigate"> <li><a href="https://www.polserver.com/history/">History</a></li> <li><a href="https://www.polserver.com/irc.php">Chat</a></li> <li><a href="https://github.com/polserver/polserver/issues">Bugs</a></li> <li><a href="https://github.com/polserver/polserver">Source Code</a></li> <li><a href="https://docs.polserver.com">Docs</a></li> <li><a href="https://www.polserver.com/shards.php">Shards</a></li> <li><a href="https://downloads.polserver.com">Downloads</a></li> <li><a href="https://forums.polserver.com">Forums</a></li> <li><a href="https://www.polserver.com">Home</a></li> </ul> </div> </div> </div> <div id="mini-header"> <div class="container"> <div id="mini-nav"> Welcome to PenUltima Online. Click to <a href="https://forums.polserver.com/ucp.php?mode=login">login</a> or <a href="https://forums.polserver.com/ucp.php?mode=register">register</a>. </div> <div id="search-box"> <form action="https://www.polserver.com/search.php" method="get"> <input type="text" name="q" id="q" /><br /> <div id="opts"><br /><input type="radio" name="search_opt" value="forums" checked />Forums&nbsp;&nbsp;&nbsp;<input type="radio" name="search_opt" value="scripts" DISABLED/>Scripts</div> <input type="image" src="https://www.polserver.com/images/search.png" value="Search" onclick="this.parentNode.submit(); return false;" id="search" name="search" /> </form> </div> </div> </div> <div id="main"> <div class="container"> ): failed to open stream: No such file or directory
[phpBB Debug] PHP Warning: in file /home/polserve/docs.polserver.com/pol099/singlefunc.php on line 6: include_once(): Failed opening '<!DOCTYPE html> <html dir="ltr" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta name="keywords" content="ultima online, ultima online emulator, uo, emu, server, packet, emulator, pol, penultima, custom client" /> <meta name="author" content="POL Development Team" /> <meta name="description" content="Penultima Online Emulator for private Ultima Online Server Software" /> <meta name="revisit-after" content="1 day"/> <meta name="robots" content="index, follow" /> <META name="y_key" content="2429576fcce7a2e4" /> <title>PenUltima Online ( POL )</title> <link href="https://www.polserver.com/style.css?v=20240802.1" rel="stylesheet" type="text/css" media="all" /> <link rel="shortcut icon" href="https://www.polserver.com/favicon.ico" type="image/x-icon"> <script type="text/javascript"> function ExpandContract(s) { var bulletE = document.getElementById("bullet_"+s); var spanE = document.getElementById("span_"+s); var Expanded = bulletE.innerHTML; if(Expanded == '[+]') { spanE.style.display = 'block'; bulletE.innerHTML = '[-]'; } else { spanE.style.display = 'none'; bulletE.innerHTML = '[+]'; } } function SwapVis(s) { var spanA = document.getElementById("span_"+s+"_a"); var spanB = document.getElementById("span_"+s+"_b"); if(spanA.style.display == 'block') { spanB.style.display = 'block'; spanA.style.display = 'none'; } else { spanA.style.display = 'block'; spanB.style.display = 'none'; } } function CheckLength(frm_, elm_, maxchars) { var thing = document.forms[""+frm_].elements[""+elm_]; var len = thing.value.length; if(len > maxchars) { alert('Too much data in the text box! Please remove '+ (len - maxchars)+ ' characters'); return false; } return true; } </script> </head> <body> <div id="header"> <div class="container"> <div id="logo"> <img src="https://www.polserver.com/images/title.png" alt="PenUltima Online" width=460 height=102 /> </div> <div id="navigation"> <ul id="navigate"> <li><a href="https://www.polserver.com/history/">History</a></li> <li><a href="https://www.polserver.com/irc.php">Chat</a></li> <li><a href="https://github.com/polserver/polserver/issues">Bugs</a></li> <li><a href="https://github.com/polserver/polserver">Source Code</a></li> <li><a href="https://docs.polserver.com">Docs</a></li> <li><a href="https://www.polserver.com/shards.php">Shards</a></li> <li><a href="https://downloads.polserver.com">Downloads</a></li> <li><a href="https://forums.polserver.com">Forums</a></li> <li><a href="https://www.polserver.com">Home</a></li> </ul> </div> </div> </div> <div id="mini-header"> <div class="container"> <div id="mini-nav"> Welcome to PenUltima Online. Click to <a href="https://forums.polserver.com/ucp.php?mode=login">login</a> or <a href="https://forums.polserver.com/ucp.php?mode=register">register</a>. </div> <div id="search-box"> <form action="https://www.polserver.com/search.php" method="get"> <input type="text" name="q" id="q" /><br /> <div id="opts"><br /><input type="radio" name="search_opt" value="forums" checked />Forums&nbsp;&nbsp;&nbsp;<input type="radio" name="search_opt" value="scripts" DISABLED/>Scripts</div> <input type="image" src="https://www.polserver.com/images/search.png" value="Search" onclick="this.parentNode.submit(); return false;" id="search" name="search" /> </form> </div> </div> </div> <div id="main"> <div class="container"> ' for inclusion (include_path='.:/opt/cpanel/ea-php72/root/usr/share/pear')

Modules:

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