68 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
| import Crossfire,sys
 | |
| Params=Crossfire.ScriptParameters()
 | |
| whoami=Crossfire.WhoAmI()
 | |
| Arch=None
 | |
| if whoami.Name=="Magic Lever":
 | |
| 	Arch=whoami.Map.ObjectAt(49,2)
 | |
| elif whoami.Name=="Buildable Lever":
 | |
| 	Arch=whoami.Map.ObjectAt(49,3)
 | |
| StartXY=Params.split(":")[0].split(',')
 | |
| StopXY=Params.split(":")[1].split(',')
 | |
| Width=int(StopXY[0])-int(StartXY[0])
 | |
| Height=int(StopXY[1])-int(StartXY[1])
 | |
| Area=Width*Height
 | |
| XRange=range(int(StartXY[0]),int(StopXY[0]))
 | |
| YRange=range(int(StartXY[1]),int(StopXY[1]))
 | |
| def GetObjectByName(Map,X,Y,Name):
 | |
| 		Object=Map.ObjectAt(X,Y)
 | |
| 		while Object!=None:
 | |
| 			if Object.Name==Name:
 | |
| 				return Object
 | |
| 			else:
 | |
| 				Object=Object.Above
 | |
| 		return Object
 | |
| if Arch!=None:
 | |
| 	whoami.Value=int(whoami.Value==1)
 | |
| 
 | |
| 	Arch.Quantity=Area+1
 | |
| 
 | |
| 
 | |
| 	#def MoveToBottom(object):
 | |
| 		#object.Say('s')
 | |
| 		#Dict={}
 | |
| 		#Counter=0
 | |
| 		#Item=object.Below
 | |
| 		#object.Say(str(Item))
 | |
| 		#while Item!=None:
 | |
| 			#Dict.update({str(Counter):Item})
 | |
| 
 | |
| 
 | |
| 			#Item=Item.Below
 | |
| 		#for i in list(Dict.values()):
 | |
| 			#i.Teleport(object.Map,object.X,object.Y)
 | |
| 
 | |
| 
 | |
| 	for i in XRange:
 | |
| 		for a in YRange:
 | |
| 			if whoami.Value==1:
 | |
| 				TmpArch=Arch.Split(1)
 | |
| 				TmpArch.Teleport(whoami.Map,i,a)
 | |
| 				#MoveToBottom(TmpArch)
 | |
| 			else:
 | |
| 				TmpArch=GetObjectByName(whoami.Map,i,a,Arch.Name)
 | |
| 				if TmpArch!=None:
 | |
| 					TmpArch.Remove()
 | |
| 				else:
 | |
| 					whoami.Say("Arch not found at "+str(i)+","+str(a))
 | |
| 
 | |
| 
 | |
| else:
 | |
| 	for i in XRange:
 | |
| 		for a in YRange:
 | |
| 			t=whoami.Map.ObjectAt(i,a)
 | |
| 
 | |
| 			while t!=None:
 | |
| 				if t.Floor==1:
 | |
| 					t.Name="Shop Floor"
 | |
| 				t=t.Above
 |