#classic-doom-maps-mods

1 messages ยท Page 43 of 1

trim falcon
#

and add some shia labeouf as a motivator

drowsy forum
#

Can't right now, bed time.

haughty flower
#

https://cdn.discordapp.com/attachments/172869448863055872/275920266436018176/image.jpg
doom map concept
you start in the top left
find a shotgun in the next room, in which you enter a cave for a key
however there's holes with caco's
chaingun on said platform too
you get the key, go back and enter the key door, which is on the left
there's a small platform with 3 chaingunners
kill them, run through the hallway
another platform with a imp
etc
still gotta finish it tho

#

forgive my sloppy drawing lol

trim falcon
#

ok do it

royal wave
#

I think part of my update to SkyMayBe, i make some skymaybe deathmatch maps

unreal oyster
#

so gzdoom just added this.

#

doom 64 style lighting for sectors

#

....

#

it's beautiful

torn timber
#

Glorious

haughty flower
#

so preety much ps1 doom?

#

me likey

vocal crypt
#

well apparently mobile couldn't see shit except the SSG in that pic

#

and the hud

#

so it looked like a dark room but not affecting the gun.

unreal oyster
#

oh, lol

prisma saddle
#

@unreal oyster what's it able to do?

unreal oyster
#

well, you can see in the image

#

different lighting for floor, bottom wall, top wall and ceiling

#

allows for really cool looking rooms

prisma saddle
#

I need to notify Wadaholic about this now...

vocal crypt
#

how did N64+PSX lighting system for doom work even

royal wave
#

what about middle wall

unreal oyster
#

not there

vocal crypt
#

then it's worthless /s

haughty flower
#

@vocal crypt its works nothing like the saturn

vocal crypt
#

I don't know the saturn port of Doom so

haughty flower
#

thats all i can tell you

vocal crypt
#

why, is the saturn lighting system shitty?

haughty flower
#

because it isnt in the specs

vocal crypt
#

um

haughty flower
#

saturn cant do colored lighting

vocal crypt
#

oh

#

what about PC? Before source ports of course

haughty flower
#

it also cant do transparencies on the secondary video processor

#

the 2 video chips are strung together to the same memory catche

#

therefore they cant run symostaneously

#

@vocal crypt It can, but it was never used

#

look at freedoom

#

that has it

vocal crypt
#

mmm

vocal crypt
#

I've tried to edit a weapon from Realm667 (don't worry, won't be in DoomStrike) to have a reloading thing.

#

However, it seems to have infinite ammo

#

going from 300 to 299 then back to 300

#

the code

#

Oh that's weird.

#

a new color

vocal crypt
#
ACTOR Machinegun : Weapon 601
{ 
  //$Category Weapons
  //$Sprite MCGNW0
  //$Title "Light Machinegun"
    Weapon.Kickback 5
    Weapon.AmmoType "MachineGunAmmo" 
    Weapon.AmmoGive 50
    Weapon.AmmoUse 1    
    Weapon.SlotNumber 4
    Inventory.PickupSound "misc/w_pkup" 
    Inventory.PickupMessage "Picked up a Light Machinegun!"
    Obituary "%o was Lit up by %k's Machinegun."
    AttackSound "weapons/Machinegun"
     Decal BulletChip
    States 
    {  
    Ready: 
        MCGN A 1 A_WeaponReady 
        Loop 
    Deselect: 
        MCGN A 1 A_Lower 
        Loop 
    Select: 
        MCGN A 1 A_Raise 
        Loop 
    Fire: 
        MCGN A 1 A_GunFlash
        MCGN A 0 A_JumpIfInventory ("MachineGunLoaded", 30, "reload")
        MCGN A 4 A_GiveInventory ("MachineGunLoaded",1)
        MCGN B 1 A_FireBullets(3, 4, 1, 5, "BulletPuff", 1)
        MCGN B 1 A_Quake (1,3,0,32)
        MCGN C 1 
                TNT1 A 0 A_Refire
        goto Ready
        Reload:
          PISG A 1 Offset(0,35) A_PlaySound("weapons/shotgr", CHAN_WEAPON)
  PISG A 1 Offset(0,38)
  PISG A 1 Offset(0,44)
  PISG A 1 Offset(0,52)
  PISG A 1 Offset(0,62)
  PISG A 1 Offset(0,72)
  PISG A 1 Offset(0,82)
  TNT1 A 0 A_GiveInventory("MachineGunLoaded", 12)
  TNT1 A 8 A_TakeInventory("MachineGunAmmo", 1)
  PISG A 1 Offset(0,82)
  PISG A 1 Offset(0,72)
  PISG A 1 Offset(0,62)
  PISG A 1 Offset(0,52)
  PISG A 1 Offset(0,44)
  PISG A 1 Offset(0,38)
  PISG A 1 Offset(0,35)
  PISG A 1 Offset(0,32)
        goto Ready
        Flash:
        MCGN A 1 Bright
        MCGN B 1 Bright A_Light1
                 Goto LightDone
    Spawn:
        MCGN W -1
        Stop
        }
    } 

actor MachineGunAmmo : Ammo
{
inventory.amount 10
inventory.maxamount 200
ammo.backpackamount 25
ammo.backpackmaxamount 300
inventory.pickupmessage "You got ammo for the LMG!"
states
{
Spawn:
AMMO A -1
Stop
}
}

