(shouting)

The Help Thread

... zelda
Aposke
Banned
Posts: 0
Joined: 15 years ago

The Help Thread

Post by Aposke »

So, since this project seems to be "a thing" now, and there's plenty of people who've applied to make dungeons, I think it's only fair and square to start a help thread in order to help those out who have questions about the engine, userscripts, and so on.
Please check the ZCWiki, the FAQ and the 2.5 tutorial first before asking any questions in here!

If you're an experienced user or otherwise know the answer to a question posed in this thread, please take just one or two minutes to help the newer ones here - it'd be really appreciated!

-------------------------------------------------------------------------------------

That said, I didn't make this thread purely out of chivalry - I have a question myself, concerning the classic Zelda fall-down pits.
How do you implement them?
I can't seem to find a combo that hurts Link AND warps him back to the entrypoint of a given screen, all the empty-space ones only warp him, but don't hurt him. Is there some way to change the properties of a combo so that it warps AND hurts Link (perhaps even shows a falling animation)?

Thanks in advance for your answers.
Last edited by Aposke 11 years ago, edited 1 time in total.
User avatar
Moosh
Posts: 13
Joined: 11 years ago

Re: The Help Thread

Post by Moosh »

Aposke wrote:That said, I didn't make this thread purely out of chivalry - I have a question myself, concerning the classic Zelda fall-down pits.
How do you implement them?
I can't seem to find a combo that hurts Link AND warps him back to the entrypoint of a given screen, all the empty-space ones only warp him, but don't hurt him. Is there some way to change the properties of a combo so that it warps AND hurts Link (perhaps even shows a falling animation)?

Thanks in advance for your answers.
That's a scripted combo. The script can be found here. There's multiple scripts in there. The one you probably want is the ffc one because combining global scripts can get complicated.
And here's a tutorial on how to import scripts.
User avatar
raekuul
D&C 112:13
Posts: 1856
Joined: 15 years ago
First name: Pokota
Pronouns: he/him/his
Location: Deti Plains
Contact:

Re: The Help Thread

Post by raekuul »

I plan on using sideview rooms with sideview gravity to force the player to get the Roc's Feather before heading out to the Boss Room. Only, how do I work the ladders? Or can I fake this with combos and no sideview gravity?

The room from which the player will be entering
Image
The middle room
Image
The third room
Image
Games Beaten In 2020, 2021, 2022, 2023, 2024
Image
User avatar
AlexanderXCIII
Posts: 0
Joined: 11 years ago

Re: The Help Thread

Post by AlexanderXCIII »

Two questions: First, is it possible to tie shutters to trigger flags, i.e. have an arrow switch that opens the shutters in a room? I've managed to simulate the effect I want with secret flags, but it'd still be nice to know if it's possible with shutters.

Second, I've been trying to set up bottomless pits using the script that Moosh linked, but it's not working. So far I've compiled the script successfully (multiple times), assigned them to the FFC and global slots (the second "active" slot in the case of the latter), set up combos and flags and whatnot accordingly (I've even tried both placing the flags manually and tieing the flags to their respective combos), but all that happens is Link walking over the pits with no ill effect.

I bet that this all boils down to something stupidly obvious I'm missing.

(It might be worth mentioning that my latest attempts at compiling failed because some of the constants in one of the .zh files were already declared...)

EDIT: I've ditched the script for now and replaced all my pits with water tiles as a temporary solution. It looks bad but functionally, it works for now.
Last edited by AlexanderXCIII 11 years ago, edited 1 time in total.
User avatar
Nimono
Posts: 757
Joined: 11 years ago

Re: The Help Thread

Post by Nimono »

AlexanderXCIII wrote:Two questions: First, is it possible to tie shutters to trigger flags, i.e. have an arrow switch that opens the shutters in a room? I've managed to simulate the effect I want with secret flags, but it'd still be nice to know if it's possible with shutters.
As far as I know, it's not possible with shutters, unless you want to do something like shoot switch -> block appears -> push block to open door. ...Actually, hold that thought. Perhaps a script could do it. Lemme investigate that and I'll get back to you.

EDIT: Alright, it seems that what you could do is have a script check for if the flags were triggered, and if so, set all the shutter doors in the room to D_OPENSHUTTER with Screen->Doors[]. I'm not entirely sure how to check if the flags were triggered, though. Might need to use one of the Script combo types, have the trigger change a combo to that, then check if it exists and open the doors that way. Sadly, it seems that may be too complex, especially compared to just using secret flags. :/
raekuul wrote:I plan on using sideview rooms with sideview gravity to force the player to get the Roc's Feather before heading out to the Boss Room. Only, how do I work the ladders? Or can I fake this with combos and no sideview gravity?
Scripts, unfortunately. I don't know why the devs didn't code them in themselves, but they didn't. There's a popular script to make the sideview ladders work, though. Seems really well-made, from my experience. Lemme go get it for ya.

