#classic-doom-maps-mods

1 messages ยท Page 41 of 1

trim falcon
#

how many frame can a single POSS have

#

A-Z only ?

shadow bone
#

No, they have to be letters

vocal crypt
#

Death frames show, but I forgot a -1 at the L frame.

shadow bone
#

Yup, so he disappears when he finishes dying

vocal crypt
#

yeah

#

fixed it

shadow bone
#

Cool

vocal crypt
#

so now it's like a stalker zombieman

#

chasing you

#

endlessly

#

never stopping

shadow bone
#

Now, here's something fun: you can condense that state down to make it look cleaner

trim falcon
#
loop```
shadow bone
#

Put all the frames on one POSS line

vocal crypt
#

POSS HIJKL 3?

shadow bone
#

Yep!

#

That'll do exactly the same thing, but makes the code cleaner

vocal crypt
#

do you put -1 for the last frame to stay?

shadow bone
#

Good catch

#

You'll need to put the L (last frame) on its own line so you can use a different duration

vocal crypt
#

done

shadow bone
#

Sweet.

vocal crypt
#

though the death frames a lil quick

shadow bone
#

Yeah, the stock one is more in the 5-range for durations

#

Yeah, it's all 5's

#

Here's what it looks like:

Death:
       POSS H 5
       POSS I 5 A_Scream
       POSS J 5 A_Fall
       POSS K 5
       POSS L -1
       stop
vocal crypt
#

What does A_Fall do?

shadow bone
vocal crypt
#

I presume A_Scream sounds the zombo's death sound

shadow bone
#

Exactly

vocal crypt
#

so basically makes the actor non-solid when it's in its death state?

shadow bone
#

Yep

#

There's other functions which simply reduce the height, so you can "step on" dead monsters

#

Which is kinda cool

vocal crypt
#

making them gibbed?

#

or

#

pool o blood

shadow bone
#

No, so you step up on them like they're still solid.

#

Lemme find it

vocal crypt
#

hmm

#

missing token

#

hold on, gotta borrow a coin from my parents /s

shadow bone
#

lol

vocal crypt
#

I'm going to assume A_Scream would work if we had a SNDINFO for this new actor?

shadow bone
#

PArtially

#

A_Scream plays the sound defined in the actors properties

#

DeathSound

#

specifically

#

DeathSound "grunt/death" for the zombieman

trim falcon
#

when someone dies

#

he scream

shadow bone
#

Since that sound is already in ZDoom's "built-in" SNDINFO we don't need to redefine it

#

So what's next for our simple zombiebro?

vocal crypt
#

Guess we should make him do something

#

besides stalk us

#

because stalking is creepy

shadow bone
#

Maybe scratch us?

vocal crypt
#

you mean melee attack?

shadow bone
#

Exactly

vocal crypt
#

I presume we'd need to make a new "state" named Attack:

shadow bone
#

Close, actually in this case it'd be Melee

vocal crypt
#

Attack is for projectile weapons

#

or hitscan attacks

#

sorry

#

so mkay.

shadow bone
#

Missile is ranged attacks

#

Of any kind

vocal crypt
#

CustomMissile is missles that aren't in the Doom engine thing

#

?

#

anyway

shadow bone
#

No, we'll worry about CustomMissile later. It's not a state label, it's an action function

vocal crypt
#

yeah

#

anyway

#

how to make our Stalker NotStalker

shadow bone
#

Zombieman's attack frames are E, and F if you want the muzzle flash

#

It'll look like he's shooting but whatever

vocal crypt
#

but let's just use E

#

lol

#

maybe he's using his gun as a spear thing

#

a weak spear

#

but still a spear

#

but anyway

#

I presume it goes POSS E A_Whatevermeleeattack?

shadow bone
#

Pretty close!

vocal crypt
#

I forgot the tick number as well!

shadow bone
#

We're gonna use a custom function for the attack

#

Now this is gonna get fun

vocal crypt
#

sarcasm or serious

shadow bone
#

Both ๐Ÿ˜‰

vocal crypt
#

I called it

shadow bone
#

So give it a damage of 1 (for now) and use "imp/melee" for the sound.

#

you don't need to include the rest of those parameters, they're all optional

vocal crypt
#

the parameters in parenthesis?

shadow bone
#

Yep

vocal crypt
#

do you need to put ; as well

#

or am I thinking of the ACS language

shadow bone
#

Not here

#

in other places yes, but not this one particularly

vocal crypt
#
Script error, "DoomStrikeZAN0.1.pk3:actors/misc/commandoplasmo" line 16:
Expected ',', got '/'.```
#

I think I got some shit wrong

shadow bone
#

Show me the code?

vocal crypt
#
    POSS E 5  A_CustomMeleeAttack (1, imp/melee)
    ```
shadow bone
#

Yep, that's what I thought

#

The "imp/melee" is a string (text) so it has to be in doublequotes

vocal crypt
#

oh

#

apparently it's a suicide scratcher

#

because when he scratches me he dies

shadow bone
#

hahah ๐Ÿ˜„

#

Remember what I told you about states going to the next one if there's no logic instruction?

vocal crypt
#

OH

#

Goto see

shadow bone
#

Bingo!

vocal crypt
#

hmmm

#

he stays in place now

shadow bone
#

Strange...

#

Full code?

vocal crypt
#
{
    Health 10
    Speed 4
    Height 56
    Monster
    States
    {
    Spawn:
        POSS A 10 A_Look
        Loop
    See:
        POSS A 2 A_Chase
        Loop
    Melee:
    POSS E 3  A_CustomMeleeAttack (1, "imp/melee")
    goto see
    
    Death:
       POSS H 5
       POSS I 5 A_Scream
       POSS J 5 A_Fall
       POSS K 5
       POSS L -1
       stop
}
}```
shadow bone
#

Well, it looks okay...

#

hmmm

#

One moment

trim falcon
#

a_chase is there

shadow bone
#

Oh, we may need a melee range

vocal crypt
#

Well he scratches me until I get to a certain distance

#

