677 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			677 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Python
		
	
	
 | 
						|
 | 
						|
import Crossfire,sys,datetime
 | 
						|
whoami=Crossfire.WhoAmI()
 | 
						|
activator=Crossfire.WhoIsActivator()
 | 
						|
import CFDataBase,CFBank
 | 
						|
#sys.stderr=open("/tmp/output.log",'a')
 | 
						|
sys.stderr=sys.stdout=open("/tmp/output.log2",'a')
 | 
						|
#for i in dir(CFDataBase):
 | 
						|
	#print i
 | 
						|
#print CFDataBase.__file__
 | 
						|
 | 
						|
CFDB=CFDataBase.CFDataBase("PShop")
 | 
						|
PicDB=CFDataBase.CFDataBase("PicDB")
 | 
						|
PicDict=PicDB.get("Dict")
 | 
						|
bank=CFBank.CFBank("ImperialBank_DB")
 | 
						|
pshop=whoami.Map.Path.replace("/","_")
 | 
						|
 | 
						|
 | 
						|
print CFDB.get(pshop)
 | 
						|
print pshop
 | 
						|
sys.stdout.flush()
 | 
						|
 | 
						|
 | 
						|
 | 
						|
activator=Crossfire.WhoIsActivator()
 | 
						|
 | 
						|
	
 | 
						|
def Expire():
 | 
						|
	global Owner
 | 
						|
	
 | 
						|
	Inventory=mymap.ObjectAt(43,2)
 | 
						|
	MailMap=Crossfire.ReadyMap("/planes/IPO_storage")
 | 
						|
	while Inventory!=None:
 | 
						|
		if Inventory.Name!="Vault":
 | 
						|
			package=whoami.CreateObject("package")
 | 
						|
			package.Name="IPO-package F: Your-Private-Shop T: "+Owner
 | 
						|
			Inventory.InsertInto(package)
 | 
						|
			package.Teleport(MailMap,2,2)
 | 
						|
			
 | 
						|
		Inventory=Inventory.Above
 | 
						|
	Inventory=mymap.ObjectAt(43,2)
 | 
						|
	while Inventory!=None:
 | 
						|
		if Inventory.Name!="Vault":
 | 
						|
			package=whoami.CreateObject("package")
 | 
						|
			package.Name="IPO-package F: Your-Private-Shop T: "+Owner
 | 
						|
			Inventory.InsertInto(package)
 | 
						|
			package.Teleport(MailMap,2,2)
 | 
						|
			
 | 
						|
		Inventory=Inventory.Below
 | 
						|
	
 | 
						|
	Dict=CFDB.get(pshop)
 | 
						|
	
 | 
						|
	for i in Dict:
 | 
						|
		This=Dict.get(i)
 | 
						|
		if This[1]!="PickedUp":
 | 
						|
			That=mymap.ObjectAt(This[1][0],This[1][1])
 | 
						|
			if That!=None:
 | 
						|
				That=GetObjectByWeightLimit(That,int(i))
 | 
						|
				if That!=0:
 | 
						|
					That.Teleport(whoami.Map,37,0)
 | 
						|
	
 | 
						|
	CFDB.store(pshop,{})
 | 
						|
	Owner="Unowned"		
 | 
						|
	Chest=mymap.ObjectAt(30,8)
 | 
						|
	Chest=GetObjectByName(Chest, "Rent Box")
 | 
						|
	if Chest!=0:
 | 
						|
		Chest.Teleport(mymap, 15,10)
 | 
						|
	for i in range(0,34):
 | 
						|
		for a in range(0,35):
 | 
						|
			b=GetObjectAt(whoami.Map,i,a,'NoBuild')
 | 
						|
			b.Remove
 | 
						|
			b=GetObjectAt(whoami.Map,i,a,'NoSpell')
 | 
						|
			b.Remove()
 | 
						|
	
 | 
						|
	GetObjectAt(whoami.Map,30,5,"Brazier material").Remove()
 | 
						|
	GetObjectAt(whoami.Map,30,6,"Firepot material").Remove()
 | 
						|
	GetObjectAt(whoami.Map,30,7,"Bright Firepot Material").Remove()
 | 
						|
	GetObjectAt(whoami.Map,29,8,"Red CWall material").Remove()
 | 
						|
	whoami.Map.ObjectAt(49,5).Teleport(whoami.Map,30,5)
 | 
						|
	whoami.Map.ObjectAt(49,4).Teleport(whoami.Map,30,6)
 | 
						|
	whoami.Map.ObjectAt(49,6).Teleport(whoami.Map,30,7)
 | 
						|
	whoami.Map.ObjectAt(49,7).Teleport(whoami.Map,29,8)
 | 
						|
