Jump to content




Virtual Parkour


13 replies to this topic

#1 negamartin

  • Members
  • 46 posts

Posted 29 June 2015 - 08:29 PM

After seeing Lion4ever's parkour, I thought about making a modular parkour, where anyone can make parts and mix them together.
So I made a type of parkour, where different structures are plugged together.
Basically this is a program that loads other programs that feed the main program structures so the main program can put them together. :P
So you dont have to do the dirty work.

Every structure is an external file, which is loaded and used to make a parkour.
For example, you could have a structure which is one floating block, and a structure of a floating block with a ladder.
Then, you would find floating blocks and ladders forming a path for you to jump.

The idea is that people make their own structures, and upload them to the centralized store.
Then anyone can just download and use them.

Main Features


Images


Structure Development Guide


To download V1.21(latest), use
pastebin get wbW5e1ZD parkour
And then run
parkour
Or edit your startup to run it when booting, in case you want non-OPs to use it.
Or, if you had the parkour previously, just let it update, it will try to do it by itself.

And if you reached the bottom of this post, and didn't understand anything, just give it a try and you'll very probably understand.
Stupid color tags.

Edited by negamartin, 13 September 2015 - 04:37 PM.


#2 negamartin

  • Members
  • 46 posts

Posted 09 July 2015 - 02:54 PM

Well, I don't know if someone is even looking at this, but I have updated it.
It should auto-update.
Changelog


#3 Bomb Bloke

    Hobbyist Coder

  • Moderators
  • 7,099 posts
  • LocationTasmania (AU)

Posted 10 July 2015 - 03:32 PM

View Postnegamartin, on 09 July 2015 - 02:54 PM, said:

Well, I don't know if someone is even looking at this, but I have updated it.

B-but... Terraria 1.3!

Oh, all right.

This is actually very, very good. I liked Lion4ever's version, and you've improved upon it.

However, it still lacks a method for non-OPs to play it! Sure you can fire it up via the "monitor" script, but maybe consider rigging it so that if a monitor is attached, it will automatically allow that to be used to do everything except add/remove module files?

I've attempted to modify one of your modules into, well, something a little different. Not perfect, but it works well enough: pastebin get 8K0WVYvS ladder_swerve_jump.1

Though frankly I feel both it and the ladder jump module it's based on are a little punishing; they'd be a lot easier if they had an extra block tacked underneath them with another ladder segment. Left as-is, perhaps consider lowering the frequency of that module from appearing?

#4 negamartin

  • Members
  • 46 posts

Posted 11 July 2015 - 02:29 PM

Nice, you actually made something for this :D And it's fun!
I didn't make a non-OP method because this is strictly single-player, but with some scoreboard magic it could work on multiplayer (just only one player playing at the same time)
In that case, some code restructuring would have to be made. But it would be fun to do.
Yep, both structures are a little too difficult, but lowering the weight isn't the solution, but instead increasing the length, so the checkpoints are closer.
Do you mind if I upload your structure to the store? (with your name of course)
It will point to your pastebin (8K0WVYvS), so can you fix the weight and length please?
I'm sorry for stealing your Terraria time ;)

#5 Bomb Bloke

    Hobbyist Coder

  • Moderators
  • 7,099 posts
  • LocationTasmania (AU)

Posted 12 July 2015 - 12:43 AM

View Postnegamartin, on 11 July 2015 - 02:29 PM, said:

I didn't make a non-OP method because this is strictly single-player, but with some scoreboard magic it could work on multiplayer (just only one player playing at the same time)
In that case, some code restructuring would have to be made. But it would be fun to do.

I'd recommend it, these sorts of things are much more interesting with multiple players.

If the script could record its block placements (which should be as simple as generating a unique randomisation seed for the session and storing that), it could even allow multiple players to run the exact same course.

View Postnegamartin, on 11 July 2015 - 02:29 PM, said:

Yep, both structures are a little too difficult, but lowering the weight isn't the solution, but instead increasing the length, so the checkpoints are closer.

But hang on, aren't the different module types supposed to be used in conjunction with each other? How does "length" work in that case?

View Postnegamartin, on 11 July 2015 - 02:29 PM, said:

Do you mind if I upload your structure to the store? (with your name of course)
It will point to your pastebin (8K0WVYvS), so can you fix the weight and length please?

Certainly you can use it; if you like, you can copy it into your own pastebin. I'm not too fussed about credit. ;)

View Postnegamartin, on 11 July 2015 - 02:29 PM, said:

I'm sorry for stealing your Terraria time ;)