which he's dormant if not in a certain distance

shadow bone
#

I think I see the problem

vocal crypt
#

hm

shadow bone
#

Try adding an empty "Missile:" state right above Melee

#

I want to try a theory

vocal crypt
#

so Missile: Melee:?

shadow bone
#

Yep

#

That's right

vocal crypt
#

now vwat

shadow bone
#

Still doing the same thing?

#

Test it

#

I'm thinking A_chase is having some kind of logic fart

vocal crypt
#

well he's moving now

#

and scracthing me close

#

but it appears he's trying to scratch me from a distance

#

since he's in the frame before the frame with the gun muzzle flash

#

for like a few seconds

shadow bone
#

Okay, that makes sense

#

Because "missile" is logic for a ranged attack, but we haven't coded one

#

I think A_Chase is always jumping straight to attacking for some reason.

#

So he gets locked in a loop if you're out of range

#

Let me test on my end...

vocal crypt
#

so?

#

as in how it go

#

not "so what"

shadow bone
#

He's working for me

#
Actor NewActor
{
    Health 10
    Speed 4
    Height 56
    Monster
    States
    {
    Spawn:
        POSS A 10 A_Look
        Loop
    See:
        POSS A 2 A_Chase
        Loop
    Melee:
        POSS E 3 A_CustomMeleeAttack (1, "imp/melee")
        goto see
    Death:
        POSS H 5
        POSS I 5 A_Scream
        POSS J 5 A_Fall
        POSS K 5
        POSS L -1
        stop
    }
}
vocal crypt
#

tbf, I'm using Zand

#

you might be using GZDoom

shadow bone
#

Ah, that's probably why

#

The code might be slightly different

#

instead

vocal crypt
#

no, he still tries to scratch me from a distance

#

even in GZDoom.

#

still tries to scratch me from a distance

#

wait

#

you removed the missile part?

shadow bone
#

Yeah, and it works

#

Try just copying my code, I moved a few things around and may have fixed a typo or something by accident

vocal crypt
#

he works

#

even in zandronum

#

couldn't they come up with a better name than that

shadow bone
#

I guess not lol

vocal crypt
#

anyw

#

*Wayt

#

*WAY

shadow bone
#

Something to try, add a little delay to the scratch at the beginning of the melee state so he doesn't just "drain" you 1 health at a time

vocal crypt
#

you mean when you invade his personal space?

shadow bone
#

Yep

vocal crypt
#

I understand why he would scratch you

#

so something like the pinky?

#

with the delay part

shadow bone
#

Use POSS G 10 or something

#

Yep

vocal crypt
#

apparently POSS G 10 is his pain frame

#

unless that's intended AFTER the scratch

#

which case, that's user error

#

on me

#

since I put it before the scratch

shadow bone
#

It is his pain frame, I just picked one

#

To differentiate

#

you could use any you wanted, really

#

But the zombie has pretty limited animation ๐Ÿ˜‰

vocal crypt
#

tell that to SgtMarkIV

#

buuuut

#

anywy

shadow bone
#

He added a ton of custom spritework

vocal crypt
#

yes yes

#

that's why I said anyway

shadow bone
#

Yeah

vocal crypt
#

so now he scratches you when you invade his personal spac e

shadow bone
#

Perfect

#

Feel like you're getting the hang of it, conceptually?

vocal crypt
#

yeah

#

I'm wanting him to fire a plasma ball now, but that's probably CustomMissil-

#

no

#

just Missile

warped rampart
#

I wanna make a deathmatch map now.

vocal crypt
#

go for it

#

anyway

shadow bone
#

Missile is the statename, then you'll need to determine the action special he's going to use to fire the plasma ball

#

Preferably we should use a stock one because A_CustomMissile is a shitload of awkwardness

vocal crypt
#

so in this case, a blue plasma ball

shadow bone
#

Internet, why you die on me? I need the wiki!

vocal crypt
#

wait

trim falcon
#

A_customMissile(bfgball

vocal crypt
#

you using yo phone for Discord?

shadow bone
#

No, the ZDoom wiki was just being dumb

vocal crypt
#

Oh

#

anyway

shadow bone
#

One of those should do the trick

#

Pick one that sounds promising ๐Ÿ˜‰

vocal crypt
#

I think you got it from the wrong game

#

oh wiat

#

most of em were from other games

#

but I suddenly saw doom attack functions

shadow bone
#

They can still be used even though this is Doom

vocal crypt
#

except I rather have one that has sprites

shadow bone
#

So in theory you could use A ClericAttack if it does what you need.

vocal crypt
#

yes yes

#

but we're learning

shadow bone
#

In this case I think A_M_FirePlasma

vocal crypt
#

so I guess I'll use A_MF_-

#

yeah

#

A_M_FirePlasma

shadow bone
#

Exactly

vocal crypt
#

so for his attack things

#

or rather

#

attack state

#

it'd go under Attack: ?

shadow bone
#

Missile actually

#

But I don't think this one will work

#

"This codepointer is restricted to ScriptedMarine and derived classes. "

vocal crypt
#

Oh

shadow bone
#

So let's dive into custom missiles then, because no stock attacks fire the blue ball

vocal crypt
#

fine

shadow bone
#

Specifically A_CustomMissile

vocal crypt
#

huh

#

it's been deprecated

#

or *its

shadow bone
#

it should still work

#

That's a fairly recent occurance

#

Zand specifically probablt still supports it

vocal crypt
#

anyway, I need the missiletype for the plasma ball

shadow bone
#

It's just "plasmaball"

vocal crypt
#

really?

shadow bone
#

Yup

#

Creative, eh?

vocal crypt
#

lol

#

spawnheight

shadow bone
#

And I believe the missiletype is the only required parameter

vocal crypt
#

oh

shadow bone
#

the rest are optional

#

you can play with them if you want, though

vocal crypt
#

It works

#

but I forgot to make him goto see

#

so

#

he suicide shooter

shadow bone
#

lol

vocal crypt
#

now we need to increase the quantity of balls

#

maybe to 3

shadow bone
#

Well, lets do something clever

vocal crypt
#

jumps to a random frame

shadow bone
#

We'll adjust the defaults

#

Make your missile state "loop"

#

instead of Goto see

vocal crypt
#

now what

shadow bone
#

Add another line of POSS E 2 A_Jump(64, "See")

vocal crypt
#

in Missile?

shadow bone
#

Yep

vocal crypt
#

after A_CustomMissile?

shadow bone
#

Yep

#

This will give a 1/4 chance to jump back to see, otherwise he keeps shooting

#

(I think)

vocal crypt
#

it works

#

he'll keep shooting them until he jumps to see

#

how to increase the speed of said plasmaballs dough

#

unless that involves editing it itself

shadow bone
#

Make them fly faster?

vocal crypt
#

they seem to be slower than arachnotron plasmas

shadow bone
#

Probably are

#

We're gonna define a new inherited actor, boyz!

vocal crypt
#

oh dear.

#

well I gotta learn sometime

#

anyway

shadow bone
#

this will be pretty simple but should illustrate the idea

#

You'll want to start a new "Actor" above your current one

#

Call it "Fastplasma" or something

vocal crypt
#

now what

shadow bone
#

Now, here's where it gets fun

vocal crypt
#

inherit from plasmaball

vocal crypt
#

?

shadow bone
#

Exactly

#

So add : Plasmaball

#

after the actor name

vocal crypt
#

and now what

#
speed:9000 *exaggerated*
}```?
shadow bone
#

Yup, just change the speed!

#

It's normally 25

#

Make yours 35 or somthing

vocal crypt
#

50

#

maximum powa

#

/jk

#

well

#

the maximum powa part

#

do I change the custom missle to "Fastplasma"?

shadow bone
#

Yep

vocal crypt
#

I think it's a GZDoom feature

#
SC_GetFloat: Bad numeric constant ":".```
shadow bone
#

