function InitAmsterdamPlunger () print("initing Crusty AmsterdamPlunger pickup") print("Loading all my models...") AmsterdamPlungerPickup = Object.LoadModel("Pickups\\Plunger.rom") print("creating rotation") AmsterdamPlungerRotation = Object.CreateRotation(0.0,2.0) end function CreateAmsterdamPlunger(id) return coroutine.create(UpdateAmsterdamPlunger) end function UpdateAmsterdamPlunger(myID) local dt=0 local reason=0 local collected = false print("Creating the orbit") local orbit1 = Object.CreateChildScriptedObject(myID,"Amsterdam\\AmsterdamPlungerOrbit1",Object.GetPosition(myID)) local orbit2 = Object.CreateChildScriptedObject(myID,"Amsterdam\\AmsterdamPlungerOrbit2",Object.GetPosition(myID)) print("Setting the model") Object.SetModel(myID,AmsterdamPlungerPickup) Object.SetRotation(myID,AmsterdamPlungerRotation) Object.CreateSphereTouchfield(myID,0,0,0,1.4) Object.SetBob(myID,0.2,0.02) Object.UpdateOnSphereTouchfield(myID,true) Object.SetUpdateRate(myID,0) Object.AddToCamBox(myID) while true do dt,reason = coroutine.yield() if collected == false and reason == 1 then Sound.PlayLua3DSoundOneShot("pickup_points",Object.GetPosition(myID)) Object.SetCollected(myID,0) Object.UpdateOnSphereTouchfield(myID,false) Object.ClearModel(myID) Object.ClearModel(orbit1) Object.Deactivate(myID) Object.Deactivate(orbit1) Object.ClearModel(myID) Object.ClearModel(orbit2) Object.Deactivate(myID) Object.Deactivate(orbit2) collected = true end end end