44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
import Crossfire
|
|
|
|
world_prefix = '/world/world_'
|
|
world_len = len( world_prefix ) + len( 'xxx_xxx' )
|
|
world_sep = '_'
|
|
world_map_size = 50
|
|
|
|
Crossfire.SetReturnValue( 1 )
|
|
|
|
player = Crossfire.WhoIsActivator()
|
|
gps = Crossfire.WhoAmI()
|
|
map = player.Map
|
|
|
|
if ( map == 0 ):
|
|
player.Write( 'You\'re lost in a vacuum!')
|
|
else:
|
|
path = map.Path
|
|
if ( path.find( world_prefix ) != 0 ) or ( len( path ) != world_len ):
|
|
player.Write( 'You can\'t position yourself here.' )
|
|
else:
|
|
marked = player.MarkedItem
|
|
|
|
if ( marked != gps ) and ( gps.Food == 0 ):
|
|
player.Write( 'You must fix the origin of the positioning system first!' )
|
|
else:
|
|
coord = path.split( world_sep )
|
|
if ( len( coord ) != 3 ):
|
|
player.Write( 'Strange place, you can\'t position yourself...' )
|
|
else:
|
|
map_x = int( coord[ 1 ] ) - 99
|
|
map_y = int( coord[ 2 ] ) - 99
|
|
x = map_x * world_map_size + player.X
|
|
y = map_y * world_map_size + player.Y
|
|
|
|
if ( marked == gps ):
|
|
gps.HP=x
|
|
gps.SP=y
|
|
gps.Food=1
|
|
player.Write( 'You reset the origin of the system.' )
|
|
else:
|
|
x = x - gps.HP
|
|
y = y - gps.SP
|
|
player.Write( 'You are at %s:%s.'%( x, y ))
|