actor MachineGunLoaded : MachineGunAmmo
{
inventory.maxamount 60
+IGNORESKILL
}```
#

this was the code

trim falcon
#

what this

haughty flower
#

@vocal crypt found the error

#

actually, nevermind

#

MCGN A 0 A_JumpIfInventory ("MachineGunLoaded", 30, "reload")

#

???

#

i need some help, because, i have no experience with using sounds

#

how do i make a WAV pistol fire actually have a use?

hazy lantern
#

I think modders are still asleep

haughty flower
#

i just want it so my pistol uses a WAV fire sound

#

dunno how to in decorate

#

also, i need a dank pistol fire sound

#

how so?

#

i mean i did like the handgun sound from half life 2 honestly

torn timber
#

sounds are defined in SNDINFO first

#

You can use A_PlaySound to play a specific sound in a specific spot in your DECORATE

#

Ex: A_PlaySound("play/sound")
Where "play/sound" is the logical name for the sound defined in sound info as such: play/sound dsplysnd

#

dsplysnd would be the name of the lump

#

so in your case, @haughty flower

#

SNDINFO: weapons/pistolfire pistfir0
DECORATE: A_PlaySound("weapons/pistolfire")

#

it might look something like that

haughty flower
#

thanks ๐Ÿ˜„

haughty flower
#

okay i got the camera working

#

how do i add music in musinfo?

unreal oyster
#

You should use MapInfo for music

haughty flower
#

k

#

i already did it tho

keen drift
#

Just came up with the worst idea possible for a wad:

#

A megawad but every single level follows the basic shape of a loss edit

haughty flower
#

what

keen drift
#

And an expiation of the meme

granite marsh
#

@unreal oyster about the GZDoom features...

#

How do you add them to a WAD?

#

GZDoom Builder seems outdated.

#

Is there some other way?

haughty flower
granite marsh
#

I just said it looks outdated.

#

I think Doom Builder has updated much past GZDoom Builder.

#

I might be wrong, though.

haughty flower
#

seems and looks are two different things

granite marsh
#

Good point.

unreal oyster
#

doom builder 2 has been abandoned for multiple years

granite marsh
#

Wait, really?

unreal oyster
#

yes

haughty flower
#

im using doom builder 2 for some training with it

granite marsh
#

So GZDoom Builder is actually the most updated version?

unreal oyster
#

no

#

gzdoom builder-bugfix is

#

that link that scary posted

haughty flower
#

after i were to get a custom to it ill move on to gzdoom builder

unreal oyster
#

why? there's no reason to do that

#

they are practically identical in UI

#

gzdb just supports more

haughty flower
#

it has to do something with invasion

#

idk why but it does

granite marsh
#

I guess I'll move to GZDoom Builder.

#

Should I uninstall Doom Builder, though?

unreal oyster
#

meh

#

up to you

haughty flower
#

its not that big to even bother

granite marsh
#

What the fuck?

#

You know how in the GZDoom thing type selector, sometimes a link shows up under the "Object Class" catagorie?

#

It shows up in Firefox, even though my defualt browser is Chrome.

#

Help?

unreal oyster
#

opens in ie for me even though my default browser is chrome too

#

i'll bug report it

granite marsh
#

k thanks

unreal oyster
#

@granite marsh

granite marsh
#

thanks

granite marsh
#

Hey, does anyone know how to do rain in GZDoom?

#

I downloaded a rain spawner from Realm 667, but I can't seem to get it to work.

royal wave
#

Dunno

granite marsh
#

Okay, supposedly, the thing I'm trying to do requires me to change stuff in something called a "special" tab.

#

But the thing menu doesn't have a special tab.

shadow bone
#

If you right-click on the rain spawner after placing it on the map, what do you see?

unreal oyster
#
Class SHImp : DoomImp {
    float tickOrNot;
    override void Tick() {
        ThinkerIterator playerIterator = ThinkerIterator.Create("DoomPlayer");
        actor mo;
        mo = DoomPlayer(playerIterator.Next());
        tickOrNot += mo.vel.Length();
        while (True) {
            if (tickOrNot < 12) {
                break;
            }
            else {
                tickOrNot -= 12;
                Super.Tick();
            }
        }
    }
}
#

inspired by that proof-of-concept in #general , i took a stab at a ZScript superhot mod

royal wave
#

zscript does floats

unreal oyster
#

far more dynamic than anything decorate could do - although it should be noted that this only accounts for player movement

royal wave
#

zscript does floats

unreal oyster
#

yea

royal wave
#

WOO

unreal oyster
#

it also does doubles

river flame
#

programming looks really hard...

royal wave
#

Actually why has no one done a proper engine remake of the doom engine that supports proper data types

unreal oyster
#

the whole fixed crap is ACS, not the engine

royal wave
#

Ah

unreal oyster
#

you can thank raven software for that one

#

internally gzdoom uses all manner of C++ concepts

royal wave
#

So then why are we not making a better ACS instead of flat out expanding on it

unreal oyster
#

because ZScript is replacing ACS

#

gdcc-acc is an alternative compiler for acs and i think it has a float type

#

doesn't play that nice with a lot of things though

royal wave
#

but zscript only works like decorate

unreal oyster
#

right now, yes

shadow bone
#

ACS is an ancient holdover from Hexen. It's been on the chopping block for years.

unreal oyster
#

yeah. ZScript will get map data access in a while and it will likely then replace ACS

shadow bone
#

ZScript (formerly Doomscript) has been slated to replace it since about 2006 I think.

#

Randi just never really pushed it.

unreal oyster
#

example of what ZScript will be able to do that ACS could never hope to - dynamic slope adjustments

#

or so i've heard

shadow bone
#

Which it can almost already do

#

TL;DR: ZScript is God.

#

Oh wow, it's even older than I thought

#

20 July 1999

#

"DoomScript is a full-fledged object-oriented scripting language and represents a radically different approach to Doom editing."

prisma saddle
#

Can Zscript and Decorate be used simultaneously?

unreal oyster
#

yep

#

DECORATE has to inherit from ZScript though

#

other way round can't work

royal wave
#

Wondering if Zscript will fix my chaingunner blobs

unreal oyster
#

chaingunner blobs? lol?

royal wave
#

so sky may be, spectors (iirc) are replaced to fire chaingunner blobs

#

basically plasma bolts that attack like the spider mastermind at the player

#

I forget how I got it to work, but it's not very clean nor is it as straight forward as I like

#

can't just tell the plasma ball to just attack, because projectiles always have their target set to the actor that spawned them

#

does zandronum support zscript?

unreal oyster
#

nah

#

might be ages before that happens

royal wave
#

Fuck

#

I guess if i want everyone to play it for the weekly event, it's gonna have to be zscript free :P

#

ah here we go

#
{
    Damage 0
    +RANDOMIZE
    RenderStyle Add
    Alpha 0.75
    Speed 5
    SeeSound "weapons/plasmaf"
    DeathSound "weapons/plasmax"
    Obituary "$OB_MPPLASMARIFLE"
    States
    {
    Spawn:
        PLSS A 0 A_PlaySound("weapons/plasmaf")
        goto Missile
    See:
        goto Death
    Missile:
        PLSS A 4 BRIGHT A_CPosAttack
        Loop
    Death:
        PLSE ABCDE 4 Bright
        Stop
    Idle:
        goto Missile
    }
}```
#

and the trick was to spawn them like lost souls

#
        SARG EF 4 Fast A_FaceTarget
        SARG G 4 Fast A_PainAttack("chaingunBlobs", 0)
        Goto Missile```
#

which does automatically set the player as the target

unreal oyster
#

zscript left-right dodging AI, รก la Unreal

prisma saddle
#

That's so cool @unreal oyster

haughty flower
#

they are also bulletsponges just like unreal

unreal oyster
#

hah

#

i made them bulletspongey just so i could see if the effect worked lol

#

i wouldn't actually give an imp that much hp

#

thank you @prisma saddle

haughty flower
#

no vidme account?

unreal oyster
#

nah

#

i only use it for uploading random doom shit

haughty flower
#

well you just got a comment

vocal crypt
#

Unreal Doon

#

Doom

#

I had one fucking job

shadow bone
#

you can edit your posts you know. like this

vocal crypt
#

I don't care. Besides, it makes it obvious I made a mistake

#

And I'm on mobile

#

Rn

haughty flower
#

are you on the beta of discord mobile?

vocal crypt
#

Idk

unreal oyster
#

you can edit messages on mobile too lol

#

long tap

vocal crypt
#

You mean hold down.

#

But anyway

vocal crypt
#

still need help with that reloading thing

vocal crypt
#
{ 
  //$Category Weapons
  //$Sprite MCGNW0
  //$Title "Light Machinegun"
    Weapon.Kickback 5
    Weapon.AmmoType "MachineGunAmmo" 
    Weapon.AmmoGive 50
    Weapon.AmmoUse 1    
    Weapon.SlotNumber 4
    Inventory.PickupSound "misc/w_pkup" 
    Inventory.PickupMessage "Picked up a Light Machinegun!"
    Obituary "%o was Lit up by %k's Machinegun."
    AttackSound "weapons/Machinegun"
     Decal BulletChip
    States 
    {  
    Ready: 
        MCGN A 1 A_WeaponReady 
        Loop 
    Deselect: 
        MCGN A 1 A_Lower 
        Loop 
    Select: 
        MCGN A 1 A_Raise 
        Loop 
    Fire: 
        MCGN A 1 A_GunFlash
        MCGN A 0 A_JumpIfInventory ("MachineGunLoaded", 30, "reload")
        MCGN A 4 A_GiveInventory ("MachineGunLoaded",1)
        MCGN B 1 A_FireBullets(3, 4, 1, 5, "BulletPuff", 1)
        MCGN B 1 A_Quake (1,3,0,32)
        MCGN C 1 
                TNT1 A 0 A_Refire
        goto Ready
        Reload:
          PISG A 1 Offset(0,35) A_PlaySound("weapons/shotgr", CHAN_WEAPON)
  PISG A 1 Offset(0,38)
  PISG A 1 Offset(0,44)
  PISG A 1 Offset(0,52)
  PISG A 1 Offset(0,62)
  PISG A 1 Offset(0,72)
  PISG A 1 Offset(0,82)
  TNT1 A 0 A_GiveInventory("MachineGunLoaded", 12)
  TNT1 A 8 A_TakeInventory("MachineGunAmmo", 1)
  PISG A 1 Offset(0,82)
  PISG A 1 Offset(0,72)
  PISG A 1 Offset(0,62)
  PISG A 1 Offset(0,52)
  PISG A 1 Offset(0,44)
  PISG A 1 Offset(0,38)
  PISG A 1 Offset(0,35)
  PISG A 1 Offset(0,32)
        goto Ready
        Flash:
        MCGN A 1 Bright
        MCGN B 1 Bright A_Light1
                 Goto LightDone
    Spawn:
        MCGN W -1
        Stop
        }
    } 

actor MachineGunAmmo : Ammo
{
inventory.amount 10
inventory.maxamount 200
ammo.backpackamount 25
ammo.backpackmaxamount 300
inventory.pickupmessage "You got ammo for the LMG!"
states
{
Spawn:
AMMO A -1
Stop
}
}

actor MachineGunLoaded : MachineGunAmmo
{
inventory.maxamount 60
+IGNORESKILL
}```
#

