Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

How would i find if someone is in the air or on the ground?

I made a script to make a shockwave when the boss lands after jumping. The thing is, how would I tell if he's back on the ground? (No OnTouched the boss will be on multiple bricks and I don't want to much lag)

1 answer

Well, if you have parts on your boss, then you can use Position and an if statement. For example,

OnGround = false -- Assuming the boss starts on the ground
BossTorso = workspace.(Boss model).(Boss's chest) 
--Replace those with the bosses chest, and where it says (Boss model) is what the boss's torso is stored under. If it's not workspace, change it to the location of the boss
DesiredHeight = --(Whatever the grounds y is to find it, click on the ground and look under "Position" and "Y") --This is where he has to be to be "on the ground"
BossHeight = --(You can experiment here but I'd probably recommend 7, or so depending on how tall your boss is) --This is subtracted from the value because you're measuring the torso
while 1==1 do --Repeats 4ever
if BossTorso.Position.y <= DesiredHeight + BossHeight then --Checks if the bosses torso 5 studs away from the ground
	OnGround = true 
	break--breaks loop remove this if you want it to go on forever.
	end
wait(1)
end

I told you want to replace in the comments of the script, try using that reply if that doesn't make sense. Use OnGround in a loop, to see if he hits the ground, for example,

while 2==2 do
if OnGround = true
		--Do whatever you're shockwave thing is
	end
wait(1)
end

If I were to have a brick in workspace, called "Torso", then this script will work for it.

OnGround = false
BossTorso = workspace.Torso 
DesiredHeight = -10
BossHeight = 3
while 1==1 do
if BossTorso.Position.y <= DesiredHeight + BossHeight then
    OnGround = true 
    break
    end
wait(1)
end
while 1==1 do
	if OnGround==true then
		print("Yo")
		break
	end
	wait(1)
end

Assuming that your baseplate is really thin, if it's thick, change the BossHeight to something like 10 or 20. This prints "Yo" Whenever it touches the ground.

2 comments

0

EDITED DO NOT USE THE OLD ONE, WILL CRASH YOUR GAME

0

Another edit, added working code, finally XD

This discussion is preserved as it was. New answers, comments, and votes are closed.