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
 |