someone help with the reload thing

#

mostly because it doesn't "reload" at all

#

just shoots infinite ammo.

#

@shadow bone can ya help me on deis.

torn timber
#

Shouldn't MCGN A 0 A_JumpIfInventory ("MachineGunLoaded", 30, "reload") go before MCGN A 1 A_GunFlash?

#

Cause you don't want your weapon lighting up if it's not actually going to fire anything anyway

#

you could also put MCGN A 0 A_JumpIfInventory ("MachineGunLoaded", 30, "reload") as the first line on the Ready state, before MCGN A 1 A_WeaponReady if you want it to reload when the weapon is empty and idle as well.

#

If the max loaded ammo is supposed to be 30, shouldn't the inventory.maxamount match that in the actor definition of that token?

#

you have it as 60

#

You shouldn't need +IGNORESKILL on the loaded token either, it's not actually going to be picked up by anyone

#

Your MachineGunLoaded numbers don't match up anywhere

#
  TNT1 A 8 A_TakeInventory("MachineGunAmmo", 1)```
#

this bit in Reload should probably change

#

You should be -taking- the MachineGunLoaded tokens

#

not giving more of what you already have

#

it should be taking 30

#

if 30 is the max loaded ammo you want it to have

#

that'll clear it all away

#

The name is actually a misnomer

#

so that may be causing some confusion there too

#

You may need to invert that naming convention and reorder your checks to make it work properly

vocal crypt
#

I wanted the playa to have 60 ammo on a "clip"

#

er

#

but whatever

#

lets try 30.

torn timber
#

you can do it with 60 as long as the numbers match up

vocal crypt
#

also, so you're saying I should switch the Give and Take Inventory "places"?

torn timber
#

If you want the reload to grab the correct amount of ammo anyway, you'll have to have a loop that checks for each empty ammo token in your inventory currently, and then replace them individualy with 1 MachineGunAmmo you possess at a time. The loop should be instant, and it'll prevent you from getting ghost ammo and other strange numbers.

#

I'll find an example from on of my wads in a moment

vocal crypt
#

@torn timber ?

torn timber
#

I'm just slicing out the 90% of stuff you won't really need to see

vocal crypt
#

must be NSFL.

#

jk

torn timber
#

it'd just be complicated to look at

#

lots of other features added in

#

I think I got everything together

#

hoping this weapon didn't have any bugs in it, cause I haven't worked on this in over a year, but it was pretty basic compared to the rest of my stuff, so it should be good

vocal crypt
#

readyloop?

torn timber
#

It's an extension of our Ready state

#

it's a custom one

#

because we have our Ready state do things that the weapon only needs to do once

#

and then it moves on to the readyloop state

#

our ready state does things like clears tokens

vocal crypt
#

is the M60 from Realm667

torn timber
#

no

vocal crypt
#

just that this code-

#

oh.

torn timber
#

this is all custom

vocal crypt
#

it's great and all, buuuut it looks too advanced for me....

#

dryfire?

torn timber
#

The flow is pretty much this:
Reload: check for reserve ammo
ReloadAnimation: animate the reload (it doesn't matter how much ammo you have in reserve, it's going to animate anyway
ReloadAmmo: Actually reload the ammo by giving the loaded token (This is the opposite of your current method) and then take 1 of the reserve ammo type, then check if the gun is fully loaded, if yes, end reload; if yes, loop the Reload Ammo state until the gun is full, or runs out of reserve ammo

vocal crypt
#

whats with the a762m in the reload state

torn timber
#

Dryfire means you're trying to fire your gun with no ammo, and it's not going to do any reloading because you don't have any reserve ammo anyway

#

a762mm is the ammo actor

#

7.62 Millimeter

#

M60s use 7.62 mm ammunition

vocal crypt
#

oh

torn timber
#

the 'a' is there because you can't start an actor name with a number

#

thus shorthand for 'ammo'

#

The complete code for this weapon is actually 279 lines long

vocal crypt
#

Unfortunately I think I need something more simple or something

torn timber
#

My more complicated weapons that have like alternate ammo types, firing modes, melee functionality and other such things run over 600 lines easily, so I think that was probably the easier one to look at and tear apart.

#

The most important part of all of that is the ReloadEnd state, cause that's where it actually handles the main part of the reload

#

err

#

the ReloadAmmo state

#

not end

vocal crypt
#

still seems too complex.

torn timber
#

it's those 5 lines

#

ReloadAnimation and ReloadEnd are cosmetic

vocal crypt
#

since Im doing a halfass, I'd probably want it to just go down and "reload"

torn timber
#

no actual sprite animation is needed for the actual reload

vocal crypt
#

which is the offsite thing

torn timber
#

yeah, that part doesn't matter

#

reloading is just inventory token management

#
  1. If your gun is idle, check for ammo, if no ammo, reload.
  2. If you fire your gun and you have no ammo at all, the gun should not fire or reload.
  3. If you fire your gun and you expend ammo, check to see if there is any loaded ammo remaining, if yes, start a reload before going idle or attempting to fire another shot.
  4. If you have reserve ammo, reload the gun, otherwise idle.
  5. If you have reserve ammo, start replacing the empty ammo.
  6. If your gun is full or runs out of reserve ammo, finish reloading.
#

That's the condensed process I suppose

vocal crypt
#

I think the reason I think it's complex is because of the cosmetic stuff

#

(that grammar makes sense)

torn timber
#

just ignore/remove those 2 states when you look at it then

vocal crypt
#

ReloadAnimation and ReloadEnd then

torn timber
#

yes

#

they don't do anything other than really play sounds and have a_weaponready states so you can interrupt the reload by switching weapons

vocal crypt
#
actor LoadedM60 : Ammo {
    inventory.amount 0
    inventory.maxamount 100
    ammo.backpackamount 0
    ammo.backpackmaxamount 100
    States {
        Spawn:
            BLIT A -1
            Stop
    }``` the 100 part seems confusing
#

is that the amount of ammo in total

#

or is that the ammo in the "clip"?

torn timber
#

that's how much ammo can actually be loaded into the m60

#

no more than that

vocal crypt
#

so ammo total

#

combined with the clips

#

and all of that

torn timber
#

yes, but this system works by taking away that token from the total instead of giving it like yours does

#

no

#

that's only what's loaded in the gun currently

#

hence "Loaded"M60

vocal crypt
#

oh

torn timber
#

you start with 100

#

fire a bullet

#

then you have 99 left

#

hit 0, reload

#

This is how your code would translate for the ReloadAnimation and ReloadEnd states in mine:

    PISG A 1 Offset(0,35) A_PlaySound("weapons/shotgr", CHAN_WEAPON)
    PISG A 1 Offset(0,38)
    PISG A 1 Offset(0,44)
    PISG A 1 Offset(0,52)
    PISG A 1 Offset(0,62)
    PISG A 1 Offset(0,72)
    PISG A 1 Offset(0,82)

ReloadEnd:
    PISG A 1 Offset(0,82)
    PISG A 1 Offset(0,72)
    PISG A 1 Offset(0,62)
    PISG A 1 Offset(0,52)
    PISG A 1 Offset(0,44)
    PISG A 1 Offset(0,38)
    PISG A 1 Offset(0,35)
    PISG A 1 Offset(0,32)
    goto Ready```
#

it just separates the reload into sections that are meant to do one main thing

#

This would be the ReloadAmmo state translated:

    TNT1 A 0 A_GiveInventory("MachineGunLoaded",1)
    TNT1 A 0 A_TakeInventory("MachineGunAmmo",1)
    TNT1 A 0 A_JumpIfInventory("MachineGunLoaded",60,"ReloadEnd")
    TNT1 A 0 A_JumpIfInventory("MachineGunAmmo",1,"ReloadAmmo")
    goto ReloadEnd```
vocal crypt
#

