*ATTENTION: In order for the Action tab to appear, you have to choose either Hexen or UDMF format when you begin a new map (instead of just vanilla Doom format). UDMF is the best and most modern/flexible, so that's the one I recommend.*
@K-kof20003 жыл бұрын
Chubbz, the "Monster_Clearence2" code is not working.
@Chubzdoomer3 жыл бұрын
@@K-kof2000 How isn't it working? Are you getting an error, or is nothing happening at all, or... ?
@K-kof20003 жыл бұрын
@@Chubzdoomer There are no errors, however, nothing happens when killing all 20 monsters (the platform with the blue chip does not go down to the ground).
@Chubzdoomer3 жыл бұрын
@@K-kof2000 Oh OK, I see what's happening now. Monster_Clearance2 is a flawed example because if you kill more than one enemy with a single shot (like with the shotgun), the variable only increases by one rather than by as many monsters as you've killed. The reason for this is that the enemies have been given an action of "80 (Script Execute)," which can only ever execute a script ONCE at any given point in time. I should have instead given them an action of "226 (Script Execute Always)," which allows you to have 2+ simultaneous script calls. Most of the time if you're executing scripts, plain old Script Execute will suffice, but if you're ever dealing with killing monsters (or any situation where the same script might be called 2+ times simultaneously), you should always use Script Execute Always instead. I talk more about this in this video if you want to check it out (skip to 9m44s if the link doesn't take you to that timestamp already): kzbin.info/www/bejne/h3SlhWOQiJqroqsm44s Monster_Clearance1 is honestly a better way to handle it anyways, though, since it isn't relying on a strict count. With the Clearance2 method, adding or removing monsters would require you to always go back and change the desired killcount. Since Clearance1 is just straight up checking whether or not any monsters with a given ID are alive, all you ever have to do in that scenario is remember to tag monsters that you want to be included in the check. It's much easier and requires less maintenance.
@K-kof20003 жыл бұрын
@@Chubzdoomer Yes, I wanted to make a trap where upon entering a certain sector all the doors would close and only open after killing the demons, and the Monster_Clearence1 method would actually work better, but strangely, the door should close and prevent the player from escaping before of terminating the monsters, but closed / opened in 1 second ignoring the condition (unlike the wad provided where it worked perfectly). So I tried to change the line of code "delay (1);" for "delay (60);" to see what the reaction would be and it worked (I know it might not be the right way to go about it, but I was out of ideas). It's curious that whenever I kill a demon in that sector, a message appears on the hud warning the execution of the script 2 .. Thanks for the help, I'll take a look at the video in the link and see the series on ACS Script to better understand "Doom Programming".
@Rictorian12 жыл бұрын
Thanks Chubz! You are by far the best and most helpful tutorial person of any genre! Thanks for keeping the ZDoom community alive!
@MAZZEKAARTS14 жыл бұрын
Thanks for this tut Chubz! I love your ZDoom tuts the most, they're the most helpful as they're hard to find.
@Chubzdoomer11 жыл бұрын
If you want to give a script to every monster, regardless what its ID is, you could just use this method and select every monster on your map, then give it a 80 (Script Execute) or 225 (Script Execute Always) action along with the script number you want to be executed when that monster is killed. As far as tying scripts to monsters that are spawned/not already on the map: Immediately after the line of code that spawns the monster, use the SetThingSpecial function (see ZDoom Wiki).
@Chubzdoomer14 жыл бұрын
@DooMGo2It So what that script does, in the following order, is this: 1. Increase the count of the baronsKilled variable by 1 2. Test to see if the baronsKilled variable is greater than or equal to 2 3. If #2 is true, run a line(s) of code that opens a door and does whatever else you want it to.
@Chubzdoomer12 жыл бұрын
And to further elaborate about the differences between 80 and 226: If you use 80 (Script Execute) and kill two or more monsters with a single blast, the script tied to them will only execute ONCE, so if you have a credits system, you'll receive credit for just one kill. If you use 226, on the other hand, the script executes for as many monsters are killed, giving you credit for all kills.
@Chubzdoomer12 жыл бұрын
You can use any art program from MS Paint to Photoshop to create sprites, then import them via WAD editors like Slade or XWE. I'm not overly familiar with creating brand new weapons, items, and monsters, but those are the two basic steps.
@doomhakuo21077 жыл бұрын
I'm noticing something in the "counter" method of your 01/25/12 update. First, it works!!! Thanks dude. But there is an inconvenient. The counter only works with "the Player's kills". So, if you kill all monsters as possible, but only one dies by a "fella" the script fails because the number required of kills is not fulfilled. On the other hand, the "loop" method works fine, because what matter is that all monsters are dead, whatever if the player kill them or the guys kill themselves. Great work man!
@Chubzdoomer12 жыл бұрын
The way you accomplish this is by including a "SetThingSpecial" line of code immediately after the one that spawns the Imp. That code gives an action special to any monster or thing with the ID you specify. You could first spawn the Imp with an ID of 666, for example, then use SetThingSpecial to give monsters with an ID of 666 an action of 226 (Script Execute Always). You can use 80 (Script Execute), too, but 226 is better for monsters if you kill more than two at once.
@altazimuth14 жыл бұрын
There are 35 tics to a second. This is amazingly useful. I've wanted to do this for years (no exaggeration) Tic A time interval of 1/35 second. There are 35 tics in one second. Actor logic (state duration) is based on tics. Octic A time interval of 1/8 second. There are 8 octics in one second. Sector logic (speed and wait for crushers, doors, lifts, raising stairs, etc.) is based on octics.
@Chubzdoomer11 жыл бұрын
You could either use variables or a loop that constantly counts the number of monsters alive with a particular ID. It's not very easy to describe here in the comments section, and if you're unfamiliar with variables/loops you'll need to work with those more before you can pull it off.
@Chubzdoomer14 жыл бұрын
@bowserknight The stairs in "Doom in Hexen" format can be a little tricky. I use the "Generic_Stairs" script. Try that out and see how it works for you! You can visit the ZDoom Wiki and it tells you more about that function.
@Chubzdoomer13 жыл бұрын
@AaranBlack Hey, thanks! There's no way to alter the "Print" command to make it stay on the screen longer. I would recommend that you use "HudMessage" instead, which allows you to exert far more control over the message with characteristics like how long it stays on the screen, how long it takes to fade in, how long it takes to fade out, and much more. The ZDoom Wiki page has more information on that command.
@Chubzdoomer11 жыл бұрын
Yes. There are multiple ways to go about doing that. One way is with variables, the other is with a loop that continues indefinitely until all monsters with a given ID are killed. Visit my Personal Website (link on my channel page) then go to the Doom Files category and grab both of the "MonsterClearance" files under the Examples section. They accomplish the same feat but one uses the "variable" method, the other the "loop" method. Study them in Doom Builder and you should be good to go!
@Chubzdoomer14 жыл бұрын
@bowserknight Another way to do this without using variables is to assign a door a "Door Locked Raise" action, then give it a "Key Number" property that says "One of Each Color." This requires at least one red, blue, and yellow/orange key to open. This does, however, allow for keycards to be used. So if you pick up a blue and red skull key and a yellow key card, technically you have one of each color and can open it. If you're using both skull keys and key cards use the variable method.
@Chubzdoomer14 жыл бұрын
@Conker10382 Yes, Thing_SetSpecial is another very useful way to do it! It's really personal preference. The message I sent you shows an alternate way that's a little more complex and requires a constant loop to check if things with that new ID still exist. The SetSpecial function would probably be even better though!
@Chubzdoomer13 жыл бұрын
@msdan1024 You need to make sure you're using the "ZDoom (Doom in Hexen format)" configuration when you start a new map rather than "Doom" or "Doom 2," which don't have these extra features.
@Chubzdoomer14 жыл бұрын
@Litox1303 Yeah, that's exactly it! I'm sorry, I thought by "actions menu" at first you were just referring to the regular "Thing" properties window. In order to access their actions, you need to use the "ZDoom (Doom in Hexen format)" configuration rather than "Doom" or "Doom 2."
@bobiszack27684 жыл бұрын
Chubzdoomer has been answering our questions for 10 years. Amazing.
@Chubzdoomer4 жыл бұрын
I'm still kickin'!
@Chubzdoomer11 жыл бұрын
Immediately after the code that spawns the monster, use Thing_SetSpecial. This function assigns a special action to all Things with a particular ID. If you were to spawn an Imp with an ID of 10, for example, you could then use Thing_SetSpecial to assign an action of 226 (Script Execute Always) with an argument of 5 (script 5) for all Things with an ID of 10. This would cause script 5 to run the moment the spawned Imp is killed. Search the ZDoom Wiki for more info on Thing_SetSpecial.
@MadeOfPolygons7 жыл бұрын
Thanks dude! Now i can make Boss battles!
@Chubzdoomer12 жыл бұрын
Also, you can check out the code in my Demon Defense project if you'd like to see the ActivatorTID checks in action during weapon purchases, monster kills, etc.
@Chubzdoomer13 жыл бұрын
@joshAKAtheman Yes, just mark the walkover line as "Repeatable" in the line properties.
@Chubzdoomer13 жыл бұрын
@manodelosmagistrados The best way would be to give the monsters a unique ID when you spawn them with ACS, then use the exact same looping method as in the first "Monster Clearance" example, only replace the ID of 1 (in that code) with whichever ID you assigned the newly spawned monsters.
@Chubzdoomer14 жыл бұрын
@Conker10382 Conker, check your messages. I've included a WAD file that shows a demonstration of exactly what you were asking for, and much more including lots of information about scripting and even another example WAD dealing with an entirely different scripting scenario, but for an important concept I've not even gone over in any of my videos yet!
@Chubzdoomer12 жыл бұрын
The best way to keep credits separate for everyone is to create as many variables as you have players. If you're running a four-player map, you could have variables named p1Cash, p2Cash, p3Cash, and p4Cash. Each time someone earns or spends credits, you can run checks on ActivatorTID (the ID of the script activator) using If--Then--Else statements to determine who did what. If P1 activated the earn-credits script, increase the p1Cash variable. Else if it was P2, increase p2Cash, etc.
@Chubzdoomer11 жыл бұрын
There are several ways to go about doing it for more than one monster. Two of the easiest ways are using loops and using variables. Go to my personal website (in the "About" section of my channel), click the "Doom Files" link, then check out the two "Monster Clearance" WADs for some examples.
@Chubzdoomer14 жыл бұрын
@spicyfruitloop Make sure you press "T" to enter [T]hing mode, then when you put your cursor over the monster and it highlights, right-click to access the actions menu.
@Chubzdoomer13 жыл бұрын
@DAVID52731 When you create a new map, choose "ZDoom (Doom in Hexen format)" rather than "Doom" or "Doom 2" for your game configuration.
@Chubzdoomer14 жыл бұрын
@DooMGo2It There are a few ways to get around this, but one of the easiest ways is to use variables. At the top of your program, underneath the "zcommon.acs" section, you can type the following code: "int baronsKilled = 0;" Then, when a Baron is killed a script runs that looks sort of like this: baronsKilled++; //Increases count of baronsKilled by 1 if(baronsKilled >= 2) //If both barons are killed according to the variable's count.. { //Enter open door script here }
@Chubzdoomer14 жыл бұрын
@bowserknight Oh, OK, glad to hear it worked! I didn't know you could type "229" to do that, either.
@Chubzdoomer14 жыл бұрын
@doom3hell Yeah, sorry if I sounded like a jerk in my last comment. I definitely think it's better for you in a lot of ways to type the code yourself. It helps you learn about mistakes in terms of the language/script syntax, too, because if you copy and paste code that's already tested there's no chance of mistyping a line. That's part of the learning process - making syntax errors such as missing or extra semicolons, misaligned brackets, etc.
@Chubzdoomer14 жыл бұрын
@bowserknight There are many ways to do this. One way that I personally prefer is to create your own variables, then when the door is activated a script checks to see if all 3 variables are true. If so, the door opens. If not, it doesn't and prints a message telling you that all 3 skull keys are required. When you pick up each skull key, it calls its own separate script that turns its corresponding variable from being "false" to "true." Have you worked with variables yet?
@Chubzdoomer12 жыл бұрын
It's not possible, at least not in the same way you see here. Some maps have monster death events "hard coded" into them. If you create a brand new map set on E2M8, for example, and place a Cyberdemon anywhere in it, the moment it dies the level will end. The same thing happens with E3M8 if you place a Spider Mastermind anywhere in the level. If you want complete control over death events, one of the ZDoom-related Game Configurations is just about the only way to go.
@Chubzdoomer11 жыл бұрын
Yeah, the easiest way is to create an ENTER script with these lines of code: ClearInventory(); Give_Inventory("Fist",1);
@Chubzdoomer11 жыл бұрын
You have to choose the "ZDoom (Doom in Hexen format)" (or "ZDoom (Doom in UDMF format)") Game Configuration when you create a new map, not "Doom" or "Doom 2."
@DoomytheGuru11 жыл бұрын
Thanks a bunch Chubz!
@Chubzdoomer14 жыл бұрын
@CGJUGO80 Give every monster in the room the same unique ID (example: Every Imp, Former Human, Demon, etc. has an ID of 100). While the game is being played, create a script which contains a loop that is checked constantly to see if monsters with that ID have no health. If so, it moves on and performs the actions. If not (aka if at least ONE monster with an ID of 100 is still alive), nothing happens and the loop continues to, well, loop! LOL.
@Chubzdoomer13 жыл бұрын
@manodelosmagistrados Check the video description. I've added a link to it there! :-P
@Chubzdoomer13 жыл бұрын
@joshAKAtheman Why not make the walkover line open the door, delay for 100 tics, then close the door? You could throw all of that into a script, right? That way no matter how many times you walk over the line, it will always open the door AND close it after 100 tics. ;-)
@bowserknight14 жыл бұрын
@Chubzdoomer Okay thanks it works! That's also the point where you need to type in 229, not into the arguments as I thought before.
@rainbowsparkle3000911 жыл бұрын
well i don't know how to use Variables. can you maybe make a tutorial just maybe?
@Chubzdoomer13 жыл бұрын
@joshAKAtheman I've never created my own rain (or snow) effects before, but I would highly recommend Googling "JonnyFive's WeatherFX" for GZDoom and ZDoom. I've looked at some screenshots and it looks like he's done an excellent job creating several types of weather effects for Doom!
@Chubzdoomer13 жыл бұрын
@UpsetFisherman This requires more advanced knowledge of scripting. One way is to give all monsters the same Thing ID, then use an endless While loop (in an OPEN script that runs when the map is started) to constantly check if the number of Things with that ID is equal to 0. If so, all monsters are dead and a line of code ends the level. Otherwise, nothing occurs and the loop continues re-checking if all monsters are dead/the number of Things with the ID is 0.
@joshAKAtheman13 жыл бұрын
hey dude i was wondering if there something like rain you can do, through scripting maybe? i don't think there would be that but then again i never thought there could be ice movement effects
@joshAKAtheman13 жыл бұрын
@Chubzdoomer no no not the part where it opens the one where it closes. it's an open script
@Chubzdoomer13 жыл бұрын
@joshAKAtheman I'm sorry, I'm just not sure what you're saying. Which script is it that you want to repeat?
@Xianide14 жыл бұрын
This is usefull! I will use it in my invasion map pack for Heretic. Thanks a lot!
@GuardSoul13 жыл бұрын
@Chubzdoomer and another question: if you summon monsters with a script (map spot tutorial) how can I apply this?, I mean, kill all monsters summoned and then the plattform lowers.
@Chubzdoomer12 жыл бұрын
You're probably attempting to create maps using the Doom or Doom 2 configuration rather than ZDoom (Doom in Hexen format).
@Chubzdoomer14 жыл бұрын
@Litox1303 Have you tried clicking the "Thing" mode button instead of pressing "T"?
@bowserknight14 жыл бұрын
@Chubzdoomer Not at all :( I've read somewhere that you have to type 229 into one of the arguments but the switch still acts like it was just a regular switch that doesn't need any keys.
@reachforacreech12 жыл бұрын
chubz you have agreat understanding of doom builder and codeing. your imput to the doom comunity in very valuable .thank you
@Rictorian12 жыл бұрын
@Chubzdoomer Sorry to bother you again, but I have one more issue. When testing my map with friends on deathmatch, I noticed that credits earned, and spent, affect everyone. How could I keep seperate credit values? Thanks.
@Chubzdoomer14 жыл бұрын
@xSephironx Have you made sure the "print" statement is on one line and not separated into 2 lines like that?
@xXblazmodzXx10 жыл бұрын
theres no "action" button when i right click the monster in things mode. I'm using gzdoom builder
@realhorsegaming7 жыл бұрын
this is doombuilder?
@TheMarshmallowNinja6 жыл бұрын
4 years later... You need to be in Hexen or UDMF format
@Nixx19967 жыл бұрын
Great video! I have a question: How can I do some monster death events like those in Doom 1? I know that the tag 666 was used, but I don't know how to do it manually with scripts. I want to have some bars to go up when two bosses die (like when the walls go up when the 2 barons die in Doom). If I use tags the bars go up when only one boss dies. Which is the script needed to do this?
@Chubzdoomer7 жыл бұрын
If you want something to happen when more than one monster dies, you'll have to either use a While loop to see if they're still alive or keep count of how many have been killed with variables. Check out my "Monster Clearance" WADs on the following page to see examples of each technique: sites.google.com/site/chubzdoomer/doom-files
@Nixx19967 жыл бұрын
Thanks!
@ExtremelyImpossible13 жыл бұрын
Do you know how to make two-states switch? I mean the switch that, when I press the switch, it lower the specific platform (sector) and, after the platform reach the floor, it will keep at that state. And if I press the switch again, the platform will raise up and keep at original state (and I have to press the switch again if I want to lower the platform). I really want the switch to have these 2 conditions.
@dr.ferret58024 жыл бұрын
How do I add a custom effect like from this one nuke custom weapon I want to add that effect when the icon of sin dies
@Chubzdoomer4 жыл бұрын
I'm not familiar with modifying the Icon of Sin itself, but based on this thread over on the ZDoom forums it seems like a pretty complicated task: forum.zdoom.org/viewtopic.php?f=122&t=58825 If it were up to me, I'd just handle it via my own custom monster and some scripting rather than trying to modify the original Icon of Sin. There may be better ways of going about it, though.
@bowserknight14 жыл бұрын
@Chubzdoomer Hey it's me again. I created a nice map myself but now I have another problem, I want to make a switch that needs all 3 skull keys to be activated (it will make a floor raise) but I have no idea how to achieve that. Does it have anything to do with the "Arguments"? I can't find any action which says something about keys when i change it to "doom in hexen" format :/
@bowserknight14 жыл бұрын
Your vids are really helpful! This was just what I was looking for but I have another problem. If you choose the same format as you did in this video (doom in hexen), could it be that stairs work in a different way? Because I did everything right but only the first step rises, and when I switch to Doom format it works correctly.
@SpookySkeleton73812 жыл бұрын
You are my saviour, Subbed and all...
@Chubzdoomer13 жыл бұрын
@Ac1DGoD Absolutely! Check your messages.
@Chubzdoomer12 жыл бұрын
@SirJimmers Correct!
@Adrenaline4real11 жыл бұрын
this works well for me for 1 room. but say i want multiple rooms in a row and to create waves of monsters to kill in each individual section? so each door only opens once each wave is done consecutively? at the moment all doors are opening soon as monsters are dead in first section. even though i tagged each door with the respective section and tagged the monsters with their respective section and added the same script code underneath but changed the appropriate section tag.
@Chubzdoomer14 жыл бұрын
@joemamma311 Are you sure you're using Exit_Normal(0); with the "(0)" part and semicolon at the end?
@DooMGo2It14 жыл бұрын
Hey, I posted before as joemamma (my brothers YT account). I had been wondering if it were possible to tag 2 monsters to 1 script so that when they both die it will run the script. For instance, lets say I have 2 Barons guarding a door, and I tag one of them the way shown here, all I would have to do is kill the tagged Baron for the door to open leaving the other alive. Any way I can make it so that the would both have to die? Thanks.
@Tanjou214 жыл бұрын
Is there a modern tutorial for this? Cause I'm going though Doom Builder, GZDoom Builder, and Eureka and none of those even have the action tab.
@Chubzdoomer4 жыл бұрын
In order for the Action tab to appear, you have to choose either Hexen or UDMF format when you begin a new map (instead of just vanilla Doom format). UDMF is the best and most modern/flexible, so that's the one I recommend.
@Tanjou214 жыл бұрын
@@Chubzdoomer thank you so much! I was banging my head on the wall trying to figure it out
@joshAKAtheman13 жыл бұрын
@Chubzdoomer no need to be sorry, but i got a script that goes like as follows: script 1 OPEN { delay(100); Door_Close(1, 40); } Now when it closes it can be opened again by a walkover line. what to do if i wanna make it close again after every 100 tics?
@ExtremelyImpossible13 жыл бұрын
OK, nevermind. I know now how to do it. I use GetSectorFloorZ function to get current floor height and check if it is raised or not and then use if else statement together with Floor_LowerByValue and Floor_RaiseByValue function. Anyway, thanks for great tutorial videos :D
@dr.ferret58024 жыл бұрын
If I replace the monster, will the event still happen?
@Chubzdoomer4 жыл бұрын
Yeah, just as long as the monster is still assigned the Script Execute action.
@Rictorian12 жыл бұрын
@Chubzdoomer I have an issue, could you help? I have a script that spawns imps from map spots. I need a way to have it so that if you were to kill it, you would gain credits. I tried putting a credit gaining script on a map spot, but it failed. Any ideas? Thanks.
@DJZmade5 жыл бұрын
What about when u dont want the door to open unless 2 enemies that are in the room are killed?
@assassin13213211 жыл бұрын
sry but i got another question :D how do i change monster triggers. I mean i want to change mob health when it get spawned
@turtlepig13 жыл бұрын
Okay, I was wondering if you knew a script that when all monsters are killed, it ends the level? It would be a big help.
@joshAKAtheman13 жыл бұрын
can't you do this in doom format too? i mean in the original doom there were death events at the end of each episode.
@DoomytheGuru11 жыл бұрын
Is this possible to do with multiple enemies for one event? What I mean is after killing the enemies an event will be triggered. For Example: After killing two Barons, a door will open. Any help?
@CGJUGO8014 жыл бұрын
how would you make this so every monster in the room dies and this happens..as apposed to one? Thanks Chub
@kingcoins33915 жыл бұрын
doom 2 format?
@Chubzdoomer5 жыл бұрын
UDMF format is the best. I think I used Hexen format here, but UDMF offers what Hexen does and much more.
@666mrsunshine11 жыл бұрын
Can you make this so that it only works of the player kills the monster, not if it dies out of stupidity, (i.e. Telefrags/Crushers)?
@DanTheBoogie11 жыл бұрын
Awesome, I'll try that. Thanks for replying!
@DanTheBoogie11 жыл бұрын
How would one make it so that SPAWNED monsters can do something like that?
@fadyserhan95378 жыл бұрын
*HELP* I'm working on a map in doom2 format....How can I change it to the UDMF format? Thanks
@Chubzdoomer8 жыл бұрын
There are two methods you can try. I suggest making a backup of your WAD before attempting them, though. Method 1: 1. Open your map in GZDoom Builder (or Doom Builder, but I highly recommend GZDB instead) 2. Click Edit -> Map Options 3. Change Game Configuration to UDMF After performing this method, you'll have to manually change all of the line actions to their UDMF counterparts since the action numbers vary from vanilla DOOM to UDMF. If that doesn't work... Method 2: 1. Open your map in GZDoom Builder 2. Go into Line or Sector mode and select your entire map (every single line or sector) 3. Press CTRL + C 4. Start a new UDMF map in GZDoom Builder 5. Press CTRL + V 6. Repeat steps 1-6, only next time do Thing mode and grab all the things instead of lines/sectors In this method, you're basically just copying and pasting all of your lines/sectors and things from the old vanilla format to a brand new map using UDMF format. It's more tedious and you have to make sure you position your Things exactly where they were in the original version when you paste them in, but it should work if the first method fails you.
@fadyserhan95378 жыл бұрын
Hi both methods worked....but when I do method 1 for example I get this error: *Map has no vertices* but when I added a random sector I get into the map but with much missing things. what should I do now? must I draw the sectorrs again??? then..whats the point from copying the map if I must draw the sectors again? Thank you for fast response
@Chubzdoomer8 жыл бұрын
Fady Serhan The first method can screw things up sometimes, so if you run into that I recommend just doing method 2 instead.
@joshAKAtheman13 жыл бұрын
hey is it possible for scripts to be repeatable? i got a delay(100) Door_Close(1, 40) and then a walkover line triggers it to be open again. so is it possible for that script to be repeatable?
@SecretFinder5213 жыл бұрын
Isn't there a way to make this effect in normal Doom 2 configuration?
@RavitexOfficial6 жыл бұрын
im doing this with multiple monsters (i just noticed your replies in this comments section which state exactly what i'm doing) and the whole thing is super unpredictable: sometimes it works properly, sometimes it doesn't, no idea why though. maybe its about the monsters themselves? e.g it works every time when im using barons of hell as a trigger but barely ever does anything when i use former humans.
@Chubzdoomer6 жыл бұрын
Instead of using 80 (Script Execute), try using 226 (Script Execute Always). The regular version will only execute a script once if you kill multiple enemies with a single shot (like several Former Humans with a single shotgun blast). I'm assuming this is what's causing your problem. If you kill two with one shot, for example, the script will only run one time. If you were using "Script Execute Always," however, the script would run twice (one per death)!
@RavitexOfficial6 жыл бұрын
neat, ill be sure to try that!
@assassin13213211 жыл бұрын
how can i apply a script to all monsters however the id ? And how can i apply a script to a monster that i have spawned by a function ?
@bowserknight14 жыл бұрын
@Chubzdoomer Ok I'll see what Wiki says about it.
@KokoRicky12 жыл бұрын
But there are monster death events in vanilla Doom. How do you program that in Doom Builder?
@doom3hell14 жыл бұрын
@Chubzdoomer yeh but as i said u dont have to do it, and plus i said it will make scriptin a little more faster for me and some other people,but since u dont want to maybe i will just.......u know do what u told me (listen and copy) =)
@GuardSoul13 жыл бұрын
@Chubzdoomer understood! thanks for everything!
@ElderDragonBrasil3 жыл бұрын
Hi, man! I have a door that must be open only if the player kills a Spider Mastermind and a Cyberdemon (Medium/Hard) or 2 Barons of Hell (easy). What I have to do, to make the Script execute the openDoor only if the both monsters are killed?
@Chubzdoomer3 жыл бұрын
You can either set up a loop that runs endlessly while the monsters are alive (via the ThingCount function) or set up a variable that increases by 1 each time they're killed, followed by a check to see whether or not it's equal to (and/or greater than) 2. I personally prefer the first method since it's more flexible. Here are fully commented examples of both methods: www.mediafire.com/file/02exhjo9wivb4ft/MonsterClearance_1.wad/file www.mediafire.com/file/12za780sysibtkp/MonsterClearance_2.wad/file You should also use action #226 (Script Execute Always) instead of 80 (Script Execute) if you're dealing with situations where there are several enemies with the same script tied to them. The reason for this is that if you kill several enemies with a single shot (an example being 2+ Imps with one Super Shotgun blast), #80 will only ever run the script ONCE at a time, whereas #226 will run the script as many times as the number of enemies you killed. I explain and demonstrate this in the following video: kzbin.info/www/bejne/h3SlhWOQiJqroqs (Skip to 9:44 in that video) In the example files above I used #80, so the second method (which relies on a strict counter) can be "broken" easily by killing 2+ Zombiemen with a single shotgun blast. Once all the enemies are dead the platform won't lower, because the script didn't correctly count the multikills. If you switch all the enemies to have action #226 instead, it will never break because the multkills will always be counted correctly.
@artorias-2412 жыл бұрын
I got a question. When I go in my things mode and click on any of the enemies, it only shows the properties bar, there is no "action". Why? I have the newest version. Can anyone help me out here? My comp is Windows XP btw.
@Thegoodgamerpro72jdq2 жыл бұрын
how do you make it so that if you kill a specific amount of enemies it will do an action (Like in Phobos Anomaly, when you kill the 2 barons in any order they will lower the walls)
@Chubzdoomer2 жыл бұрын
If you're using scripting, then I just recently made a tutorial that covers that exact topic: kzbin.info/www/bejne/q6fCe3SvgpmFldk
@JackJack-zo4zt4 жыл бұрын
How do you script monster death events for spawned monsters? I would venture a Kill script, but it says it needs a special flag to activate. So do I have to add that flag to the actor's DECORATE to utilize a Kill script, or is there another way?
@Chubzdoomer4 жыл бұрын
Thankfully it's pretty easy to do. I explain it starting at 16:25 in this video: kzbin.info/www/bejne/h3SlhWOQiJqroqs
@666mrsunshine11 жыл бұрын
Can you make this so that it only works when a player kills the monster
@goldengemgames29394 жыл бұрын
I have a case where you need to kill 8 imps. What do you do when more than 1 enemy must die?
@Chubzdoomer4 жыл бұрын
You can either set up a loop that runs endlessly while the Imps are alive (via the ThingCount function) or set up a variable that increases by 1 each time an Imp is killed, followed by a check to see whether or not it's equal to (and/or greater than) 8. I personally prefer the first method since it's more flexible. The second method will "break" if you add or remove an enemy and forget to increase or decrease the desired count, for example, whereas with the loop you aren't entering a concrete number. Nonetheless, here are fully commented examples of both methods: www.mediafire.com/file/02exhjo9wivb4ft/MonsterClearance_1.wad/file www.mediafire.com/file/12za780sysibtkp/MonsterClearance_2.wad/file P.S. I forgot to add that you should use action #226 (Script Execute Always) instead of 80 (Script Execute) if you're dealing with situations where there are several enemies with the same script tied to them. The reason for this is that if you kill several enemies with a single shot (for example, 2+ Imps with one Super Shotgun blast), #80 will only ever run the script ONCE at a time, whereas #226 will run the script as many times as the number of enemies you killed. I explain and demonstrate this in the following video: kzbin.info/www/bejne/h3SlhWOQiJqroqs (Skip to 9:44 in that video) In the example files above I used #80, so the second method (which relies on a strict counter) can be "broken" easily by killing 2+ Zombiemen with a single shotgun blast. Once all the enemies are dead the platform won't lower, because the script didn't correctly count the multikills. If you switch all the enemies to have action #226 instead, it will never break because the multkills will always be counted correctly. P.P.S. You really should be using UDMF format. Don't be like me in this video (and the example files above) and use Hexen format. Hexen format works fine, don't get me wrong, but UDMF format is a more modern successor that renders it obsolete. Everything Hexen format does, UDMF can do--and so much more.
@virusinfection14 жыл бұрын
Idk but i don't have the action tab when i right click a monster
@Chubzdoomer4 жыл бұрын
When you start a new map, choose UDMF format (or Doom in Hexen format) under Game Configuration rather than just plain old Doom format. UDMF format is the best one to use.
@ZacharyStauffer11 жыл бұрын
How can I make a script execute on an unseen monster using a hidden sector and crusher. it works but only if I see the monster die. Like its Death message. I am making a multiplayer map and want the bfg doors to open in 5min I got the timing down I think they do 30sec dmg on normal speed so a monster with 9000 health should die in 5 minutes