47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
import Crossfire
 | 
						|
 | 
						|
def getReceiver(me, direction):
 | 
						|
    map = me.Map
 | 
						|
    x = me.X
 | 
						|
    y = me.Y
 | 
						|
 | 
						|
    if direction==2:
 | 
						|
        ob = map.ObjectAt(x+1, y-1)
 | 
						|
    elif direction==3:
 | 
						|
        ob = map.ObjectAt(x+1, y)
 | 
						|
    elif direction==4:
 | 
						|
        ob = map.ObjectAt(x+1, y+1)
 | 
						|
    elif direction==5:
 | 
						|
        ob = map.ObjectAt(x, y+1)
 | 
						|
    elif direction==6:
 | 
						|
        ob = map.ObjectAt(x-1, y+1)
 | 
						|
    elif direction==7:
 | 
						|
        ob = map.ObjectAt(x-1, y)
 | 
						|
    elif direction==8:
 | 
						|
        ob = map.ObjectAt(x-1, y-1)
 | 
						|
    else:
 | 
						|
        ob = map.ObjectAt(x, y-1)
 | 
						|
    return ob
 | 
						|
 | 
						|
whoami = Crossfire.WhoAmI()
 | 
						|
name = Crossfire.ScriptName()
 | 
						|
parms = Crossfire.ScriptParameters()
 | 
						|
 | 
						|
if not parms:
 | 
						|
    whoami.Message("Show which object ?")
 | 
						|
else:
 | 
						|
    op = whoami.CheckInventory(parms)
 | 
						|
    if not op:
 | 
						|
        whoami.Message('No matching object found to give.')
 | 
						|
    else:
 | 
						|
        direction = whoami.Facing
 | 
						|
        receiver = getReceiver(whoami, direction)
 | 
						|
        if not receiver:
 | 
						|
            whoami.Message('Nobody to give this to.')
 | 
						|
        else:
 | 
						|
            top = receiver
 | 
						|
            while(top):
 | 
						|
                next = top.Above
 | 
						|
                top.Event(whoami,op, "give", 0)
 | 
						|
                top = next
 |