Code?

vocal crypt
#
{
Speed: 50
}```
shadow bone
#

Inheritance has been around for a long time, I'm kinda shocked if Zand doesn't have it

vocal crypt
#

It's 4 years behind Zdo

#

*Zdoom

#

IIRC, it's running on 2.20 Zdoom

shadow bone
#

Yeah, but ZDoom has had inheritance since like... the 90's

vocal crypt
#

1998

shadow bone
#

I think

vocal crypt
#

anyway

shadow bone
#

Oh!

#

Take the colon off Speed

vocal crypt
#

oh shit

shadow bone
#

lol

vocal crypt
#

I guess I'm used to that

shadow bone
#

No worries

vocal crypt
#

it works

#

the plasma balls seem definitely faster than a arachnotron's one

#

now to increase quantity from each shiot.

#

*shot

#

or rather

#

in it's shoot frame

#

er

shadow bone
#

Let me see the full code?

vocal crypt
#
{
Speed 50
}
Actor NewActor
{
    Health 10
    Speed 4
    Height 56
    Monster
    States
    {
    Spawn:
        POSS A 10 A_Look
        Loop
    See:
        POSS A 2 A_Chase
        Loop
    Melee:
        POSS E 3 A_CustomMeleeAttack (1, "imp/melee")
        POSS G 10    
        goto see
    Missile:
        POSS E 10 A_FaceTarget
        POSS F 8 A_CustomMissile ("fastplasma")
        POSS E 2 A_Jump (64,"see")
        loop
    Death:
        POSS H 5
        POSS I 5 A_Scream
        POSS J 5 A_Fall
        POSS K 5
        POSS L -1
        stop
    }
}```
#

or am I asking for something the engine is limited by?

shadow bone
#

Not sure. You want him to fire faster, yes?

vocal crypt
#

that and fire 3 plasmaballs per shoot frame.

#

OP probably

shadow bone
#

Like a spreadshot, or a rapid-fire?

vocal crypt
#

but he's weak health wise

#

When he's about to shoot you, 3 plasma balls come at you

#

In a straight line

shadow bone
#

Okay, that's simple enough

#

Remember how we condensed the death frames to one line?

vocal crypt
#

si

shadow bone
#

Add two more F to the CustomMissle line

vocal crypt
#

three F's

shadow bone
#

and change the duration to like 4

#

Yep

#

I think that'll do what you want

vocal crypt
#

It works

#

now we got a weak, but still PITA Plasma boy

#

in otherwords, yes it was what I intended

shadow bone
#

Sweet

#

Notice how adding more frames on a line simply repeats the action of that line

vocal crypt
#

yeah

shadow bone
#

Hint: You can do the same in "see" to make his walking animation work

#

ABCD

vocal crypt
#

so xframe 1, xframe 2, and then bac-

#

oh

#

after or before the A_Chase one

shadow bone
#

On the same line

#

POSS ABCD 2 A_Chase

vocal crypt
#

Ah

shadow bone
#

Ya grokin' it?

#

๐Ÿ˜„

vocal crypt
#

Need to reduce tiks

#

*tics

#

he's going slower than his legs show

#

wait

#

maybe increase the tics

shadow bone
#

Bingo!

#

OR

#

simply double-up the frames

#

That's probably preferable actually

vocal crypt
#

which one

#

the tic or the double-up frames

shadow bone
#

doubling-up. Here's what the normal zombieman's looks like

#

POSS AABBCCDD 4 A_Chase

#

So you see the same frame (double duration), but it calls A_Chase twice

#

If you try it both ways you should see a slight difference between POSS AABBCCDD 4 A_Chase and POSS ABCD 8 A_Chase

vocal crypt
#

now he walks apparently too slow

#

maybe the speed needs an increase

shadow bone
#

Probably

#

remember, Speed is the A_Chase "step distance"

vocal crypt
#

so 8 steps or somethin

shadow bone
#

so each A_Chase moves [speed] mapunits

#

And the frame duration is the time between those steps

vocal crypt
#

well he's at a reasonable pace now

#

changed the speed to 8

shadow bone
#

Cool

#

I think that about sums up simple monster creation ๐Ÿ˜‰

