#classic-doom-maps-mods
1 messages ยท Page 43 of 1
Can't right now, bed time.
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
ok do it
I think part of my update to SkyMayBe, i make some skymaybe deathmatch maps
so gzdoom just added this.
doom 64 style lighting for sectors
....
it's beautiful
Glorious
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.
oh, lol
@unreal oyster what's it able to do?
well, you can see in the image
different lighting for floor, bottom wall, top wall and ceiling
allows for really cool looking rooms
I need to notify Wadaholic about this now...
how did N64+PSX lighting system for doom work even
what about middle wall
not there
then it's worthless /s
@vocal crypt its works nothing like the saturn
I don't know the saturn port of Doom so
thats all i can tell you
why, is the saturn lighting system shitty?
because it isnt in the specs
um
saturn cant do colored lighting
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
mmm
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
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
what this
@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?
I think modders are still asleep
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
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
thanks ๐
You should use MapInfo for music
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
what
And an expiation of the meme
@unreal oyster about the GZDoom features...
How do you add them to a WAD?
GZDoom Builder seems outdated.
Is there some other way?
have you tried this? https://devbuilds.drdteam.org/gzdbbf/
I just said it looks outdated.
I think Doom Builder has updated much past GZDoom Builder.
I might be wrong, though.
seems and looks are two different things
Good point.
doom builder 2 has been abandoned for multiple years
Wait, really?
yes
im using doom builder 2 for some training with it
So GZDoom Builder is actually the most updated version?
after i were to get a custom to it ill move on to gzdoom builder
why? there's no reason to do that
they are practically identical in UI
gzdb just supports more
its not that big to even bother
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?
opens in ie for me even though my default browser is chrome too
i'll bug report it
k thanks
@granite marsh
thanks
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.
Dunno
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.
If you right-click on the rain spawner after placing it on the map, what do you see?
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
zscript does floats
far more dynamic than anything decorate could do - although it should be noted that this only accounts for player movement
zscript does floats
yea
WOO
it also does doubles
programming looks really hard...
Actually why has no one done a proper engine remake of the doom engine that supports proper data types
the whole fixed crap is ACS, not the engine
Ah
you can thank raven software for that one
internally gzdoom uses all manner of C++ concepts
So then why are we not making a better ACS instead of flat out expanding on it
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
but zscript only works like decorate
right now, yes
ACS is an ancient holdover from Hexen. It's been on the chopping block for years.
yeah. ZScript will get map data access in a while and it will likely then replace ACS
ZScript (formerly Doomscript) has been slated to replace it since about 2006 I think.
Randi just never really pushed it.
example of what ZScript will be able to do that ACS could never hope to - dynamic slope adjustments
or so i've heard
Which it can almost already do
As of Jan 14th the main limitation is OpenGL structures not updating: https://images.discordapp.net/.eJwFwcENwyAMAMBdGABsQgHn3Q06AEIEQaQkjsB5Vd29d1_1jEOtqovcczVm22fhsekpPHKrujG3o-Z7n7rwabJILv2sl0yDRB4ihQjoIHiy0VhPBAvZgN6-fAzozKeMWq_ZWdKb-UwWMACiSxYBF9D31dTvD6FiKWo.bwAh1Al06TdUpGf1kcoL8b3DJ1c
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."
Can Zscript and Decorate be used simultaneously?
Wondering if Zscript will fix my chaingunner blobs
chaingunner blobs? lol?
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?
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
That's so cool @unreal oyster
they are also bulletsponges just like unreal
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
no vidme account?
well you just got a comment
you can edit your posts you know. like this
are you on the beta of discord mobile?
Idk
still need help with that reloading thing
{
//$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.
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
you can do it with 60 as long as the numbers match up
also, so you're saying I should switch the Give and Take Inventory "places"?
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
@torn timber ?
I'm just slicing out the 90% of stuff you won't really need to see
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
readyloop?
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
is the M60 from Realm667
no
this is all custom
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
whats with the a762m in the reload state
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
oh
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
Unfortunately I think I need something more simple or something
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
still seems too complex.
since Im doing a halfass, I'd probably want it to just go down and "reload"
no actual sprite animation is needed for the actual reload
which is the offsite thing
yeah, that part doesn't matter
reloading is just inventory token management
- If your gun is idle, check for ammo, if no ammo, reload.
- If you fire your gun and you have no ammo at all, the gun should not fire or reload.
- 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.
- If you have reserve ammo, reload the gun, otherwise idle.
- If you have reserve ammo, start replacing the empty ammo.
- If your gun is full or runs out of reserve ammo, finish reloading.
That's the condensed process I suppose
I think the reason I think it's complex is because of the cosmetic stuff
(that grammar makes sense)
just ignore/remove those 2 states when you look at it then
ReloadAnimation and ReloadEnd then
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
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"?
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
oh
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```
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.
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?
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
So, you want realistic clips?
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.
um what?
Like having an array of say 10 values and somehow treating those as clips
you can't use Arrays in DECORATE, no real need to use ACS, don't know about ZScript and arrays
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?
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
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
so a_jumpifinventory
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
so the ammo would be inventorytype?
or rather
something like this
A_JumpIfInventory(MachineGunAmmo,intnum,statetojumpto)
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
what should it use then
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
what 2 "systems"
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"
so the second system is basically firing loaded ammo, but when empty, transfers xammo to replenish the loaded ammo
yes
that was my code
I'm getting to that point where I'm just tired and can't adequately explain this stuff
getting tired as well, tho I'm listenin to ASMR
same
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
well it seems I need to use that system instead
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
so I'm switching to your system then
just start small, make it work first
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
though it's just a half-ass
which is basically moving the gun out of "frame"
and moving back when it's "reloaded"
that's not what I mean
oh
you said you couldn't even get it reload at all yet, right?
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
firing like the pistol? 1 slow bullet at a time?
by normal doom gun I mean shooting non-stop like a chaingun with no reload
alright
unlike, say COD
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
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
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
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```
MCGN A 0 A_JumpIfInventory ("MachineGunAmmo", 0, "reload")
this is the problem
which system are you trying to use now,
since you told to move on till I find a template, the broken one
or rather, do it one step at a time
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?
yes
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
at this point I'm thinking of using your system
since this "old" one is broken af
Min?
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
Infinite ammo
this gives you the infinite ammo issue?
yeah
and it stays on 299?
every time A_FireBullets is called, it should be using a bullet by default
What are the flags on this weapon?
in the properties
so before the states
yes
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```
are there no flags at all?
flags are somthing like +insertflaghere ?
things that would say like +MELEEWEAPON or +NOAUTOAIM
yes
everything else you posted are properties
no flags then
can you pastebin all of the code, and I'll try running it on my end
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
}```
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
@vocal crypt http://pastebin.com/GYJyE381
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
Alright
and y'know, not replace the chaingun
Minesae your thing works. Although it seems no actual "reloading" takes place.
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
Oh, it was D3D style reloading
although why did you replace the sprites with the Chaingun ones?
oh right, forgot to change that back
I can't test it with sprites I don't have, obviously ๐
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?
k
is the ReloadAnimation part just for better organization?
in the code you "gave" me
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
is a762m the "clip" or the ammo in said clip?
sorry for pissing off gun enthusiasts by calling it a clip
it's the reserve ammo that has nothing to with what is loaded in the gun
so in this case, it'd be MachineGunAmmo?
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
no, that jumps to "ReloadEnd" if the player has 100 "loadedM60"s
Sprite names must be exactly 4 characters```
post line 22 please
MCGN A 1 A_WeaponReady (WRF_ALLOWRELOAD)(WRF_NOBOB)
uhm, it looks like it should be fine but
MCGN A 1 A_WeaponReady (WRF_ALLOWRELOAD | WRF_NOBOB)```
this do anything?
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.```
post line 88
if you are having issues, please post the line
don't just expect us to know ๐
I posted line 88
okay well that's not enough to go on, post like around 10 lines around 88 i guess?
88-78?
nah, like 83-93
Spawn:
MCGN W -1
Stop
}
}
actor MachineGunAmmo : Ammo
{
inventory.amount 10```
pastebin
do I need an account?
nope
omg how did i not notice
you just need to add a Ready state lol
it's mandatory on all weapons
@torn timber you apparently forgot the ready state in yo code
and your code also apparently freezes the game up.
Min?
infinite loop is fun
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
so just ready with the usual a_weaponready crap?
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
unless there's something you have to do before the weapon goes back to the Ready state
what does your code look like now?
I'd post it in discord, but the stupid text limit
IIRC
oh wait
that's the old part
this is the "new" code.
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
results?
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
for highlighting code changes, github gist is great
example
trying not to be impatient, but how's the progress @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
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
not freezing
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
something off-topicish, but which ammo actor is the clips, and the amount of ammo in said clip?
"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.
apparently when teh gun reloads, it takes 30 of those spare magazines
well that
You're not carrying 300 magazines
300 bullets
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
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.
it's just total bullets
hmm
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
the total would go in inventory.amount or inventory.maxamount?
inventory.amount is how much you get when you pick up the ammo, inventory.maxamount is the maximum amount you can carry total
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
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
Apparently GZDoom can't read some formats for textures
mostly the flat formats
well
GZDoom Builder
Apparently I got problems with textures
because GZDoom Builder can't read the formats
for lfat textures
*flat
You can also edit your posts but okay.
@vocal crypt what exactly is the issue here, i feel i'm missing something
which format are you mapping in?
anyone know if using MAPINFO can help you use a different "texture" for the skybox?
Don't wanna use the cliche F_SKY texture
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
so F_SKY for example?
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
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?
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)
you need to tell GZDoom that there are texture resources in the PK3
How do I do that
resource settings in the options menu
The bloody thing is confusing.
Yeah doom modding isn't a very clean process
honestly don't blame anyone when the contents of their wad are severly disorganized
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?
@unreal oyster might help with this or somethin?
How would i add custom textures for GZDoom builder?
nevermind, got them to work
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
Realm667 weapons by default aren't switchable to
You need to give them a weapon and selection order first
And probably a doomednum
some of them have doomednum
oh?
> 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?
ayy don't tag the mods if it's not related to modding the server please
sorry
Is there a way for the bombsite to remove that inventory item used to allow you to plant teh bomb?
This is weird, its just not letting the player switch between their shotgun and pistol
you boys got a download link? I wanna test it for me old self
@sharp smelt zandronum dev download
who, me or Harbringer
both
mine is a doom themed CS thing
but I think it's half baked even for a alpha and first time
I've pretty much got two things to do excluding maps: Finish the bombsite, and work on a shop system ala CS IIRC.
It reeks of Realm667 content the weapons.
@vocal crypt you can do that in decorate. Something along the lines of A_RemoveInventory or somestuff
Hi, anyone know how to use abs in acs ?
It's a function that returns a value
mouse_yaw must be positive
Do you know how to call functions through acs?
I do not know how
Okay so copy the function example in the wiki and paste it into your code
done
Now in script 1 replace ```mouse_yaw = GetPlayerInput(PlayerNumber(), INPUT_YAW);
with ```mouse_yaw = abs(GetPlayerInput(PlayerNumber(), INPUT_YAW));
what x?
X is just an easier way to represent a number in programming
Ty
ah, the one in the abs script
So if I upload the pk3 would anyone look at it?
how do i MANUALLY edit a sprite in slade?
oh wait, i have to export it and then edit it
dammit
At least it's easy to re-import.
I added new soulsphere upgrades to D4D if anyone's interested.
ah, that's cool
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.
spider mastermind? In a form, yes
Define"in a form*
I haven't actually gotten there. You could probably google it. I was meaning "yes, but not exactly like the classic one"
it shoots plasma Balls instead of bullets?
sorry
You're making a fabulous first impression here Angel
Misunderstandings und crep
I think they can be posted here
also, my alpha mod was embarassing as well
Yes but the content is questionable
no thx to wat
That vid.
That's.... no that's not the problem
well, let me explain about this video, it's a gameplay of a Hotline Miami themed
Please keep things rated M for mature, not Ao for adults only
I didn't see anything that was AO in that vid
oh!
oh
good fucking skill naming system ๐
:ok_hand: Angel-Neko_X#3428 has been warned.
before i forget
Nobody react about my warn okay? (sigh) Still, it's embarassing
Dude, it's simple:
we clear warnings off after a week
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.
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
what "shotgun bug"
Can't switch to it even if I pick it up
you have weapon.slotnumber 3?
yes
where
you have a Weapon.SelectionOrder too?
So know the problem?
you need a weapon.selectionorder set as well if it's not inherenting from a regular shotgun
Where does that line go?
same area as weapon.slotnumber
So in keyconf?
I just said with weapon.slotnumber
This is still new to me
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?
ok
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
0 - 9 actually
oh
weapon.selectionnumber ?
Its always 3
that's not weapon.slotnumber?
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
there's the pk3 if anyone cares
use newest gzdoom devbuild
the dev team releases new versions almost daily
they're not considered stable, so they call them dev builds
thats not what i meant
it gives people time to try out the new features before they're officially released
i use them regularly
yeah... so use the newest devbuild
i mean what build is recomended?
newest
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
ยฏ_(ใ)_/ยฏ
i use g2.4pre-359
it probably doesn't really matter though
just use the newest to be sure
we will see about that
Didn't run when I tried it.
any other monsters or just imps rn?
just imps rn
hah
thats because this build doesnt have the bullet sponge imps
try spawning a bunch of them
define "bullet sponge"
on their own, they're not too bad
but when there's a lot, they will surround you and absolutely fuck you up
unless you got the BFG
well yeah but that sorta isn't the point ๐
Could someone help me transfer my GZDOOM settings over to the next version?
Not really working for some reason...
Time for a little bit of copying and pasting codes from eachothers
??
boot up your favorite word text editing program and fix some stuff
I guess I'll just do it manually.
I uploaded new screenshots of my map https://www.doomworld.com/vb/post/1715070
That looks nice
Thanks @hazy lantern
When do you think about releasing the WAD file?
I could release a pre-alpha now, but it's not tested or anything really
Oh okay, I'll wait then ๐
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
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
Seems like D16 modding is once again possible! https://www.reddit.com/r/DOOM2016Mods/comments/5sxray/2917_update_doomextract_161/
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.
Vore
Yummy
You see this shit right here?
THIS IS WHAT HAPPENS... when I am BORED out of my FUCKING MIND.
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.
how to make light effect ?
nope.
@royal wave Just imagine what my boredom will make me do next (see above). ๐
vore Doom style?
No.
what am I looking at