Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Flammable

One Linedef for Multiple tags? 🤔

Recommended Posts

Hello, i have question, is it possible to make specific linedef apply to diffrent sectors with diffrent tags?

 

88497abe21.png

 

Let me explain, i want ONE Linedef with action

116 SR Door Close Stay (fast)

to apply on 2 sectors with diffrent tags. So when i press that one switch 2 other doors with 2 diffrent tags close

There's lot's of ways doing it in UDMF, with ACS Script, but there's no way to make switch execute ACS script Doom format (or i dont know if there's way)

 

I assume that i will have to refuse my idea, and yeah, it should be in Doom format, that's the point, even if there's no way to do that i would be glad to know it from you, since it's hard to give up when i know that MAYBE it's possible.

Share this post


Link to post
8 minutes ago, Fonze said:

Switches can only be used to apply to multiple tags in UDMF, however to answer another of your problems wrt switches executing scripts in ACS, I believe this is the action you are looking for:

 

https://zdoom.org/wiki/ACS_Execute

Bruh, I'm looking to do that in Doom map format. Is there a way to Execute script in doom map format? (using switch)

 

ps, i also wonder how could i make switch to be used to apply on multiple tags in UDMF aswell.

Share this post


Link to post

I am guessing that you have another reason to need two separate tags than just the door action?  Because you can assign the same tag to as many sectors as you want.

Share this post


Link to post
4 minutes ago, ETTiNGRiNDER said:

I am guessing that you have another reason to need two separate tags than just the door action?  Because you can assign the same tag to as many sectors as you want.

Of cource there's reason for it, I'm making some kind of spawn area for every map we'r gonna play w/ friends. I mean, i will be putting it in every megawad, in every map so we always spawn in this room and then proceed to teleport. In this map i will have lot's of switches and door controlls, like vehicles rooms, gear and other, and ppl will be able to teleport back to stay afk for a while, or teleport back to drop their loot and leave the server, there's lot's of reasons for it. And this is why it's so complicated.

56cb6c7534.png

Share this post


Link to post

Yeah, no way you're doing this without ACS or UDMF. The former requires Doom-In-Hexen; the latter, UDMF.

 

Simply not possible with Doom-In-Doom.

Share this post


Link to post
3 minutes ago, Capellan said:

In vanilla this is not possible.  A line can only have one tag.

 

 

2 minutes ago, Dark Pulse said:

Yeah, no way you're doing this without ACS or UDMF. The former requires Doom-In-Hexen; the latter, UDMF.

 

Simply not possible with Doom-In-Doom.

 

Okay, is it possible to make repeatable switch to execute ACS scripts in doom map format?

 

And how to assign multiple tags to one switch in UDMF format? (because I tried and did not figured out, and did not found wiki page)

Share this post


Link to post
1 minute ago, Flammable said:

Okay, is it possible to make repeatable switch to execute ACS scripts in doom map format?

 

If by "Doom format" you mean vanilla: no.  Vanilla does not support scripts.

Share this post


Link to post
9 minutes ago, Flammable said:

Okay, is it possible to make repeatable switch to execute ACS scripts in doom map format?

You can't use ACS at all in Doom map format. You MUST use Hexen map format or UDMF. ACS is not, and never will be, an option in Doom map format.

 

9 minutes ago, Flammable said:

And how to assign multiple tags to one switch in UDMF format? (because I tried and did not figured out, and did not found wiki page)

Basically, you just set them as a string of numbers, creating a new tag each time by clicking the green + arrow (assuming GZDoom Builder).

 

This might help. It talks about 3D Floors, but the multiple tag stuff applies universally: https://www.dfdoom.com/multiple-tags-tutorial/

 

He even mentions a working example in his map for Confinement256, so I'd head there if you want something you can examine in an editor.

Share this post


Link to post
5 minutes ago, Dark Pulse said:

You can't use ACS at all in Doom map format. You MUST use Hexen map format or UDMF. ACS is not, and never will be, an option in Doom map format.

Well.. Actully there's few ways to use ACS in Doom format. You can puke it from console, you can make pickup like 

"

