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

vanilla script idea

Recommended Posts

I have never tried these myself nor will be able to for awhile. But after reading countless fourm postings and seeing youtube demos, I have two ideas for vanilla doom scripts.

1. Create a lift that is not shown on the map. Make a linedef trigger that runs through the center of the lift. Place a Voodoo doll on the linedef trigger. Tag the lift to be activated by a switch. When the lift is activated, will the doll's vertical movement activate the linedef trigger?

2. Place a voodoo doll on a ledge; half on the higher sector, half on the lower. Place a crusher behind the doll, with a barrel underneath it. Infront of the doll, place two or more linedef triggers. I have seen a video on youtube from ClassicDOOM (username) where he shoots a barrel while the player is on a ledge and the barrel explosion does no damage. I would like to know if this could work for Pseudoscripting?

Share this post


Link to post

It's possible to do this by crushing a barrel, which forces a voodoo doll horizontally, but it's unreliable as hell in my experience. There's really no other good way of ensuring horizontal motion of a voodoo in vanilla otherwise, or at least not in my knowledgeness.

Share this post


Link to post

I did read a post from esselfortium that he to encountered this problem with his WIP KDiKDiZD, and that he also found a solution that is 99% failproof by using several different crushers so that one or more of them would allways go off. However the problem with this is that you allways lost some health. But I saw a bug on a youtube video that shows when the player stands on two different sectors of two different heights and shoots a barrel at point blank range. It explodes and the player was not hurt. Although, the player also did not get pushed by the explosion radius.

Share this post


Link to post
Mechanos said:

I did read a post from esselfortium that he to encountered this problem with his WIP KDiKDiZD, and that he also found a solution that is 99% failproof by using several different crushers so that one or more of them would allways go off.

No, don't do this, it was a bad idea and it made a mess and still didn't really work.

Nuxius ended up figuring out the best solution, which is to use a floor-raise crusher instead of a ceiling one. This somehow averts the behavior that would cause barrels to sometimes turn to gibs instead of exploding, and makes the multitrigger switches 100% reliable, or at least close enough to it that we've never seen it fail yet.

Share this post


Link to post

I think it's more to do with the speed of the crusher than whether it's the floor or the ceiling that's moving...

Share this post


Link to post

Ok thanks for clearing that up. By the way, I came up with a third idea on how the pseudoscripting can be done using DeHackEd.

3. Place a modified thing next to the stair crusher with a barrel. Position it to be pushed across the linedef trigger(s) by the explosion. Using dehacked, the thing will die and transform into a player's corpse. The transforming of one "thing" into another via being damaged with the vanilla engine has been shown possible with "The Sky may be" wad. Though it's possible that when the thing dies and becomes a player's corpse, the player will die or sustain damage as well. Correct me if I'm wrong.

Share this post


Link to post

Is the detection of a player crossing a line hard coded? What if you give some non-player object the same flags (picks up items, etc)?

EDIT: Now I'm remembering that teleport lines allow monsters and barrels to activate...what's with that?

Share this post


Link to post
Mechanos said:

3. Place a modified thing next to the stair crusher with a barrel. Position it to be pushed across the linedef trigger(s) by the explosion. Using dehacked, the thing will die and transform into a player's corpse. The transforming of one "thing" into another via being damaged with the vanilla engine has been shown possible with "The Sky may be" wad. Though it's possible that when the thing dies and becomes a player's corpse, the player will die or sustain damage as well. Correct me if I'm wrong.


That's a very clever idea, but unfortunately DeHackEd isn't powerful enough for it to work. It's easy to make monsters that appear to change into other monsters with DeHackEd, simply by jumbling around a monster's frames and sprites, and it's also possible to make monsters that are reborn as another monster once killed - this is often done by modifying a zombieman to make the monster's first form, and modifying a clip to make the second - when the zombie dies, it "drops" the "clip" which is then a formidable opponent instead of ammunition. However, there's no option in DeHackEd's "bits box" that lets you set things to be able to activate all walkover linedefs, and there's no way that a thing could suddenly gain such an attribute when dying (most of a thing's "bits" never change during gameplay) and there's no way that you could set a monster to "drop" a player thing when it dies - only items that are already dropped by monsters can be modified into these "second forms."