EDIT: http://www.purezc.com/forums/index.php? ... ntry761921 Here you go! Sideview ladder script. :)

By the way, I also recommend checking out PureZC for Zelda Classic help. They've got a lot of people willing to help people solve their problems, along with some tutorials and a forum dedicated to scripts! Could be useful.
Aposke
Banned
Posts: 0
Joined: 15 years ago

Re: The Help Thread

Post by Aposke »

AlexanderXCIII wrote:Second, I've been trying to set up bottomless pits using the script that Moosh linked, but it's not working. So far I've compiled the script successfully (multiple times), assigned them to the FFC and global slots (the second "active" slot in the case of the latter), set up combos and flags and whatnot accordingly (I've even tried both placing the flags manually and tieing the flags to their respective combos), but all that happens is Link walking over the pits with no ill effect.
I've had the same problem.
I compile the script, assign it to an FFC, specify its size and location, and loaded the script into the active slot, just in case (although I'm 99% sure that's not what is intended). Still, Link doesn't fall, respawn or lose hearts.
Anyone know what we're doing wrong?
User avatar
raekuul
D&C 112:13
Posts: 1856
Joined: 15 years ago
First name: Pokota
Pronouns: he/him/his
Location: Deti Plains
Contact:

Re: The Help Thread

Post by raekuul »

Riolu180: I can't seem to get that sideview ladder script to import/compile.
Games Beaten In 2020, 2021, 2022, 2023, 2024
Image
User avatar
Nimono
Posts: 757
Joined: 11 years ago

Re: The Help Thread

Post by Nimono »

raekuul wrote:Riolu180: I can't seem to get that sideview ladder script to import/compile.
What does the error say? The compiler will usually puke out a message telling you what line it broke on and why. Give me the message and I'll see if I can't debug it for you.
Doctor Shemp
Banned
Posts: 0
Joined: 11 years ago

Re: The Help Thread

Post by Doctor Shemp »

I was having a go at making a Cave of Ordeals/Pit of Trials type level. It seems to be working okay except for some reason the door to leave the first room with octoroks in it (Map 2, Screen 77) just doesn't work - it opens but Link can't walk through it to the next room. It's programmed the same way as all the previous doors which worked so I have no idea. I've attached the .qst file.
Trial.zip
User avatar
Nimono
Posts: 757
Joined: 11 years ago

Re: The Help Thread

Post by Nimono »

It's because it's screen 77. x7 is the last screen available in dungeons. Basically, the reason you can't go through is because to the game, that is the edge of the available world, and it will not let you through. You have three options:

-Make the map an Overworld-type map so every screen is available
-Change the map layout to avoid going over that edge
-Make another DMap, set it to the right half of the map, and have all screens that cross the boundary between x7 and x8 do a Scrolling warp to the dmap for each half
User avatar
raekuul
D&C 112:13
Posts: 1856
Joined: 15 years ago
First name: Pokota
Pronouns: he/him/his
Location: Deti Plains
Contact:

Re: The Help Thread

Post by raekuul »

Riolu180 wrote:
raekuul wrote:Riolu180: I can't seem to get that sideview ladder script to import/compile.
What does the error say? The compiler will usually puke out a message telling you what line it broke on and why. Give me the message and I'll see if I can't debug it for you.
Function 'comboat' is undeclared
<edit: see later post>
Last edited by raekuul 11 years ago, edited 1 time in total.
Games Beaten In 2020, 2021, 2022, 2023, 2024
Image
User avatar
Nimono
Posts: 757
Joined: 11 years ago

Re: The Help Thread

Post by Nimono »

raekuul wrote: Function 'comboat' is undeclared
Add this line to the top of the script:

import "std.zh"

and that should fix that error. I have no idea why that script was posted without it... Let me know if any other errors pop up.
User avatar
raekuul
D&C 112:13
Posts: 1856
Joined: 15 years ago
First name: Pokota
Pronouns: he/him/his
Location: Deti Plains
Contact:

Re: The Help Thread

Post by raekuul »

It compiles now; now I get to learn how to actually apply the script.

See you in a few hours
Games Beaten In 2020, 2021, 2022, 2023, 2024
Image
User avatar
raekuul
D&C 112:13
Posts: 1856
Joined: 15 years ago
First name: Pokota
Pronouns: he/him/his
Location: Deti Plains
Contact:

