Jump to content

Photo

Boss Doors Become Shutters


  • Please log in to reply
5 replies to this topic

#1 MarinaraSauce

MarinaraSauce

    Magus

  • Members
  • Real Name:Grant
  • Location:New York

Posted 05 March 2017 - 07:37 PM

Is it possible to make a script that turns all of the boss doors/blocks in a dungeon into shutters once the triforce piece for that dungeon has been collected?



#2 Sans

Sans

    Hey kid wanna buy hot dogs ?

  • Members
  • Location:Judgement Hall

Posted 05 March 2017 - 08:32 PM

I think you not need the scripts for that. You can just put the secret flag on the boss door/blocks and while you got the Triforce piece you can put an invisible tile on a cutscene(if you use a cutscene) somewhere and set up all your settings. (you should use the carry over and the map and screen at your choice.) I trying and that will works perfectly if you put the right setting, that usefull for me to open certain shutters at outside a dungeons/mini dungeons to get certain keys to open your dungeon.



#3 MarinaraSauce

MarinaraSauce

    Magus

  • Members
  • Real Name:Grant
  • Location:New York

Posted 05 March 2017 - 08:41 PM

I think you not need the scripts for that. You can just put the secret flag on the boss door/blocks and while you got the Triforce piece you can put an invisible tile on a cutscene(if you use a cutscene) somewhere and set up all your settings. (you should use the carry over and the map and screen at your choice.) I trying and that will works perfectly if you put the right setting, that usefull for me to open certain shutters at outside a dungeons/mini dungeons to get certain keys to open your dungeon.

I don't know if I'm understanding what you're saying, but I don't believe secret combos change door tiles, so I don't think that would work.



#4 ShadowTiger

ShadowTiger

    The Doctor Is In

  • Members

Posted 06 March 2017 - 09:25 AM

It's a bit rare that I'll have a "Dungeon" style Dmap these days; or at least one that's 100% "Dungeon" style screens. There are MAJOR differences between screens designated "Interior" and screens designated "Dungeon."

In Interior:
- You can't really use the F6 Door Dialogue to place doors automatically. Walls and doors, maybe, but not shutters, locked doors, or boss doors.
- Secrets can be permanent. This is major.
- No invisible one or two tile borders on the edges of the screen. They're freely walkable.

In Dungeons:
- All secrets are always temporary. Any recurring secrets must be done via either script (I don't even know if this is true. It probably is.) or via an elaborate "Boss event" sort of trick that was used in 1.92 way back when.
- Doors work. Locked doors don't even have to be lock block combos. They can just be regular, boring ol' unwalkable combos that look like locked doors, and as long as they're set to "Locked Door" or "Boss Lock" they'll work as their description.

So here's what I would do in this case. You don't need scripting. But you do need to utilize the concepts I listed above. Like a Ninja.

On every screen where there is a lock or door you want to close as a result of this request, make sure there are no screen secrets. This is critical to the success of this, because this trick will use the screen's secrets for itself.

On the screen where you get the Triforce (whatever it is) and on every screen where there's a door you want relocked, press F9 and in the upper-left corner of that first pane (The left tab) choose Interior Style room. That way the secrets can be permanent.

On the screen with the triforce, put the floor around the triforce on layer 1 or 2, then put Step-> Secrets (Permanent) or whatever it's called. I'm not worried about the player stepping two inches in front of the Triforce and then walking back through the doors. Either that, or lock the player in so they can't leave, and place a warp pad behind the Triforce to let the player leave. Then again, they can't come back in because it's now locked, so it doesn't really matter. Good.

On that same screen with the triforce, go to the 4th tab of the screen flags dialogue (F9) and this is where the fun begins. We're going to make a "loop" of screens whose secrets will be triggered. If you have more than one door that will be locked/shuttered as a result of getting the Triforce, then we have to set more than one of these. Set the "Next" Map and Screen to the first screen where a door will lock. It's not a Dmap number, but a Map number.

If you have no more doors to lock, you're good to go for that. But if you do have more than one door to lock, go to the screen that you just set the "Next" thing for, and set the next screen even after that on that screen.

So, from the Triforce room, set the screen with Lock #1, then from Lock #1's screen, set the map/screen for the screen with lock #2, and so on.

Then on each screen, making sure it's set to Interior style room, set the screen's secrets and secret flags. Text them with preview mode (Press "x" then "s") and if it looks good, test it out in ZC.

The complication here is that you can't have Shutters on the screen at all if there are secrets, except via clever use of combo cycling and "Step->Next" and "Step->Next(Copycat)" combos.

That should do it. I make it sound more complex than it is.

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

I'll summarize.
  • Set all screens involved in this to Interior Style, including the Triforce room.
  • Hide Secret-Trigger(Perm) combos beneath the Triforce all around it.
  • Link the Triforce room (no pun intended) to the first door, then from the first door to the second door, etc.
  • Set secret combos where the door is a shutter.

  • Avaro and MarinaraSauce like this

#5 Evan20000

Evan20000

    P͏҉ę͟w͜� ̢͝!

  • Members
  • Real Name:B̵̴̡̕a҉̵̷ņ̢͘͢͜n̷̷ę́͢d̢̨͟͞
  • Location:B̕҉̶͘͝a̶̵҉͝ǹ̵̛͘n̵e̸͜͜͢d҉̶

Posted 09 March 2017 - 11:07 AM

Dungeon screens also force you to walk 2 tiles forward upon entering along with having arbitrary 2 tile barriers on the edges that enemies can't walk on, also the screen-edge that kills projectiles behaves a bit differently. Doors are really the only appealing selling point to using Dungeon screens, which to be quite honest, is worth just using interiors and replacing them with scripted shutters so you don't have to worry about all the silly other things that happen on dungeon screens.
  • Omega likes this

#6 Timelord

Timelord

    The Timelord

  • Banned
  • Location:Prydon Academy

Posted 09 March 2017 - 12:44 PM

void ChangeBossDoors(int doortype){
	for ( int q = 0; q < 4; q++ ) {
		if ( Screen->Door[q] == D_BOSSLOCKED ) {
			Screen->Door[q] = doortype;
		}
	}
}

void ChangeBossLocks(int doortype){
	if ( if(Game->LItems[Game->GetCurLevel()]&LI_TRIFORCE) ) {
		ChangeBossDoors(doortype);
		ChangeBossLockBLocks();
	}
}

void ChangeBossLockBLocks(){
	for ( int q = 0; q < 176; q++ ) {
		if ( Screen->ComboT[q] == CT_BOSSLOCKBLOCK || Screen->ComboT[q] == CT_BOSSLOCKBLOCK2 ) {
			Screen->ComboT[q] = 0; Screen->ComboD[q]++;
		}
	}
}

global script example{
	void run(){
		while(true){
			ChangeBossLocks(D_BOSSUNLOCKED);
			Waitdraw();
			Waitframe();
		}
	}
}
I'm not sure why a more convoluted approach is desirable for this, at all. The above code should do what the OP wants; automatically unlocking boss doors and lock blocks when the player has Triforce for a given level in inventory.

This will only affect doors in Dungeon DMaps. You can affect doors in other DMap types similarly to lockblocks.

Edited by ZoriaRPG, 09 March 2017 - 12:47 PM.

  • ShadowTiger likes this


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users