Well, as I won't post relevant code in the next 2 or 3 weeks my topic in games will be locked until then.
As I still want to show you the concept of the game, here is the video.
[media]http://youtu.be/ddM66PziBdA[/media]
This is truly waesome. And you've got 500 subs. I think I've already watched you on YouTube Before
That's outstanding. :)/>
…
I turned off natural spawning and I don't dare to spawn creepers.…
Are there any potential issues with mobs spawning due to lack of light? I'm fairly sure I spotted an extra zombie appearing at some point, and a creeper taking out one of those chests could be catastrophic for the player.
…
That's a very good point, atm the game just ends. You may get a better time for the solved levels, but genereally this is also for me a bit frustrating while testing……
Speaking of which, what happens if the player dies? Do they outright "lose", or is there some sort of respawn-at-a-penalty thing?
…
…
I don't fancy myself as terribly imaginative, but I suppose if you wanted an idea for another room, you might make one with colour-coded teleport pads.
Another idea I once toyed with involved blocks of sand held up by other blocks; buttons or switches could be used to remove the supporting blocks, allowing the sand to fall into places where they could be used as "stepping stones".
I could leave the player all gold ingots etc., take away all food and armor and give him instead a one-use pick, one block and a redstone. Hm?
…
I suppose there's also the option of starting each player off with a wireless pocket computer, rigged to offer a single button that 1) teleports them just outside the front of their current pyramid, 2) resets their inventory back to what they started the game with, and 3) rebuilds that current pyramid from scratch. If they get stuck, they push the button. If they die, you run the same code.
If you do rebuild the maze, you'd need to ensure the player doesn't have anywhere to "hide" items (gold in particular). That is to say, once they get past the first pyramid, you'd block its exit off, and you'd also need to ensure they don't somehow bring chests to place onto the catwalk between the two areas (or just delete them if they do).
The same computer could, if you wanted, show them helpful information such as who's winning and perhaps even which rooms still have gold.
Hm, I see there some issues for number (2), that I currently don't know how to solve.
In 1.7 you are quite limitted when it comes to check player (or chest) inventories. Think an item detection is not possible, only a deletion of items. I first tried to go with a scoreboard to track gold ingots or gold blocks. Scoreboards can be powerful and are some kind of displayable varibales for command block users (so far I only partly understand how to use them). However I figureed out, that in some cases (e.g. shift cklicking a block out of a crafting bench) a scoreboard is increased by two. So it is not reliable.
When rebuilding, …
There's no need to "detect" anything.
That's true, key is to save the pyramid data.
Atm I'm using relative coordinates to teleport the player (so far I'm too lazy to calculate absolute coordinates). This restricts the room layout, as the player is usually not in the center of the pressure plate when triggering the redstone. So he might teleport into a wall. Hm, idea while writing this: I could put the pressure plates with the underlying teleporter one block lower in the ground. This would ensure that the player is nicely centered.
…Likely it'd be easier, in the end, to just calculate the absolute co-ords.Atm I'm using relative coordinates to teleport the player (so far I'm too lazy to calculate absolute coordinates). This restricts the room layout, as the player is usually not in the center of the pressure plate when triggering the redstone. So he might teleport into a wall. Hm, idea while writing this: I could put the pressure plates with the underlying teleporter one block lower in the ground. This would ensure that the player is nicely centered.
…
Or, for added flexibility (allowing you to perform a command from multiple points within your main work loop, should you so choose):…Spoiler
-- variables local maxCommands=250 local curCommands=0 local commandComputerCommand="" -- functions local function doOneCommand(commandComputerCommand) while curCommands >= maxCommands do os.pullEvent("task_complete") end commands.execAsync(commandComputerCommand) curCommands = curCommands + 1 end local function pullTaskComplete() while true do os.pullEvent("task_complete") curCommands = curCommands - 1 end end local function doWork() while true do -- building program stuff, incl. -- commandComputerCommand="..." doOneCommand(commandComputerCommand) end end -- main parallel.waitForAny(pullTaskComplete,doWork)