Marlamir Posted August 31, 2019 Ooh, so the line tag is the right way, shoot i forget about that feature in udmf. Thank you very much @Kappes Buur 0 Share this post Link to post
Gez Posted August 31, 2019 The trick is that in Hexen format, the line's own ID is a parameter of the function, while in UDMF it is a separate value. Each of the lines making the portal must have its own ID, and point to the other. 1 Share this post Link to post
Marlamir Posted August 31, 2019 Okay Gez, thank you very much. I'l keep that in mind. 0 Share this post Link to post
Rince-wind Posted September 4, 2019 Does GZDoom Builder support Heretic and Hexen as Game Configurations? The only configuration I can choose is Doom 2 in different formats. 0 Share this post Link to post
Gez Posted September 4, 2019 (edited) Yes of course. To prevent slow-downs when starting the application, most configs are moved to an "Other Games" subfolder where the program ignores them. So just move the configs you don't use in that folder, and move the configs you want to use out of it. Oh, and apparently there's a step where you have to enable the game in your preferences. https://github.com/jewalky/GZDoom-Builder-Bugfix/tree/master/Build/Configurations/Other Games 0 Share this post Link to post
ZombiJambi Posted September 5, 2019 ==Question== I've been tweaking this Metroid Doom mod, and I want to make certain enemies drop health and missile ammo, but only when Samus' health/missiles are less than full. The closest I got was getting an if/else statement in the enemy's Death state: Quote Death: ZOOM H 5 { if (random(0,100) <80) { A_SpawnItem ("MedHealth",0,0); } else { A_SpawnItem ("RocketAmmo",0,0); } } ZOOM I 5 A_Scream ZOOM J 5 A_NoBlocking ZOOM K 5 POSS L -1 Stop But this is just random chance, without regard to Samus' health. Is there something I can use, like "if(PlayerHeath < 100)"? Thanks! 0 Share this post Link to post
Mk7_Centipede Posted September 6, 2019 I mean, what is to stop doomers from making all-custom-content-doom mod and releasing it as a paid app? It is just something on my mind. I see btsx ep1 is the shareware episode. but so is episode 2. and i assume episode 3 will be shareware. Granted, it uses id resources. And I guess so does Supplice. But I cannot help but look at these projects an think... could Doom wads/mods sell as iphone apps? I mean, assuming someone manages to completely replace all the sprites and textures, could this not be a cash product? Im all for loving this community, but it seems like the next logical step is for designers to get paid. And with all the retro love and DOOM fondness, this seems like a real possibility imo. 0 Share this post Link to post
Kappes Buur Posted September 6, 2019 4 hours ago, Mk7_Centipede said: I mean, what is to stop doomers from making all-custom-content-doom mod and releasing it as a paid app? etc do a search for License 1 Share this post Link to post
Dragonfly Posted September 6, 2019 There's already people making commercial games in doom source ports. https://store.steampowered.com/app/817220/The_Forestale/ https://store.steampowered.com/app/1072150/Hedon/ https://store.steampowered.com/app/321270/UNLOVED/ 2 Share this post Link to post
Gez Posted September 6, 2019 (edited) 18 hours ago, ZombiJambi said: Is there something I can use, like "if(PlayerHeath < 100)"? Yes. However, it's a bit complex to bring use in DECORATE. It'd be simpler to do in ZScript, but if you don't want to convert the code, here's what you can do. I'll assume it's just for single-player. Multiplayer makes things more complex. First, take a look at DECORATE expressions on the ZDoom wiki. What you'll want is CallACS. This allows you to run a script and use the value it returns, so you can create a script named PlayerHealth() and then use it with an expression like "if(CallACS(PlayerHeath()) < 100)". You can also do the same for PlayerMissiles() or whatever. On the ACS side, you'll need to have three scripts. The first will be there just to give the player a TID, so that the other scripts can find it. Something like this should work: Script "Init" ENTER { Thing_ChangeTID(0, 1337); } Then you can do the info scripts. I haven't run them but I think they should. I'm using GetActorProperty for health, and CheckActorInventory for missiles. Script "PlayerHealth" (void) { return GetActorProperty(1337, APROP_Health); } Script "PlayerMissiles" (void) { return CheckActorInventory(1337, "MetroidMissile"); } I don't know how the missiles are actually named, replace "MetroidMissile" with the class name actually used in the mod. Finally, you'll want your scripts to be actually loaded so that the game can find them. If the Metroid Doom mod does not already have a script library, you'll need to make one so as to put these scripts in it. I'll let you read the wiki article on libraries to find out how it works. Hopefully it all works. 1 Share this post Link to post
ZombiJambi Posted September 6, 2019 (edited) 4 hours ago, Gez said: Yes. However, it's a bit complex to bring use in DECORATE. It'd be simpler to do in ZScript, but if you don't want to convert the code, here's what you can do. I'll assume it's just for single-player. Multiplayer makes things more complex. First, take a look at DECORATE expressions on the ZDoom wiki. What you'll want is CallACS. This allows you to run a script and use the value it returns, so you can create a script named PlayerHealth() and then use it with an expression like "if(CallACS(PlayerHeath()) < 100)". You can also do the same for PlayerMissiles() or whatever. On the ACS side, you'll need to have three scripts. The first will be there just to give the player a TID, so that the other scripts can find it. Something like this should work: Script "Init" ENTER { Thing_ChangeTID(0, 1337); } Then you can do the info scripts. I haven't run them but I think they should. I'm using GetActorProperty for health, and CheckActorInventory for missiles. Script "PlayerHealth" (void) { return GetActorProperty(1337, APROP_Health); } Script "PlayerMissiles" (void) { return CheckActorInventory(1337, "MetroidMissile"); } I don't know how the missiles are actually named, replace "MetroidMissile" with the class name actually used in the mod. Finally, you'll want your scripts to be actually loaded so that the game can find them. If the Metroid Doom mod does not already have a script library, you'll need to make one so as to put these scripts in it. I'll let you read the wiki article on libraries to find out how it works. Hopefully it all works. Thank you for the response! I've entered these into the "scripts" file (I'm assuming it doesn't matter where in that file they are entered, so I put them at the top), and added the triggers to my test enemy's Death state. This is how I'm calling it: ZOOM H 5 { if (CallACS(PlayerHealth()) < 100) { A_SpawnItem ("MedHealth",0,0); } } ZOOM I 5 A_Scream ZOOM J 5 A_NoBlocking ZOOM K 5 POSS L -1 Stop If I call the function in DECORATE as you've typed it, I get an error at startup: If I enter it like this page suggests (with quotes), the game launches fine, but when I kill the enemy, I get the message: P_StartScript: Unknown script "PlayerHealth". Here's how I've entered it based on that ACS page. 0 Share this post Link to post
ZombiJambi Posted September 6, 2019 I kinda figured it out. I researched a bit, and saw that I also have to compile the scripts. So I did that, and it gave me the error that "return" can only be used in a function. So I had to use "SetReturnValue" instead within the script, and it worked! Thanks again. I know I'll have more questions later ;) 0 Share this post Link to post
Gez Posted September 6, 2019 Alright, glad you could figure out the issues I forgot about. :) 0 Share this post Link to post
ZombiJambi Posted September 6, 2019 Ok, so I got it working great at 100 health. Next I'm trying to drop the health pickup when Samus' health is less than full. My approach is this: Scripts: Quote script "SamusCurrentHealth"(void) { SetResultValue(GetActorProperty(1337, APROP_Health)); } script "SamusMaxHealth" (void) { SetResultValue(GetActorProperty(1337, APROP_SpawnHealth)); } Monster death state: Quote Death: ZOOM H 5 { if (CallACS("SamusCurrentHealth") < CallACS("SamusMaxHealth")) { A_SpawnItem ("MedHealth",0,0); } } ZOOM I 5 A_Scream ZOOM J 5 A_NoBlocking ZOOM K 5 POSS L -1 Stop I get no errors when starting the game, but it just doesn't function properly. The monster only drops health when Samus' health is below 100. I'm assuming that 'APROP_SpawnHealth' grabs the health of the Actor when they spawn, which is always going to be 100. I tried 'APROP_Stamina', with the same results. The Energy Tank upgrades coded as such: Quote actor EnergyTank : UpgradeStamina Replaces Soulsphere { +COUNTITEM +INVENTORY.AUTOACTIVATE +INVENTORY.ALWAYSPICKUP +INVENTORY.FANCYPICKUPSOUND Inventory.Amount 100 Inventory.MaxAmount 900 Inventory.PickupMessage "Energy Tank" Inventory.PickupSound "misc/p_pkup" States { Spawn: ENRT A 6 Bright ENRT B 6 Bright ENRT C 6 Bright Loop } } 0 Share this post Link to post
Gez Posted September 9, 2019 Try SetResultValue(GetActorProperty(1337, APROP_Health) + GetActorProperty(1337, APROP_Stamina)); If that doesn't work, I have no simple idea. 0 Share this post Link to post
mewbusi Posted September 9, 2019 I've recently gotten into doom mapping and I was hoping that I could have some guidance on a small idea that I want to implement. I want to make a balcony area with a railing of sorts. However to my knowledge while you can control the vertical position of transparent textures if I made an impassable line for said balcony bellow it on the ground it would extend all the way to the skybox. Is there any way to make an impassable line for only the area above the balcony and not bellow? Even better question, is if there is any way to have a 2 sided line that originates from a 3D floor? The only idea I have how to do something like this is using a thin nontextured 3D wall the same height of the texture for the railing. Or rather using a 3D objects to make a 3D railing rather than a transparent texture. The downside being to my knowledge that bullets would be unable to pass through the railing if using 3D objects. Attached picture for what I mean by railing. 0 Share this post Link to post
Gez Posted September 9, 2019 You mention 3D floors, are you mapping for GZDoom? If so, the 3D middle texture flag serves your purposes, it makes a line blocking only at the heights its texture is shown. 0 Share this post Link to post
Rince-wind Posted September 9, 2019 What do I need to write in a DECORATE file to make Heretic weapons deal double the damage? 0 Share this post Link to post
mewbusi Posted September 9, 2019 1 minute ago, Gez said: You mention 3D floors, are you mapping for GZDoom? If so, the 3D middle texture flag serves your purposes, it makes a line blocking only at the heights its texture is shown. That I am. I'm actually using GZDoom Builder for my mapping purposes. I'll look into using that flag later today. It is a shame that you cannot have multiple middle textures unless offset however. 0 Share this post Link to post
Gez Posted September 9, 2019 31 minutes ago, Rince-wind said: What do I need to write in a DECORATE file to make Heretic weapons deal double the damage? The simplest solution is not to use DECORATE, but ZMAPINFO. Make a custom skill definition with MonsterHealth = 0.5 and it'll make monsters have half-health, largely doing the same thing as doubling damage. (With the difference that it also makes damage from infighting, explosive pods, crushers, etc. more impactful, too.) Another simple solution is to create a PowerDamage item with DamageFactor 2 and a near-infinite duration. Then you have to make sure the player gets this item at the start of each level. 0 Share this post Link to post
Rince-wind Posted September 9, 2019 @Gez I'll look into this ZMAPINFO stuff later, thanks! 0 Share this post Link to post
Rince-wind Posted September 9, 2019 @Gez Works perfectly, here it is with some other changes if anyone's interested: skill half { Name = "HALF" SpawnFilter = hard MonsterHealth = 0.5 AmmoFactor = 0.5 DropAmmoFactor = 0.5 DamageFactor = 2.0 } 1 Share this post Link to post
Rince-wind Posted September 12, 2019 Hexen (UDMF) How do I make a thing (specifically a light source like a candle) bob up down in the air like the flachettes, I know it has to do something with DECORATE but I don't know what. 0 Share this post Link to post
Payload4367 Posted September 12, 2019 6 hours ago, Rince-wind said: Hexen (UDMF) How do I make a thing (specifically a light source like a candle) bob up down in the air like the flachettes, I know it has to do something with DECORATE but I don't know what. THINGBOB flag maybe? https://zdoom.org/wiki/Actor_flags 0 Share this post Link to post
Kappes Buur Posted September 12, 2019 (edited) On 9/12/2019 at 2:33 AM, Rince-wind said: Hexen (UDMF) How do I make a thing (specifically a light source like a candle) bob up down in the air like the flachettes, I know it has to do something with DECORATE but I don't know what. For example actor NCANDLE 15558 { +NoGravity +FLOATBOB +SOLID STATES { Spawn: CAND A 3 Loop } } Because the candle now bobs up and down it is best to move the offset up to 32, else the candle will sink into the floor on its lowest point. Spoiler Edited September 23, 2019 by Kappes Buur : added screenshot 0 Share this post Link to post
Aurelius Posted September 13, 2019 Is it possible to make all (or at least as many as possible) source ports skip playing the demo at the title screen? Perhaps make a dummy DEMO lump or that sort. I know GZDoom doesn't play demos, but I'm looking for a wider source port compatibility. 0 Share this post Link to post
mgr_inz_rafal Posted September 13, 2019 On 9/9/2019 at 7:06 PM, Gez said: You mention 3D floors, are you mapping for GZDoom? If so, the 3D middle texture flag serves your purposes, it makes a line blocking only at the heights its texture is shown. Good to know, thanks. I've been using scripting trickery to achieve this effect... 0 Share this post Link to post
TeknoRider Posted September 14, 2019 Hey, i'm actually editing the plasma rifle in Whacked4. Everything works as expected, except that there is a cacodemon fireball explosion animation in the corner of the screen when the Fire state is activated. This is how it is inside Whecked4 (the state 204 is a cooldown.) Am i doing anything wrong ? Spoiler 0 Share this post Link to post
Spectre01 Posted September 15, 2019 (edited) I've got a wire midtexture that's slightly lowered into the ground to vertically align it. Looks fine in GL mode but bleeds through the ground in Software. Is this possible to correct or am I SOL regarding how it looks in Software? I've noticed this issue before, such as with the railings in map02 of Epic. Boom format. 0 Share this post Link to post