Your best bets for vanilla scripting are still to use a barrel explosion to push a voodoo doll (which will damage the player) or to make a script out of walkover lines that can be activated by monsters. A script with a voodoo doll can be extended by putting the voodoo doll at the top of a tall flight of stairs so he'll keep bouncing down stairs and preserve his momentum. A monster-driven script would be made by cramming a monster into a hidden hallway with your walkover triggers, and could be activated simply by alerting the monster. However, there are only two non-teleport walkover lines that monsters can activate. One opens a door, another lowers a lift (I forget the exact numbers). Any script based off of these two functions would have to be pretty creative.

If you want full-featured vanilla scripting, make your map for Heretic. :)

Share this post


Link to post

What about the idea for having the voodoo doll on the ledge when the barrel explodes? Look on youtube for " Exploding barrel is harmless in Final DOOM." There is also a video by the same user showing a revenant missile hitting a barrel and all it does is get pushed but does not detonate. I am wondering if this bug can be exploited? Also, the trick used in Plutonia experiment to utilize linedef triggers to pick up items when a doll on a lift moves down onto the item, I was wondering if the same could work to activate linedef triggers?

Share this post


Link to post
Mechanos said:

What about the idea for having the voodoo doll on the ledge when the barrel explodes? Look on youtube for " Exploding barrel is harmless in Final DOOM." There is also a video by the same user showing a revenant missile hitting a barrel and all it does is get pushed but does not detonate. I am wondering if this bug can be exploited?


If a voodoo doll isn't damaged by a barrel explosion, it won't be pushed either.

There is a one-in-eight chance that a revenant missile won't detonate a barrel. Barrels have 20 hit points, revenant missiles do (random number from 1 to 8)*10 damage.

Share this post


Link to post

Then I guess that the last option to try is the first idea that I proposed with the lift. If not, then I guess the only thing to do is to place a health vial infront of the doll's path. Dehacked can be used to remove the text that would otherwise show up. It would make it abit more convincing anyway.

Share this post


Link to post

The barrel sector has a floor lower than the doll sector. The doll is just in contact with the border of the barrel sector.

The barrel sector contains an invulnerability sphere that somewhat overlaps with the doll sector. When the barrel sector raises, the doll picks the invul up. Then the barrel detonates and pushes the doll without inflicting damage.

The invul duration is dehacked to last just a few tics.

The invul colormap is changed to be the same colormap as the one for the brightness level in the sector were the player triggers the script.

(If the doll cannot pick up the invul sphere this way, instead place it at the place the player will go to trigger the script. Give it an invisible all-transparent sprite replacement, and change its pickup message into an empty string.)


That said; I don't really get the point of vanilla scripting. When I load a vanilla format map, it's because I want a simpler gameplay, where actions have immediately evident consequences; and picking up a health bonus in a secret area will not turn the floor into lava, block all exits, and summon four cyberdemons around me. If I want complicated scripted sequences, I have a vast choice of ZDoom maps...

Share this post


Link to post
Gez said:

That said; I don't really get the point of vanilla scripting. When I load a vanilla format map, it's because I want a simpler gameplay, where actions have immediately evident consequences; and picking up a health bonus in a secret area will not turn the floor into lava, block all exits, and summon four cyberdemons around me. If I want complicated scripted sequences, I have a vast choice of ZDoom maps...



QFT.

That's the same reason I play vanilla maps. All this hacky stuff completely negates the meaning people associate with them.

Share this post


Link to post

Well it's mostly to do something really incredible within the limits of the original engine. To really do vanilla scripting without damaging the player would be an acomplishment. I just remembered that the lift idea may not work at all. Because linedef triggers only work when the player crosses it in only one certain direction. But it would be cool if it could. Guess I'll just suffice with the way esselfortium suggested.

Share this post


Link to post
Mechanos said:

Then I guess that the last option to try is the first idea that I proposed with the lift.


Linedefs are only triggered by horizontal movement.

Gez said:

[idea]


Nice! Now we're getting somewhere!

Gez said:

That said; I don't really get the point of vanilla scripting. When I load a vanilla format map, it's because I want a simpler gameplay, where actions have immediately evident consequences; and picking up a health bonus in a secret area will not turn the floor into lava, block all exits, and summon four cyberdemons around me. If I want complicated scripted sequences, I have a vast choice of ZDoom maps...


