HopperBins: Difference between revisions

From Legacy Roblox Wiki
Jump to navigationJump to search
>Mindraker
mNo edit summary
>Mindraker
mNo edit summary
(No difference)

Revision as of 16:12, 22 August 2008

What is a HopperBin?

HopperBins are considered old now. They were the first ways to make a weapon, a utility tool, or anything you could really think of. They're mainly used for getting input from the player, and doing something with that input.

Special Events

The special events of a HopperBin are as follows:

  1. Selected
  2. Deselected

Important events and properties

The Selected and Deselected events have an argument, called a MOUSE object. Here are its important events and properties.

Events

  1. Button1Down
  2. Button1Up
  3. Button2Down -- currently un-operational
  4. Button2Up -- also non-working
  5. WheelForward -- non-working
  6. WheelBackward -- non-working

Properties

  1. Hit -- CFrame value
  2. Target -- object value
  3. X -- mouse's X position on the screen.
  4. Y -- mouse's Y position on the screen.
  5. ViewSizeX -- your screen's X size.
  6. ViewSizeY -- your screen's Y size.
  7. Origin -- CFrame value
  8. Icon -- the cursor image path

What do I do with it?

You can use it to do almost anything! You can spawn a projectile when Button1Down is fired, have it spawn in the direction the mouse is from your head, and move in the direction of the mouse.

Here's an example of a Boulder Summoner.

lifetime = 5 -- how long the boulder stays there. 5 is a good value.

function onButton1Down(mouse)
	local b = Instance.new("Part")
	b.BrickColor = BrickColor.new(217)
	b.Position = mouse.Hit.p
	b.Size = Vector3.new(5, 5, 5)
	b.Shape = 0
	b.Parent = game.Workspace
	b.Velocity = (script.Parent.Parent.Parent.Character.Head.Position - mouse.Hit.p).unit * -50 + Vector3.new(0, 10, 0)
	-- pushes it away from you, and pops it up a bit, making it seem to come out of the ground.
	game:GetService("Debris"):AddItem(b, lifetime)
end

function onSelected(mouse)
	mouse.Button1Down:connect(function() onButton1Down(mouse) end) -- Button1Down doesn't come with a mouse, seeing as its
	-- an event of the mouse itself. We need to give the function the mouse object to work off of.
end

script.Parent.Selected:connect(onSelected) -- Selected comes with a mouse.

Thats a simple thing to spawn a boulder wherever you click. It also gets rid of the boulder after a set amount of time.

Simple Toggle Utility

This tutorial wouldn't be complete without some decent examples. Assuming you have a brick named "Toggle", and it has a BoolValue in it named "On/Off", you can use this.

brickName = "Toggle"
valueName = "On/Off"

function onButton1Down(mouse)
	local targ = mouse.Target
	if targ~=nil then
		if targ.Name == brickName then
			if targ:findFirstChild(valueName)~=nil then
				if targ[valueName].Value == true then
					targ[valueName].Value = false
				else
					targ[valueName].Value = true
				end
			end
		end
	end
end

function onSelected(mouse)
	mouse.Button1Down:connect(function() onButton1Down(mouse) end)
end

script.Parent.Selected:connect(onSelected)

You can easily manipulate this script to work for anything.

Okay, what else?

There are PLENTY of different weapons and HopperBins to learn off of.