Actor ScriptItem5 : CustomInventory 10005
{
  Game Doom
  +COUNTITEM
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  Inventory.PickupMessage "You activated script number 5!"
  states
  {
      Spawn:
    TNT1 A -1
    Stop
 
      Pickup:
    TNT1 A 0 ACS_Execute(5, 0, 0, 0, 0)
}
}

"

or if it's ENTER or Open script it will be executed in doom map format. But yeah, i did not find any way to make ACS executed by switch, only few ways above, oh, also acs can be executed on death of actors.

 

Thanks for reply everyone. I guess i will have to find some other way to do what's planned.

Share this post


Link to post

If you don't mind my asking, is there a reason your map needs to be in Doom format specifically? Are you trying to make a map that's compatible in Vanilla?

 

I'm not sure if you can figure out a way to do it, but theoretically you could potentially have some Boom voodoo dolls or something triggering linedefs or something as a crude form of psuedo-scripting, but if everyone's running GZDoom or something that supports UDMF, there's not much real reason to stick to the Doom map format.

Share this post


Link to post
1 minute ago, Dark Pulse said:

If you don't mind my asking, is there a reason your map needs to be in Doom format specifically? Are you trying to make a map that's compatible in Vanilla?

 

I'm not sure if you can figure out a way to do it, but theoretically you could potentially have some Boom voodoo dolls or something triggering linedefs or something as a crude form of psuedo-scripting, but if everyone's running GZDoom or something that supports UDMF, there's not much real reason to stick to the Doom map format.

 

That's simple, it's the multiplayer project and at the moment I'm making spawn area. I have special map called lobby, it's start map for my server, on this map everyone get's their equipment, weapons and ammo. Yes, everytime we leave MP game i save progress by making acs scripts like this

 

#library "CCHEST2"
#include "zcommon.ACS"

Script 200 (void)
{
delay(20);
ChangeLevel("map21", 0, 0, 3);
}

script 681 (void) //                                     n1
{
GiveInventory("clip", 715);
GiveInventory("Shell", 100);
GiveInventory("RocketAmmo", 38);
GiveInventory("cell", 948);

GiveInventory("MiniHellRocketAmmo", 229);
GiveInventory("gas", 101);
GiveInventory("GrenadeAmmo", 9);

SetActorProperty(0, APROP_HEALTH, 100);
GiveInventory("GreenArmor", 1);
//GiveInventory("BlueArmor", 1);
//Giveinventory("Redarmor", 1);
//Delay(1);Giveinventory("armorbonus1", 100);
//TakeInventory("BasicArmor", 100-100);
//GiveInventory("CSGpiece", 6);
}

script 682 (void) //                                     n2
{
GiveInventory("clip", 300);
GiveInventory("Shell", 30);
GiveInventory("RocketAmmo", 38);
GiveInventory("cell", 0);

GiveInventory("MiniHellRocketAmmo", 50);
GiveInventory("gas", 15);
GiveInventory("GrenadeAmmo", 9);

SetActorProperty(0, APROP_HEALTH, 100);
//GiveInventory("GreenArmor", 1);
//GiveInventory("BlueArmor", 1);
//Giveinventory("Redarmor", 1);
//Delay(1);Giveinventory("armorbonus1", 30);
//TakeInventory("BasicArmor", 100-30);
}

script 684 (void) //                                     n3
{
GiveInventory("clip", 300);
GiveInventory("Shell", 30);
GiveInventory("RocketAmmo", 38);
GiveInventory("cell", 0);

GiveInventory("MiniHellRocketAmmo", 50);
GiveInventory("gas", 15);
GiveInventory("GrenadeAmmo", 9);

SetActorProperty(0, APROP_HEALTH, 100);
//GiveInventory("GreenArmor", 1);
//GiveInventory("BlueArmor", 1);
//Giveinventory("Redarmor", 1);
//Delay(1);Giveinventory("armorbonus1", 30);
//TakeInventory("BasicArmor", 100-30);
}

