Welcome to PenUltima Online. Click to login or register.

File: POLsys.em

Description: Functions to access POL system data.
Last Modified: 02/10/2009

File Constants:

const MSGLEN_VARIABLE := -1;
CreatePacket(type, size)
Parameters:
Name Type
type Integer
size Integer
Explanation
Creates a new packet object. Type is the byte command id that always is set as the first byte (no need to set it yourself). Size is the fixed-length size for this packet, or MSGLEN_VARIABLE if it is variable length (no need to figure out the size in advance, the packet buffer will be resized as need by using the Set* methods).
Notes: polsys.em constants for this function:
const MSGLEN_VARIABLE := -1;
Return values
A new packet object or Error
Errors
"Invalid parameter type."
"Packet type too high"
Related
Packet
GetCmdLevelName(number)
Parameters:
Name Type
number Integer
Explanation
Will get a command level's name.
Return values
CmdLevelName or Error
Errors
"Invalid parameter type."
Related Configs
cmds.cfg
GetCmdLevelNumber(name)
Parameters:
Name Type
name String
Explanation
Will get the numeric value of a command level.
Return values
CmdLevel or Error
Errors
"Invalid parameter type."
"Could not find a command level with that name."
Related Configs
cmds.cfg
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
GetPackageByName(name)
Parameters:
Name Type
name String
Explanation
Will return a package reference.
Return values
PackageRef or Error
Errors
"Invalid parameter type."
"No package found by that name."
Related
Package
IncRevision( object )
Parameters:
Name Type
object UObject Ref
Explanation
Increases the internal "Revision" number of an UObject. Used to manually increase this number for scripted changes to things such as mob.race and such where core does not auto increase it.
Return values
1 on success
Errors
"Invalid parameter type."
ListTextCommands( )
Explanation
Returns a dict of a dict of structs.
Dict 1 - Package names Dict 2 - Command levels Struct - .dir .script
	Example:
	foreach package in ( commands )
		Print("Pkg:"+_package_iter);
		foreach level in ( package )
			Print(" CmdLvl:"+_level_iter);
			foreach command in ( level )
				Print("     "+command);
				SleepMS(2);
			endforeach
			SleepMS(2);
		endforeach
		SleepMS(2);
	endforeach
    
Return values
1 on success
Errors
"Invalid parameter type."
ListenPoints( )
Explanation
Array of listen points...
Return values
Array
Errors
"Invalid parameter type."
Packages()
Explanation
Get an array of "package objects", with "name", "supports_http" and "npcdesc" members. (more info TBD)
Return values
An array of package objects.
ReadMillisecondClock()
Explanation
Returns a long integer of the current millisecond clock. TBD: timebase of clock, saved with server?
Return values
Current time in milliseconds.
Realms(realms:="")
Explanation
Returns a dictionary of structs.
If a single case-sensitive realm name is passed, will return the information for only that realm.
example:
    "realm_name" -> "width"
                    "height"
                    "mapid"
                    "toplevel_item_count"
                    "mobile_count"
                    "season"
Return values
A dictionary of structs of Realms.
ReloadConfiguration()
Explanation
reloads pol.cfg (most entries), npcdesc.cfg and bannedips.cfg
Linux: HUP signal will cause ReloadConfiguration to be called.
Return values
1
SetSysTrayPopupText(text)
Parameters:
Name Type
text String tooltip text for systray icon
Explanation
Sets the systray icon's tooltip text (win32 only)
Return values
1