PDA

View Full Version : Puzzles?



Binx
05-01-2013, 01:55 PM
Ok, I feel even more noobish than usual with this question: How do you make puzzles that involve more than just pushing one block? I really wanted to make the puzzles in the wisdom path of my quest as complicated as possible, but right now, I can't even get simple boomerang puzzles to work right... I had some pretty good ones planned, too. For example, one of the planned puzzles in the Water Temple was a set of seemingly randomly placed blocks that needed to be arranged into a triforce shape, but no matter which flags I used, the first block I pushed opened the door.

CJC
05-01-2013, 04:00 PM
For the push blocks, you want to use flags 52-65 (push block flags without triggers) and flag 66 (flag that triggers the secrets when ALL these flags have a push block placed on top).


I don't know what the boomerang puzzle needs... yet. Give me a sec.


EDIT: You want to make the inherent flag of the boomerang peg (or whatever you're hitting) be a Boomerang flag (you can find them by scrolling down when you edit the combo), and then you want to place the Trigger->Self flag on top of them. Finally, under screen data set the Triggers->PermSecret option to on. This should make the puzzle function as you intended.

Binx
05-01-2013, 05:41 PM
Oh! Ok. Wow, that's really simple, lol. Makes me feel a bit dumb, lol.

Zim
05-09-2013, 01:25 PM
Heh.. I forgot how those extra flag triggers worked altogether already.
I would've just scripted the whole thing from scratch with ZScript.

Binx
05-09-2013, 01:38 PM
Lol, I'm glad someone remembered, then. I still suck at scripting (getting better, though.... Slowly... Very, very, VERY slowly....)

Zim
05-09-2013, 01:43 PM
It does take a while to master. Hope you got all those enemy spawner utilities working the way you wanted them too also, but now I'm getting off topic so I'm going to stop writing about that and mention something else about scripting, screen->flags can also be set via scripting:
that means that if an action is made in ZC to trigger a flag, it can be undone with a script,
if it is not done by a ZQuest preset action, but via script, it can be done by any method scripting can do,
i.e. pressing a single button, standing in the corner for 5 minutes, throwing the boomerang while
facing down, then left, then down again, etc.

Binx
05-09-2013, 01:47 PM
Yeah, I've learned a lot about what can and can't be done with scripting. now that I know what I CAN do, I just need to learn how to actually do it, lol. But I'm also getting really good at finding workarounds to things that can't be done, even if they aren't quite as clean as I'd like.

Zim
05-14-2013, 02:45 PM
Yeah, I've learned a lot about what can and can't be done with scripting. now that I know what I CAN do, I just need to learn how to actually do it, lol. But I'm also getting really good at finding workarounds to things that can't be done, even if they aren't quite as clean as I'd like.

Well, given the amount of ways of putting graphics on the screen, and the indices to the button pressing via scripting, there really isn't much video-game wise that can't be done with ZScript when it comes to game functionality. That all just depends on how far someone is going to go with it instead of paying any attention to the built in functions of ZC in the first place.
Example: it might not seem like ZScript could grab all the combos on the screen and crunch them all into a little vortex in the middle of the screen and swirl them around.
Solution: Grab all the tile #s of every combo on the screen, Drawtile all the graphics instead of use combos, then use the pixel size functions and the rangle functions, or just use a DrawScreen, or DrawBitmap, for even easier convenience, and you could make it LOOK like the combos all crunched into the middle of the screen.
I once made a three-card poker game, a pong game, and started on a Megaman MegaFight game that works like those Megaman arcade games with Zscript, and also a side-scrolling platformer game style.

Binx
05-18-2013, 02:18 PM
Well, given the amount of ways of putting graphics on the screen, and the indices to the button pressing via scripting, there really isn't much video-game wise that can't be done with ZScript when it comes to game functionality. That all just depends on how far someone is going to go with it instead of paying any attention to the built in functions of ZC in the first place.
Example: it might not seem like ZScript could grab all the combos on the screen and crunch them all into a little vortex in the middle of the screen and swirl them around.
Solution: Grab all the tile #s of every combo on the screen, Drawtile all the graphics instead of use combos, then use the pixel size functions and the rangle functions, or just use a DrawScreen, or DrawBitmap, for even easier convenience, and you could make it LOOK like the combos all crunched into the middle of the screen.
I once made a three-card poker game, a pong game, and started on a Megaman MegaFight game that works like those Megaman arcade games with Zscript, and also a side-scrolling platformer game style.
And that's the main point I was getting at: Hard-coded ZQ functions, like the Maze Path, for example, can't be toggled via scripts. I could make an FFC script that functions almost identically to it, that I could toggle on and off with a scripted item, but that takes a lot more work and effort for something that was built into the game to begin with. I'd rather just have a hidden path that goes around the maze. (I used that as an example because it's actually something I had tried to do for my quest) Right now, I'm waiting to hear if my enemies are too strong (I think they probably are, but everyone else seems to be a way better Zelda player than me, so it might be too easy, lol) and trying to figure out how to attach scripts meant for wands to a custom item class (I have 3 elemental wands that I want to use in addition to the regular wand. Unfortunately, the scripts all affect LW_MAGIC, so I can't just use the item override, and they all seem to need the book,which sucks, cuz I don't want the regular wand to catch fire on impact). I suppose I could attach them to swords, too (according to the scripts, anyways), but I don't want to make "a" button items selectable.