vocal crypt
#

so would that bombplant thing still be above my monster decorate experience level

#

ok probably yes

shadow bone
#

Most likely yes, for now.

#

But now you understand the basics

vocal crypt
#

so we gonna make a new gun then?

shadow bone
#

I'm probably needing to go to bed soon, but let me give you some documentation

#

For reference, here's the full zombieman code if you want to examine it

#

That's how I learned, was trial and error and lots of looking stuff up

#

90% of it should be applicable to Zandronum

royal wave
#

I really wish I had the creativity to make a mod like dead.air

#

I have the capacity, just not the idea

shadow bone
#

Also, here's conceptually what we were talking about earlier with the bombsite thing:

#
actor Bombsite
{
    Speed 20
    States
    {
    Spawn:
        TNT1 AAAAAAAAAAAAAAAAAAAAA 0 A_Wander
    Wait:
        AROW A -1
        Stop
    }
}
vocal crypt
#

TNT1?

#

isn't that caco sprite?

shadow bone
#

That's an invisible sprite actually

vocal crypt
#

oh

shadow bone
#

And AROW is nothing

vocal crypt
#

gotta make that myself then?

shadow bone
#

Yeah.

vocal crypt
#

well that'll be a fun photoshop

#

/s

shadow bone
#

Now keep in mind that won't do much except "wander" around the level for several frames, then just plop a visual indicator

vocal crypt
#

so I want to add extrea frames for the wander to go for x seconds?

shadow bone
#

It won't wander for x seconds

vocal crypt
#

wander for x frames?

shadow bone
#

see how the duraction is zero?

vocal crypt
#

oh

shadow bone
#

to the player, that'll appear to be a teleporation

#

But internally it'll wander around the map like a lost puppy

vocal crypt
#

so it'll be green fog walking

#

then teh arrow if I make one

shadow bone
#

Well, it won't be green fog.

#

Here

#
actor TeleCaco : Cacodemon
{
States {
   See:
    HEAD A 0 A_Jump(16,"Tele")
    HEAD A 4 A_Chase
    loop
   Tele:
    HEAD A 1 A_SetTranslucent(0.8)
    HEAD A 1 A_SetTranslucent(0.6)     
    HEAD A 1 A_SetTranslucent(0.4)
    HEAD A 1 A_SetTranslucent(0.2)
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
    HEAD A 1 A_SetTranslucent(0.2)
    HEAD A 1 A_SetTranslucent(0.4)
    HEAD A 1 A_SetTranslucent(0.6)
    HEAD A 1 A_SetTranslucent(0.8)
    HEAD A 1 A_SetTranslucent(1.0)
    Goto See
 }
}
#

Try playing with that caco, you'll see what I mean

vocal crypt
#

Instructions unclear; Caco bit my penis

shadow bone
#

It'll appear the caco goes invisible and instantly teleports somewhere, but in reality it's just passively "wandering" instantaneously

vocal crypt
#

ok

#

so the wander just only allows it to move

#

and nothing else until it goes to see?

#

er

shadow bone
#

Yes

#

To get a better visual, change the long line to this:

#

HEAD AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander

#

Also change the A_Jump chance to like 128 so he does it more often

vocal crypt
#

well he fades in and out

shadow bone
#

Does that help illustrate what's happening?

vocal crypt
#

if not for set translucent, he'd just dissapear and reapear at another location

#

appearing as if he's teleporting without the green fog

shadow bone
#

Yep

#

The nice thing about it is that he won't go anywhere a Caco can't normally go

#

And he doesn't need any additional map code like teleportation spots

#

Or tids

#

Or ACS

vocal crypt
#

do Teleport fogs have their own actor

shadow bone
#

Yes

#

"Telefog"

vocal crypt
#

ah

#

must save alot of time then

shadow bone
#

I think

#

Depends on what you're doing, I suppose

#

Teleports in classic doom are a fixed spot on the map

vocal crypt
#

I guess I just want the bombsite to be random each "Round"

#

but the round thing is above my decorate level I9 guess

#

*I

shadow bone
#

I'll be blunt, it's probably far above. Because moving the bombsite is small potatoes compared to the necessary logic for players to be only able to put a bomb there

#

That's probably even a little above my level

#

and I've been fidding with DECORATE for years

#

Anyway, continue with the simple things, please.

vocal crypt
#

balancing

#

moving bombsites

#

and currency system?

#

no no

#

currency system too advanced for noiw

#

so

#

lets just create a new weapon.

shadow bone
#

Weapons are similar to monsters, same core concepts

#

Just inherit from "weapon" or "Doomweapon" specifically

#

And read the documentation!

#

Start with a pistol-like thing

#

Anyway, I've got to leave for now

#

But let me know what you come up with later,

vocal crypt
#

ok

shadow bone
#

good luck!

royal wave
#

Idea

#

Have predetermined teleport spots

#

Number them sequencially

#

Use acs to teleport the bombsite to a random teleport spot

vocal crypt
#

but how will it "detect" a player trying to plant said bomb?

royal wave
#

Actors do have a use state. Just have it run acs on that state

vocal crypt
#
WeakRocket must inherit from Ammo but doesn't.```
warped rampart
#

I wanted to try and port the Commonwealth from Fallout 4 into classic Doom, but I now realize how big a project that is and how bad I am with big projects that I don't really know if I could actually be dedicated to.

#

Metro could be fun to import, I imagine.

unreal oyster
#

that'd be a stupidly large project lol

warped rampart
#

So is porting DOOM 2016's levels into Classic Doom.

#

But at least I'm dedicated to porting the levels.

unreal oyster
#

nah, porting the commonwealth would be far harder

#

it's very very large

#

compared to even all the doom 4 maps put together

#

i would think

warped rampart
#

Dunno how I'd feel about a large as hell open world with lots, and I mean lots, of things to dump in. It would be way too many details and I'd get way too bored way too quick.

vocal crypt
#

it might be the GothicDM of singleplayer

unreal oyster
#