def GetObjectByName(object, Name):
 | 
						|
	while object.Name!=Name:
 | 
						|
		object=object.Above
 | 
						|
		if not object:
 | 
						|
			return 0
 | 
						|
	return object
 | 
						|
def GetObjectByWeightLimit(object, WeightLimit):
 | 
						|
	while object.WeightLimit!=WeightLimit:
 | 
						|
		object=object.Above
 | 
						|
		if not object:
 | 
						|
			return 0
 | 
						|
	return object
 | 
						|
def GetObjectByUID(object, UID):
 | 
						|
	while object.Name.split()[0]!=UID:
 | 
						|
		object=object.Above
 | 
						|
		if not object:
 | 
						|
			return 0
 | 
						|
	return object
 | 
						|
def GetInvCount(object):
 | 
						|
	Inv=object.Inventory
 | 
						|
	Counter=-1
 | 
						|
	while Inv!=None:
 | 
						|
		Counter+=1
 | 
						|
		Inv=Inv.Below
 | 
						|
	return Counter
 | 
						|
mymap=whoami.Map
 | 
						|
CoinTypes={"SILVER":1,"GOLD":10,"PLATINUM":50,"JADE":5000,"AMBER":500000,"IMPERIAL":10000}
 | 
						|
Params=Crossfire.ScriptParameters()
 | 
						|