's ok. I can't hit the stupid Queen Bee anyway. :( Maybe I need to buy a Minishark...

#6 negamartin

  • Members
  • 46 posts

Posted 13 July 2015 - 02:25 PM

Thanks! I have copied it into my own pastebin and put your name on it.

The lengths of each structure are added up, until a certain limit (depending on difficulty) is reached, and then a checkpoint is placed.
So, with 15 as length:
15 -> 30 -> 45 -> 60 -> 75 -> 90 -> 105(normal difficulty limit)
That is 7 ladder_swerves before the next checkpoint
With 30, there would be only 4.
And with other structures:
30(+30 ladder_swerve) -> 45(+15 floating_blocks) -> 75(+30 ladder_swerve) -> 90(+15 floating_blocks) -> 105(+15 floating_blocks)
Having a higher length means checkpoints will be closer.

For it to work in multiplayer in singleplayer mode would be easy. For it to truly work with multiple players, is hard.
How would it be? Players team up, or try to take each other down? Must all of them get to the end of the parkour to continue, or just 1?
However, for two players to race in the same parkour but in separate places, that would be a nice idea. But without randomseeds, since what if a structure uses os.time() or something got from the minecraft world to generate its blocks (heightWarp)? Then even having the same seed would lead to different blocks, and maybe even affect the whole parkour in front.
I think it's better to generate the parkour once and build it twice, once for every player.

View PostBomb Bloke, on 12 July 2015 - 12:43 AM, said:

View Postnegamartin, on 11 July 2015 - 02:29 PM, said:

I'm sorry for stealing your Terraria time ;)

's ok. I can't hit the stupid Queen Bee anyway. :( Maybe I need to buy a Minishark...
Well, I don't play Terraria and I don't think I can respond to that, so it's your decision (It always was, really. Why am I writing this?).

#7 Bomb Bloke

    Hobbyist Coder

  • Moderators
  • 7,099 posts
  • LocationTasmania (AU)

Posted 14 July 2015 - 01:55 AM

View Postnegamartin, on 13 July 2015 - 02:25 PM, said:

The lengths of each structure are added up, until a certain limit (depending on difficulty) is reached, and then a checkpoint is placed.

Ah! That makes sense. A more difficult module therefore deserves a higher "length".

View Postnegamartin, on 13 July 2015 - 02:25 PM, said:

For it to work in multiplayer in singleplayer mode would be easy. For it to truly work with multiple players, is hard.
How would it be? Players team up, or try to take each other down? Must all of them get to the end of the parkour to continue, or just 1?
However, for two players to race in the same parkour but in separate places, that would be a nice idea. But without randomseeds, since what if a structure uses os.time() or something got from the minecraft world to generate its blocks (heightWarp)? Then even having the same seed would lead to different blocks, and maybe even affect the whole parkour in front.
I think it's better to generate the parkour once and build it twice, once for every player.

Certainly you wouldn't want multiple players running the same course at the same time; not unless there's a method available to prevent them from interfering with each other...?

#8 negamartin

  • Members
  • 46 posts

Posted 23 July 2015 - 05:02 PM

I have updated it (and the post, to look more beautiful), to V1.2 with multiplayer.
Changelog

And I updated the structures too:
Spoiler

Edited by negamartin, 23 July 2015 - 05:03 PM.


#9 Lion4ever

  • Members
  • 91 posts

Posted 18 August 2015 - 11:22 AM

This is really cool.

Some tips: You can press f3 + s to make an invisible target visible (reload the chunks). Be careful to not walk down your platform.

Instead of letting the user put all their stuff in a chest, you could kill them above a hopper.
And if you break the chest they to pick up their stuff automatically, so if you break the chest ealier there is no need to burn the items in lava.

It would be really useful to download all (or multiple) jump parts at once in the download menu.

Some bugs:
-if i start the program without a monitor i get an "2222: attempt to index a boolean" error.
-when you check a checkpoint there is one block of the old part left (as a run-up, i guess) but you can not jump on the block sometimes because it is out of the areacheck
-if you have a fence and a 2 down ladder after that you get portet back on the fence sometimes, when you reach the ladder.

-i had so much bad luck that a archery target spawned behind an iron wall of the locked branch part.
Spoiler

Parts i made:

head_blocked.1.1
The jumps we all hate: Try to jump somewhere with a block over your head.
http://pastebin.com/s6qZLJrg

jump_around.1.1
There is a block in your way. Choose a side and jump a curve around it. All jumps are possible.
http://pastebin.com/Jqx5ks7E

This one is not quite safe yet, since the tnt falls to the ground when you reach a checkpoint...
booby_trap.1.1
Below the block you have to jump over is tnt, so better hurry up.
http://pastebin.com/zJm190rC

#10 negamartin

  • Members
  • 46 posts

Posted 19 August 2015 - 10:28 AM

View PostLion4ever, on 18 August 2015 - 11:22 AM, said:

-huge snip-

Thanks! I'm glad you liked it, and I hope you're not too angry that I copied your idea.
I didn't know about the F3+S shortcut, I will include it in the archery test's description. Thanks, I thought there was no way to fix it.
I think I unconciously(did I spell it right?) tried to avoid killing people, probably since xp is lost, and they can paralize the parkour by not pressing "Respawn", so I never really thought about it, but actually, I think that's a MUCH cleaner approach than forcing them to store their items, and I think the program can handle dead people without much modifications. But right now I'm into another project, and I dont feel like doing big reworks.
A "Download All" option, however, is pretty simple, and quite useful. I think I can do that right now.
Thanks for the suggestions!

Bugs:
-I had the monitor constantly attached during debugging, and I never actually checked what happened without a monitor. Thanks, I'll fix it.
-This one is sort of "intended". The last structure is conserved because without it you wouldnt have a place to stand on. There could be another type of call for this, but it would complicate more than what it fixes.
-Hmmm I thought I fixed all of that areaCheck bugs. I'll just increase the areaCheck.
-Wow. That is REALLY bad luck. If went back in the parkour, could you get somewhere you can shoot the target? Or was it really impossible to continue?

Cool! You made structures!
I'm on my phone right now, but as soon as I get to my computer I'll try them. I like the idea of a TNT boobytrap, though.
About the TNT falling, I'll see what can be implemented to allow fixing that. I'm not really sure what can be done.
I assume you posted these, apart from showing them, so that I can upload them. They will point to your pastebin, and have your name.

Thanks for trying it, it really makes me happy that someone tries it out.

#11 Lion4ever

  • Members
  • 91 posts

Posted 20 August 2015 - 02:21 PM

View Postnegamartin, on 19 August 2015 - 10:28 AM, said:

I hope you're not too angry that I copied your idea.
Not at all. You program is way more elaborated and better than mine :D

View Postnegamartin, on 19 August 2015 - 10:28 AM, said:

since xp is lost, and they can paralize the parkour by not pressing "Respawn", so I never really thought about it
You could testfor their xp level with something over complicated like this:
local lvl = 0
while not commands.testfor(string.format("@p[lm=%d,l=%d]",i,i)) do
lvl = lvl+1
end

View Postnegamartin, on 19 August 2015 - 10:28 AM, said:

A "Download All" option, however, is pretty simple, and quite useful. I think I can do that right now.
Nice :)

View Postnegamartin, on 19 August 2015 - 10:28 AM, said:

-Wow. That is REALLY bad luck. If went back in the parkour, could you get somewhere you can shoot the target? Or was it really impossible to continue?
It was directly after the obsidian marker and completly impossible. I had to switch to creative and fly a bit to the side.

View Postnegamartin, on 19 August 2015 - 10:28 AM, said:

About the TNT falling, I'll see what can be implemented to allow fixing that. I'm not really sure what can be done.
In the deleteStructure function you could add a struct.func("remove_structure",struct) call before deleting anything. Just like you did in the deleteCheckpoint function.
function deleteStructure(struct)
if not struct.func("remove_structure",struct) then
  for i,b in ipairs(struct.blocks) do
   if not b.reference then
    commands.async.setblock(b[1],b[2],b[3],"minecraft:air 0 replace");
    if i%200==0 then sleep(0.05); end
   end
  end
end
end

View Postnegamartin, on 19 August 2015 - 10:28 AM, said:

I assume you posted these, apart from showing them, so that I can upload them. They will point to your pastebin, and have your name.
Feel free to add them to your pastebin and modify them, if you state me as author or co-autor of these :)