also actual terrain feels fucking horrible in gzdoom

#

since slope physics are absolute shit

#

bethesda slope physics aint good either, though

#

it's gotta be said

#

lol

warped rampart
#

I think my only obstacle of trying to port DOOM 2016's levels is how to get the "hanging"-type platforms. The ones that don't touch the floor nor the ceiling, but come from the walls.

unreal oyster
#

??

vocal crypt
#

the ones you climb up

unreal oyster
#

3d floors?

vocal crypt
#

In DOOM 2016

warped rampart
#

Yeah.

unreal oyster
#

yeah, what about 3d floors?

warped rampart
#

I don't think it'd be easy to try and create those in DOOMBuilder.

#

Is it possible with GZDoom Builder?

unreal oyster
#

it's possible and quite easy with both

#

well, actually, i say possible and quite easy - @warped rampart what map format are you using?

vocal crypt
#

I hope it's UDMF

warped rampart
#

Just "Doom in Doom format". I'm using the standard DOOMBuilder but I wanna move on to GZDoom Builder.

unreal oyster
#

oh... well... good luck with that then.

#

3d floors will be practically impossible without UDMF

#

there are tricks, but nothing robust

vocal crypt
#

Also @royal wave with your teleport thing, would it possible to have wandering teleport spots for said BombSite?

royal wave
#

Yes

#

just make an actor that inherents from the silent teleport and make it wander

vocal crypt
#

insert Remove Kebab in Background music

haughty flower
#

insert serbia stronk

vocal crypt
#

ey @shadow bone you on

shadow bone
#

Yah

#

Kinda

vocal crypt
#

Phone blow up?

#

Must've been using a Note 7

shadow bone
#

?

vocal crypt
#

no you said kinda

#

and I was making a joke with a outdated mem

#

meme

unreal oyster
#

didn't samsung intentionally brick the note 7s via an update anyway

#

so people would have to return them

haughty flower
#

return them?

#

more like they are out without a phone for the remainder of their contract

shadow bone
#

Oh. I don't really use my phone for Discord.

haughty flower
#

same here, but isnt that a doom mod already

shadow bone
#

Not chatting much today

outer crescent
#

Hello, is there a way to import an obj into gzdoom as an map?

restive glade
#

May take a moment for people to respond

#

Work and all.

#

So don't think we are ignoring you, people will get to you shortly, or tomorrow, or next day, please dont leave i made cookies.

outer crescent
#

not gonna

shadow bone
#

@outer crescent You may be able to use GZDoombuilder to import the OBJ, and automatically have it converted to a Doom map. I have not used this function so I have no idea what the requirements or any pitfalls may be

unreal oyster
#

@outer crescent

shadow bone
#

Yep, that

unreal oyster
#

you'll need GZDoom Builder, don't use Doom Builder 2

royal wave
#

is it possible to use setactorproperty without it targetting the player?

outer crescent
#

how do i find its up axis?

unreal oyster
#

@royal wave in ACS?

royal wave
#

yes

shadow bone
#

Sure, if the thing you want to affect has a tid

unreal oyster
#

uh, yeah

shadow bone
unreal oyster
#

don't use the players tid

royal wave
#

Well yes

unreal oyster
#

or 0

#

if the player is the activator

royal wave
#

Isn't the players tid 0?

shadow bone
#

No

unreal oyster
#

nah

#

players don't by default have one

shadow bone
#

Zero is generally the script activator

royal wave
#

Oh alright

shadow bone
#

Which is coincidentally often teh player

unreal oyster
#

generally, because ACS is dumb

#

and sometimes it doesn't mean the activator

royal wave
#

so if it's am enter script, 0 will target all the actors?

unreal oyster
#

sometimes it means "every actor with no tid"

trim falcon
#

looks liike a nice map

shadow bone
#

Enter is player-activated

#

so Zero is the player

royal wave
#

fuck

shadow bone
#

Open is map-activated

#

But I don't think Zero will work in that case

royal wave
#

only one way to find out

unreal oyster
#

@royal wave what exactly are you trying to do here? this sounds like an XY problem

royal wave
#

alter every monster property on starting a map

unreal oyster
#

on maps that you cannot edit, correct?

royal wave
#

correct

unreal oyster
#

it kinda seems to me this is the sort of thing you could use zscript for

shadow bone
#

Probably, with ActorIterator or something

unreal oyster
#

disclaimer: i have no real experience with ZScript, and major cooke would be the person here to ask for solid answers

royal wave
#

neither do I darn it

unreal oyster
#

but you might be able to replace some internal shit to make all monsters in the game modify themselves

#

@drowsy forum is that a thing you could do?

shadow bone
#

I think Graf was saying no

royal wave
#

He's playing SW2 haha

shadow bone
#

You can't inject code into actors who aren't expecting it

#

So you can redefine and replace DoomImp with something else, but you can't change DoomImp itself

unreal oyster
#

well i mean, i was thinking of that shadows mod you posted @shadow bone which replaces some internal definitions i believe and was thinking that maybe you could do something like that

shadow bone
#

That was Nash's work, and he had to redefine every actor for that

unreal oyster
#

yeah, i just looked into that

shadow bone
#

He says it'd be much easier if he could just override the base Actor class, but that hasn't been exposed and Graf seems reluctant to do so

royal wave
#

so long story short I can't dynamically alter monster properties on a whim?

shadow bone
#

For various reasons

#

well, depends on waht you want to do

unreal oyster
#

there might be a way, but i can't think of it right now

shadow bone
#

What's the usage case?

unreal oyster
#

i'll give it a think over

shadow bone
#

What are you trying to do?

royal wave
#

Flasg pretty much. Health, attack damage, speed, all that jazz

shadow bone
#

I'm sure it's possible to an extent but I'm blanking on specifics

#

and the implementation is going to vary depending on exactly how you want it to happen

royal wave
#

tbh zdoom.org never was much of a help for me. never found it new user friendly

outer crescent
unreal oyster
#

uhh

#

wow

outer crescent
#

That does not look anything like the obj

#