if whoami.Name.find("Store")>-1:
 | 
						|
	
 | 
						|
	
 | 
						|
	InvCount=GetInvCount(whoami)
 | 
						|
	if InvCount==0:
 | 
						|
		whoami.Say("Useage: Put an item in me and name a price.  For details, ask for 'help'.")
 | 
						|
	
 | 
						|
	else:
 | 
						|
		Message=Crossfire.WhatIsMessage()
 | 
						|
		Message=Message.split()
 | 
						|
		Value=0
 | 
						|
		for i in range(len(Message)):
 | 
						|
			CoinType=CoinTypes.get(Message[i].upper())
 | 
						|
			if CoinType!=None:
 | 
						|
				Quantity=int(Message[i-1])
 | 
						|
				Value+=Quantity*CoinType
 | 
						|
		Package=whoami.CreateObject("dust_generic")
 | 
						|
		Package.Face="package.111"
 | 
						|
		Package.Teleport(whoami.Map,43,2)
 | 
						|
		
 | 
						|
		for i in range(InvCount):
 | 
						|
			Item=whoami.Inventory
 | 
						|
			Item.InsertInto(Package)
 | 
						|
		
 | 
						|
		Package.Name=str(whoami.Value)+" "+str(Value)
 | 
						|
		Package.Speed=whoami.Value
 | 
						|
		Package.WeightLimit=0
 | 
						|
		z=Package.CreateObject("event_pickup")
 | 
						|
		z.Name="Pickup"
 | 
						|
		z.Title="Python"
 | 
						|
		z.Slaying="/python/pshop/pshop.py"
 | 
						|
		
 | 
						|
		
 | 
						|
		
 | 
						|
		
 | 
						|
		#STRING=STRING.split("Items: ")[1]
 | 
						|
		
 | 
						|
		if Item.Name==Crossfire.ScriptParameters(): 
 | 
						|
			Item=Item.Below
 | 
						|
		
 | 
						|
		
 | 
						|
		
 | 
						|
		GlassReplica=whoami.CreateObject("icecube")
 | 
						|
		GlassReplica.WeightLimit=whoami.Value
 | 
						|
		GlassReplica.Weight=max(Item.Weight*Item.Quantity,1)
 | 
						|
		GlassReplica.Quantity=1
 | 
						|
		t=GlassReplica.CreateObject("event_drop")
 | 
						|
		t.Name="Drop"
 | 
						|
		t.Value=whoami.Value
 | 
						|
		t.Title="Python"
 | 
						|
		t.Slaying="/python/pshop/Ice.py"
 | 
						|
		t=GlassReplica.CreateObject("event_pickup")
 | 
						|
		t.Name="Get"
 | 
						|
		t.Title="Python"
 | 
						|
		t.Slaying="/python/pshop/Ice.py"
 | 
						|
		t=GlassReplica.CreateObject("event_destroy")
 | 
						|
		t.Name="Destroy"
 | 
						|
		t.Title="Python"
 | 
						|
		t.Slaying="/python/pshop/Ice.py"
 | 
						|
		t=GlassReplica.CreateObject("event_time")
 | 
						|
		t.Name="Timer"
 | 
						|
		t.Title="Python"
 | 
						|
		t.Slaying="/python/pshop/Ice.py"
 | 
						|
		GlassReplica.Speed=0.0010000000475
 | 
						|
		sys.stderr=open('/tmp/output.log', 'w')
 | 
						|
		
 | 
						|
		GlassReplica.Face=(str(Item.Face))
 | 
						|
		#GlassReplica.Material=(96,'ice')
 | 
						|
		
 | 
						|
		GlassReplica.Name=str(Item.Quantity)+" "+Item.Name+" Price: "+str(Value)
 | 
						|
		GlassReplica.NamePl="0"
 | 
						|
		
 | 
						|
		
 | 
						|
		Message="Name: "+str(Item.Name)
 | 
						|
		Message+="\nTitle: "+str(Item.Title)
 | 
						|
		#Message+="\nMaterial: "+str(Item.Material.get("MaterialName"))
 | 
						|
		Message+="\nQuantity: "+str(Item.Quantity)
 | 
						|
		if Item.Cursed==1:
 | 
						|
			Message+="\nCursed: True"
 | 
						|
		Message+="\nWeight: "+str(Item.Weight)
 | 
						|
		
 | 
						|
		if Item.Dam!=0:
 | 
						|
			Message+="\nDam: "+str(Item.Dam)
 | 
						|
		if Item.AC!=0:
 | 
						|
			Message+="\nAC: "+str(Item.AC)
 | 
						|
		if Item.WC!=0:
 | 
						|
			Message+="\nWC: "+str(Item.WC)
 | 
						|
		if Item.Wis!=0:
 | 
						|
			Message+="\nWis: "+str(Item.Wis)
 | 
						|
		if Item.Str!=0:
 | 
						|
			Message+="\nStr: "+str(Item.Str)
 | 
						|
		
 | 
						|
		if Item.Pow!=0:
 | 
						|
			Message+="\nPow: "+str(Item.Pow)
 | 
						|
		if Item.Int!=0:
 | 
						|
			Message+="\nInt: "+str(Item.Int)
 | 
						|
		if Item.Dex!=0:
 | 
						|
			Message+="\nDex: "+str(Item.Dex)
 | 
						|
		if Item.Con!=0:
 | 
						|
			Message+="\nCon: "+str(Item.Con)
 | 
						|
		if Item.Cha!=0:
 | 
						|
			Message+="\nCha: "+str(Item.Cha)
 | 
						|
		if Item.Value!=0:
 | 
						|
			Message+="\nValue: "+str(Item.Value)
 | 
						|
		GlassReplica.Message=Message
 | 
						|
		Dict=CFDB.get(pshop)
 | 
						|
		if Dict==0:
 | 
						|
			Dict={}
 | 
						|
		if Dict==None:
 | 
						|
			Dict={}
 | 
						|
		Dict.update({str(whoami.Value):(Value,"PickedUp",Message)})
 | 
						|
		
 | 
						|
		
 | 
						|
		CFDB.store(pshop,Dict)
 | 
						|
 | 
						|
		whoami.Value+=1
 | 
						|