Script 1 (void) net
{
if (CheckInventory("ZXQWPOMN"))
{
ClearInventory();
ACS_Execute(400, 0, 0, 0, 0);
ACS_Execute(52, 0, 0, 0, 0);
delay(5);
GiveInventory("ZXQWPOMN", 1);
GiveInventory("RedCard", 1);
ACS_Execute(868, 0, 0, 0, 0);
//GiveInventory("ssg", 1);
GiveInventory("Cannonshotgun", 1);
TakeInventory("PortalBlock", 1);

GiveInventory("Machete", 1);
GiveInventory("Chain_saw", 1);
//GiveInventory("AK47", 1);
//GiveInventory("MP40", 1);
//GiveInventory("LMG", 1);
//GiveInventory("Hunting_ShotGun", 1);
//GiveInventory("Light_ShotGun", 1);
//GiveInventory("Autoshotgun", 1);
GiveInventory("AA12", 1);
GiveInventory("Mini_gun", 1);
//GiveInventory("Heavymachinegun", 1);
GiveInventory("Rippergun", 1);
//GiveInventory("Buzzsaw", 1);
GiveInventory("Rocket_launcher", 1);
GiveInventory("Grenade_launcher", 1);
//GiveInventory("UT2004RL", 1);
//GiveInventory("Demolisher", 1);
//GiveInventory("Plasma_Gun", 1);
//GiveInventory("Lateral_PlasmaGun", 1);
//GiveInventory("Heavy_PlasmaGun", 1);
//GiveInventory("Rail_Gun", 1)
GiveInventory("M2PlasmaRifle", 1);
GiveInventory("BIG_FUCKING_GUN", 1);
//GiveInventory("BFG10000", 1);

ACS_Execute(402, 0, 0, 0, 0);
delay(5);

ACS_Execute(681, 0, 0, 0, 0);

Door_open(66, 64);
}
}

Script 2 (void)
{
Sector_SetColor(const:2, 0, 200, 0);
ClearInventory();
ACS_Execute(400, 0, 0, 0, 0);
delay(5);

GiveInventory("Machete", 1);
//GiveInventory("Chain_saw", 1);
//GiveInventory("AK47", 1);
//GiveInventory("MP40", 1);
GiveInventory("LMG", 1);
//GiveInventory("Hunting_ShotGun", 1);
GiveInventory("Light_ShotGun", 1);
//GiveInventory("Autoshotgun", 1);
//GiveInventory("AA12", 1);
//GiveInventory("Mini_gun", 1);
//GiveInventory("Heavymachinegun", 1);
//GiveInventory("Rippergun", 1);
//GiveInventory("Buzzsaw", 1);
GiveInventory("Rocket_launcher", 1);
//GiveInventory("Grenade_launcher", 1);
//GiveInventory("UT2004RL", 1);
//GiveInventory("Demolisher", 1);
GiveInventory("Plasma_Gun", 1);
//GiveInventory("Lateral_PlasmaGun", 1);
//GiveInventory("Heavy_PlasmaGun", 1);
//GiveInventory("Rail_Gun", 1);
//GiveInventory("M2PlasmaRifle", 1);
GiveInventory("BIG_FUCKING_GUN", 1);
//GiveInventory("BFG10000", 1);

ACS_Execute(402, 0, 0, 0, 0);
delay(5);

ACS_Execute(682, 0, 0, 0, 0);

Door_open(65, 64);
}

Script 3 (void)
{
Sector_SetColor(const:3, 0, 200, 0);
ClearInventory();
ACS_Execute(400, 0, 0, 0, 0);
delay(5);

GiveInventory("Machete", 1);
//GiveInventory("Chain_saw", 1);
//GiveInventory("AK47", 1);
//GiveInventory("MP40", 1);
GiveInventory("LMG", 1);
//GiveInventory("Hunting_ShotGun", 1);
GiveInventory("Light_ShotGun", 1);
//GiveInventory("Autoshotgun", 1);
//GiveInventory("AA12", 1);
//GiveInventory("Mini_gun", 1);
//GiveInventory("Heavymachinegun", 1);
//GiveInventory("Rippergun", 1);
//GiveInventory("Buzzsaw", 1);
GiveInventory("Rocket_launcher", 1);
//GiveInventory("Grenade_launcher", 1);
//GiveInventory("UT2004RL", 1);
//GiveInventory("Demolisher", 1);
GiveInventory("Plasma_Gun", 1);
//GiveInventory("Lateral_PlasmaGun", 1);
//GiveInventory("Heavy_PlasmaGun", 1);
//GiveInventory("Rail_Gun", 1);
//GiveInventory("M2PlasmaRifle", 1);
GiveInventory("BIG_FUCKING_GUN", 1);
//GiveInventory("BFG10000", 1);

ACS_Execute(402, 0, 0, 0, 0);
delay(5);

ACS_Execute(684, 0, 0, 0, 0);

Door_open(64, 64);
}