well I solved it using infinite ammo

#

but it won't even reload

#

so

#

gonna work on dat

#

also, summarize what is wrong with the reload system I got?

#

bloody hell this is complex shit or somethin

#

well I tried the dryfire thing

#

it froze GZDoom

#

I guess it's some paradox or something

#

screw it.

#

too hard.

torn timber
#

Dryfire just plays a sound and then returns to the Ready states

#

it's pretty much a skip for the Fire state

#

would you do better with this making a flowchart?

vocal crypt
#

maybe

#

And if it's more simpler, using a Doom vanilla weapon?

#

I'm guessing what reload system I want is too complex for the Doom Engine

#

which is x amount of bullets in y clip, reloading removes y clip and loads another one from z amount of clips

#

so like 30/3

#

30 bullets in 1 clip.

#

er

sleek onyx
#

So, you want realistic clips?

vocal crypt
#

I guess.

#

which I guess the Doom Engine can't do

sleek onyx
#

How about keeping the ammo amount in clips in arbitrary arrays? I don't know much, but I can at least try come up with something.

vocal crypt
#

um what?

sleek onyx
#

Like having an array of say 10 values and somehow treating those as clips

torn timber
#

you can't use Arrays in DECORATE, no real need to use ACS, don't know about ZScript and arrays

vocal crypt
#

Using DECORATE and not considering using ZScript until SLADE "officially" supports it and stuff

#

or atleast, until it gets some wiki like the ZDoom wiki

#

er

#

but anyway

#

is the reload system I said possible Mine?

torn timber
#

Just call me Min, and ZDoom does allow you to bind a reload key

#

you could have A_WeaponReady jump to the reload state when you press that

#

with the flag WRF_ALLOWRELOAD

#

you could at least use that to make a manual reload without really having to add anything extra to the ready state

#

then for the Fire state, just have it check to see if it needs to reload before you fire another bullet

#

you could simplify your reload state

vocal crypt
#

so a_jumpifnoammo or something?

#

or would it be a_jumpifinventory

torn timber
#

but keep in mind, if you're not checking ammo and replacing it right, you'll get odd numbers and things like 'ghost bullets', getting ammo when you should not have

#

A_JumpIfNoAmmo only checks for the Primary Ammo being empty

vocal crypt
#

so a_jumpifinventory

torn timber
#

it depends on whatever your primary ammo is, I'm guess it's MachineGunAmmo

#

so the thing you want to be checking to see if it's empty is the loaded ammo

#

or rather in your code you posted earlier, full

vocal crypt
#

so the ammo would be inventorytype?

#

or rather

#

something like this

#

A_JumpIfInventory(MachineGunAmmo,intnum,statetojumpto)

torn timber
#

You're checking MachineGunLoaded as that represents what is currently loaded in the gun (or rather how many empty spaces there are)

#

MachineGunAmmo is your reserve ammo

#

it has nothing to do with what is already in the gun

#

your gun should not be using that as an ammo type at all actually

#

well

#

for your system it would

vocal crypt
#

what should it use then

torn timber
#

the problem is this

#

instead of having actual reserve ammo,

#

you're firing your gun using your regular old ammo

#

and you're keeping track of when it needs to reload by a token

#

really I guess all you have to do is manage that reload token then

#

whenever you hit the reload state, just reset the reload token "MachineGunLoaded" from whatever it is, back to 0

#

I'm getting confused between 2 systems that operate opposite of each other

vocal crypt
#

what 2 "systems"

torn timber
#

The system you use where you fire "ammo" that is not actually linked to how many bullets a weapon has in it and an inventory item that represents "when this gun needs to reload" vs a system where you fire "loaded ammo" and then transfer "ammo" that replenishes "loaded ammo"

vocal crypt
#

so the second system is basically firing loaded ammo, but when empty, transfers xammo to replenish the loaded ammo

torn timber
#

yes

#

that was my code

#

I'm getting to that point where I'm just tired and can't adequately explain this stuff

vocal crypt
#

getting tired as well, tho I'm listenin to ASMR

torn timber
#

same

vocal crypt
#

does your system allow "realistic" reloading

#

which is xbullets / xclips

#

whatever

torn timber
#

A friend and I have another even more complex system for that

#

the code I used here simply makes sure you never load more than you gun can hold, and that you never load more than you have

#

it does this so it can actually display just how much Loaded Ammo and Reserve Ammo you have using SBARINFO

vocal crypt
#

well it seems I need to use that system instead

torn timber
#

with the method where you're just adding to your MachineGunLoaded token, you can't actually display how much Loaded ammo you have left before you have to reload

#

it's going in reverse

#

it would say 0 when fully loaded

#

and then 1 when you fire a bullet

#

and 60 when the gun is empty

#

it's a bit backwards

vocal crypt
#

so I'm switching to your system then

torn timber
#

just start small, make it work first

vocal crypt
#

sigh

#

what do you mean

torn timber
#

it means make it do one crucial step at a time until you can make a template that works for you

#

like actually getting the thing to do the reload animation first

vocal crypt
#

though it's just a half-ass

#

which is basically moving the gun out of "frame"

#

and moving back when it's "reloaded"

torn timber
#

that's not what I mean

vocal crypt
#

oh

torn timber
#

you said you couldn't even get it reload at all yet, right?

vocal crypt
#

right, first it was infinite ammo, then it fired like a normal gun.

#

er rather

#

the problem was it was infinite ammo

#

then the problem transitioned into it just firing like a normal doom gun

torn timber
#

firing like the pistol? 1 slow bullet at a time?

vocal crypt
#

by normal doom gun I mean shooting non-stop like a chaingun with no reload

torn timber
#

alright

vocal crypt
#

unlike, say COD

torn timber
#

I believe that had to do with the way it was handling the MachineGunLoaded token

#

you had it keep giving, instead of taking away, remember?

#

the fire state added to the token, and then the reload also added to the token

#

it never actually took away the token anywhere

#

thus your system would be broken

#

it could never cycle back

vocal crypt
#

I guess so

#

Well now I got it to reload manually

#

but it's a endless reload thing till it runs outta ammo if I keep pressing the reload key

torn timber
#

your reload needs to check to see if the gun is full before actually doing the reload

#

if the gun is full, end the reload

#

or

#

if you're out of ammo to load, end the reload

vocal crypt
#
        MCGN A 1 A_GunFlash
        MCGN B 1 A_FireBullets(3, 4, 1, 5, "BulletPuff", 1)
        MCGN B 1 A_Quake (1,3,0,32)
        MCGN A 0 A_JumpIfInventory ("MachineGunAmmo", 0, "reload")
        MCGN C 1 
                TNT1 A 0 A_Refire
        goto Ready
        Reload:
          MCGN A 1 Offset(0,35) A_PlaySound("weapons/shotgr", CHAN_WEAPON)
  MCGN A 1 Offset(0,38)
  MCGN A 1 Offset(0,44)
  MCGN A 1 Offset(0,52)
  MCGN A 1 Offset(0,62)
  MCGN A 1 Offset(0,72)
  MCGN A 1 Offset(0,82)
  TNT1 A 0 A_GiveInventory("MachineGunLoaded", 1)
  TNT1 A 8 A_TakeInventory("MachineGunAmmo", 30)
  MCGN A 1 Offset(0,82)
  MCGN A 1 Offset(0,72)
  MCGN A 1 Offset(0,62)
  MCGN A 1 Offset(0,52)
  MCGN A 1 Offset(0,44)
  MCGN A 1 Offset(0,38)
  MCGN A 1 Offset(0,35)
  MCGN A 1 Offset(0,32)
        goto Ready```
torn timber
#

MCGN A 0 A_JumpIfInventory ("MachineGunAmmo", 0, "reload")

#

this is the problem

#

which system are you trying to use now,

vocal crypt
#

since you told to move on till I find a template, the broken one

#

or rather, do it one step at a time

torn timber
#

if you're using your old system

#

where firing the weapon adds to "MachineGunLoaded"

#

which I also don't see happening anymore

#

then the inventory check should be checking for "MachineGunLoaded" being maxed out

#

"MachineGunAmmo" is your basic ammo, the one you normally pick up right?

vocal crypt
#

yes

torn timber
#

trying to check for 0, which means check for max of this inventory, means you're checking to see if you have the maxed out "MachineGunAmmo" count, which wouldn't be possible since you're using the ammo to fire the weapon

vocal crypt
#

at this point I'm thinking of using your system

#

since this "old" one is broken af

#

Min?

torn timber
#
    TNT1 A 0 A_JumpIfInventory("MachineGunLoaded",60,"Reload")
    MCGN A 1 A_GunFlash
    TNT1 A 0 A_GiveInventory("MachineGunLoaded",1)
    MCGN B 1 A_FireBullets(3,4,1,5,"BulletPuff",1)
    MCGN B 1 A_Quake(1,3,0,32)
    MCGN C 1 
    TNT1 A 0 A_Refire
    goto Ready
Reload:
    MCGN A 1 Offset(0,35) A_PlaySound("weapons/shotgr",CHAN_WEAPON)
    MCGN A 1 Offset(0,38)
    MCGN A 1 Offset(0,44)
    MCGN A 1 Offset(0,52)
    MCGN A 1 Offset(0,62)
    MCGN A 1 Offset(0,72)
    MCGN A 1 Offset(0,82)
    TNT1 A 0 A_TakeInventory("MachineGunLoaded",60)
    MCGN A 1 Offset(0,82)
    MCGN A 1 Offset(0,72)
    MCGN A 1 Offset(0,62)
    MCGN A 1 Offset(0,52)
    MCGN A 1 Offset(0,44)
    MCGN A 1 Offset(0,38)
    MCGN A 1 Offset(0,35)
    MCGN A 1 Offset(0,32)
    goto Ready```