elif whoami.Name.find("Rent Box")>-1:
 | 
						|
	Value=0
 | 
						|
	Inventory=whoami.Inventory
 | 
						|
	
 | 
						|
	while Inventory!=None:
 | 
						|
		
 | 
						|
		if Inventory.ArchName=="event_close":
 | 
						|
			Inventory=Inventory.Above
 | 
						|
		else:
 | 
						|
			Value+=Inventory.Value*Inventory.Quantity
 | 
						|
 | 
						|
			Inventory.Teleport(whoami.Map,37,5)
 | 
						|
			Inventory=whoami.Inventory
 | 
						|
	Variables=whoami.Map.ObjectAt(49,0)
 | 
						|
	Variables=GetObjectByName(Variables,"Variables")
 | 
						|
	VariableList= Variables.Message.split('\n')
 | 
						|
	Owner=VariableList[0].split(": ")[1]
 | 
						|
	Date=VariableList[1].split(": ")[1]
 | 
						|
	Days=int(VariableList[2].split(": ")[1])
 | 
						|
	
 | 
						|
 | 
						|
 | 
						|
	Year, Month, Day=Date.split("-")
 | 
						|
	LastDate=datetime.datetime(int(Year),int(Month),int(Day))
 | 
						|
	Today=datetime.date(1,2,3).today()
 | 
						|
	Today=datetime.datetime(Today.year, Today.month, Today.day)
 | 
						|
	DaysPast=(Today-LastDate).days
 | 
						|
	Days-=DaysPast
 | 
						|
	MaxDays=int(Params)
 | 
						|
	if Owner!="Unowned":
 | 
						|
		if Days<30:
 | 
						|
			DT30=30-Days
 | 
						|
			if DT30<=Value/50:
 | 
						|
				Value-=DT30*50
 | 
						|
				Days=30
 | 
						|
			else:
 | 
						|
				Days+=int(Value/50)
 | 
						|
				Value-=int(Value/50)*50
 | 
						|
		
 | 
						|
			
 | 
						|
			
 | 
						|
		if Value>=100:
 | 
						|
			if Days<60:
 | 
						|
				DT60=60-Days
 | 
						|
				if DT60<=Value/100:
 | 
						|
					Value-=DT60*100
 | 
						|
					Days=60
 | 
						|
				else:
 | 
						|
					Days+=int(Value/100)
 | 
						|
					Value-=int(Value/100)*100
 | 
						|
		
 | 
						|
		if Value>=200:
 | 
						|
			if Days<90:
 | 
						|
				DT90=90-Days
 | 
						|
				if DT90<=Value/200:
 | 
						|
					Value-=DT90*200
 | 
						|
					Days=90
 | 
						|
				else:
 | 
						|
					Days+=int(Value/200)
 | 
						|
					Value-=int(Value/200)*200
 | 
						|
		if Value>=400:
 | 
						|
			if Days<120:
 | 
						|
				DT120=120-Days
 | 
						|
				if DT120<=Value/400:
 | 
						|
					Value-=DT120*400
 | 
						|
					Days=120
 | 
						|
				else:
 | 
						|
					Days+=int(Value/400)
 | 
						|
					Value-=int(Value/400)*400
 | 
						|
		if Value>=800:
 | 
						|
			if Days<150:
 | 
						|
				DT150=150-Days
 | 
						|
				if DT150<=Value/800:
 | 
						|
					Value-=DT150*800
 | 
						|
					Days=150
 | 
						|
				else:
 | 
						|
					Days+=int(Value/800)
 | 
						|
					Value-=int(Value/800)*800
 | 
						|
		if Value>=1600:
 | 
						|
			if Days<180:
 | 
						|
				DT180=180-Days
 | 
						|
				if DT90<=Value/1600:
 | 
						|
					Value-=DT180*1600
 | 
						|
					Days=180
 | 
						|
				else:
 | 
						|
					Days+=int(Value/1600)
 | 
						|
					Value-=int(Value/1600)*1600
 | 
						|
		if Value>=3200:
 | 
						|
			if Days<210:
 | 
						|
				DT210=210-Days
 | 
						|
				if DT210<=Value/3200:
 | 
						|
					Value-=DT210*3200
 | 
						|
					Days=210
 | 
						|
				else:
 | 
						|
					Days+=int(Value/3200)
 | 
						|
					Value-=int(Value/3200)*3200
 | 
						|
		if Value>=6400:
 | 
						|
			if Days<240:
 | 
						|
				DT240=240-Days
 | 
						|
				if DT240<=Value/6400:
 | 
						|
					Value-=DT240*6400
 | 
						|
					Days=240
 | 
						|
				else:
 | 
						|
					Days+=int(Value/6400)
 | 
						|
					Value-=int(Value/6400)*6400
 | 
						|
		if Value>=12800:
 | 
						|
			if Days<270:
 | 
						|
				DT270=270-Days
 | 
						|
				if DT270<=Value/12800:
 | 
						|
					Value-=DT270*12800
 | 
						|
					Days=270
 | 
						|
				else:
 | 
						|
					Days+=int(Value/12800)
 | 
						|
					Value-=int(Value/12800)*12800
 | 
						|
		if Value>=25600:
 | 
						|
			if Days<300:
 | 
						|
				DT300=300-Days
 | 
						|
				if DT300<=Value/25600:
 | 
						|
					Value-=DT300*25600
 | 
						|
					Days=300
 | 
						|
				else:
 | 
						|
					Days+=int(Value/25600)
 | 
						|
					Value-=int(Value/25600)*25600
 | 
						|
		
 | 
						|
		if Value>=51200:
 | 
						|
			if Days<330:
 | 
						|
				DT330=330-Days
 | 
						|
				if DT330<=Value/51200:
 | 
						|
					Value-=DT330*51200
 | 
						|
					Days=330
 | 
						|
				else:
 | 
						|
					Days+=int(Value/51200)
 | 
						|
					Value-=int(Value/51200)*51200
 | 
						|
		if Value>=102400:
 | 
						|
			if Days<366:
 | 
						|
				DT366=366-Days
 | 
						|
				if DT366<=Value/102400:
 | 
						|
					Value-=DT366*102400
 | 
						|
					Days=366
 | 
						|
				else:
 | 
						|
					Days+=int(Value/102400)
 | 
						|
					Value-=int(Value/102400)*102400
 | 
						|
		tmp=whoami.CreateObject("silvercoin")
 | 
						|
		tmp.Quantity=Value
 | 
						|
		Days=min(Days,MaxDays)
 | 
						|
	else:
 | 
						|
		DT30=30
 | 
						|
		Owner=activator.Name
 | 
						|
		if DT30<=Value/50:
 | 
						|
			Value-=DT30*50
 | 
						|
			Days=30
 | 
						|
		else:
 | 
						|
			Days+=int(Value/50)
 | 
						|
			Value-=int(Value/50)
 | 
						|
		if Value>0:
 | 
						|
			tmp=whoami.CreateObject("silvercoin")
 | 
						|
			tmp.Quantity=Value
 | 
						|
	if Days>=1:
 | 
						|
		whoami.Teleport(whoami.Map,30,8)
 | 
						|
	else:
 | 
						|
		whoami.Teleport(whoami.Map,15,10)
 | 
						|
	Variables.Message="Owner: "+Owner+"\nDate: "+str(Today.year)+"-"+str(Today.month)+"-"+str(Today.day)+"\nDays: "+str(Days)	
 | 
						|