script 685 (void) //                                     n4
{
//GiveInventory("clip", 0);
//GiveInventory("Shell", 0);
//GiveInventory("RocketAmmo", 0);
//GiveInventory("cell", 0);

//GiveInventory("MiniHellRocketAmmo", 0);
//GiveInventory("gas", 0);
//GiveInventory("GrenadeAmmo", 0);

SetActorProperty(0, APROP_HEALTH, 100);
//GiveInventory("GreenArmor", 1);
//GiveInventory("BlueArmor", 1);
//Giveinventory("Redarmor", 1);
//Delay(1);Giveinventory("armorbonus1", 100);
//TakeInventory("BasicArmor", 100-100);
}


Script 4 (void)
{
Sector_SetColor(const:1, 0, 200, 0);
ClearInventory();
ACS_Execute(400, 0, 0, 0, 0);
delay(5);

//GiveInventory("Machete", 1);
//GiveInventory("Chain_saw", 1);
//GiveInventory("AK47", 1);GiveInventory("AK47Ammo", 30);
//GiveInventory("MP40", 1);GiveInventory("MPAmmo", 32);
//GiveInventory("LMG", 1);GiveInventory("LMGAmmo", 70);
//GiveInventory("Hunting_ShotGun", 1);GiveInventory("HuntingShotgunAmmo", 6);
//GiveInventory("Light_ShotGun", 1);GiveInventory("LightShotgunAmmo", 10);
//GiveInventory("Autoshotgun", 1);GiveInventory("M1014Ammo", 7);
//GiveInventory("AA12", 1);GiveInventory("AA12Ammo", 20);
//GiveInventory("Mini_gun", 1);
//GiveInventory("Heavymachinegun", 1);GiveInventory("HMGAmmo", 100);
//GiveInventory("Rippergun", 1);
//GiveInventory("Buzzsaw", 1);GiveInventory("BuzzsawHeat", 100);
//GiveInventory("Rocket_launcher", 1);GiveInventory("RocketRounds", 6);
//GiveInventory("Grenade_launcher", 1);
//GiveInventory("UT2004RL", 1);GiveInventory("UT2004Rounds", 3);
//GiveInventory("Demolisher", 1);GiveInventory("Demolisherheat", 100);
//GiveInventory("Plasma_Gun", 1);GiveInventory("PlasmaAmmo", 50);
//GiveInventory("Lateral_PlasmaGun", 1);GiveInventory("LateralPlasmaAmmo", 50);
//GiveInventory("Heavy_PlasmaGun", 1);GiveInventory("HeavyPlasmaAmmo", 50);
//GiveInventory("Rail_Gun", 1);GiveInventory("RailgunAmmo", 50);
//GiveInventory("M2PlasmaRifle", 1);GiveInventory("M2PlasmaAmmo", 50);
//GiveInventory("BIG_FUCKING_GUN", 1);
//GiveInventory("BFG10000", 1);

ACS_Execute(402, 0, 0, 0, 0);
delay(5);

ACS_Execute(685, 0, 0, 0, 0);
}

script 686 (void) //                                     n5
{
//GiveInventory("clip", 0);
//GiveInventory("Shell", 0);
//GiveInventory("RocketAmmo", 0);
//GiveInventory("cell", 0);

//GiveInventory("MiniHellRocketAmmo", 0);
//GiveInventory("gas", 0);
//GiveInventory("GrenadeAmmo", 0);

SetActorProperty(0, APROP_HEALTH, 100);
//GiveInventory("GreenArmor", 1);
//GiveInventory("BlueArmor", 1);
//Giveinventory("Redarmor", 1);
//Delay(1);Giveinventory("armorbonus1", 100);
//TakeInventory("BasicArmor", 100-100);
}