Zim
05-18-2013, 07:33 PM
And that's the main point I was getting at: Hard-coded ZQ functions, like the Maze Path, for example, can't be toggled via scripts. I could make an FFC script that functions almost identically to it, that I could toggle on and off with a scripted item, but that takes a lot more work and effort for something that was built into the game to begin with. I'd rather just have a hidden path that goes around the maze. (I used that as an example because it's actually something I had tried to do for my quest) Right now, I'm waiting to hear if my enemies are too strong (I think they probably are, but everyone else seems to be a way better Zelda player than me, so it might be too easy, lol) and trying to figure out how to attach scripts meant for wands to a custom item class (I have 3 elemental wands that I want to use in addition to the regular wand. Unfortunately, the scripts all affect LW_MAGIC, so I can't just use the item override, and they all seem to need the book,which sucks, cuz I don't want the regular wand to catch fire on impact). I suppose I could attach them to swords, too (according to the scripts, anyways), but I don't want to make "a" button items selectable.


ffc script FlagFind
{
void run()
{
while(true)
{
for(int n=0;n<=100;n++)
{if(Screen->Flags[n]>0)
{int z=Screen->Flags[n];
Screen->DrawTile(7,16,16,65180+n%10,1,1,1,-1,-1,0,0,0,0,true,128);
Screen->DrawTile(7,8,16,65180+(n%100-n%10)/10,1,1,1,-1,-1,0,0,0,0,true,128);
Screen->DrawTile(7,32,32,65180+z%10,1,1,1,-1,-1,0,0,0,0,true,128);
Screen->DrawTile(7,24,32,65180+(z%100-z%10)/10,1,1,1,-1,-1,0,0,0,0,true,128);
Screen->DrawTile(7,16,32,65180+(z%1000-z%100)/100,1,1,1,-1,-1,0,0,0,0,true,128);
Screen->DrawTile(7,8,32,65180+(z%10000-z%1000)/1000,1,1,1,-1,-1,0,0,0,0,true,128);
}
}
Waitframe();
}
}
}

I just whipped up this quick little Screen->Flag[] finder script for the purpose of what you described here.
It's not in the documentation that comes with ZC, I realize that, but Maze Path is a variance of the Screen->Flag[3], which when set to 1 is screen warp, blah blah. When Screen->Flag[3]==4, that's the trigger for Maze Path.
I found this out by toggling a screen flag via ZQuest, and using this fancy little FFC script I just wrote for this purpose to display 1)the Screen->Flag[n] digit where N is the flag in question, and int z, the integer for the whole line of Screen->Flag[3]==z.

So you see, it's not impossible to toggle Maze Path via scripting, it's just not in the documentation that comes with ZC on HOW to do it. :)
As for the other thing you're talking about with the wands, I'm sure you'll find a way if you remain diligent in your quest to do so, even if you have to replicate their behavior altogether. :)

Oh yeah, and I forgot to mention that those drawtile are drawn by a method of tiled numerals, Tile 65180 in my quest is a number 0, and then 1, 2, 3-9 subsequently after that, so that modulus fun math in the middle of those drawtiles is to isolate the place value digits in the number in question and draw them via tiling.
If you don't want to go out of your way to use drawn tile integers and feel like using this script, you could always look up the DrawInteger function and use that instead, which would be my preferred choice too had I heard of it before I wrote my own number display functions, which go up to -a very high number that I can't even pronounce- whereas the drawinteger is limited along with ZC's limitation of 255,___ some's truncation process.

edit: The code I wrote to assign the maze path actually does not work, you were right about that. I'm going to need a little while but I'm going to try and work out a way to do it anyway.

Zim
05-18-2013, 11:53 PM
I'm sorry, this version of ZC I have now seems to not have the conversion to Hex and Binary that I would've needed to find a way to stick the screen flag.... I still don't regret upgrading though, this one's got less buggyness when I run all my newer scripting. IDK if I'll be able to find a way to script that in after all. :(

Binx
05-26-2013, 01:08 PM
It's no worries, I set up a dive warp and tunnels around the path, so you can get to the areas I want you to, when I want you to, just not through the lost woods maze, the maze is still the exit, though.

Zim
05-27-2013, 05:10 PM
:)
Yup.
What one could do still, however, is setup a Maze Path type script that doesn't actually even involve the screen flag. You probably already thought of that though. Something like, if(Link->X==0&&Link->InputLeft&&DidGo==7){Warp Link to desired screen, Move to desired X and Y;}
Wherein DidGo would be an integer that goes up every time he goes the right direction off the map and wraps around to the other screen.. So a whole series of these would be needed for it to work. If he goes the wrong way it goes back down, yada yada, Whee!