elif Params=="Trade":
 | 
						|
	Message=Crossfire.WhatIsMessage().split()
 | 
						|
	if Message[0].upper()=='TRADE':
 | 
						|
		Name=''
 | 
						|
		Title=''
 | 
						|
		Quantity=0
 | 
						|
		for i in range(len(Message)):
 | 
						|
			
 | 
						|
			if Message[i].upper()=="NAME":
 | 
						|
				Name=Message[i+1]
 | 
						|
			elif Message[i].upper()=='TITLE':
 | 
						|
				Title=Message[i+1]
 | 
						|
			elif Message[i].upper()=='QUANTITY':
 | 
						|
				Quantity=int(Message[i+1])
 | 
						|
elif Params=="Exchange":
 | 
						|
	pass
 | 
						|
elif Params=="InventorySay":
 | 
						|
	
 | 
						|
	Message=Crossfire.WhatIsMessage().split()
 | 
						|
	if Message[0]=="Remove":
 | 
						|
		
 | 
						|
		CFDB.store(pshop,None)
 | 
						|
	if Message[0].upper().find("DETAIL")>-1:
 | 
						|
		Item=' '.join(Message[1:])
 | 
						|
		
 | 
						|
		Dict=CFDB.get(pshop)
 | 
						|
		
 | 
						|
		if Dict==0:
 | 
						|
			Dict={}
 | 
						|
		
 | 
						|
		Ctrl=1
 | 
						|
		for i in Dict:
 | 
						|
			Str=Dict.get(str(i))
 | 
						|
			Name=Str[2].split('\n')[0].split("Name: ")[1]
 | 
						|
			
 | 
						|
			if Item==Name:
 | 
						|
				
 | 
						|
				Message="\n"+str(Dict.get(i)[2])
 | 
						|
				
 | 
						|
				Message+=("\nAsking Price: "+str(Dict.get(i)[0])+"\nLocation: ")
 | 
						|
				
 | 
						|
				if Dict.get(i)[1]=="PickedUp":
 | 
						|
					
 | 
						|
					Message+="Not on store floor"
 | 
						|
					
 | 
						|
				elif Dict.get(i)[1][1]<=9:
 | 
						|
					Message+="In employee only area."
 | 
						|
				else:
 | 
						|
					Message+=str(Dict.get(i)[1])
 | 
						|
					Message+="\n(You are at ("+str(whoami.X)+","+str(whoami.Y)+")."
 | 
						|
				whoami.Say(Message)
 | 
						|
				Ctrl=0
 | 
						|
		if Ctrl==1:
 | 
						|
			
 | 
						|
			
 | 
						|
			Item=int(Message[1])
 | 
						|
			
 | 
						|
				
 | 
						|
			Item=list(Dict)[Item-1]
 | 
						|
				
 | 
						|
			Item=Dict.get(str(Item))[2].split('\n')[0].split('Name: ')[1]
 | 
						|
		
 | 
						|
			for i in Dict:
 | 
						|
				Str=Dict.get(str(i))
 | 
						|
				Name=Str[2].split('\n')[0].split("Name: ")[1]
 | 
						|
				
 | 
						|
				if Item==Name:
 | 
						|
					
 | 
						|
					Message="\n"+str(Dict.get(i)[2])
 | 
						|
					
 | 
						|
					Message+=("\nAsking Price: "+str(Dict.get(i)[0])+"\nLocation: ")
 | 
						|
					
 | 
						|
					if Dict.get(i)[1]=="PickedUp":
 | 
						|
						
 | 
						|
						Message+="Not on store floor"
 | 
						|
						
 | 
						|
					elif Dict.get(i)[1][1]<=9:
 | 
						|
						Message+="In employee only area."
 | 
						|
					else:
 | 
						|
						Message+=str(Dict.get(i)[1])
 | 
						|
						Message+="\n(You are at ("+str(whoami.X)+","+str(whoami.Y)+")."
 | 
						|
					whoami.Say(Message)
 | 
						|
					Ctrl=0
 | 
						|