Re: The Help Thread

Post by raekuul »

Okay I have no idea what I'm doing here.

This is what I've saved as SCRIPT Ladder.txt

Code: Select all

import std.zh

const int CT_SIDEVIEWLADDER=142;

ffc script Ladder
{
    void run()
    {
        while (true)
        {
              int underlink=ComboAt(Link->X+8, Link->Y+15);
              if (Screen->ComboT[underlink]==CT_SIDEVIEWLADDER)
              {
                  Link->Jump=0;
                  if (Link->InputUp)
                 {
                        if ( Screen->isSolid(Link->X+1, Link->Y-1) == false &&  Screen->isSolid(Link->X+8, Link->Y

-1) == false &&  
                            Screen->isSolid(Link->X+14, Link->Y-1) == false )
                       { 
                             Link->Y-=1;  
                       }
                  }
                 else if (Link->InputDown)
                 {
                       if ( Screen->isSolid(Link->X+1, Link->Y+1) == false &&  Screen->isSolid(Link->X+8, Link-

>Y+1) == false &&  
                            Screen->isSolid(Link->X+14, Link->Y+1) == false )
                       {  
                            Link->Y+=1;
                        }
                  }
                  Waitframe();
             }
         }
     }
}
This is what the editor spits out when I try to import the script.
Image

It does that whether or not std.zh is in quotes or not

I was able to compile it using Scripts > Compile ZScript, but I don't know what to do with it from there.
Games Beaten In 2020, 2021, 2022, 2023, 2024
Image
Aposke
Banned
Posts: 0
Joined: 15 years ago

Re: The Help Thread

Post by Aposke »

raekuul wrote:I was able to compile it using Scripts > Compile ZScript, but I don't know what to do with it from there.
As far as I understand it, you need to Compile the script and then assign it to a Freeform Combo (or an item or event). Then you go to "Screen -> Freeform Combo", choose the FFC you've assigned the script to, and edit its X and Y-coordinates in order to be on the screen where you want it to be.
That's how far I've gotten, but none of the scripts work for me, either.
User avatar
Nimono
Posts: 757
Joined: 11 years ago

Re: The Help Thread

Post by Nimono »

raekuul wrote:Okay I have no idea what I'm doing here.

This is what I've saved as SCRIPT Ladder.txt

Code: Select all

import std.zh

const int CT_SIDEVIEWLADDER=142;

ffc script Ladder
{
    void run()
    {
        while (true)
        {
              int underlink=ComboAt(Link->X+8, Link->Y+15);
              if (Screen->ComboT[underlink]==CT_SIDEVIEWLADDER)
              {
                  Link->Jump=0;
                  if (Link->InputUp)
                 {
                        if ( Screen->isSolid(Link->X+1, Link->Y-1) == false &&  Screen->isSolid(Link->X+8, Link->Y

-1) == false &&  
                            Screen->isSolid(Link->X+14, Link->Y-1) == false )
                       { 
                             Link->Y-=1;  
                       }
                  }
                 else if (Link->InputDown)
                 {
                       if ( Screen->isSolid(Link->X+1, Link->Y+1) == false &&  Screen->isSolid(Link->X+8, Link-

>Y+1) == false &&  
                            Screen->isSolid(Link->X+14, Link->Y+1) == false )
                       {  
                            Link->Y+=1;
                        }
                  }
                  Waitframe();
             }
         }
     }
}
This is what the editor spits out when I try to import the script.

It does that whether or not std.zh is in quotes or not

I was able to compile it using Scripts > Compile ZScript, but I don't know what to do with it from there.
Hmmm... It's probably the spacing of it. It looks like the post I linked to mangled the script. When I compiled it, it failed a few times until I removed the spaces that got put in the if statements. I'm including a .zip containing the .z file for the script with this post. Please try it and tell me if it works.

EDIT: I forgot one thing: Change the constant at the top of the file to be either 768 or 769; it's currently set to the wrong tile for this tileset!
Aposke
Banned
Posts: 0
Joined: 15 years ago

Re: The Help Thread

Post by Aposke »

Sorry, but all the "improved" script that you linked to and uploaded just now does is crash my game. I'm currently using the original script from http://www.purezc.com/forums/index.php? ... ntry756210 and, while I'm still none the wiser as to how to actually get it to work, at least it doesn't crash my game.
User avatar
Nimono
Posts: 757
Joined: 11 years ago

Re: The Help Thread

Post by Nimono »