With all the port features that mappers can use nowadays, there's obviously no need to try to shoehorn scripts into vanilla Doom, or into Boom for that matter. But, lots of people do anyway. Why? Because it's fun! It's an exercise in creativity in the mapper, and an audience can later appreciate the resulting maps in the same way that you would appreciate an internal combustion engine made out of Lego bricks.

Share this post


Link to post
Graf Zahl said:

All this hacky stuff completely negates the meaning people associate with them.


I disagree. One of the reasons I editing Doom is to see all of the tricks that can be coaxed out of such a dated engine, and vanilla is the most dated of them all and therefore the most interesting for me to edit and hack. Honestly, the old "shooting a monster and finding a switch" can get boring after a few maps, and I love it when vanilla mappers find more creative ways to make you kill that monster and activate that switch.

Share this post


Link to post

I agree with bgraybr about creativity. I am planning to create a megawad that utilizes several tricks that have never before been used in a Vanilla DOOM wad. I'll just use the crusher and barrel trick with a health vial placed infront of the doll. A segmented linedef trigger will be used so when the voodoo doll passes the line, it'll activate all of them at once. Dehacked will be used to display an empty text string when the doll picks up the vial. Also, the colormap flashes that'll appear when the switch is activated will kinda look like the switch made a violent electrical pulse.

Share this post


Link to post
bgraybr said:

I disagree. One of the reasons I editing Doom is to see all of the tricks that can be coaxed out of such a dated engine, and vanilla is the most dated of them all and therefore the most interesting for me to edit and hack. Honestly, the old "shooting a monster and finding a switch" can get boring after a few maps, and I love it when vanilla mappers find more creative ways to make you kill that monster and activate that switch.



The problem being that this creativity is not in exploiting the engine's legitimate features but its glitches. So ultimately you are setting up your mod to fail on some source ports that for whatever reason made changes to the dirty code you plan to abuse.

Ultimately it may be fun for you to figure this out but I have often found that mods that try to squeese the last glitch dry are not fun to play because they are not robust enough and tend to revolve around gimmicks as opposed to solid gameplay. Which is not surprising if setting up the hacks is the major focus on them.

Share this post


Link to post

I just came up with another idea. I'm not sure if this will work, but it is a long shot. Using Dehacked, what if I can modify a second player start and use that as a voodoo doll. It gets hurt and you don't.

Share this post


Link to post
Graf Zahl said:

The problem being that this creativity is not in exploiting the engine's legitimate features but its glitches. So ultimately you are setting up your mod to fail on some source ports that for whatever reason made changes to the dirty code you plan to abuse.


You can always say that your mod requires vanilla Doom, its the same as saying "this mod requires GZdoom" or something. If they play it in the wrong source port, that's their fault.


Ultimately it may be fun for you to figure this out but I have often found that mods that try to squeese the last glitch dry are not fun to play because they are not robust enough and tend to revolve around gimmicks as opposed to solid gameplay. Which is not surprising if setting up the hacks is the major focus on them.


The same can be said for any mod that cares about looks or atmosphere in general... but its definitely possible to focus on more than one aspect of mapping at a time. There are plenty of mods that have good gameplay and good visuals and hacks. Even if the gameplay is a little gimmicky I can't imagine it being made unbearable within the harsh constraints of vanilla.

Besides, most of the exploitable glitches in vanilla are visual and can't affect gameplay that much. Think of simple tricks like the floating crate from SID, and for anything gameplay related think of some of the cool tricks from old total conversions.

Share this post


Link to post