#12 negamartin

  • Members
  • 46 posts

Posted 13 September 2015 - 04:43 PM

After some (unnecessary long) time, I have updated it to V1.21, with some small fixes.
Changelog


#13 biggest yikes

  • Members
  • 573 posts

Posted 13 September 2015 - 05:37 PM

I'm going to be honest here:
Wait, did you expect a rebuke on how terrible this program is? No, no no!
This thing is awesome!
I haven't even tested it yet, and I can already tell how useful this tool might be for servers (assuming, of course, it was modified to support multiple players). They could have parkour races that aren't even built by hand, so you never know what's going to happen each session!
Keep up the good work!

EDIT: After testing this, I have concluded that extreme effort has been put into this creation and it is AWESOME.
A suggestion: Perhaps make a program that lets us place a structure, "scan" it, ask us for input for weight, length, etc., then turn it into a file.
Also, a bug: The exploding TNT structure doesn't regenerate it's TNT if the structure is the checkpoint one.
I dropped my pocket computer in the world and I had to delete my world ;-;

Edited by Atenefyr, 13 September 2015 - 05:57 PM.


#14 negamartin

  • Members
  • 46 posts

Posted 14 September 2015 - 08:37 PM

Wow, thanks! :D
I'm glad you like it!

Yes, I made this with server use in mind, but I guess that scoreboard kinda ruins the 'multiple players' thing, since everyone sees the scoreboard if one person is playing.

That's a good idea! I never even thought of something like that, but it would be truly useful.
However, there are some limitations, getBlockInfo doesn't return NBT, so chests filled with stuff or command blocks would not be copied, and of course, scanned structures would be less random and functional that coded ones. However, structures made with the "structure maker" could be just used as a base, and then coded on top. It's a very good idea.

The TNT not regenerating is not a bug, it's the way it works. When you reach a checkpoint, all previous structures, except the last one, which has the checkpoint, are deleted, but the last one is no longer updated. It is not deleted just for you to have a place to stand on.

Well, you didn't have to delete your world, you would just have to quit it and relog. The parkour currently does not reload. You would have to break the blocks by hand, but atleast you wouldn't be trapped there :P. Didn't know that could happen, but I was thinking of automatic item clearing when you die, which would solve that issue.

Anyways, I'm really glad you liked it!





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users