#

Try that, it's modified from your old code

#

I also removed where it tries to take "MachineGunAmmo" in the Reload state

#

because it doesn't need to

#

you were trying to do a magazine system when it doesn't use magazine style reloading technically

#

MachineGunLoaded should work properly here, it's just like a timer for when the gun should play that reload animation and then it resets that timer within the middle of the Reload

#

no actual ammo gets transfered anywhere

#

the ammo should stay right where it is in your inventory

#

the gun now should just not allow you to fire until you've done a reload

vocal crypt
#

Infinite ammo

torn timber
#

this gives you the infinite ammo issue?

vocal crypt
#

yeah

torn timber
#

is it not using ammo,

#

or is it still firing when it hits 0?

vocal crypt
#

It's 300

#

Then stays at 299 when fired

torn timber
#

and it stays on 299?

vocal crypt
#

yeah

#

still fires and works though.

#

or rather

#

works as in it kills demons

#

Min?

torn timber
#

every time A_FireBullets is called, it should be using a bullet by default

#

What are the flags on this weapon?

#

in the properties

vocal crypt
#

ah shit, where would the flags be.

#

um

torn timber
#

at the top

#

where all the actor properties are

vocal crypt
#

so before the states

torn timber
#

yes

vocal crypt
#

oh ok

#
    Weapon.AmmoType "MachineGunAmmo" 
    Weapon.AmmoGive 50
    Weapon.AmmoUse 1    
    Weapon.SlotNumber 4
    Inventory.PickupSound "misc/w_pkup" 
    Inventory.PickupMessage "Picked up a Light Machinegun!"
    Obituary "%o was Lit up by %k's Machinegun."
    AttackSound "weapons/Machinegun"
     Decal BulletChip```
torn timber
#

are there no flags at all?

vocal crypt
#

flags are somthing like +insertflaghere ?

torn timber
#

things that would say like +MELEEWEAPON or +NOAUTOAIM

#

yes

#

everything else you posted are properties

vocal crypt
#

no flags then

torn timber
#

can you pastebin all of the code, and I'll try running it on my end

vocal crypt
#

I don't do pastebin

#
ACTOR Machinegun : Weapon 601
{ 
  //$Category Weapons
  //$Sprite MCGNW0
  //$Title "Light Machinegun"
        Weapon.Kickback 5
        Weapon.AmmoType "MachineGunAmmo" 
        Weapon.AmmoGive 50
        Weapon.AmmoUse 1    
        Weapon.SlotNumber 4
        Inventory.PickupSound "misc/w_pkup" 
        Inventory.PickupMessage "Picked up a Light Machinegun!"
        Obituary "%o was Lit up by %k's Machinegun."
        AttackSound "weapons/Machinegun"
        Decal BulletChip
    States 
    {  
    Ready: 
        MCGN A 1 A_WeaponReady (WRF_ALLOWRELOAD) 
        Loop 
    Deselect: 
        MCGN A 1 A_Lower 
        Loop 
    Select: 
        MCGN A 1 A_Raise 
        Loop 
Fire:
    TNT1 A 0 A_JumpIfInventory("MachineGunLoaded",60,"Reload")
    MCGN A 1 A_GunFlash
    TNT1 A 0 A_GiveInventory("MachineGunLoaded",1)
    MCGN B 1 A_FireBullets(3,4,1,5,"BulletPuff",1)
    MCGN B 1 A_Quake(1,3,0,32)
    MCGN C 1 
    TNT1 A 0 A_Refire
    goto Ready
Reload:
    MCGN A 1 Offset(0,35) A_PlaySound("weapons/shotgr",CHAN_WEAPON)
    MCGN A 1 Offset(0,38)
    MCGN A 1 Offset(0,44)
    MCGN A 1 Offset(0,52)
    MCGN A 1 Offset(0,62)
    MCGN A 1 Offset(0,72)
    MCGN A 1 Offset(0,82)
    TNT1 A 0 A_TakeInventory("MachineGunLoaded",60)
    MCGN A 1 Offset(0,82)
    MCGN A 1 Offset(0,72)
    MCGN A 1 Offset(0,62)
    MCGN A 1 Offset(0,52)
    MCGN A 1 Offset(0,44)
    MCGN A 1 Offset(0,38)
    MCGN A 1 Offset(0,35)
    MCGN A 1 Offset(0,32)
    goto Ready
        Flash:
        MCGN A 1 Bright
        MCGN B 1 Bright A_Light1
                 Goto LightDone
    Spawn:
        MCGN W -1
        Stop
        }
    } 

actor MachineGunAmmo : Ammo
{
inventory.amount 10
inventory.maxamount 200
ammo.backpackamount 25
inventory.icon AMMOA0
ammo.backpackmaxamount 300
inventory.pickupmessage "You got ammo for the LMG!"
states
{
Spawn:
AMMO A -1
Stop
}
}

actor MachineGunLoaded : MachineGunAmmo
{
inventory.maxamount 60
+IGNORESKILL
}```
torn timber
#

OH DAMN IT

#

YOU KIDDING ME

#

Found the issue.

#

right at the very end there

#

actor MachineGunLoaded : MachineGunAmmo

#

--> MachineGunAmmo

#

This needs to be "Inventory"

#

let me try this

#

well, it's part of the issue

#

I've gotten the gun to actually use ammo, and I can at least stop the gun from firing now when it hits 0 ammo

#

alright

#

fixed

#

This should fix everything

#

note that this version is replacing the Doom Chaingun, did that for testing purposes

#

you'll have to change the 1st line if you want it to have an ID

vocal crypt
#

Alright

torn timber
#

and y'know, not replace the chaingun

vocal crypt
#

Minesae your thing works. Although it seems no actual "reloading" takes place.

torn timber
#

That's because your system was never designed to do that

#

all it does it resets the counter that tells it when to do the reload action

vocal crypt
#

Oh, it was D3D style reloading

torn timber
#

essentially

#

just like the pistol

vocal crypt
#

although why did you replace the sprites with the Chaingun ones?

torn timber
#

oh right, forgot to change that back

#

I can't test it with sprites I don't have, obviously ๐Ÿ˜›

vocal crypt
#

oh

#

well, you could, but it'd be invisible

#

so we have "pseuedo-reload" D3D style reloading

#

how about we get to... not-so-pseudo-reload style?

torn timber
#

You'd have to use my other code then

#

and learn how that system works

vocal crypt
#

k

#

is the ReloadAnimation part just for better organization?

#

in the code you "gave" me

torn timber
#