We all have our different preferences in what we want in a mod/wad. Some people like to use modern source ports, others like to stick with the original. (BTW, rest in peace Espi. We'll miss you).

Share this post


Link to post
Creaphis said:

It's an exercise in creativity in the mapper, and an audience can later appreciate the resulting maps in the same way that you would appreciate an internal combustion engine made out of Lego bricks.

With a gas mask to protect against the noxious plastic fumes? :p

I can get the creativity argument, but maps built like this are then curiosities (like the binary ripple counter map) rather than stuff that's meant to be played.

Share this post


Link to post
Mechanos said:

I just came up with another idea. I'm not sure if this will work, but it is a long shot. Using Dehacked, what if I can modify a second player start and use that as a voodoo doll. It gets hurt and you don't.


You can't Dehacked player starts. And you can't do anything in Dehacked to modify a voodoo doll without modifying a player. Internally both are exactly the same with exactly the same properties. The only difference is that the player's movement actions don't reach the voodoo doll.

bgraybr said:

You can always say that your mod requires vanilla Doom, its the same as saying "this mod requires GZdoom" or something. If they play it in the wrong source port, that's their fault.



No. Aside from a handful of people there's nobody who would voluntarily subject himself to blur-o-vision. The reactions at this forum may give a false impression because the number of such people is disproportiinately high at this forum. You can be dead certain that a map that requires an engine without high resolution video modes won't be particularly popular.

Share this post


Link to post

Well then there is one last new option. Maybe it is possible to play the wad in coop. The actual player (real human playing on the computer) connects to something like a "Dummy" player online. The first-player actor is controlled by the real player, and the second-player actor acts as the voodoo doll. I know this sounds really dumb, but in theory it could work. Otherwise, I will just have the pseudoscript effects done by the way Esselfortium uses in KDiKDiZD.

Share this post


Link to post

Witb vanilla Doom you need something to run the second copy. This is a surefire way to ensure that nobody will play your map at all. Even if it is doable which I doubt I can't imagine the average player willing to bother with such a setup. Most are even too computer illiterate to even understand it.

Share this post


Link to post

Good point. So I guess that the best way is Essel's way. Thank you for clearing up any misconceptions I had. I really learned alot.

Share this post


Link to post
Mechanos said:

Good point. So I guess that the best way is Essel's way. Thank you for clearing up any misconceptions I had. I really learned alot.

It's Nuxius's; I don't want to steal the credit. :P

Graf Zahl said:

No. Aside from a handful of people there's nobody who would voluntarily subject himself to blur-o-vision. The reactions at this forum may give a false impression because the number of such people is disproportiinately high at this forum. You can be dead certain that a map that requires an engine without high resolution video modes won't be particularly popular.

All the weird shit in KDiKDiZD works in PrBoom-Plus and Eternity as far as I've tested, so there are at least two ports with a high enough level of compatibility with vanilla feature abuse to run such maps in high resolution.

Share this post


Link to post

Gez said:
The invul duration is dehacked to last just a few tics.

Whoa, Gez has DeHackEd v4.0 ready to be released, with a chock-full of new features!

Share this post


Link to post

lols

Is it possible to dehacked a thing so that it constantly shoots in one direction immediately when the map starts? I tried screwing with Toke's idea in this wad but the thing has to hear or see the player before it starts shooting, and it keeps its target on the player. If it could constantly shoot in one direction (and not target anything), its shots could push the voodoo doll over lines and you could raise floors to block the shots when you need to (and maybe modify a monster's projectiles so that the projectile damage is zero, so it doesn't hurt the voodoo doll?)

Share this post


Link to post
TimeOfDeath said:

lols

Is it possible to dehacked a thing so that it constantly shoots in one direction immediately when the map starts? I tried screwing with Toke's idea in this wad but the thing has to hear or see the player before it starts shooting, and it keeps its target on the player. If it could constantly shoot in one direction (and not target anything), its shots could push the voodoo doll over lines and you could raise floors to block the shots when you need to (and maybe modify a monster's projectiles so that the projectile damage is zero, so it doesn't hurt the voodoo doll?)

This was one of the early things I tried for KDiKDiZD. It doesn't work at all. Here's why:

1) Unless you're using iddqd or an invulnerability powerup, the amount that you're moved by a projectile impact is directly related to the amount of damage you take from it. No damage = no movement.

2) Projectiles being fired without a target results in undefined behavior. In the version of chocodoom I tried, if I remember correctly they fired as though the 'monster' was spinning around in circles and shooting. In other ports, they either didn't fire at all or had other errors.

A dehacked-made object that A_Explodes every tic is the best way I've come up with for situations where a single barrel explosion can't be used to create the needed behavior. Open and close a door (or an instant-raise/lower floor, or whatever) to allow the explosions to affect the voodoo doll. Damage is, of course, dealt just like it would be from a barrel explosion.

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
×