lol

shadow bone
outer crescent
restive glade
#

...

#

Errors.

trim falcon
#

I dunno what to say

vocal crypt
#

oh hey

trim falcon
#

I need some zscript

#

real shadows ?

#

or fake shadows ?

drowsy forum
#

Idk.

unreal oyster
#

ah, @drowsy forum i was asking for @royal wave if there was a way in ZScript to change actor properties on all monsters at the start of a map

drowsy forum
#

Aside from using a thinkeriterator, I think not.

#

Or if you use a struct, since structs are global.

royal wave
#

How would that work

drowsy forum
#

Describe to me what you're trying to do first so I know precisely where to go from here.

royal wave
#

I want it so whenever the player enters the level, I can alter the flags of every monter in the map. Such as health, speed, damage, damage factors, etc.

vocal crypt
#

like RNG?

royal wave
#

Something like that

#

I want to make a modifier that scales in difficulty with each time you enter a map

unreal oyster
#

and @drowsy forum that shadows thing is pretty cool, in fact ZZYZX's ZSDuke project as a whole is pretty neat

#

the enemy shrinking you in this video is just great

#

i love that

drowsy forum
#

Yeah @royal wave you want a thinkeriterator.

royal wave
#

Alright

vocal crypt
#

wouldn't shrinking make you faster?

unreal oyster
#

realistically? no way

#

your legs would be smaller

#

meaning less striding distance

#

it's common for smaller animals to be faster, but that's because they need to run fast to avoid prey

#

not because they are small

#

also - @drowsy forum on articles like https://zdoom.org/wiki/ThinkerIterator there is this message:

Note: This feature is for ZScript only.
ZScript on ZDoom is still considered prototype and is not recommended for basing mods upon.

ZScript on GZDoom 2.3.0 on out supports ZScript officially and can be used freely.

since ZDoom is now dead and won't be updated, it might be worth changing this message?

#

saying "ZScript on ZDoom is still considered prototype and is not recommended for basing mods upon." implies that one day it will not be considered prototype

#

at least imo

drowsy forum
#

No.

vocal crypt
#

why not GZDoom

dawn saffron
#

working on a new snapmap

unreal oyster
#

ah jeez

#

finally decided to start learning zscript

#

i can already see how powerful this is

trim falcon
#

don't forget to teach me how

unreal oyster
#

created an imp replacement which simply calls it's Tick() function every 5 times rather than every once

#

meaning it does everything 5 times slower

#

it's so simple to do but the results are quite powerful for zdoom

#

plus it's funny as all hell

vocal crypt
#

I can imagine the imp's fireball being so fucking slow

unreal oyster
#

nah

#

i'm not replacing the fireball

#

i totally could

#

but i just haven't yet

#

oh god

#

i'll make the imp fireball ridiculously fast

vocal crypt
#

so it's a normal Imp but with Dark Imp fireball speed?

#

also, recoloring sprites for a monster is a PITA

unreal oyster
#

oh my god

#

i just made it so that the imps call their Tick() function only 1 in 7 ticks

#

this is great

#

they kind of trip around

royal wave
#

Send download

unreal oyster
#

@royal wave

royal wave
#

Kk ty

#

Will check in a bit

vocal crypt
#

tested it

#

it's like Usain Bolt walking

#

the Imps

unreal oyster
#

@drowsy forum with zscript, can i turn collision off and on between two actors?

#

i know i can do whatever.bSolid = TRUE/FALSE - is there an equivalent of this for only one actor?

#

specifically i need my actor not to collide with the player

drowsy forum
#

Yes.

#

You use CanCollideWith virtual.

#

@unreal oyster

#

Don't bother changing solid flag.

unreal oyster
#

ah, i was looking at that but couldn't really get my head round it

drowsy forum
#

It's easy.

unreal oyster
#

i was just confused on what the passive arg does

drowsy forum
#

If one actor or another returns false with the function, they pass through.

#

I thought it was made clear.

#

Passive is the one that is NOT trying to move into the same position.

#

Like, pretend you have a solid obstacle. It doesn't move whatsoever. You want a zombieman that goes through that obstacle? The zombieman is NOT passive.

#

So the zombieman can return false and go through it. Got it?

unreal oyster
#

oh ok, i get it

#

so to change collision between two actors on the fly, how exactly would i do that?

drowsy forum
#

Return false.

#

Note that both parties need to return true if they are to collide and block one another. If anyone returns false, they will pass through one another. My example should make that clear.

#

My example on the wiki anyway.

#

That's taken from my Twilight Sparkle giantess. She can step over enemies that are small enough.

unreal oyster
#

ah, got it

vocal crypt
#

You're a brony?

trim falcon
#

giantess

#

;9

unreal oyster
#

if i have to port Jimmy's DECORATE to zscript to get this working i swear i'm going to [REDACTED]

drowsy forum
#

No.

#

Gutawer it's not that hard.

vocal crypt
#

also you're a brony Major?

drowsy forum
#

I said no.

vocal crypt
#

OH

#

*oh

unreal oyster
#

yeah i know, i'm exaggerating ๐Ÿ˜›

vocal crypt
#

I thought you said no to Gut's stuff

unreal oyster
#

i've done DECORATE -> ZScript porting before

drowsy forum
#

Just because I like ponies doesn't make me a brony.

unreal oyster
#

it's just add a few semicolons in and a default block, lol

vocal crypt
#

Hey, I don't have a problem with bronies

unreal oyster
#

bar some changes like A_ChangeFlag

drowsy forum
#

I'm not one.

vocal crypt
#

well that "just because I like ponies" sounded like you were trying to hide it.

#

or deny it

drowsy forum
#

I have a problem with bronies more often than not.

#

Unless I go around wearing pony merch or have action figures or something physical, I don't consider myself one. And I don't.

#

And this sure as hell doesnt make me one either.

vocal crypt
#

Also, if you made that giantess monster

#

what did you use to make the sprites?'

#

Photoshop seems to be a PITA even for recoloring monster sprites

drowsy forum
#

