Welcome to PenUltima Online. Click to login or register.

File: Attributes.em

Description: Functions for working with mobile's attributes/skills.
Last Modified: 03/19/2009

File Constants:

const ATTRIBUTE_LOCK_UP          := 0;
const ATTRIBUTE_LOCK_DOWN := 1;
const ATTRIBUTE_LOCK_LOCKED := 2;
const ATTRIBUTE_MAX_BASE := 60000;
const ATTRIBUTE_PRECISION_NORMAL := 0;
const ATTRIBUTE_PRECISION_TENTHS := 1;

Modules:

AlterAttributeTemporaryMod( character, attrname, delta_tenths )
Parameters:
Name Type
character Character Reference
attrname String (attribute name)
delta_tenths Integer
Explanation
Changes the temporary modification value for attribute named "attrname". delta_tenths is in tenths, obviously. So "1" would increase the temp mod by 0.1 points.
Return values
1 on success or Error
Errors
"Invalid parameter type" including if attrname was not found as an attribute
"New modifier value is out of range"
Related
Character
Related Configs
attributes.cfg
BaseSkillToRawSkill( baseskill )
Parameters:
Name Type
baseskill Integer
Explanation
Converts an old-style "base skill" value to old-style "raw skill" value.
Notes: OBSOLETE
Return values
Raw skill value representation
Errors
"Invalid parameter type"
CheckSkill( character, skillid_or_attrname, difficulty, points )
Parameters:
Name Type
character Character Ref
skillid_or_attrname Integer (skill/attribute ID) or String (attribute name)
difficulty Integer skill use difficulty
points Integer skill gain on success
Explanation
NOTE: Calls the Syshook script CheckSkill. If it doesn't exist, always returns false.
Return values
Return value of CheckSkill syshook.
Errors
"Invalid parameter"
"No such skill"
Related
Character
GetAttribute( character, attrname, precision := ATTRIBUTE_PRECISION_NORMAL )
Parameters:
Name Type
character Character Reference
attrname String (attribute name)
precision Integer
Explanation
Returns the current effective value for the specified attribute on character.
Return values
Integer "Effective" attribute value on success (base + temporary mod + intrinsic mod) or Error. Will return the precision in tenths if ATTRIBUTE_PRECISION_TENTHS is specified.
Errors
"Invalid parameter type" including if attrname was not found as an attribute
Related
Character
Related Configs
attributes.cfg
GetAttributeBaseValue( character, attrname )
Parameters:
Name Type
character Character Reference
attrname String (attribute name)
Explanation
Returns the base value for the specified attribute on character.
Return values
Integer "Base" attribute value on success or Error
Errors
"Invalid parameter type" including if attrname was not found as an attribute
Related
Character
Related Configs
attributes.cfg
GetAttributeCap( character, attrname )
Parameters:
Name Type
character Character Reference
attrname String (attribute name)
Explanation
Gets the current cap value of given attribute name.
This works for any attribute.
Return values
Integer current cap value in tenths
Errors
"Invalid parameter type"
Related
Character
Related Configs
attributes.cfg
GetAttributeDefaultCap( attrname )
Parameters:
Name Type
attrname String (attribute name)
Explanation
Gets the default cap value of given attribute name.
This works for any attribute.
Return values
Integer default cap value in tenths
Errors
"Invalid parameter type"
Related
Character
Related Configs
attributes.cfg
GetAttributeIntrinsicMod( character, attrname )
Parameters:
Name Type
character Character Reference
attrname String (attribute name)
Explanation
Returns the intrinsic value for the specified attribute on character.
You set intrinsic Mod via exported GetIntrinsicModFunction in attributes.cfg
Return values
Integer "Intrinsic" attribute value on success or Error
Errors
"Invalid parameter type" including if attrname was not found as an attribute
Related
Character
Related Configs
attributes.cfg
GetAttributeLock( character, attrname )
Parameters:
Name Type
character Character Reference
attrname String (attribute name)
Explanation
Gets the lockstate of given character and attribute name.
This works for any attribute.
attribute.em constants for return value:
const ATTRIBUTE_LOCK_UP     := 0;
const ATTRIBUTE_LOCK_DOWN   := 1;
const ATTRIBUTE_LOCK_LOCKED := 2; 
Return values
Integer
Errors
"Invalid parameter type"
Related
Character
Related Configs
attributes.cfg
GetAttributeName( alias_name )
Parameters:
Name Type
alias_name String
Explanation
Returns the real attribute name from an alias
Return values
String
Errors
"Invalid parameter"
Related
Character
GetAttributeTemporaryMod( character, attrname )
Parameters:
Name Type
character Character Reference
attrname String (attribute name)
Explanation
Returns the temporary modification value for the specified attribute on character.
Return values
Integer "temporary" attribute value on success or Error
Errors
"Invalid parameter type" including if attrname was not found as an attribute
Related
Character
Related Configs
attributes.cfg
RawSkillToBaseSkill( rawskill )
Parameters:
Name Type
rawskill Integer
Explanation
Converts an old-style "raw skill" value to old-style "base skill" value.
Notes: OBSOLETE
Return values
Base skill value representation
Errors
"Invalid parameter type"
SetAttributeBaseValue( character, attrname, basevalue_tenths ); // obsoletes SetRawSkill
Parameters:
Name Type
character Character Reference
attrname String (attribute name)
basevalue_tenths Integer (0..60000)
Explanation
Sets the "base" value of "attrname" on "character"
Return values
1 on success
Errors
"Invalid parameter type"
Related
Character
Related Configs
attributes.cfg
SetAttributeCap( character, attrname, capvalue )
Parameters:
Name Type
character Character Reference
attrname String (attribute name)
capvalue Integer (in tenths)
Explanation
Sets the current cap value of given attribute name.
This works for any attribute.
attribute.em constants for capvalue:
const ATTRIBUTE_MAX_BASE    := 60000;
Return values
1 on success
Errors
"Invalid parameter type"
Related
Character
Related Configs
attributes.cfg
SetAttributeLock( character, attrname, lockstate )
Parameters:
Name Type
character Character Reference
attrname String (attribute name)
lockstate Integer
Explanation
Sets the lockstate of given character and attribute name
This works for any attribute.
attribute.em constants for lockstate:
const ATTRIBUTE_LOCK_UP     := 0;
const ATTRIBUTE_LOCK_DOWN   := 1;
const ATTRIBUTE_LOCK_LOCKED := 2; 
Return values
1 on sucess
Errors
"Invalid parameter type"
Related
Character
Related Configs
attributes.cfg
SetAttributeTemporaryMod( character, attrname, tempmod_tenths ); // obsoletes mob.strength_mod etc
Parameters:
Name Type
character Character Reference
attrname String (attribute name)
tempmod_tenths Integer (-30000..30000)
Explanation
Sets the "temporary modification" value of "attrname" on "character"
Return values
1 on success
Errors
"Invalid parameter type" including if attrname was not found as an attribute
Related
Character
Related Configs
attributes.cfg