Aposke wrote:Sorry, but all the "improved" script that you linked to and uploaded just now does is crash my game. I'm currently using the original script from http://www.purezc.com/forums/index.php? ... ntry756210 and, while I'm still none the wiser as to how to actually get it to work, at least it doesn't crash my game.
Hm, strange. Oh well, I actually didn't know about THAT script. I suppose that one should be used instead.

Have you edited anything in the script at all? If not, change the value of the constant at the top. It's set to what is a poundable stake in the current tileset; 768 or 769 will do the trick.
User avatar
raekuul
D&C 112:13
Posts: 1856
Joined: 15 years ago
First name: Pokota
Pronouns: he/him/his
Location: Deti Plains
Contact:

Re: The Help Thread

Post by raekuul »

Zelda Classic now hangs when I get on the ladder enter that room.
Games Beaten In 2020, 2021, 2022, 2023, 2024
Image
User avatar
Nimono
Posts: 757
Joined: 11 years ago

Re: The Help Thread

Post by Nimono »

raekuul wrote:Zelda Classic now hangs when I get on the ladder enter that room.
...because the waitframe is misplaced. DERP. If you move it under the } it's above, it'll work. What's happening is that it's a while loop that never ends, and the game does nothing until it hits that waitframe, which, at its current position, it never will until you touch a ladder, which will never happen if you're not already on one... So sorry!

EDIT: I just checked the one by Moosh that was linked earlier, and it doesn't let you go down, for some reason; the one I fixed does, provided you move the waitframe. ...Actually, lemme go ahead and do that:

Code: Select all

import "std.zh"

const int CT_SIDEVIEWLADDER=142; //Combo Type 142 = Script 1; Set a Combo to the Script 1 combo type to make it work like a sideview ladder

ffc script Ladder
{
	void run()
	{
		while (true)
		{
			int underlink=ComboAt(Link->X+8, Link->Y+15);
			if (Screen->ComboT[underlink]==CT_SIDEVIEWLADDER)
			{
				Link->Jump=0;
				if (Link->InputUp && Screen->isSolid(Link->X+1, Link->Y-1) == false &&  Screen->isSolid(Link->X+8, Link->Y-1) == false && Screen->isSolid(Link->X+14, Link->Y-1) == false )
				{
					Link->Y-=1; 
				}
				else if (Link->InputDown && Screen->isSolid(Link->X+1, Link->Y+1) == false &&  Screen->isSolid(Link->X+8, Link->Y+1) == false && Screen->isSolid(Link->X+14, Link->Y+1) == false )
				{ 
					Link->Y+=1;
				}
			}
			Waitframe();
		}
	}
}
How to work it: Set whatever ladder combo(s) you use to the combo type "Script 1". And that's it! Don't edit the script, just compile it, put it on an FFC, and walk up and down the ladders!
User avatar
raekuul
D&C 112:13
Posts: 1856
Joined: 15 years ago
First name: Pokota
Pronouns: he/him/his
Location: Deti Plains
Contact:

Re: The Help Thread

Post by raekuul »

So I still need the FFC somewhere on the screen? OK
Games Beaten In 2020, 2021, 2022, 2023, 2024
Image
User avatar
Nimono
Posts: 757
Joined: 11 years ago

Re: The Help Thread

Post by Nimono »

raekuul wrote:So I still need the FFC somewhere on the screen? OK
Right. Simplest thing to do is just change the combo it uses away from 0 (or it won't do anything), give it the Ladder script to run, and hit "ok". Position on the screen doesn't matter, so its default position of 0,0 can be left alone and it'll always work.
Awakenyourmind
Muwha!
Posts: 141
Joined: 13 years ago

Re: The Help Thread

Post by Awakenyourmind »

http://www.purezc.com/forums/index.php? ... ntry830067
Apparently there's a test file in this post by a member, but I've not downloaded it myself. Might be of use for the sideview ladder.
Aposke
Banned
Posts: 0
Joined: 15 years ago

Re: The Help Thread

Post by Aposke »

Okay, so the ladder script is a complete piece of shit.
It works fine walking up and down, but when I want to exit the ladder sideways it doesn't work most of the time. At some places it DOES work, but it seems completely arbitrary and is generally pretty much unusable in this state. Other ladder scripts I've tried are either outdated or crash the game.
User avatar
raekuul
D&C 112:13
Posts: 1856
Joined: 15 years ago
First name: Pokota
Pronouns: he/him/his
Location: Deti Plains
Contact:

Re: The Help Thread

Post by raekuul »

It works for what I use it for; just remember that the player trips over the ladder top instead of walking across it. Also you can't jump from it.
Games Beaten In 2020, 2021, 2022, 2023, 2024
Image
Post Reply