These models.

unreal oyster
#

twilight looks like a model there

drowsy forum
#

Yup.

#

I used the models from the above link. Because fuck the gmod ones.

trim falcon
#

the garry mod looks creepy to me

drowsy forum
#

They're hideous.

#

Yeah. I hate the gmod ones myself. I hired someone to convert the CoP models into a new base to ditch the old ones.

vocal crypt
#

CoP?

#

Cult of Personality?

drowsy forum
#

CreatorOfPony.

vocal crypt
#

oh

unreal oyster
#

@vocal crypt pretty sure zdoom has Translations for recoloring actors

#

so you don't have to do it all manually

vocal crypt
#

That must be used for ColorfuL hell then

unreal oyster
#

idk

vocal crypt
#

and the fucking Hell Knight

unreal oyster
#

maybe, maybe not

vocal crypt
#

mother fucker punches ATM

#

I say this because I did have plans for a Pac-Man ish Doom

trim falcon
#

someone already did it

vocal crypt
#

how did they "did" it

#

Because mine was doom themed

#

well

#

Honestly IDK

#

anyway

#

how does a translation work

unreal oyster
#

the wiki explains it

vocal crypt
#

yes, but it seems it needs translation

royal wave
#

Hey gut, the imps don't do anything different, am I doing something wrong?

vocal crypt
#

not language

#

they're suppose to walk faster

unreal oyster
#

potentially, your (G)ZDoom may be outdated

royal wave
#

hmm

vocal crypt
#

what version is it

#

IIRC, the latest was 2.3.2

royal wave
#

Going for that 2.4 pre

#

When was 2.3 released?

unreal oyster
#

a few weeks ago?

#

i think

vocal crypt
#

but how does Translation "original_start:original_end=destination_start:destination_end" even work

#

Original start, what is htat

royal wave
#

imps gotta go fest

trim falcon
#

I like imps

vocal crypt
#

wanna do impse things to them

royal wave
#

uh....

shadow bone
#

No Impse please. It's even in the rules.

vocal crypt
#

some basic monster tier crap

#

Normal - Normal monster
Speed - Faster at the cost of less damage
Brute - more damage at the cost of speed
Kamikazi - Suicide monster
Badass - Fast and Powerful

#

also, Cali, you asked me if I created some weird pistol thing?

shadow bone
#

Did you ever manage?

vocal crypt
#

I created a pistol that shoots fast but terrible damage plasma balls

#

and if you press secondary fire, it fires two shotgun shells

shadow bone
#

Nice

#

You're taken your first steps into a larger world

#

</obiwan>

#

Remember, a modder can feel the code flowing through him!

vocal crypt
#

haven't seen Star Wars in a while

#

also, is transition color thing something too advanced for me for now?

shadow bone
#

Probably not, but I don't know much about transitions. I believe you have to understand the Doom pallete

#

You define the starting and ending index color for the range you want to replace, and the starting and ending index color of the range you want to replace it

#

I think

vocal crypt
#

Translation "original_start:original_end=destination_start:destination_end"

#

This is what ZDoom wiki says

shadow bone
#

So I think original start and end is the range of colors you want to remap (like indexes 5-10) and destination start/end are the range of colors which will replace the original (like 15-20)

#

So something like

Translation
"5:10=15:20"
vocal crypt
#

well since we're testing it, how about we use our NewActor

shadow bone
#

Sure, go for it

vocal crypt
#

btw, I've tried to replace the zombieman sprites with the commando's

#

nearly perfect

#

except the death frame

#

it seems to stay second to last death frame

shadow bone
#

The commando probably has an extra frame more

#

MAybe

vocal crypt
#

would it go inside the brackets?

shadow bone
#

The translation?

vocal crypt
#

yeah

shadow bone
#

I think it goes with the rest of the properties like health and speed

#

Honestly I'm not mentally in the mood to go check, lol

vocal crypt
#

It makes the commando sprites somewhat pink

shadow bone
#

Look up the doom pallet, it should be on the Wiki I think

#

You'll have to find the right color indexes

#

Basically which "number" the color is

vocal crypt
#

and where would they go in the translation

#

15:20?

shadow bone
#

It depends

#

The first number pair is the original range

vocal crypt
#

what is the 5:10 even sup-

#

oh

#

original range of ex.commando?

shadow bone
#

Say you want to replace all the reds, you need to fine the starting and ending point of the reds

#

Then you find the starting and ending points of the desired color range, like blue.

#

That's the second pair

vocal crypt
#

the second pair I found

#

which is blue

#

is the first pair just guess work?

shadow bone
#

No, it's the same idea

#

But you do have to know what colors the sprite uses

vocal crypt
#

which is on ZDoom wiki or is that google work

shadow bone
#

So the commando's original colors may lie somewhere in the 176:191 range, since that's red to dark red

#

It may take some trial and error

#

since the commando may also use other colors, so you may need more than one translation pair

vocal crypt
#

it made his mouth and eyes blue

#

the 176:191

#

so

#

I guess I go up with 176 and down with 191?

shadow bone
#

could try that.

#

Depends on which colors he originally uses, which I'm not sure how to find

#

So it will take some guesswork based on just looking at the palette and his sprite

vocal crypt
#

is the 176:191 just the different "Shades" of the palette the original commando uses?

#

two different shades

shadow bone
#

No, that's the range of pure red shades in the palette.

#

So pure red starts at index 176, and fades to dark red over several indexes until it reaches 191.

#

The commando has some pixels which match those colors, like his eyes as you noticed.

#

his armor may use a different set of colors

vocal crypt
#

I want his armor to be blue

#

which means another "set" of translations

unreal oyster
#

@drowsy forum one last thing (i think, lol) - ZDoom mentions A_CustomMissile is deprecated, what is its replacement?

shadow bone
#

A_SpawnProjectile I think

vocal crypt
#

the colors look like a pinkish red

#

his armor

#

a dark pinkish red

#

well

shadow bone
#

So that may be anywhere in the 16-47 range

#

maybe

#