elif Params=="AutoCheckout":
 | 
						|
	Dict=CFDB.get(pshop)
 | 
						|
	Inv=activator.Inventory
 | 
						|
	Items=[]
 | 
						|
	RealItems=[]
 | 
						|
	MissingItems=[]
 | 
						|
	Price=0
 | 
						|
	
 | 
						|
	while Inv!=None:
 | 
						|
		
 | 
						|
		if (Inv.Name.find("Price: ")>-1):
 | 
						|
			
 | 
						|
			Items=Items.__add__([Inv])
 | 
						|
			
 | 
						|
		Inv=Inv.Below
 | 
						|
	for i in Items:
 | 
						|
		Item=(activator.Map.ObjectAt(43,2))
 | 
						|
		
 | 
						|
		
 | 
						|
		
 | 
						|
		Item=GetObjectByUID(Item,str(i.WeightLimit))
 | 
						|
		
 | 
						|
		if Item!=0:
 | 
						|
			
 | 
						|
			Price+=int(Item.Name.split()[1])
 | 
						|
			RealItems=RealItems.__add__([Item])
 | 
						|
		else:
 | 
						|
			
 | 
						|
			whoami.Say("Item "+i.Name+" missing.")
 | 
						|
			MissingItems=MissingItems.__add__([i])
 | 
						|
	if activator.PayAmount(Price):
 | 
						|
		for i in RealItems:
 | 
						|
			i.InsertInto(activator)
 | 
						|
			tmp=Dict.pop((str(i.Name.split()[0])))
 | 
						|
		for i in Items:
 | 
						|
			i.Teleport(activator.Map, 37,0)
 | 
						|
			i.Speed+=(0.00010000000475*2)
 | 
						|
			
 | 
						|
		for i in MissingItems:
 | 
						|
			i.Teleport(activator.Map,37,0)
 | 
						|
			i.Speed+=(0.00010000000475*2)
 | 
						|
			tmp=Dict.pop((str(i.WeightLimit)))
 | 
						|
			
 | 
						|
			
 | 
						|
		CFDB.store(pshop,Dict)
 | 
						|
		
 | 
						|
		Variables=GetObjectByName(mymap.ObjectAt(49,0),"Variables")
 | 
						|
		
 | 
						|
 | 
						|
 | 
						|
		VariableList= Variables.Message.split('\n')
 | 
						|
		Owner=VariableList[0]
 | 
						|
		Date=VariableList[1]
 | 
						|
		Days=VariableList[2]
 | 
						|
		
 | 
						|
		Owner=Owner.split(": ")[1]
 | 
						|
		Date=Date.split(": ")[1]
 | 
						|
 | 
						|
		Days=int(Days.split(": ")[1])
 | 
						|
 | 
						|
		Year, Month, Day=Date.split("-")
 | 
						|
		LastDate=datetime.datetime(int(Year),int(Month),int(Day))
 | 
						|
		Today=datetime.date(1,2,3).today()
 | 
						|
		Today=datetime.datetime(Today.year, Today.month, Today.day)
 | 
						|
		DaysPast=(Today-LastDate).days
 | 
						|
		Days-=DaysPast
 | 
						|
 | 
						|
		if Days<30:
 | 
						|
			DT30=30-Days
 | 
						|
			if DT30<=Price/50:
 | 
						|
				Price-=DT30*50
 | 
						|
				Days=30
 | 
						|
			else:
 | 
						|
				Days+=int(Price/50)
 | 
						|
				Price-=int(Price/50)
 | 
						|
		
 | 
						|
		if Days<=0:
 | 
						|
			global Owner
 | 
						|
	
 | 
						|
	
 | 
						|
			Expire()
 | 
						|
 | 
						|
		Variables.Message="Owner: "+Owner+"\nDate: "+str(Today.year)+"-"+str(Today.month)+"-"+str(Today.day)+"\nDays: "+str(Days)	
 | 
						|
		bank.deposit(Owner, int(Price/1.01))
 | 
						|
		
 | 
						|
	else:
 | 
						|
		whoami.Say("You do not have enough cash, "+str(Price)+" silver needed.")
 | 
						|