It serves as both a state that plays sound and animation and allows weapon switch interrupts as well as offers a place to jump to for the check if you have reserver ammo

vocal crypt
#

is a762m the "clip" or the ammo in said clip?

#

sorry for pissing off gun enthusiasts by calling it a clip

torn timber
#

it's the reserve ammo that has nothing to with what is loaded in the gun

vocal crypt
#

so in this case, it'd be MachineGunAmmo?

torn timber
#

it's what you pick up and what is pulled from in order to load the gun

#

yes

vocal crypt
#

Will my half-ass "moving gun down then up" reload animation work for ReloadAnimation?

#

since it's using the offset "command"

#

TNT1 A 0 A_JumpIfInventory("loadedM60",100,"ReloadEnd")

#

does that take 100 bullets away or something?

#

Min?

#

@torn timber ? sorry for pinging you

unreal oyster
#

no, that jumps to "ReloadEnd" if the player has 100 "loadedM60"s

vocal crypt
#
Sprite names must be exactly 4 characters```
unreal oyster
#

post line 22 please

vocal crypt
#

MCGN A 1 A_WeaponReady (WRF_ALLOWRELOAD)(WRF_NOBOB)

unreal oyster
#

uhm, it looks like it should be fine but

#
    MCGN A 1 A_WeaponReady (WRF_ALLOWRELOAD | WRF_NOBOB)```
#

this do anything?

vocal crypt
#

apparently less

#

*yes

#

tho I got a new error

#
Unterminated string constant```
#

I'm going to assume translated it says " I can't find this string"

#

..or a quotation mark is missing

#
Weapon Machinegun doesn't define a ready state.```
unreal oyster
#

post line 88

#

if you are having issues, please post the line

#

don't just expect us to know ๐Ÿ˜›

vocal crypt
#

keep forgetting

#

}

#

literally it.

#

gUT?

#

Min? Gut?

unreal oyster
#

what?

#

oh

vocal crypt
#

I posted line 88

unreal oyster
#

okay well that's not enough to go on, post like around 10 lines around 88 i guess?

vocal crypt
#

88-78?

unreal oyster
#

nah, like 83-93

vocal crypt
#
    Spawn:
        MCGN W -1
        Stop
        }    
    } 


