Kappes Buur Posted July 26, 2016 On 7/26/2016 at 7:57 PM, illuknisaa said: I have a sector with fog and the non-fog sector (with higher brightness) and it shows up as near pitch black. Expand Fog can be done in various ways. How exactly did you construct the sectors? A map would be helpful. 0 Quote Share this post Link to post
illuknisaa Posted July 27, 2016 http://imgur.com/a/ZFexP Previous image is taken where the mouse is (upper left corner) looking at right. Fog is made by setting sectors' fade to 080808 (only sectors with dark blue hue have fog). 0 Quote Share this post Link to post
Spectre01 Posted July 27, 2016 I've got a Boom compatible wad with two maps, and I made custom intermission map names as images, which are currently in .bmp format and work fine in Zandronum. However, they crash in GLBoom+ with an "unknown patch format". I tried converting them to Doom format in SLADE but then the map intermission text disappeared. How do I go about making those images in the proper format? CWILV00 etc. 0 Quote Share this post Link to post
scifista42 Posted July 27, 2016 Just convert them to Graphic(Doom) format and make sure that their x/y offsets are reasonable as to not make the graphics display offscreen. 0 Quote Share this post Link to post
Spectre01 Posted July 28, 2016 Got it working, thanks! The image height was the issue. 'Nother question though. If I use textures from something like the cc4 pack, how would I go about including the ones I used as part of my wad without needing the player to load the pack? Preferably in a way that doesn't include manually searching through what I used and then dragging them in my wad. 0 Quote Share this post Link to post
Kappes Buur Posted July 28, 2016 On 7/28/2016 at 2:21 AM, rileymartin said: Got it working, thanks! The image height was the issue. 'Nother question though. If I use textures from something like the cc4 pack, how would I go about including the ones I used as part of my wad without needing the player to load the pack? Preferably in a way that doesn't include manually searching through what I used and then dragging them in my wad. Expand Copy/paste textures and flats into your pwad. Then let Slade3 handle the unused items Then, if necessary as with DOOM2 format, rebuild TEXTURE1 and PNAMES http://slade.mancubus.net/index.php?page=wiki&wikipage=How-to-Import-Textures 0 Quote Share this post Link to post
baja blast rd. Posted July 28, 2016 On 7/28/2016 at 2:21 AM, rileymartin said: Got it working, thanks! The image height was the issue. 'Nother question though. If I use textures from something like the cc4 pack, how would I go about including the ones I used as part of my wad without needing the player to load the pack? Preferably in a way that doesn't include manually searching through what I used and then dragging them in my wad. Expand You can do it in SLADE3. Copy-paste CC4-Tex into your wad. Go to Archive -> Maintenance. Remove unused textures, then flats, then patches. (Make sure patches are last.) Then the rebuilding stuff mentioned in that tutorial. Also remember that saving in one program will not update the wad in the other program, so after you do all that SLADE stuff, don't start making changes in GZDB again until you've closed the wad and then loaded it. 0 Quote Share this post Link to post
Uni Posted July 28, 2016 Is there a way to load WADs on solonet using Zdoom? 0 Quote Share this post Link to post
baja blast rd. Posted July 28, 2016 On 7/28/2016 at 7:40 AM, Uni said: Is there a way to load WADs on solonet using Zdoom? Expand "-host 1" at the command line, afaik. 0 Quote Share this post Link to post
Agentbromsnor Posted July 30, 2016 I'm back with another question / issue. Since I'm making a 2D platform game, it has been rather difficult to figure out an effective control-system for the player. I've seen modders use inventory items in order to determine which direction the player's actor should face (left or right), but these all seem a little hacky to me, so I thought of a way to simplify this. This is my idea: http://imgur.com/a/qWsit It's pretty straight-forward, but the key difference is that the player is always facing north. This way, the controls are always going to be left strafe and right strafe, which is of course how a 2D platform-game should be controlled. One little issue I see with this however, is the player's weapon placement. The player's action should take place at the side he's currently facing (which should is to the right by default). I'm not too familiar with DECORATE yet, but is there a way to edit this so that the action takes place at the correct side? I'm not 100% sure of this method yet. If somebody has a more efficient idea of handling player movement, please let me know! I would be very grateful. 0 Quote Share this post Link to post
scifista42 Posted July 30, 2016 Assuming you're going to redefine the player's weapons in DECORATE, you can use the parameters "spread_horz" in A_FireBullets and "angle" in FireCustomMissile to make the weapons fire to the side. If you want to be able to fire into both left and right sides, make each weapon have 2 fire states, one for firing to the right and one for firing to the left, and use A_JumpIf to make the weapon jump to the correst fire state, depending on "some condition" that you will probably need to implement as a DECORATE expression. 0 Quote Share this post Link to post
Agentbromsnor Posted July 30, 2016 On 7/30/2016 at 10:09 PM, scifista42 said: Assuming you're going to redefine the player's weapons in DECORATE, you can use the parameters "spread_horz" in A_FireBullets and "angle" in FireCustomMissile to make the weapons fire to the side. If you want to be able to fire into both left and right sides, make each weapon have 2 fire states, one for firing to the right and one for firing to the left, and use A_JumpIf to make the weapon jump to the correst fire state, depending on "some condition" that you will probably need to implement as a DECORATE expression. Expand Oh, it's great to know there's a DECORATE expression for this! Thanks. Do you personally think this is an elegant system for handling 2D platforming? I'm always open for different and possibly more efficient ideas. 0 Quote Share this post Link to post
scifista42 Posted July 30, 2016 What you're doing seems more than OK to me. :) 0 Quote Share this post Link to post
Agentbromsnor Posted July 31, 2016 On 7/30/2016 at 11:49 PM, scifista42 said: What you're doing seems more than OK to me. :) Expand Okay, I'll roll with it then! Does anybody happen to know any good tutorials on how to use DECORATE for creating a player? I'm currently using this code in DECORATE (written by myself, no copy-pasting):actor PlayerActor : PlayerPawn { Speed 1 Health 100 Radius 16 Height 56 Mass 100 Player.DisplayName "Eric" states { PROT A 5 PROT B 5 PROT C 5 PROT D 5 loop } } I have four sprites saved as PNG (named PROTA, PROTB, PROTC and PROTD), which are just zombie-man sprites I'm trying to use as a placeholder. They are located in the Sprites/Player folder of my PK3. I don't know how I can specify the location of the sprites, and my player actor is still invisible when I start the game. I'm still quite new when it comes to DECORATE, so I appreciate any help I can get! 0 Quote Share this post Link to post
scifista42 Posted July 31, 2016 On 7/31/2016 at 1:53 AM, Agentbromsnor said: Does anybody happen to know any good tutorials on how to use DECORATE for creating a player? Expand Creating new player classes On 7/31/2016 at 1:53 AM, Agentbromsnor said: actor PlayerActor : PlayerPawn { states { PROT A 5 PROT B 5 PROT C 5 PROT D 5 loop } } Expand There needs to be a label, for example "See:" within the States block, otherwise these new states won't be part of any animation. On 7/31/2016 at 1:53 AM, Agentbromsnor said: I have four sprites saved as PNG (named PROTA, PROTB, PROTC and PROTD), Expand They need rotation numbers in their filenames. See Sprite#Image_names, Sprite#Angles and Creating new sprite graphics 0 Quote Share this post Link to post
Agentbromsnor Posted July 31, 2016 I already looked into the "Creating new player classes" wiki page, but it didn't give me a whole lot to go off on in terms of sprites. EDIT: Disregard this I'm an idiot. Thanks for the help! :D 0 Quote Share this post Link to post
scifista42 Posted July 31, 2016 On 7/27/2016 at 12:16 AM, illuknisaa said: http://imgur.com/a/ZFexP Previous image is taken where the mouse is (upper left corner) looking at right. Fog is made by setting sectors' fade to 080808 (only sectors with dark blue hue have fog). Expand Try changing Fog Mode in your GZDoom's OpenGL preferences. 0 Quote Share this post Link to post
Agentbromsnor Posted July 31, 2016 So... I was looking at this: http://zdoom.org/wiki/Creating_new_sprite_graphics I'm trying to find out how I can create a walk-cycle for walking left and right (strafe), as well as idle animations for when the player's standing still. Does anyone happen to know of any DECORATE resources that go over this? I cannot seem to find them, but I'm probably looking in the wrong place. 0 Quote Share this post Link to post
scifista42 Posted August 1, 2016 There is no predefined "strafe" state that would automatically get selected when the player strafes, so you'll have to implement the mechanism of selecting the state yourself. This would normally be very hard, but since you have the player locked on x axis, therefore he only moves on the y axis, so you can make use the "vely" DECORATE variable in an "A_JumpIf" statement like:See: TNT1 A 0 A_JumpIf(vely<0,"MovingLeft") (here will be animation states of the player moving right) goto See MovingLeft: (here will be animation states of the player moving left) goto See 0 Quote Share this post Link to post
Burktross Posted August 1, 2016 I've been completely roadblocked in making a random actor spawner. My theoretical thought process for this is: 1. Actor spawns in and transfers to a perpetual "See" state. 2. Every number of tics, it checks the distance from it to the player. 3. If it is closer than 512 units, it proceeds to another state 4. This state checks if the player is closer than 256 units; the intended minimum distance. If so, it skips backs to "See" 5. If the player is out of 256 units, it then checks for LOS (there is supposed to be none). If it does encounter LOS, it again skips back to "See" 6. If none of these abort commands are met, then the actor should spawn another actor. In this case, a dummy actor for debug purposes. But I'm completely unable to do this. The actor will go to its see state, but not jump when the player is in range. actor AmbientDaemon 16001 { -SOLID -Shootable -NoPain -NoBlood +LOOKALLAROUND +Float radius 16 height 40 States { Spawn: EGGY A 1 Thing_Hate(0, 0, 0) EGGY A 1 A_NoBlocking EGGY A 5 Goto See See: EGGY A 1 EGGY A 1 A_JumpifCloser(512, "Check") // Checks if the player is within 512 // Ignore me // EGGY A 5 A_JumpifInTargetLOS("Daemon", 0, JLOSF_DEADNOJUMP | JLOSF_CLOSENOJUMP | JLOSF_NOSIGHT, 512, 256) // Loop Check: EGGY A 1 EGGY A 1 A_SpawnItem("Xenohunter", 0, 1, 0) // Debug script to check if line 19 was triggered EGGY A 1 A_JumpifCloser(256, "See") //Aborts if player is in the minimum range, 256 EGGY A 1 A_JumpIfInTargetLOS("See", 0, JLOSF_DEADNOJUMP, 512) // Aborts if player is in eyeshot goto Spawner Spawner: EGGY A 1 A_SpawnItem("Facehugger", 0, 1, 0) // Debug script to check if lines 25 and 26 were NOT triggered. EGGY A 400 Goto see Pain: EGGY A 1 A_Pain Goto Spawn Death: TNT1 A 0 A_SpawnItemEx("XenSplatter",random(-16,16),random(-16,16),random(-16,16),random(0,0.1),random(0,0.1),random(-1,1),random(0,359)) TNT1 A 0 A_SpawnItemEx("XenSplatter",random(-16,16),random(-16,16),random(-16,16),random(0,0.1),random(0,0.1),random(-1,1),random(0,359)) TNT1 A 0 A_SpawnItemEx("XenSplatter",random(-16,16),random(-16,16),random(-16,16),random(0,0.1),random(0,0.1),random(-1,1),random(0,359)) TNT1 A 0 A_SpawnItemEx("XenSplatter",random(-16,16),random(-16,16),random(-16,16),random(0,0.1),random(0,0.1),random(-1,1),random(0,359)) TNT1 A 0 A_Scream EGGD ABC 6 A_NoBlocking EGGD C -1 Stop } } Fruitless in debugging it, I turned to ACS, but I can't even get a simple distance script to work. script "DistanceChecker" (void) { int selfx = GetActorX(0); int selfy = GetActorY(0); int selfz = GetActorZ(0); int plaX = GetActorX(AAPTR_PLAYER1); int plaY = GetActorY(AAPTR_PLAYER1); int plaZ = GetActorZ(AAPTR_PLAYER1); int distance = sqrt((selfx - plax)^2 + (selfy - play)^2 + (selfz - plaZ)^2); Log(i:"distance"); } Always outputs a log of "0" when called by the spawner. What way would be the best means of accomplishing my task, and how would I go about overcoming its respective roadblock? 0 Quote Share this post Link to post
Agentbromsnor Posted August 1, 2016 On 8/1/2016 at 1:19 AM, scifista42 said: There is no predefined "strafe" state that would automatically get selected when the player strafes, so you'll have to implement the mechanism of selecting the state yourself. This would normally be very hard, but since you have the player locked on x axis, therefore he only moves on the y axis, so you can make use the "vely" DECORATE variable in an "A_JumpIf" statement like:See: TNT1 A 0 A_JumpIf(vely<0,"MovingLeft") (here will be animation states of the player moving right) goto See MovingLeft: (here will be animation states of the player moving left) goto See Expand The player will only move along the X axis, since he is locked down on it. When I said the player is "locked down" on the X axis, I meant that he cannot move in the Y direction. Sorry about the confusion! I take it the principle is still the same though? :O 0 Quote Share this post Link to post
scifista42 Posted August 1, 2016 On 8/1/2016 at 1:45 AM, Burktross said: The actor will go to its see state, but not jump when the player is in range. Expand Firstly, the very first tic that an actor executes right after being spawned, never executes its action even if it has one, therefore "Thing_Hate(0,0,0)" doesn't get called. Secondly, both the first "0" and the second "0" refer to the actor itself (who is the activator), not to the player. So it would not make the actor target the player even if it was called - unless you gave a specific TID to the player (in an ENTER script) and used that TID in this Thing_Hate. On 8/1/2016 at 1:45 AM, Burktross said: I can't even get a simple distance script to work. int plaX = GetActorX(AAPTR_PLAYER1); int plaY = GetActorY(AAPTR_PLAYER1); int plaZ = GetActorZ(AAPTR_PLAYER1); Always outputs a log of "0" when called by the spawner. Expand That's because AAPTR_PLAYER1 is not player1's TID, it's a pointer. GetActorX doesn't accept pointers, just TIDs. Either give a specific TID to the player in an ENTER script, or use "SetActivator" with "AAPTR_PLAYER1" as the second parameter and only then use "GetActorX(0)" to get the player's coordinate (after you've already got the actor's coordinates). On 8/1/2016 at 2:50 AM, Agentbromsnor said: I take it the principle is still the same though? :O Expand Of course it is the same, you'll just use "velx" instead of "vely". :) 0 Quote Share this post Link to post
Uni Posted August 1, 2016 I'm working on a pistol replacement mod that makes it a little bit stronger but it keeps gibbing the zombie man and the shotgun guys. Is there a way to prevent an attack from gibbing? 0 Quote Share this post Link to post
Spectre01 Posted August 1, 2016 Can I make a silent teleport line that only works for Doomguy and not monsters without making it a monster blocking line? Also, there's an amusing situation happening. I have a move things river + waterfall that carries the player and a Cyberdemon in front of him as a sort of "cinematic" opening where the Cyber teleports away before reaching the falls. There's also a "Pile of skulls and candles" thing carried by the river behind the Cyber. Now, if the player manages to alert the Cyber, the pile of stuff can cross the W1 monster line and teleports instead of the Cyber. First of all, why is triggering a monster teleport? I fixed the issue by making a gap in the teleport line narrow enough for the pile of crap to float past and teleport the Cyber, but what if I want to have a bunch of floating junk and not have it teleport? 0 Quote Share this post Link to post
baja blast rd. Posted August 1, 2016 On 8/1/2016 at 7:09 AM, rileymartin said: Can I make a silent teleport line that only works for Doomguy and not monsters without making it a monster blocking line? Expand I'm not sure why there is an "also monsters" silent teleport line if the other one warps monsters too. 0 Quote Share this post Link to post
Rayziik Posted August 1, 2016 I think he wants to make a teleporter that only works for the player and not monsters but the associated line doesn't block monsters. I can think of one way to do it, but it only functions one time: Monsters can't telefrag one another except on MAP30, so place a deaf lost soul on the teleport destination and the player will just telefrag it when he goes there. If the lost soul would be somewhere where it could potentially see the player you can offset it a bit from the spot of the teleport destination and lower it into an illusio-pit to disallow it from seeing the player. If you need it to be multiple use but retain player only teleporting, you probably would need to switch to UDMF and make the line only usable by the player. 0 Quote Share this post Link to post
scifista42 Posted August 1, 2016 On 8/1/2016 at 6:21 AM, Uni said: I'm working on a pistol replacement mod that makes it a little bit stronger but it keeps gibbing the zombie man and the shotgun guys. Is there a way to prevent an attack from gibbing? Expand Change the pistol's bullet puff to a custom one with +NOEXTREMEDEATH flag set on it. 0 Quote Share this post Link to post
Uni Posted August 1, 2016 On 8/1/2016 at 1:27 PM, scifista42 said: Change the pistol's bullet puff to a custom one with +NOEXTREMEDEATH flag set on it. Expand Thank you! 0 Quote Share this post Link to post
scifista42 Posted August 1, 2016 On 8/1/2016 at 7:42 AM, Rayzik said: I can think of one way to do it, but it only functions one time: Monsters can't telefrag one another except on MAP30, so place a deaf lost soul on the teleport destination and the player will just telefrag it when he goes there. Expand I can think of another way to do it, that functions as many times as you want: Monsters have larger radii than the player, so place a decorative thing near the teleport destination, just far enough from it to not block the player, but close enough to block the monster, preventing it from teleporting there. The only monster which has a lesser-or-equal radius to the player is the Lost Soul, so this solution will not prevent Lost Souls from teleporting, unless you use a custom DEHACKED to increase their radius. On 8/1/2016 at 7:09 AM, rileymartin said: why is [Pile of skulls] triggering a monster teleport? Expand Because the so-called "monster-only" teleport action is actually "anything-other-than-the-player" teleport action. 0 Quote Share this post Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.