elif Params=="BankCheckout":
 | 
						|
	Dict=CFDB.get(pshop)
 | 
						|
	Inv=activator.Inventory
 | 
						|
	Items=[]
 | 
						|
	RealItems=[]
 | 
						|
	MissingItems=[]
 | 
						|
	Price=0
 | 
						|
	
 | 
						|
	while Inv!=None:
 | 
						|
		if (Inv.Name.find("Price: ")>-1):
 | 
						|
			
 | 
						|
			Items=Items.__add__([Inv])
 | 
						|
			
 | 
						|
		Inv=Inv.Below
 | 
						|
	
 | 
						|
	for i in Items:
 | 
						|
		Item=(activator.Map.ObjectAt(43,2))
 | 
						|
		
 | 
						|
		
 | 
						|
		
 | 
						|
		Item=GetObjectByUID(Item,str(i.WeightLimit))
 | 
						|
		
 | 
						|
		if Item!=0:
 | 
						|
			
 | 
						|
			Price+=int(Item.Name.split()[1])
 | 
						|
			RealItems=RealItems.__add__([Item])
 | 
						|
		else:
 | 
						|
			
 | 
						|
			whoami.Say("Item "+i.Name+" missing.")
 | 
						|
			MissingItems=MissingItems.__add__([i])
 | 
						|
	if bank.getbalance(activator.Name)>=Price:
 | 
						|
		bank.withdraw(activator.Name, Price)
 | 
						|
		for i in RealItems:
 | 
						|
			i.InsertInto(activator)
 | 
						|
			tmp=Dict.pop((str(i.Name.split()[0])))
 | 
						|
		for i in Items:
 | 
						|
			i.Teleport(activator.Map, 37,0)
 | 
						|
			i.Speed+=(0.00010000000475*2)
 | 
						|
			
 | 
						|
		for i in MissingItems:
 | 
						|
			i.Teleport(activator.Map,37,0)
 | 
						|
			i.Speed+=(0.00010000000475*2)
 | 
						|
			tmp=Dict.pop((str(i.WeightLimit)))
 | 
						|
			
 | 
						|
			
 | 
						|
		CFDB.store(pshop,Dict)
 | 
						|
		
 | 
						|
		Variables=GetObjectByName(mymap.ObjectAt(49,0),"Variables")
 | 
						|
		
 | 
						|
 | 
						|
 | 
						|
		VariableList= Variables.Message.split('\n')
 | 
						|
		Owner=VariableList[0]
 | 
						|
		Date=VariableList[1]
 | 
						|
		Days=VariableList[2]
 | 
						|
		
 | 
						|
		Owner=Owner.split(": ")[1]
 | 
						|
		Date=Date.split(": ")[1]
 | 
						|
 | 
						|
		Days=int(Days.split(": ")[1])
 | 
						|
 | 
						|
		Year, Month, Day=Date.split("-")
 | 
						|
		LastDate=datetime.datetime(int(Year),int(Month),int(Day))
 | 
						|
		Today=datetime.date(1,2,3).today()
 | 
						|
		Today=datetime.datetime(Today.year, Today.month, Today.day)
 | 
						|
		DaysPast=(Today-LastDate).days
 | 
						|
		Days-=DaysPast
 | 
						|
 | 
						|
		if Days<30:
 | 
						|
			DT30=30-Days
 | 
						|
			if DT30<=Price/50:
 | 
						|
				Price-=DT30*50
 | 
						|
				Days=30
 | 
						|
			else:
 | 
						|
				Days+=int(Price/50)
 | 
						|
				Price-=int(Price/50)
 | 
						|
		
 | 
						|
		if Days<=0:
 | 
						|
			global Owner
 | 
						|
	
 | 
						|
	
 | 
						|
			Expire()
 | 
						|
 | 
						|
		Variables.Message="Owner: "+Owner+"\nDate: "+str(Today.year)+"-"+str(Today.month)+"-"+str(Today.day)+"\nDays: "+str(Days)	
 | 
						|
		bank.deposit(Owner, int(Price/1.01))
 | 
						|
		
 | 
						|
	else:
 | 
						|
		whoami.Say("You do not have enough funds in the bank. "+str(Price)+" needed.")
 | 
						|