actor MachineGunAmmo : Ammo
{
inventory.amount 10```
unreal oyster
#

okay, that's still not enough to go on lol

#

post the whole thing

vocal crypt
#

If you mean the whole code... I can't.

#

Discord text limit

unreal oyster
#

pastebin

vocal crypt
#

do I need an account?

unreal oyster
#

nope

unreal oyster
#

omg how did i not notice

#

you just need to add a Ready state lol

#

it's mandatory on all weapons

vocal crypt
#

...except readyloop is suppose to be said ready state

#

@unreal oyster

unreal oyster
#

but it's not

#

readyloop is the readyloop state

#

not the ready state

vocal crypt
#

@torn timber you apparently forgot the ready state in yo code

#

and your code also apparently freezes the game up.

#

Min?

trim falcon
#

infinite loop is fun

vocal crypt
#

@torn timber ?

#

sorry for the extra pingin

torn timber
#

I didn't include the ready code on purpose because like I said,

#

all the Ready state does in my weapon is serve to reset/remove tokens

#

and then drop into the ReadyLoop state

#

The Ready state on my weapon only runs once, then it loops through the ReadyLoop state

vocal crypt
#

so just ready with the usual a_weaponready crap?

torn timber
#

because it's generally a good idea to not use something like "Goto Ready+5" often, because if you end up changing the number of lines at the beginning of that state, you'd have to change that +5 offset too, and those offsets can easily be forgotten when they're spread across hundreds of lines of codes.

#

but no

#

a_weaponready should be in the ReadyLoop on my code

#

for your purposes, you can just rename ReadyLoop to Ready

vocal crypt
#

Which I did

#

and now I'm stuck on the game freezing part

torn timber
#

unless there's something you have to do before the weapon goes back to the Ready state

#

what does your code look like now?

vocal crypt
#

I'd post it in discord, but the stupid text limit

#

IIRC

#

oh wait

#

that's the old part

#

this is the "new" code.

torn timber
#

Here, I'll show you what the full Ready and ReadyLoop look like on my code and you'll probably understand why I don't include that in the example:

    TNT1 A 0 A_AlertMonsters(random(16,128))
    TNT1 A 0 A_ZoomFactor(1,ZOOM_INSTANT)
    TNT1 A 0 A_TakeInventory("IronSight",1)
    TNT1 A 0 A_TakeInventory("RoF",1)
    TNT1 A 0 A_TakeInventory("SpecFire",1)
    TNT1 A 0 A_TakeInventory("KnifeAtk",1)
    TNT1 A 0 A_TakeInventory("ThrowGrenade",1)
    TNT1 A 0 A_TakeInventory("Reloading",1)
    TNT1 A 0 A_TakeInventory("AmmoSwap",1)
    M60A ABCDEFGHIJLMNOP 2 A_WeaponReady(WRF_NOPRIMARY)

Readyloop:
    TNT1 A 0 A_JumpIfNoAmmo("Reload")
    TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
    TNT1 A 0 A_JumpIfInventory("KnifeAtk",1,"Knife")
    TNT1 A 0 A_JumpIfInventory("ThrowGrenade",1,"GrenadeCheck")
    M60A P 1 A_WeaponReady(WRF_NOBOB)
    loop```
#

Looking through your new code now

vocal crypt
#

results?

torn timber
#

Well when using this system, you need to have your primary ammo be the loaded ammo and your secondary can be the reserve ammo (for display purposes)

#

I'll highlight the changes

vocal crypt
#

so the primary ammo would be the Ma-

#

oh

unreal oyster
#

for highlighting code changes, github gist is great

#

example

vocal crypt
#

trying not to be impatient, but how's the progress @torn timber

vocal crypt
#

Min?

#

@torn timber

torn timber
#

there's the raw code

#

should be working fully now

#

you don't really need that "Reloading" token, that was more for interacting with our ACS stuff

vocal crypt
#

the reloading actor

#

or the "state"

torn timber
#

token

#

it's an actor

vocal crypt
#

oh

#

still freezing when ammo is chewed up all the way

torn timber
#

oh

#

it's getting stuck in a reload loop then

#

to fix it,

#

try swapping the two lines in the Ready state

#

that way it at least plays one tic before checking for ammo

#

I'll look into a better fix

#

but that should keep it from crashing for now

vocal crypt
#

not freezing

torn timber
#

cause I think what'll happen by letting it stay like that is that your weapon will never autoswitch to a non-empty weapon

#

because of the +AMMO_OPTIONAL flag

#

which keeps the gun from autoswitching when you run out of loaded ammo

vocal crypt
#

something off-topicish, but which ammo actor is the clips, and the amount of ammo in said clip?

torn timber
#

"MachineGunAmmo" = Your spare "magazines" (it's really just all of your remaining ammo that isn't loaded in the gun.
"MachineGunLoaded" = Your currently loaded magazine.

vocal crypt
#

apparently when teh gun reloads, it takes 30 of those spare magazines

torn timber
#

what

#

no

#

it takes 30 bullets

vocal crypt
#

well that

torn timber
#

You're not carrying 300 magazines

vocal crypt
#

300 bullets

torn timber
#

yes

#

when it reloads, it takes up to 30 bullets from your reserve

#

there's no real Magazines being used

#

It's just
What's in the gun/What's not in the gun

vocal crypt
#

hmmm

#

well how do I change it to something like 3 "magazines" not used, while the current mag has 60?

#

er

#

or is the right thing just total bullets.

torn timber
#

it's just total bullets

vocal crypt
#

hmm

torn timber
#

if one mag would carry 30 bullets,

#

and you only want a max of 4 mags worth of ammo total, then you would set your MachineGunAmmo total to 90

#

you would then be able to have 1 mag worth (30 bullets) in the gun

#

and then 3 mags worth (90 bullets) in reserve

#

or if you want 4 reserve mags worth of ammo, you'd make the total 120

vocal crypt
#

the total would go in inventory.amount or inventory.maxamount?

torn timber
#

inventory.amount is how much you get when you pick up the ammo, inventory.maxamount is the maximum amount you can carry total

vocal crypt
#

well I've tried this reloading system on another gun and it works mostly fine

#

the only problem is that when it runs out of ammo on the current "magazine" it swtiches to another gun

#

in this case, the plasma gun

#

note this is another gun, not the machinegun

torn timber
#

it does that because it probably doesn't use the +AMMO_OPTIONAL flag

#

when it technically hits 0 primary ammo, it issues a switch, before it ever has the chance to reload

vocal crypt
#

Apparently GZDoom can't read some formats for textures

#

mostly the flat formats

#

well

#

GZDoom Builder

vocal crypt
#

Apparently I got problems with textures

#

because GZDoom Builder can't read the formats

#

for lfat textures

#

*flat

warped rampart
#

You can also edit your posts but okay.

unreal oyster
#

@vocal crypt what exactly is the issue here, i feel i'm missing something

#

which format are you mapping in?

vocal crypt
#

UDMF format

#

@unreal oyster

unreal oyster
#

hmm

#

sorry then i don't really know :/

vocal crypt
#

anyone know if using MAPINFO can help you use a different "texture" for the skybox?

#

Don't wanna use the cliche F_SKY texture

unreal oyster
#

yes

#

sky1 = <sky name>

vocal crypt
#

can that be used for DOOM 2, or is that just what skybox F_SKY uses?

#

er

royal wave
#

any map

#

but you have to use one of the sky textures that exist in the game already to get it to work

#

otherwise you'll just have a ceiling of your texture and not a sky effect

vocal crypt
#

so F_SKY for example?

unreal oyster
#

F_SKY1 isn't really a normal texture, it's a weird kind-of-texture that makes a skybox appear in a map

#

SKY1, SKY2 and SKY3 are the doom 2 sky names

#

if you are using mapinfo, you'd want to call it something like SPACESKY for a starry sky, for example

#

don't call it SKY1, SKY2 or SKY3

vocal crypt
#

also, anyone know how to fix that texture problem in GZDoom?

#

or am I just gonna have to shove the textures in the map wad file?

unreal oyster
#

i can't remember the problem sorry, repeat it

#

be as specific as possible

vocal crypt
#

GZDoom Builder can't recognize the format of the flat textures from that gothic texture mod from Realm667.

#

I put them in a textures folder in a PK3

#

(I use PK3's as a resource, with the wad for maps and stuff)

#

(for mods and shit)

royal wave
#

you need to tell GZDoom that there are texture resources in the PK3

vocal crypt
#

How do I do that

royal wave
#

resource settings in the options menu

vocal crypt
#

The bloody thing is confusing.

royal wave
#

Yeah doom modding isn't a very clean process

#

honestly don't blame anyone when the contents of their wad are severly disorganized

vocal crypt
#

that or some other shit happened

#

because wehn I pasted it all in the pk3 file again, GZDoom didn't throw a fit about textures

#

from GOTHICTX file to the PK3.

#

or GZDoom Builder

#

also, is it possible to have a texture with transparent background over a non-transparent background texture? Or am I asking somethign limited by teh engine?

vocal crypt
#

@unreal oyster might help with this or somethin?

haughty flower
#

How would i add custom textures for GZDoom builder?

haughty flower
#

nevermind, got them to work

vast bolt
#

Hmm, trying to take a peek at the R667 Shuffle mod but I think editing the weapons made it not switch to shotguns.

#

like you can switch to everything else but with shotguns you can't switch

unreal oyster
#

Realm667 weapons by default aren't switchable to

#

You need to give them a weapon and selection order first

#

And probably a doomednum

vocal crypt
#

some of them have doomednum

vast bolt
#

oh?

vocal crypt
#
> bombplanting 
>            ^
#

I would be working on that DoomStrike mod

#

buuuut I'm busy with trying to get a second ACS script to wrok

#

*work

#

<@&162901871168585728> maybe you guys could help?

unreal oyster
#

ayy don't tag the mods if it's not related to modding the server please

vocal crypt
#

sorry

vocal crypt
#

Is there a way for the bombsite to remove that inventory item used to allow you to plant teh bomb?

vast bolt
#

This is weird, its just not letting the player switch between their shotgun and pistol

hazy lodge
#

you boys got a download link? I wanna test it for me old self

trim falcon
#

@sharp smelt zandronum dev download

sharp smeltBOT
#

Searching...

hazy lodge
#

nope
the mod you guys are talking baout

#

*about

vocal crypt
#

who, me or Harbringer

hazy lodge
#

both

vocal crypt
#

mine is a doom themed CS thing

#

but I think it's half baked even for a alpha and first time

#

It reeks of Realm667 content the weapons.

haughty flower
#

@vocal crypt you can do that in decorate. Something along the lines of A_RemoveInventory or somestuff

molten tide
#

Hi, anyone know how to use abs in acs ?

torn timber
molten tide
#

Hmmm

#

Need more example

royal wave
#

It's returning an absolute value

#

As in if it's negative, you'll get a positive

molten tide
#

so tell me how

#
{
mouse_yaw = GetPlayerInput(PlayerNumber(), INPUT_YAW);
}```
royal wave
#

It's a function that returns a value

molten tide
#

mouse_yaw must be positive

royal wave
#

Do you know how to call functions through acs?

molten tide
#

I do not know how

royal wave
#

Okay so copy the function example in the wiki and paste it into your code

molten tide
#

done

royal wave
#

Now in script 1 replace ```mouse_yaw = GetPlayerInput(PlayerNumber(), INPUT_YAW);

with  ```mouse_yaw = abs(GetPlayerInput(PlayerNumber(), INPUT_YAW));
molten tide
#

I see

#

does the x mean anything ?

torn timber
#

what x?

royal wave
#

X is just an easier way to represent a number in programming

molten tide
#

thank you

#

pretty gardevoir

royal wave
#

Ty

torn timber
#

ah, the one in the abs script

vast bolt
#

So if I upload the pk3 would anyone look at it?

haughty flower
#

how do i MANUALLY edit a sprite in slade?

#

oh wait, i have to export it and then edit it

#

dammit

warped rampart
#

At least it's easy to re-import.

drowsy forum
#

I added new soulsphere upgrades to D4D if anyone's interested.

unreal oyster
#

ah, that's cool

drowsy forum
#

Also buffed the fuck out of the spider mastermind rune.

#

I dont think I can do anymore buffing without it going into overpowered territory but it should definitely handle a lot better now.

vocal crypt
#

Btw is the big bitch(SMM) in D4

#

?

shadow bone
#

spider mastermind? In a form, yes

hazy lantern
#

>the big bitch

#

wow ๐Ÿ˜„

vocal crypt
#

Define"in a form*

shadow bone
#

I haven't actually gotten there. You could probably google it. I was meaning "yes, but not exactly like the classic one"

vocal crypt
#

it shoots plasma Balls instead of bullets?

vocal crypt
#

Wolfenstein: Hell Socialists(?)

#

no video

#

just

#

name idea for some shit

haughty flower
#

sorry

vocal crypt
#

no

#

no

#

not

#

that you can't post vid

royal wave
#

You're making a fabulous first impression here Angel

haughty flower
#

excuse me?

#

videos can be posed right?

#

well, this is embarassing...

vocal crypt
#

Misunderstandings und crep

#

I think they can be posted here

#

also, my alpha mod was embarassing as well

royal wave
#

Yes but the content is questionable

steel onyx
#

Yeah uh

#

I'd say no thx

vocal crypt
#

no thx to wat

steel onyx
#

That vid.

haughty flower
#

it doesnt do a good job at representing the mod

#

i mean nice try

royal wave
#

That's.... no that's not the problem

haughty flower
#

well, let me explain about this video, it's a gameplay of a Hotline Miami themed

royal wave
#

Please keep things rated M for mature, not Ao for adults only

vocal crypt
#

I didn't see anything that was AO in that vid

unreal oyster
haughty flower
#

oh!

vocal crypt
#

oh

unreal oyster
#

good fucking skill naming system ๐Ÿ‘

haughty flower
#

yeah

#

whoops.... ._.

#

dont show that

#

if you do, just try to censor it

vocal crypt
#

so it just be

#

Virgin

#

woop

#

again

#

Virgin,Brutal,Rape,Snuff,Necrophilia

haughty flower
#

that sense of humor isnt alowed here

#

sorry

elder ridgeBOT
#

:ok_hand: Angel-Neko_X#3428 has been warned.

unreal oyster
#

before i forget

static ice
#

Wait

#

What?

haughty flower
#

Nobody react about my warn okay? (sigh) Still, it's embarassing

hazy lantern
#

Dude, it's simple:

royal wave
#

we clear warnings off after a week

hazy lantern
#

Videogame/virtual violence is to be expected here, but real-life or photo-realistic gore/death is usually not. Borderline cases will fall to moderator discretion.

royal wave
#

The warning system is just so we can keep track of when we've had to take action. it's not a 3 strike system

#

so you made an honest mistake, but we don't take chances as we've had to deal with way worse people. Can't allow an inch

vast bolt
#

Help me fix Shotgun bug

#

guys

vocal crypt
#

what "shotgun bug"

vast bolt
#

Can't switch to it even if I pick it up

vocal crypt
#

you have weapon.slotnumber 3?

vast bolt
#

yes

vocal crypt
#

where

vast bolt
#

nothing was tampered with

#

I just added a few weapons and enemies

unreal oyster
#

you have a Weapon.SelectionOrder too?

vast bolt
#

I'd assume in ZZZShufflePlayer or _mwr

#

I don't know I only know RandomSpawners

vast bolt
#

So know the problem?

royal wave
#

you need a weapon.selectionorder set as well if it's not inherenting from a regular shotgun

vast bolt
#

Where does that line go?

royal wave
#

same area as weapon.slotnumber

vast bolt
#

So in keyconf?

vocal crypt
#

what language you using

#

DECORATE,ACS, DEHACKED?

vast bolt
#

Zdoom KeyConf

#

Do I put it with DoomPlayer?

royal wave
#

I just said with weapon.slotnumber

vast bolt
#

This is still new to me

royal wave
#

that's in the decorate code

#

you said you did have weapon.slotnumber set

vast bolt
#

weaponsection "Chainsaw"
addslotdefault 1 NewChainsaw

weaponsection "Shotgun"
addslotdefault 3 NewShotgun

weaponsection "SuperShotgun"
addslotdefault 3 NewSSG

weaponsection "Chaingun"
addslotdefault 4 NewChaingun

weaponsection "Rocket Launcher"
addslotdefault 5 NewRL

weaponsection "Plasma Rifle"
addslotdefault 6 NewPlasmaRifle

weaponsection "BFG9000"
addslotdefault 7 NewBFG

#

This?

#

Is this the set?

royal wave
#

okay toss out keyconf

#

There's an easier way

#

like straight up delete the lump

vocal crypt
#

DECORATE is much easier

#

well

vast bolt
#

ok

royal wave
#

Now go to the DECORATE code of your weapons

#

in the flags block put weapon.slotnumber #

#

replace # with the number you want the player to press to go to that weapon

vocal crypt
#

1-8 IIRC

#

or maybe 1-9

royal wave
#

0 - 9 actually

vocal crypt
#

oh

vast bolt
#

Nope

#

Regular Shotgun aint switching throw wheeling

#

through*

vocal crypt
#

weapon.selectionnumber ?

vast bolt
#

Its always 3

vocal crypt
#

that's not weapon.slotnumber?

vast bolt
#

Its suppose to be, did you take a look?

#

Because all I see is custom weapons

unreal oyster
#

silly little mod i've been working on the past few days, enhanced doom AI
i posted an earlier version a while ago
since then i've added smarter logic and active projectile dodging
turned out pretty nicely

#

use newest gzdoom devbuild

haughty flower
#

looks like hell

#

but what do you mean by newest devbuild?

royal wave
#

the dev team releases new versions almost daily

#

they're not considered stable, so they call them dev builds

haughty flower
#

thats not what i meant

royal wave
#

it gives people time to try out the new features before they're officially released

haughty flower
#

i use them regularly

royal wave
#

yeah... so use the newest devbuild

haughty flower
#

i mean what build is recomended?

royal wave
#

newest

unreal oyster
#

i mean it could work on older builds, i just haven't tested

#

i use the newest gzdoom devbuild

#

so if it breaks while under an older build, then

#

ยฏ_(ใƒ„)_/ยฏ

vocal crypt
#

but the question is

#

why you using an old build

haughty flower
#

so im assuming not 2.4 pre-342-gd90f2ba

#

build of 2/5/17

unreal oyster
#

i use g2.4pre-359

#

it probably doesn't really matter though

#

just use the newest to be sure

haughty flower
#

we will see about that

prisma saddle
#

Didn't run when I tried it.

unreal oyster
#

if it didn't run, you should update

vocal crypt
#

any other monsters or just imps rn?

unreal oyster
#

just imps rn

haughty flower
#

works for me

#

and yeah its a pain in the butt

unreal oyster
#

hah

vocal crypt
#

not for me

#

pistol killed the mofo

#

so

#

but then again

#

AI didn't change health

haughty flower
#

thats because this build doesnt have the bullet sponge imps

unreal oyster
#

try spawning a bunch of them

vocal crypt
#

define "bullet sponge"

unreal oyster
#

on their own, they're not too bad

vocal crypt
#

TERRY wad bullet sponge

#

or just Cyberdemon bullet sponge

unreal oyster
#

but when there's a lot, they will surround you and absolutely fuck you up

vocal crypt
#

unless you got the BFG

unreal oyster
#

well yeah but that sorta isn't the point ๐Ÿ˜›

vocal crypt
#

Smart Cyberdemon

#

Fuck it, Spider Mastermind. Smart Spider Mastermind

unreal oyster
#

that doesn't even make sense ๐Ÿ˜›

#

they wouldn't be able to jump, lol

vocal crypt
#

but they can stomp

#

or squash you

#

in a non-cartoony way

prisma saddle
#

Could someone help me transfer my GZDOOM settings over to the next version?

unreal oyster
#

just drag and drop the ini :?

#

should work

prisma saddle
#

Not really working for some reason...

haughty flower
#

Time for a little bit of copying and pasting codes from eachothers

unreal oyster
#

??

haughty flower
#

boot up your favorite word text editing program and fix some stuff

prisma saddle
#

I guess I'll just do it manually.

pallid yoke
viscid ridge
hazy lantern
#

That looks nice

viscid ridge
#

Thanks @hazy lantern

hazy lantern
#

When do you think about releasing the WAD file?

viscid ridge
#

I could release a pre-alpha now, but it's not tested or anything really

hazy lantern
#

Oh okay, I'll wait then ๐Ÿ˜„

viscid ridge
#

everyone I had look at it hates slaughter maps, and I've only done UV and that's slaughter

#

I can balance HMP and lower to not be slaughter

hazy lantern
#

๐Ÿค”

#

@viscid ridge Alrighty: Just inform me when the WAD is out! ๐Ÿ˜„

viscid ridge
#

It's a map in the megawad Nova III, I suppose I could release it separately, but I'll have to make sure that's ok

frank basin
drowsy forum
#

Woo, neat! How about sane file naming for sounds?

#

In the mean time, out in the middle of buttfucking nowhere in space...

#

I randomly tossed two mods together.

#

ate a hell knight, specifically.

vocal crypt
#

Vore

drowsy forum
#

Yummy

drowsy forum
#

You see this shit right here?

#

THIS IS WHAT HAPPENS... when I am BORED out of my FUCKING MIND.

vocal crypt
#

oh shit it's fucking Apocalypse Hasbro'd

#

MARVEL'S Apocalypse

drowsy forum
#

XD

#

SHe's intended for another mod but I thought it'd be funny to randomly slap her into D4D for shits and giggles.

#

Was fun.

trim falcon
#

how to make light effect ?

drowsy forum
#

That's bloom.

#

Just turn it on in the gzdoom options.

trim falcon
#

oh

#

so its not zscript/decorate

drowsy forum
#

nope.

#

@royal wave Just imagine what my boredom will make me do next (see above). ๐Ÿ˜›

vocal crypt
#

vore Doom style?

drowsy forum
#

No.

royal wave
#

what am I looking at