File: NPC.em
Description:
Functions for manipulating non-player character mobiles. All (most?) these
functions are limited to use in an NPC context (meaning an AI script).
Last
Modified: 2/11/2003
| GetProperty( propertyname ) |
| Parameters: |
| Name |
Type |
| propertyname |
String |
| Explanation |
| Deprecated. Equivalent to GetObjProperty( Self(),
propertyname ) |
| Return values |
| An unpacked object. See GetObjProperty in
UO.EM |
| Errors |
| "Property not found" |
| "Invalid parameter type" |
| Related |
| NPC |
| IsLegalMove( move, boundingbox
) |
| Parameters: |
| Name |
Type |
| move |
String, one of N, S, E, W, NW, NE, SW, SE |
| boundingbox |
Bounding box, from CreateBoundingBox |
| Explanation |
| Given your position, and a tentative move, would it fall
within a bounding box |
| Return values |
| 0 on invalid parameter, or illegal move. 1 on legal
move |
| Related |
| NPC |
| MakeBoundingBox( areastring ) |
| Parameters: |
| Name |
Type |
| areastring |
String, see explanation |
| Explanation |
| Make a bounding box from an area string. An area string is a
number of 'x1 y1 x2 y2' world coordinate entries. |
| "1 1 4 4 2 5 3 7" would create a walk area something like
this: |
XXXX
XXXXXXX
XXXXXXX
XXXX
|
| Used with Move() and IsLegalMove() functions |
| Return values |
| boundingbox on success, empty string on invalid param (ick).
Careful, not much error checking! |
| Move( direction ) |
| Parameters: |
| Name |
Type |
| direction |
Direction String, Facing Integer, or Bounding Box |
| Explanation |
| A Direction String is one of: N, S, E, W, NW, NE, SW,
SE |
| A Facing Integer is 0 through 7 where 0 is North, 1 is
NorthEast, etc. |
| See MakeBoundingBox for info on the bounding
box. |
| Return values |
| Boolean for move success, or Direction String if bounding
box was used |
| Errors |
| none, returns 0 on failures |
| Related |
| NPC |
| Position() |
| Explanation |
| Deprecated. Use Self().x, Self().y, Self().z
instead. |
| Return values |
| A struct with x,y, and z members. |
| Related |
| NPC |
| RunAwayFrom( object ) |
| Parameters: |
| Name |
Type |
| object |
UObject |
| Explanation |
| Runs away from object one tile. Puts the script to sleep for
a period of time proportional to the NPC's run_speed (or dexterity if not
defined). |
| Note also, walking in range of your opponent may cause you
to attack. |
| See the NPC members run_speed and use_adjustments. If
use_adjustments is 1 the NPC will adjust the direction of the move to
attempt to avoid small obsticles. Also, this function will always return
true as a result. If it is 0, the NPC will not attempt to adjust the move,
and the function will return false. |
| The success of this function is affected by the NPC's anchor
point. See SetAnchor(). |
| In the future, this function will activate a pathfinding
system. |
| Return values |
| Boolean for move success |
| Errors |
| "Invalid parameter type" |
| "Mobile specified cannot be seen" if object is a character
and invisible |
| Related |
| NPC |
| UObject |
| RunAwayFromLocation( x, y ) |
| Parameters: |
| Name |
Type |
| x |
Integer World Coordinate |
| y |
Integer World Coordinate |
| Explanation |
| Runs away from the given coordinates one tile. Puts the
script to sleep for a period of time proportional to the NPC's run_speed
(or dexterity if not defined). |
| Note also, walking in range of your opponent may cause you
to attack. |
| See the NPC members run_speed and use_adjustments. If
use_adjustments is 1 the NPC will adjust the direction of the move to
attempt to avoid small obsticles. Also, this function will always return
true as a result. If it is 0, the NPC will not attempt to adjust the move,
and the function will return false. |
| The success of this function is affected by the NPC's anchor
point. See SetAnchor(). |
| In the future, this function will activate a pathfinding
system. |
| Return values |
| Boolean for move success |
| Errors |
| "Invalid parameter type" |
| Related |
| NPC |
| RunToward( object ) |
| Parameters: |
| Name |
Type |
| object |
UObject |
| Explanation |
| Runs toward object one tile. Puts the script to sleep for a
period of time proportional to the NPC's run_speed (or dexterity if not
defined). |
| Note also, walking in range of your opponent may cause you
to attack. |
| See the NPC members run_speed and use_adjustments. If
use_adjustments is 1 the NPC will adjust the direction of the move to
attempt to avoid small obsticles. Also, this function will always return
true as a result. If it is 0, the NPC will not attempt to adjust the move,
and the function will return false. |
| The success of this function is affected by the NPC's anchor
point. See SetAnchor(). |
| In the future, this function will activate a pathfinding
system. |
| Return values |
| Boolean for move success |
| Errors |
| "Invalid parameter type" |
| "Mobile specified cannot be seen" if object is a character
and invisible |
| Related |
| NPC |
| UObject |
| RunTowardLocation( x, y ) |
| Parameters: |
| Name |
Type |
| x |
Integer World Coordinate |
| y |
Integer World Coordinate |
| Explanation |
| Runs toward the given coordinates one tile. Puts the script
to sleep for a period of time proportional to the NPC's run_speed (or
dexterity if not defined). |
| Note also, walking in range of your opponent may cause you
to attack. |
| See the NPC members run_speed and use_adjustments. If
use_adjustments is 1 the NPC will adjust the direction of the move to
attempt to avoid small obsticles. Also, this function will always return
true as a result. If it is 0, the NPC will not attempt to adjust the move,
and the function will return false. |
| The success of this function is affected by the NPC's anchor
point. See SetAnchor(). |
| In the future, this function will activate a pathfinding
system. |
| Return values |
| Boolean for move success |
| Errors |
| "Invalid parameter type" |
| Related |
| NPC |
| Say( text ) |
| Parameters: |
| Name |
Type |
| text |
String |
| Explanation |
| Makes the NPC print text above its head. Uses the NPC member
speech_font and speech_color. |
| Return values |
| 0 |
| Errors |
| "NPC is squelched" |
| Related |
| NPC |
| Self() |
| Explanation |
| return a mobileref to self |
| Return values |
| A Character Reference to this NPC |
| Related |
| NPC |
| SetAnchor( centerx, centery, distance_start,
percent_subtract ) |
| Parameters: |
| Name |
Type |
| centerx |
Integer world coordinate |
| centery |
Integer world coordinate |
| distance_start |
Integer |
| percent_subtract |
Integer |
| Explanation |
| Sets the NPC's 'anchor' point. The NPC will have difficulty
moving far away from this coordinate, and will generally stay near
it. |
| centerx and centery define the anchor point. |
| distance_start is the distance away from the anchor point at
which the npc may not be able to move beyond. Under this distance there is
a 100% chance the move will succeed. If 0, it disables the anchor
point. |
| percent_subtract is how much to subtract from the normal
100% chance for each move beyond the distance_start boundary. So if this
value is "20", the first move beyond the distance_start range (and away
from the anchor point) will only have an 80% chance of succeeding. The
next one will have a 60% chance. So the NPC will tend to move back toward
its anchor point. |
| The anchor point has no effect as long as the NPC is in war
mode. |
| Return values |
| 1 on success |
| Errors |
| "Invalid parameter type" |
| Related |
| NPC |
| SetOpponent( character ) |
| Parameters: |
| Name |
Type |
| character |
CharacterRef |
| Explanation |
| Set your opponent. If you are in range (or are carrying a
projectile weapon and have LOS), you will attack. If a player character is
connected, the NPC will highlight. |
| Implicitly sets war mode. |
| pass 0 to clear the opponent. |
| Return values |
| 0 on invalid param or clear, 1 on successful
set |
| Related |
| Character |
| NPC |
| SetProperty( propertyname, propertyvalue
) |
| Parameters: |
| Name |
Type |
| propertyname |
String |
| propertyvalue |
Packable script object (int, string, array, etc) |
| Explanation |
| Deprecated. Equivalent to SetObjProperty( Self(),
propertyname, propertyvalue ) |
| Return values |
| 1. See SetObjProperty in UO.EM |
| Errors |
| "Invalid parameter type" |
| Related |
| NPC |
| SetWarMode( warmode ) |
| Parameters: |
| Name |
Type |
| warmode |
Integer 1/0 |
| Explanation |
| Usually used to leave warmode, but can be used to enter
warmode independently of setting an opponent. |
| Setting war mode to 0 clears your opponent. |
| Return values |
| 1 on success, 0 on invalid param or clear |
| Related |
| NPC |
| TurnAwayFrom( object ) |
| Parameters: |
| Name |
Type |
| object |
UObject |
| Explanation |
| Adjust facing to turn away from object. Puts the script to
sleep for a period of time proportional to the NPC's run_speed (or
dexterity if not defined). |
| Return values |
| Boolean for move success |
| Errors |
| "Invalid parameter type" |
| "Mobile specified cannot be seen" if object is a character
and invisible |
| Related |
| NPC |
| UObject |
| TurnAwayFromLocation( x, y ) |
| Parameters: |
| Name |
Type |
| x |
Integer World Coordinate |
| y |
Integer World Coordinate |
| Explanation |
| Adjust facing to turn away from given coordinates one tile.
Puts the script to sleep for a period of time proportional to the NPC's
run_speed (or dexterity if not defined). |
| Return values |
| Boolean for move success |
| Errors |
| "Invalid parameter type" |
| Related |
| NPC |
| TurnToward( object ) |
| Parameters: |
| Name |
Type |
| object |
UObject |
| Explanation |
| Adjust facing to turn toward object. Puts the script to
sleep for a period of time proportional to the NPC's run_speed (or
dexterity if not defined). |
| Return values |
| Boolean for move success |
| Errors |
| "Invalid parameter type" |
| "Mobile specified cannot be seen" if object is a character
and invisible |
| Related |
| NPC |
| UObject |
| TurnTowardLocation( x, y ) |
| Parameters: |
| Name |
Type |
| x |
Integer World Coordinate |
| y |
Integer World Coordinate |
| Explanation |
| Adjust facing to turn toward given coordinates one tile.
Puts the script to sleep for a period of time proportional to the NPC's
run_speed (or dexterity if not defined). |
| Return values |
| Boolean for move success |
| Errors |
| "Invalid parameter type" |
| Related |
| NPC |
| WalkAwayFrom( object ) |
| Parameters: |
| Name |
Type |
| object |
UObject |
| Explanation |
| Walk away from object one tile. Puts the script to sleep for
a period of time proportional to the NPC's run_speed (or dexterity if not
defined). |
| Note also, walking in range of your opponent may cause you
to attack. |
| See the NPC members run_speed and use_adjustments. If
use_adjustments is 1 the NPC will adjust the direction of the move to
attempt to avoid small obsticles. Also, this function will always return
true as a result. If it is 0, the NPC will not attempt to adjust the move,
and the function will return false. |
| The success of this function is affected by the NPC's anchor
point. See SetAnchor(). |
| In the future, this function will activate a pathfinding
system. |
| Return values |
| Boolean for move success |
| Errors |
| "Invalid parameter type" |
| "Mobile specified cannot be seen" if object is a character
and invisible |
| Related |
| NPC |
| UObject |
| WalkAwayFromLocation( x, y ) |
| Parameters: |
| Name |
Type |
| x |
Integer World Coordinate |
| y |
Integer World Coordinate |
| Explanation |
| Walk away from the given coordinates one tile. Puts the
script to sleep for a period of time proportional to the NPC's run_speed
(or dexterity if not defined). |
| Note also, walking in range of your opponent may cause you
to attack. |
| See the NPC members run_speed and use_adjustments. If
use_adjustments is 1 the NPC will adjust the direction of the move to
attempt to avoid small obsticles. Also, this function will always return
true as a result. If it is 0, the NPC will not attempt to adjust the move,
and the function will return false. |
| The success of this function is affected by the NPC's anchor
point. See SetAnchor(). |
| In the future, this function will activate a pathfinding
system. |
| Return values |
| Boolean for move success |
| Errors |
| "Invalid parameter type" |
| Related |
| NPC |
| WalkToward( object ) |
| Parameters: |
| Name |
Type |
| object |
UObject |
| Explanation |
| Walk toward object one tile. Puts the script to sleep for a
period of time proportional to the NPC's run_speed (or dexterity if not
defined). |
| Note also, walking in range of your opponent may cause you
to attack. |
| See the NPC members run_speed and use_adjustments. If
use_adjustments is 1 the NPC will adjust the direction of the move to
attempt to avoid small obsticles. Also, this function will always return
true as a result. If it is 0, the NPC will not attempt to adjust the move,
and the function will return false. |
| The success of this function is affected by the NPC's anchor
point. See SetAnchor(). |
| In the future, this function will activate a pathfinding
system. |
| Return values |
| Boolean for move success |
| Errors |
| "Invalid parameter type" |
| "Mobile specified cannot be seen" if object is a character
and invisible |
| Related |
| NPC |
| UObject |
| WalkTowardLocation( x, y ) |
| Parameters: |
| Name |
Type |
| x |
Integer World Coordinate |
| y |
Integer World Coordinate |
| Explanation |
| Walk toward the given coordinates one tile. Puts the script
to sleep for a period of time proportional to the NPC's run_speed (or
dexterity if not defined). |
| Note also, walking in range of your opponent may cause you
to attack. |
| See the NPC members run_speed and use_adjustments. If
use_adjustments is 1 the NPC will adjust the direction of the move to
attempt to avoid small obsticles. Also, this function will always return
true as a result. If it is 0, the NPC will not attempt to adjust the move,
and the function will return false. |
| The success of this function is affected by the NPC's anchor
point. See SetAnchor(). |
| In the future, this function will activate a pathfinding
system. |
| Return values |
| Boolean for move success |
| Errors |
| "Invalid parameter type" |
| Related |
| NPC |
| Wander() |
| Explanation |
| walk, usually forward, sometimes turning |
| Return values |
| 1 if the move succeeded, 0 if it failed |
| Related |
| NPC |
If you know if
any information is incorrect on these pages, mail your corrections to
racalac@burdell.org
Copyright ©2003
David Carpman, all rights reserved. DO NOT REPRODUCE, MIRROR, ALTER, SPINDLE,
MUTILATE, OR SIT ON.