elif Params=="TrashOpen":
 | 
						|
	Trash=whoami.Map.ObjectAt(37,0)
 | 
						|
	while Trash!=None:
 | 
						|
		Trash1=Trash.Above
 | 
						|
		Trash.InsertInto(whoami)
 | 
						|
		Trash=Trash1
 | 
						|
elif Params=="TrashClose":
 | 
						|
	Trash=whoami.Inventory
 | 
						|
	while Trash!=None:
 | 
						|
		if (Trash.Name=="TrashClose") or (Trash.Name=="TrashOpen"):
 | 
						|
			Trash=Trash.Above
 | 
						|
		else:
 | 
						|
			Trash.Teleport(whoami.Map,37,0)
 | 
						|
			
 | 
						|
			if Trash.ArchName=="icecube":
 | 
						|
				Trash.Speed+=(0.00010000000475*2)
 | 
						|
			Trash=whoami.Inventory
 | 
						|
			
 | 
						|
else:
 | 
						|
	whoami.Message="xyzzy"
 | 
						|
	Dict=CFDB.get(pshop)
 | 
						|
	if Dict==0:
 | 
						|
		Dict={}
 | 
						|
	whoami.Message=''
 | 
						|
	for i in Dict:
 | 
						|
		Str=Dict.get(i)[2].split('\n')[0]
 | 
						|
		
 | 
						|
		whoami.Message+=str(Str)
 | 
						|
	
 |