import Crossfire,random,math,sys import CFDataBase CFDB=CFDataBase.CFDataBase("PShop") Params=Crossfire.ScriptParameters() def GetObjectByName(object, Name): while object.Name!=Name: object=object.Above if not object: return 0 return object def FindFridge(object): TRUE=False while object!=None: if object.Name=="Shop Floor": TRUE=True object=None else: object=object.Below return TRUE def FindPuddle(object): a=object while object!=None: if object.Name.find("Puddle")>-1: return object else: object=object.Above object=a while object!=None: if object.Name.find("Puddle")>-1: return object else: object=object.Below return None if Params=="Destroy": whoami=Crossfire.WhoAmI() a=whoami.Inventory while a !=None: a.Remove() a=whoami.Inventory b=whoami.CreateObject("icecube") b.Weight=0 z=b.CreateObject("event_time") b.Speed=0.0010000000475*4 if whoami.Map.Path.find("/world_")>-1: b.Speed=b.Speed*10 z.Title="Python" z.Name="Puddle" z.Slaying="/python/pshop/Ice.py" z=b.CreateObject("event_destroy") z.Title="Python" z.Name="PuddleDeath" z.Slaying="/python/pshop/Ice.py" b.NamePl=str(1) b.Teleport(whoami.Map,whoami.X,whoami.Y) g=FindPuddle(b) if g!=None: b.Remove() b=g b.Weight+=whoami.Weight b.Name="Puddle" if b.Weight<2000: b.Face="rain1.111" elif b.Weight<20000: b.Face="rain2.111" elif b.Weight<200000: b.Face="rain3.111" elif b.Weight<2000000: b.Face="rain4.111" else: b.Face="rain5.111" b.Pickable=0 elif Params=="FogDeath": whoami=Crossfire.WhoAmI() a=whoami.Inventory while a !=None: a.Remove() a=whoami.Inventory elif Params=="Fog": whoami=Crossfire.WhoAmI() Rand=random.randint(0,8) if Rand!=0: whoami.Move(Rand) whoami.Weight-=1 if whoami.Weight>=0: Crossfire.SetReturnValue(1) elif Params=="Get": whoami=Crossfire.WhoAmI() activator=Crossfire.WhoIsActivator() Dict=CFDB.get("pshop") WL=str(whoami.WeightLimit) Me=Dict.get(WL) a=(Me[0],"PickedUp",Me[2]) #Me=str(Me[0],(activator.X,activator.Y),Me[1]) Dict.update({str(whoami.WeightLimit):(a[0],a[1],a[2])}) CFDB.store("pshop",Dict) elif Params=="Player": whoami=Crossfire.WhoAmI() elif Params=="PuddleDeath": whoami=Crossfire.WhoAmI() Fogs=int(whoami.Weight/1000) Fogs=max(Fogs,1) a=whoami.Inventory while a !=None: a.Remove() a=whoami.Inventory FogsTmp=Fogs if whoami.Name=="fog": FogsTmp=whoami.Value if Fogs > 50: z=whoami.CreateObject("temp_fog") Z=z.CreateObject("event_destroy") Z.Name="PuddleDeath" Z.Title="Python" Z.Slaying="/python/pshop/Ice.py" z.Weight=(Fogs-50)*1000 Fogs=50 z.Speed*=2 z.Value=FogsTmp for i in range(Fogs): z=whoami.CreateObject("temp_fog") z.Speed+=0.3 z.Weight=(3+random.randint(1,10+int(math.sqrt(FogsTmp))))*3 Rand=random.randint(1,2+int(FogsTmp/10)) z.Speed*=Rand z.Weight*=int(Rand/10)+1 y=z.CreateObject("event_time") y.Name="Fog" y.Title="Python" y.Slaying="/python/pshop/Ice.py" #y=z.CreateObject("event_destroy") #y.Name="FogDeath" #y.Title="Python" #y.Slaying="/python/pshop/Ice.py" elif Params=="Puddle": whoami=Crossfire.WhoAmI() whoami.Value+=1 #whoami.Speed+=(0.00010000000475/2) Mass=int(math.sqrt(whoami.Weight)) IntMass=int(Mass/1000) for i in range(IntMass): z=whoami.CreateObject("temp_fog") y=z.CreateObject("event_time") y.Name="Fog" y.Title="Python" y.Slaying="/python/pshop/Ice.py" #y=z.CreateObject("event_destroy") #y.Name="FogDeath" #y.Title="Python" #y.Slaying="/python/pshop/Ice.py" z.Weight=(3+random.randint(1,int(IntMass)+10)) z.Speed=5*z.Speed whoami.Drop(z) whoami.Weight-=Mass if whoami.Weight<=0: whoami.Remove() else: if whoami.Weight>20000: a=whoami.CreateObject('icecube') Mass=random.randint(1,int(whoami.Weight/2)) whoami.Weight-=Mass a.Weight=Mass Direction=random.randint(1,8) whoami.Drop(a) tmp=0 CTRL=0 if whoami.Map.Path.find("/world/world_")>-1: tmp=0 CTRL=0 XY=(whoami.X,whoami.Y) while tmp==0: tmp=whoami.Move(Direction) Direction+=1 if Direction==9: Direction=1 CTRL+=1 if CTRL==8: tmp=2 a.Teleport(whoami.Map, whoami.X,whoami.Y) whoami.Teleport(whoami.Map,XY[0],XY[1]) else: while tmp==0: tmp=a.Move(Direction) Direction+=1 if Direction==9: Direction=1 CTRL+=1 if CTRL==8: tmp=1 b=a.Map.ObjectAt(a.X,a.Y) b=FindPuddle(b) if b!=None: b.Weight+=a.Weight a.Remove() a=b else: a.Name=whoami.Name if a.Weight < 1600: a.Face="rain1.111" elif a.Weight < 3200: a.Face="rain2.111" elif a.Weight<6400: a.Face="rain3.111" elif a.Weight<12800: a.Face="rain4.111" else: a.Face="rain5.111" Z=False y=a.Inventory while y!=None: if y.Name.find("Puddle")>-1: Z=True y=None else: y=y.Below if Z==False: z=a.CreateObject("event_time") a.Speed=0.0010000000475*4 z.Title="Python" z.Name="Puddle" z.Slaying="/python/pshop/Ice.py" z=a.CreateObject("event_destroy") z.Title="Python" z.Name="PuddleDeath" z.Slaying="/python/pshop/Ice.py" #a.CreateTimer(500,2) a.NamePl=str(1) a.Pickable=0 a.Speed=(0.0010000000475*4) if whoami.Weight < 1600: whoami.Face="rain1.111" elif whoami.Weight < 3200: whoami.Face="rain2.111" elif whoami.Weight<6400: whoami.Face="rain3.111" elif whoami.Weight<12800: whoami.Face="rain4.111" else: whoami.Face="rain5.111" whoami.Speed=(0.0010000000475*4)+0.0010000000475*whoami.Value/(whoami.Weight/1000) #whoami.Speed=max(whoami.Speed,0.0010000000475*4) elif Params=="Timer": whoami=Crossfire.WhoAmI() b=FindPuddle(whoami.Map.ObjectAt(whoami.X,whoami.Y)) if b==None: b=whoami.CreateObject("icecube") b.Weight=0 z=b.CreateObject("event_time") b.Speed=0.0010000000475*4 if whoami.Map.Path.find("/world_")>-1: b.Speed=10*b.Speed z.Title="Python" z.Name="Puddle" z.Slaying="/python/pshop/Ice.py" z=b.CreateObject("event_destroy") z.Title="Python" z.Name="PuddleDeath" z.Slaying="/python/pshop/Ice.py" #b.CreateTimer(500,2) b.NamePl=str(1) whoami.Drop(b) #b.Speed+=.00001 b.Name="Puddle" Mass=int(100+math.sqrt(whoami.Weight)) b.Weight+=max(Mass,50) whoami.Weight-=max(Mass,50) b.Pickable=0 if b.Weight<2000: b.Face="rain1.111" elif b.Weight<4000: b.Face="rain2.111" elif b.Weight<8000: b.Face="rain3.111" elif b.Weight<16000: b.Face="rain4.111" else: b.Face="rain5.111" if whoami.Weight<=0: whoami.Quantity=0 whoami.Speed+=0.00010000000475 else: whoami=Crossfire.WhoAmI() activator=Crossfire.WhoIsActivator() mymap=activator.Map t=mymap.ObjectAt(activator.X, activator.Y) if (FindFridge(t)): whoami.Speed=0 Dict=CFDB.get("pshop") WL=str(whoami.WeightLimit) Me=Dict.get(WL) a=(Me[0],(activator.X,activator.Y),Me[2]) #Me=str(Me[0],(activator.X,activator.Y),Me[1]) Dict.update({str(whoami.WeightLimit):(a[0],a[1],a[2])}) CFDB.store("pshop",Dict) Crossfire.SetReturnValue(0) else: whoami.Speed=0.0010000000475*4 if activator.Map.Path.find("/world_")>-1: #whoami.CreateTimer(1,2) whoami.Speed=whoami.Speed*10 Crossfire.SetReturnValue(0)