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

CooBlu

Members
  • Content count

    14
  • Joined

  • Last visited

Posts posted by CooBlu


  1. The inventory system looks great on screen, but the GiveInventory script seems to get overridden almost immediately and as a result, all sectors are affected. (1 means the script is in affect, I nestled that Print in the z check if-statement.) It's really strange, and I haven't been able to debunk this.

    I went back to my original idea of making the lasers pass-throughable, removing the 1px sector and just leaving the area where pain is given. I also introduced a new Thing as a sort of final check, Actor Hits Floor. It gets its own script, to make sure the pain script isn't being ran multiple times at once. (Script 20, Actor Hits Floor)

    Spoiler

    script 20 (void)
    {
    if (playerInSector[PlayerNumber()] == TRUE)
    terminate;
    ACS_ExecuteAlways(18, 2);
    }

    playerInSector is an array for each player. It was a quick fix for the moment, as monsters don't apply to this. I'll try incorporating the inventory idea, because as far as I know monsters can have an inventory which would make everything work 100%.

    Script 18 is the pain script.

    I did quick run-throughs, checking the amount of instances of the scripts at any time, if pain was inflicted in the right sectors, etc., and it works!

    Script 18 (Actor Enters Sector)
    Spoiler

    script 18 (void)
    {
    playerInSector[PlayerNumber()] = TRUE;
    int diffDamage;

    if (GameSkill () >= SKILL_HARD)
    diffDamage = 10;
    else if (GameSkill () == SKILL_NORMAL)
    diffDamage = 7;
    else
    diffDamage = 5;

    while (playerInSector[PlayerNumber()] == TRUE)
    {
    if(GetActorZ(0) <= -5242880) //-80 on the Z axis
    {
    DamageThing(diffDamage);
    }

    Delay(2);
    }
    }

    Something I should point out, scifista42 mentioned Thing_Damage2 as a way to inflict damage. That function requires a TID, whereas DamageThing damages whatever triggered the script.

    Script 19 (Actor Exits Sector)
    Spoiler

    script 19 (void)
    {
    playerInSector[PlayerNumber()] = FALSE;
    }

    EDIT: Updated code, changed z check and added difficulty modifier in Script 18.


  2. Top-down view of issue.

    Problem in action, broken iterator reads "4".

    Long story short, I have walkable lasers and a 16-px zone around each laser to make sure the player can't get away with walking on them and not getting hurt (under z-axis conditions ofc, and it works great). I'm debating just making them non-solid, but that's not the problem I have. The problem I have is the little actors in the top-down image: they're Actor Enters Sector and Actor Exits Sector actors, attached to their respective scripts that adds a 1 when the enter actor is triggered, and subtracted 1 when the exit actor is triggered. When testing, I found that straferunning through these is just too fast for the engine to register, and either an exit actor or enter actor doesn't activate, resulting in an unreal offset (I was able to make the iterator get to -10 at one point, just running back and forth a certain way). Removing the enter and exit actors in the 1px zone didn't help either (I assumed the 1px was too small to fit in a tic, but the same problem still happened). I also just realized each of these sectors would need their own tags, but running through might still result in this iterator error. I'll cross that bridge as I get to it. (Yes, I want to make the wad multiplayer compatible later on, or else I would've found an alternative much earlier on.)

    The reason I need a player iterator:

    Spoiler

    do
    {
    if(GetActorZ(1000 + n) <= -5046272 && playerInSector >= 1)
    {
    SectorDamage(52, laserHurt, "Fire", "", DAMAGE_PLAYERS
    | DAMAGE_NONPLAYERS | DAMAGE_IN_AIR);
    SectorDamage(53, laserHurt, "Fire", "", DAMAGE_PLAYERS
    | DAMAGE_NONPLAYERS | DAMAGE_IN_AIR);
    }
    Delay(1);
    Print(d:playerInSector);
    } while (TRUE);

    laserHurt is an integer, earlier defined based on difficulty level.
    playerInSector is the iterator in question.
    Tag 52 is the 1px zone, tag 53 are the 16px zones.
    the DAMAGE_IN_AIR flag is used because of the Doom quirk that sitting on the edge of the 1px doesn't inflict damage. I'm assuming you're not actually in the sector, and there's just a 16px safe zone on the edge of every sector (something I solved in the top-down picture).

    If the player check didn't exist, anything would get hurt if the player sat below that z axis (ex. walking on the floor), triggering all the laser sectors. Also, the lasers and 3d floors under them (making it walkable) sit at that Z axis value, and without the z check, anything existing in the sectors would get hurt (and I only want pain to inflict when touching the laser).


  3. Project.wad

    In this version the problem is gone completely, I kept working around it and over time the issue fixed itself. I tried recreating the problem, different sectors with conflicting tags and whatnot. The nodebuilder didn't seem to have any problems, and ZDoom loads fine. Traversd's inquiry sounds like what was happening, as the window sectors to view the inside are a different light level and the heightened sectors that make up the wall (matching brightness as the outside, too) did not produce the error.


  4. scifista42 said:

    fixable by a "random" change to the map


    I drew a random sector and the issue vanished completely. I have never seen this fog problem occur, nor have I heard of this issue happening to anyone else.

    Deleting the random sector and changing the nodebuilder from ZDBSP to glBSP in DoomBuilder also fixes the problem. Is there really such a thing as a "better" nodebuilder; I thought most of the options were for legacy purposes?


  5. My map has reached to somewhere near 900 linedefs, 160+ sectors. I noticed that in the beginning of the map, this strange bug with the fog occurs. image
    (I didn't take a screenshot of it, but when hopping in the water, enemies in the base show up on the screen in their position, unaffected by the sectors that should be hiding them)

    Thinking that maybe I've exceeded in details and am starting to break the map, I took a section of map I tucked away in the void that I wanted to incorporate later and deleted it. The problem disappeared. image

    However, I have seen much bigger maps with more content in them and have not encountered these problems. Is there a solution to this, or am I simply SOL and should take notice to how much I'm doing to my maps?


  6. Kappes Buur said:

    Since you are mapping for (DOOM in HEXEN) format, presumably using ZDoom, why not make
    use of ACS scripting?


    It's so funny you say that, I took to ACS on my own accord and used my previous Java knowledge alongside the ACS documentation on the Zdoom wiki to piece together a beautiful little piece of code.

    Spoiler

    bool loop = true;

    do
    {
    int flick = GetSectorLightLevel (3);
    Light_ChangeToValue (4, flick);
    Delay (1);
    } while(loop);

    '3' represents the sector with tag 3, which I assigned to the sector that flicks the light. Immediately, the value is assigned to the sectors with the tag '4', which are the sectors that don't get flicked. That sector now follows the same lighting patterns as the flickering sector. Add a 1-tic delay, start the condition over again.


  7. http://i.gyazo.com/f3200832edf96b52c6dc8d7f0902a013.png

    I was able to use an outside dummy sector linked to the three sectors that contained the light fixture ceiling texture. Those three sections of the room work exactly as planned. The problem now is the two other sections. I can perform the same dummy trick, but the flickering is not in sync. I can also join those two sections with the flickering sector and have the whole ceiling as lights, but that destroys the ceiling texture effect (and I don't give up that easily).


  8. traversd said:

    If the floor texture and ceiling/floor heights will also be the same for the 3 sectors with FLAT2(or 17?) can they just be merged into the 1 sector?


    Yes, which is the case with the sectors that have FLAT2 (The lights) and FLAT19, they individually belong to the same sector ID so I only have to work with, e.g., sectors 1 and 2 instead of 1, 3, 5, and then 2 & 4 (apologies for the mis-distinction). However, regardless of how I pair the sectors with ID's, if I assign any one sector to become the dark sector, it will never blink with the adjacent sectors due to it owning the lowest brightness level and not jumping up to the others (the Light Flicker tag takes a sector and drops the light level down to the least brightest adjacent sector, doesn't work upwards with brighter sectors, sadly).


  9. http://i.gyazo.com/79782b93ebdfa078f4d0339145d6c166.png
    (STARTAN2 is a placeholder, and the map is in Hexen format)

    To create the ceiling texture effect, I have to split the corridor into five sectors: three for the ceiling light texture, two for the light-less texture. The only two lighting effects that match the 'broken lights' I'm looking for is Fire Light Flicker and Light Flicker. Fire Light Flicker isn't going to work for this purpose, however.

    After some research, I found that Light Flicker works by using a dark sector to have other adjacent sectors dip down to that dark's lighting value at random intervals; Perfect. Problem is, I've experimented with this concept, but can't seem to make all five sectors blink synchronously. Would there be a way to make this work, possibly with dummy sectors or maybe some other form of sector black magic?


  10. Edward850 said:

    Whatever list your reading, it's lying. Zdoom/GZdoom don't have Master Server lists.


    Yes, other other various games do. Oh, how I wish an IP master list was accessible in (G)Zdoom...

    Whoo said:

    Default port for multiplayer is 10666 UDP.

    Edward850 said:

    Default port for Zdoom/Gzdoom is 5029 UDP.


    huh? I'll just forward both of them. Aaannd... I can't use the same forwarding program for some reason :?


  11. I'd like to set up a server for some friends. I know the cmd parameters, and everything is fine. But any server I host, no matter what game, never shows up on the master list/ un-connectable. I say (G)Zdoom because that's where I'm focusing. In Minecraft, I had to forward ports to get the damn stuff to work. Hell, my friend and I had to use Logmein Hamachi to get a private Zdoom server to work!! I begin to think whether or not I need to forward any ports to get my connections through... do I?

×