Script 5 (void)
{
ClearInventory();
ACS_Execute(400, 0, 0, 0, 0);
delay(5);

//GiveInventory("Machete", 1);
//GiveInventory("Chain_saw", 1);
//GiveInventory("AK47", 1);GiveInventory("AK47Ammo", 30);
//GiveInventory("MP40", 1);GiveInventory("MPAmmo", 32);
//GiveInventory("LMG", 1);GiveInventory("LMGAmmo", 70);
//GiveInventory("Hunting_ShotGun", 1);GiveInventory("HuntingShotgunAmmo", 6);
//GiveInventory("Light_ShotGun", 1);GiveInventory("LightShotgunAmmo", 10);
//GiveInventory("Autoshotgun", 1);GiveInventory("M1014Ammo", 7);
//GiveInventory("AA12", 1);GiveInventory("AA12Ammo", 20);
//GiveInventory("Mini_gun", 1);
//GiveInventory("Heavymachinegun", 1);GiveInventory("HMGAmmo", 100);
//GiveInventory("Rippergun", 1);
//GiveInventory("Buzzsaw", 1);GiveInventory("BuzzsawHeat", 100);
//GiveInventory("Rocket_launcher", 1);GiveInventory("RocketRounds", 6);
//GiveInventory("Grenade_launcher", 1);
//GiveInventory("UT2004RL", 1);GiveInventory("UT2004Rounds", 3);
//GiveInventory("Demolisher", 1);GiveInventory("Demolisherheat", 100);
//GiveInventory("Plasma_Gun", 1);GiveInventory("PlasmaAmmo", 50);
//GiveInventory("Lateral_PlasmaGun", 1);GiveInventory("LateralPlasmaAmmo", 50);
//GiveInventory("Heavy_PlasmaGun", 1);GiveInventory("HeavyPlasmaAmmo", 50);
//GiveInventory("Rail_Gun", 1);GiveInventory("RailgunAmmo", 50);
//GiveInventory("M2PlasmaRifle", 1);GiveInventory("M2PlasmaAmmo", 50);
//GiveInventory("BIG_FUCKING_GUN", 1);
//GiveInventory("BFG10000", 1);

ACS_Execute(402, 0, 0, 0, 0);
delay(5);

ACS_Execute(686, 0, 0, 0, 0);
}

And i'm going to paste this spawning area to every megawad, to every map so we will spawn in this "lobby-spawn" this is how it's gonna look

aec810ae4a.png

 

In it i will have ACS executeables items, vehicles for maps where it's necessary and other. And yeah at the moment i'm playing Doom map format, and the thing is, if it's done in doom format, it can be done in udmf format aswell. That's why i want to make this spawnarea working potentially on any wad existing

Share this post


Link to post

Well, it's not possible due to the ACS really on Doom map format, I'd think, unless I'm mistaken. But obviously you could paste it into any UDMF-format WAD, and it's relatively easy to convert WADs between one map format and another (at least, going forward it is - Doom -> UDMF is trivial, UDMF -> Doom might cause some serious headaches).

 

So basically you're trying to make it compatible with all map formats, and that's why you're trying to see how to do this in Doom map format? Then yeah, you will either need to do some workarounds for it, or convert the WAD to UDMF and/or Hexen formats.

Share this post


Link to post
1 minute ago, Dark Pulse said:

Well, it's not possible due to the ACS really on Doom map format, I'd think, unless I'm mistaken. But obviously you could paste it into any UDMF-format WAD, and it's relatively easy to convert WADs between one map format and another (at least, going forward it is - Doom -> UDMF is trivial, UDMF -> Doom might cause some serious headaches).

 

So basically you're trying to make it compatible with all map formats, and that's why you're trying to see how to do this in Doom map format? Then yeah, you will either need to do some workarounds for it, or convert the WAD to UDMF and/or Hexen formats.

 

Most of maps we play is classic megawads like PL2, Scythe etc. And that's why it have to be compatible with doom format. But.

The thing i wanted was just for cool DeSiGn. I will have 2 versions of starting area for doom and udmf format maps. Tehnicaly it will work anyway, but i just wanted to make specific switch to close some door, it was all only about looking good. But i will just refuse this idea with doors and do it like it was before. Without it it will look like this

55840d2098.png

 