Anyone in here know of an easy way to find sprite color indexes?

vocal crypt
#

How do you make new translations

#

or another "set" of such

shadow bone
#

Just add another line I believe

#

Like I said I don't really know, haven't ever done it before

vocal crypt
#

coming from a 4 Year decorate veteran

#

not criticizing

shadow bone
#

Never have needed it

#

And actually about 15 years, on-and-off ๐Ÿ˜‰

#

lol

vocal crypt
#

well your new line thing doesn't work apparently

shadow bone
#

Ah, check the examples

#

Translation "112:127=208:223", "192:207=16:31"

#

"This line changes the green color range to the orange color range and the blue color range to the pink color range when the Doom PLAYPAL is in use. "

vocal crypt
#

also, you were right

#

his armor was 16-47 range

#

needs a darker shade of blue tho

#

a comma

shadow bone
#

So to map a darker blue, try changing your target range to maybe 200:207

#

Just guessing

vocal crypt
#

apparently it ain't changing shit

shadow bone
#

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

#

You know as much as I do at this point, lol

#

Maybe someone else can jump in who knows more about translations

#

Until then just keep playing with it and referring back to the documentation I suppose

vocal crypt
#

got it to a near shade of blue I liked.

#

anyway

#

now

#

he's mute

#

but

#

we need to change that

shadow bone
#

Look on the actor properties page in the "sound" category. Should be things like SeeSound, Painsound, etc

#

The default SNDINFO should also be linked on the wiki, which has the "logical names" for all the sounds in the game

vocal crypt
#

waht does the commando use

#

or rather, sounds

shadow bone
#

Look under SNDINFO > Predefined Sounds (at the bottom)

vocal crypt
#

at the bottom?

shadow bone
#

The link to the predefined sound files is at the bottom of the SNDINFO wiki page

#

to clarify

vocal crypt
#

oh

#

what about the pain thing

#

also, hes not mute

#

but I noticed the zombies got three different sight and death sounds

#

is that some randomizer

trim falcon
#

maybe

#

depend on your SNDINFO

vocal crypt
#

I'm using sounds from the original doom

#

which IRIC

#

IIRC

#

Zdoom already has

trim falcon
#

your pain code

#

and your sight code

shadow bone
#

For example, if you have a Pain state, the painsound won't be played unless you put A_Scream on one of your frames

vocal crypt
#

I got the dude unmuted now

#

he's a BruteChainGunGuy

#

Brute because I'm in the mood of some monster teir action

#

...for some reason

trim falcon
#

did you mte me ?

vocal crypt
#

no no

#

I meant teh monster

#

but yeah

#

anyone know how to check a monster's original palette colors?

#

ex. ChainGunGuy

royal wave
#

Rocket jump testing

vocal crypt
#

I believe I have made a chaingunguy that has somewhat of a new unique identity

#

it shoots 3 plasma balls, slower speed, but does more damage and has more health

#

Brute Tier (fuck y'all I'm calling it that)

#

ey @shadow bone you jottin this down or somethin

shadow bone
#

Not particularly, sorry

vocal crypt
#

hey no worries

#

you got shit to do

shadow bone
#

I'm glad you're working on it though ๐Ÿ˜ƒ

vocal crypt
#

and it's blue

shadow bone
#

I'll be interested to see the final code when you've got him all done

vocal crypt
#

I don't wnat to add too much health

#

or he'll be a Cyberdemon minisized and underpowered

#

might add new sounds

#

maybe the PSX zombie sounds

#

@shadow bone how does damage work

#

is it x number times whatever?

#

Cali? CALIIIIII

#

insert MGS gameover

trim falcon
#

yep

#

kinda random

#

you can apply fixed damage too

vocal crypt
#

buuut

#

buuut

#

(as in what's the catch)

#

@shadow bone here's my code so far

#
{
    Health 150
    Speed 5
    Height 56
    PainChance 140
    Translation
 "31:47=240:243", "176:191=204:207"
    Monster
    ActiveSound "grunt/active"
    DeathSound "grunt/death1"
    SeeSound "grunt/sight1"
    PainSound "grunt/pain"
    States
    {
    Spawn:
        CPOS A 10 A_Look
        Loop
    See:
        CPOS AABBCCDD 7 A_Chase
        Loop
    Melee:
        CPOS E 3 A_CustomMeleeAttack (1, "imp/melee")
        CPOS G 10    
        goto see
    Pain:
    CPOS G 3 
    CPOS G 3 A_Pain
    goto see
    Missile:
        CPOS E 10 A_FaceTarget
        CPOS FFF 4 A_CustomMissile ("fastplasma")
        CPOS E 2 A_Jump (64,"see")
        loop
    Death:
        CPOS H 5
        CPOS I 5 A_Scream
        CPOS J 5 A_Fall
        CPOS KLM 5
        CPOS N -1
        CPOS O -1
        stop
    }
}```
trim falcon
#

let see

#

i dunno what custom color youuse

vocal crypt
#

it's suppose to be blue

trim falcon
#

melee atack is 1 and use imps sound

#

you already test it ?

vocal crypt
#

yeah

trim falcon
#

I personally like this order more

#

Missile:
melee:
pain:

vocal crypt
#

your opinio

#

n

trim falcon
#

its hurts my eye to see pain in between

#

A_jump(64,) ??

#

oh chance to stop firing

vocal crypt
#

need to have a different shade of blue to have details like the normal one

royal wave
#

you could manually alter the sprites

#

That way you don't need to change the color in decorate

restive glade
#

the green and blue look ugly.

#

With blue blood in their mouths

#

i'm sorry.

trim falcon
#

nom nom

restive glade
#

It's like they ate a bug.

#

Or an alien

trim falcon
#

maybe you need recolor it to green sprite first

#

and then translate it

vocal crypt
#

so change it to blood

trim falcon
#

cyan is transparent

vocal crypt
#

not going for cyan

trim falcon
#

no its not

vocal crypt
#

so you guys want me to change the blue and green back to red?

#

blood

#

wise

trim falcon
#

no