But it's not critical you know. I'll just have to deal with it, or make it all simplier (which is what i'm going to do)

Share this post


Link to post

Well again, if all you're doing is playing with your buddies, it's not too hard to convert those to UDMF format and just send the modified WAD to your buddies.

 

But in the end, choice is up to you.

 

It'll be less of an issue as more people begin using the power of UDMF maps, since most of the major source ports support it now.

Share this post


Link to post
2 minutes ago, Dark Pulse said:

Well again, if all you're doing is playing with your buddies, it's not too hard to convert those to UDMF format and just send the modified WAD to your buddies.

 

But in the end, choice is up to you.

 

It'll be less of an issue as more people begin using the power of UDMF maps, since most of the major source ports support it now.

 

Agreed, UDMF is great, it's bit harder then doom format, but oh boy.. so much could be done in udmf, a true masterpieces, and if i ever going to do megawad it will be done in UDMF, but right now i'm not developing map, I'm developing tool for comfortable mp game with friends :P

 

ps I'm aware of such tool like "convUDMF", i'v used few times when i very much needed udmf instead of doom, but converting ALL megawads and then testing literally every map, too much headache. Anyway it's been nice talking to you, thanks for advice. 👍

Share this post


Link to post

Yeah, anyone making a new megawad project or anything like that, unless you are aiming for a level of Vanilla compatability (or Boom-only compatability), there's really no reason to not use anything but UDMF now. The others are obviously still very useful for legacy content, but going forward, there's very little (if anything?) they can do that UDMF also can't do, or do more flexibly.

 

Good luck with your stuff. :)

Share this post


Link to post
4 hours ago, Flammable said:

I assume that i will have to refuse my idea, and yeah, it should be in Doom format

If you mean vanilla doom then the way to do this would be by stacking linedefs. You basically put 2 linedefs with different tags on top of each other while the builder you use must be set up such that it doesn't automatically merge the geometry. A trick like that has been used in plutonia, IIRC, to make wall textures scroll faster than they normally would. I don't see why this wouldn't work for your use case here. It is slightly finnicky, but if you want vanilla actions only, then this is perhaps worth a shot.

 

1 hour ago, Dark Pulse said:

Yeah, anyone making a new megawad project or anything like that, unless you are aiming for a level of Vanilla compatability (or Boom-only compatability), there's really no reason to not use anything but UDMF now.

Not to bring up another source port / format debate, but there are reasons not to use UDMF, and those reasons have nothing to do with compatibility concerns.

Share this post


Link to post
4 minutes ago, Nine Inch Heels said:

Not to bring up another source port / format debate, but there are reasons not to use UDMF, and those reasons have nothing to do with compatibility concerns.

A debate I don't have an awareness of, but yes, there are reasons to not use it.

 

Still, it is definitely something that is going to be a compelling enough reason. DECORATE certainly is making its way to other ports. But I digress.

Share this post


Link to post

@Flammable I absolutly agree that in your case it is better to use UDMF, but at the same time, it is worth clarifying that activation of several actions for one tic is quite realizable in both Doom and Boom formats. In Doom, it is limited only by the actions of W1 \ WR. Switches, as in your example, are excluded.


The whole point of the trick is to place one line with the action on top of another, by manually changing a coordinates of the vertices of these lines. How it works in GZDB (I don’t know how to do it in Slade \ DB):


1. Create 2 lines, one above the other. Assign actions to them.
2. In the vertex editing mode, copy the value of the Y coordinate (press the right buttons) of any vertex on the top line.
3. Select both vertexes of the bottom line and insert the value of the Y coordinate.


After that you will see that visually there is only one line, although if you switch to the line editing mode, you will select an area with this lines in the rectangle and you can see the message "2 linedefs selected." on the bottom GZDB panel.


It is important to remember that lines should not have connections to other lines (just in case). Also, when moving these lines there is a risk that one be erased and everything will have to be done anew. In addition, such a trick can provoke the appearance of visual glitches when using ZenNode Nodebuilder. When I faced with something like that, I switched to DeepBSP. It is much more suitable for all sorts of tricks.

 

And for boom, you also need lines with W1\ WR, but you may use swith to operate voodoo-doll conveyour. Check this examples to see how it all works:

 

MultipleActionsTrick.zip

Share this post


Link to post
9 hours ago, StormCatcher.77 said:

1. Create 2 lines, one above the other. Assign actions to them.
2. In the vertex editing mode, copy the value of the Y coordinate (press the right buttons) of any vertex on the top line.
3. Select both vertexes of the bottom line and insert the value of the Y coordinate.

 

@StormCatcher.77 Okay, this is epic! Seriously, i'm learing doom modding since 2012, and all the time i learn something new. Too bad it's not possible to do with switches (only with using fake player behind the wall), but it's the best answer at the moment, thanks for that, and for examples.

Share this post


Link to post

@Flammable

I suppose you want the switch to close both doors, but allow for one of the doors to be opened remotely at some later time, while keeping the other closed.

 

Boom also has a pass-thru setting for linedefs, which would allow you to make a switch that closes doors with two tags. You would draw two linedefs, one behind the other (separated by 1 or 2 units). Set the front linedef to pass thru and give them both different tags. You'll only see one switch, but you'll activate both. So, no need to use voodoo dolls and conveyor belts.

 

Remember to make the second switch (the one that's not supposed to be visible) linedef invisible. The pass thru setting will only work with 2 switches, from what I've been able to tell. In other words, you can't place three linedefs and have the first 2 set to pass thru. If you do that, only the first two will work.

 

If you wanted to have switches that did three (or more) different things, you'd need to use the pass thru trick combined with conveyor belt voodoo dolls, but that is a different story for another time.

Share this post


Link to post
7 hours ago, Pegleg said:

I suppose you want the switch to close both doors, but allow for one of the doors to be opened remotely at some later time, while keeping the other closed.

 

Boom also has a pass-thru setting for linedefs, which would allow you to make a switch that closes doors with two tags. You would draw two linedefs, one behind the other (separated by 1 or 2 units). Set the front linedef to pass thru and give them both different tags. You'll only see one switch, but you'll activate both. So, no need to use voodoo dolls and conveyor belts.

 

Remember to make the second switch (the one that's not supposed to be visible) linedef invisible. The pass thru setting will only work with 2 switches, from what I've been able to tell. In other words, you can't place three linedefs and have the first 2 set to pass thru. If you do that, only the first two will work.

 

If you wanted to have switches that did three (or more) different things, you'd need to use the pass thru trick combined with conveyor belt voodoo dolls, but that is a different story for another time.

 

Omg, THIS is EPIC, it actully works. I will be using this method in my starter map. Thank you 💪

 

e86138db9c.gif

 

57fe557f41.png

 

2 sectors 1 switch.rar

Edited by Flammable : missing gif

Share this post


Link to post

You can absolutely have more than 1 line with pass-through. I have had as many as 6 of them, passing the activation through to a 7th line (but usually more like 2 or 3).

 

Then again, I am not completely sure I did that in Boom. It has been long enough that I don't remember for sure, but I might have been unable to do that until I upgraded my Boom maps to Doom-in-Hexen, which have now been upgraded again to UDMF, and I now use ACS for that.

Edited by Empyre

Share this post


Link to post
11 hours ago, Flammable said:

Omg, THIS is EPIC, it actully works. I will be using this method in my starter map. Thank you 💪

 

You are quite welcome. I'm glad it worked for you and that you liked it.

 

 

@Empyre

In a Boom map, I once tried to have two pass thru lines in front of a switch and have all 3 be activatable switches. Only the first two actually activated, so I figured that was the limit for Boom (just using pass thru lines). I'm sure there's more flexibility with one of the other, more advanced, formats.

Share this post


Link to post
12 hours ago, Flammable said:

 

Omg, THIS is EPIC, it actully works. I will be using this method in my starter map. Thank you 💪

 

e86138db9c.gif

 

57fe557f41.png

 

2 sectors 1 switch.rar

Quick reminder that using this method can prove to be quite unreliable since it invites the possibility that players only activate one linedef, but not both at the same time. So, whenever you use this, make sure players can't accidentally do what I just described by placing the switch in such a way that it rules out that possibility to begin with.

Share this post


Link to post

Idea: source ports should add support for higher-numbered sector tags that are multiples of two prime numbers, where linedefs of either prime-number tag will activate that sector

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×