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

I'm at it again but really I need help with this.

Recommended Posts

I made a post a few days ago, and I didn't get any helpful information. 

 

 

To start, yes I have watched and read these 10K Subs Special - How i make DooM Animations - YouTube

 

 

Classes:DoomPlayer - ZDoom Wiki

 

 

Using inheritance - ZDoom Wiki

 

Script types - ZDoom Wiki

 

 

Classes:Doom - ZDoom Wiki

 

Structure of a script - ZDoom Wiki

 

 

DECORATE - ZDoom Wiki

 

 

 

 

What I want to know is how to use and create Classes.

 

 And how to use Custom Resources.

 

 

 

 

 

Share this post


Link to post

Well, that is a broad question - it might help to specify what part of it you have issues with.

 

But in general an actor class has to have some properties(like health, speed, dimensions and if it's a monster for example) and some flags that modify the behaviour(like INULNERABLE, FRIGHTENED and so on). Then you need to define states which will tell the game what sprites to show when the actor is moving, in pain, shooting or dead - among other possible options. To these states you then may add some action functions(like firing, teleporting and making sound). If you use inheritance, you can only change what you need.

 

Take a look at Zombieman for example, you can see how it's composed. If you want a completely new actor, you'd have to write all that and even more if it's more complex. If you just want a Zombieman with a different attack, you could do something like this:

 

Actor  MyZombieman : Zombieman 10000

{

States

{

   Missile:

   POSS E 10 A_FaceTarget   <- this makes the monster face the target

   POSS F 8 A_CyberAttack   <- fires a cyberdemon rocket instead

   POSS E 8

   Goto See                         <- goes back to chasing the target

}

}

 

And tadaa - you have a rocket firing zombieman.

 

Hope this helps, otherwise you really need to specify.

Edited by Rifleman : typos

Share this post


Link to post
16 hours ago, Rifleman said:

Well, that is a broad question - it might help to specify what part of it you have issues with.

 

But in general an actor class has to have some properties(like health, speed, dimensions and if it's a monster for example) and some flags that modify the behaviour(like INULNERABLE, FRIGHTENED and so on). Then you need to define states which will tell the game what sprites to show when the actor is moving, in pain, shooting or dead - among other possible options. To these states you then may add some action functions(like firing, teleporting and making sound). If you use inheritance, you can only change what you need.

 

Take a look at Zombieman for example, you can see how it's composed. If you want a completely new actor, you'd have to write all that and even more if it's more complex. If you just want a Zombieman with a different attack, you could do something like this:

 

Actor  MyZombieman : Zombieman 10000

{

States

{

   Missile:

   POSS E 10 A_FaceTarget   <- this makes the monster face the target

   POSS F 8 A_CyberAttack   <- fires a cyberdemon rocket instead

   POSS E 8

   Goto See                         <- goes back to chasing the target

}

}

 

And tadaa - you have a rocket firing zombieman.

 

Hope this helps, otherwise you really need to specify.

Thank you I will start working on it soon and see what I can do. Thank you for answering the question honestly and understanding my post. 

Share this post


Link to post
16 hours ago, Rifleman said:

Well, that is a broad question - it might help to specify what part of it you have issues with.

 

But in general an actor class has to have some properties(like health, speed, dimensions and if it's a monster for example) and some flags that modify the behaviour(like INULNERABLE, FRIGHTENED and so on). Then you need to define states which will tell the game what sprites to show when the actor is moving, in pain, shooting or dead - among other possible options. To these states you then may add some action functions(like firing, teleporting and making sound). If you use inheritance, you can only change what you need.

 

Take a look at Zombieman for example, you can see how it's composed. If you want a completely new actor, you'd have to write all that and even more if it's more complex. If you just want a Zombieman with a different attack, you could do something like this:

 

Actor  MyZombieman : Zombieman 10000

{

States

{

   Missile:

   POSS E 10 A_FaceTarget   <- this makes the monster face the target

   POSS F 8 A_CyberAttack   <- fires a cyberdemon rocket instead

   POSS E 8

   Goto See                         <- goes back to chasing the target

}

}

 

And tadaa - you have a rocket firing zombieman.

 

Hope this helps, otherwise you really need to specify.

So I misunderstood what you thought I meant. Let me make this situation clear, so I want to know how to make PlayerClasses* And use them for animation. I'm sorry for confusing you I should have made that clear.

Share this post


Link to post

Oh, that. Well, it is not that much different - the DECORATE part is similar to what I posted, player classes just have different properties and such, but the basics are the same. If you check DoomPlayer again, you'll see the syntax is largely similar to other classes.  If you need the class to use new sprites, you either have to give them the same names or use inheritance and rewrite the states and/or properties, example below. I didn't change the sprites, just properties here:

 

ACTOR MyMarine : DoomPlayer
{
    Player.StartItem "XPistol"
    Player.StartItem "Clip", 75
    Player.StartItem "Fist" 
    Player.WeaponSlot 1, Fist, XGauntlets
    Player.WeaponSlot 2, XPistol
    Player.WeaponSlot 3, XShotgun, XSSG
    Player.WeaponSlot 4, XChainGun
    TeleFogSourceType "EtherealFog"
    TeleFogDestType "EtherealFog"
}

 

Once you have the definition, you need to add the class to the game using MAPINFO - look for PlayerClasses and AddPlayerClasses.

 

gameinfo
 {
    PlayerClasses = "MyMarine"
 }

 

From that point on, it's about scripting and cameras - you place the cameras in your map and give them a tag. Then you use scripts to switch the cameras, like this:

 

Script 1 (void)

{

      ChangeCamera(tag)

}

 

And that's it, in essence.

 

EDIT: I made a few maps like this and videos too - haven't released the maps anywhere as they are just demos, but you can see the scripting if you like. The Lighthouse is for Hexen and Portal for Doom. Videos:

Video 1 Video 2

 

 

lighthouse_demo2.zip

Edited by Rifleman

Share this post


Link to post
3 hours ago, Rifleman said:

Oh, that. Well, it is not that much different - the DECORATE part is similar to what I posted, player classes just have different properties and such, but the basics are the same. If you check DoomPlayer again, you'll see the syntax is largely similar to other classes.  If you need the class to use new sprites, you either have to give them the same names or use inheritance and rewrite the states and/or properties, example below. I didn't change the sprites, just properties here:

 

ACTOR MyMarine : DoomPlayer
{
    Player.StartItem "XPistol"
    Player.StartItem "Clip", 75
    Player.StartItem "Fist" 
    Player.WeaponSlot 1, Fist, XGauntlets
    Player.WeaponSlot 2, XPistol
    Player.WeaponSlot 3, XShotgun, XSSG
    Player.WeaponSlot 4, XChainGun
    TeleFogSourceType "EtherealFog"
    TeleFogDestType "EtherealFog"
}

 

Once you have the definition, you need to add the class to the game using MAPINFO - look for PlayerClasses and AddPlayerClasses.

 

gameinfo
 {
    PlayerClasses = "MyMarine"
 }

 

From that point on, it's about scripting and cameras - you place the cameras in your map and give them a tag. Then you use scripts to switch the cameras, like this:

 

Script 1 (void)

{

      ChangeCamera(tag)

}

 

And that's it, in essence.

 

EDIT: I made a few maps like this and videos too - haven't released the maps anywhere as they are just demos, but you can see the scripting if you like. The Lighthouse is for Hexen and Portal for Doom. Videos:

Video 1 Video 2

 

 

lighthouse_demo2.zip

Thank you I will take a look at it and reply back later today. Thank you very much! 

Share this post


Link to post
20 hours ago, Rifleman said:

Oh, that. Well, it is not that much different - the DECORATE part is similar to what I posted, player classes just have different properties and such, but the basics are the same. If you check DoomPlayer again, you'll see the syntax is largely similar to other classes.  If you need the class to use new sprites, you either have to give them the same names or use inheritance and rewrite the states and/or properties, example below. I didn't change the sprites, just properties here:

 

ACTOR MyMarine : DoomPlayer
{
    Player.StartItem "XPistol"
    Player.StartItem "Clip", 75
    Player.StartItem "Fist" 
    Player.WeaponSlot 1, Fist, XGauntlets
    Player.WeaponSlot 2, XPistol
    Player.WeaponSlot 3, XShotgun, XSSG
    Player.WeaponSlot 4, XChainGun
    TeleFogSourceType "EtherealFog"
    TeleFogDestType "EtherealFog"
}

 

Once you have the definition, you need to add the class to the game using MAPINFO - look for PlayerClasses and AddPlayerClasses.

 

gameinfo
 {
    PlayerClasses = "MyMarine"
 }

 

From that point on, it's about scripting and cameras - you place the cameras in your map and give them a tag. Then you use scripts to switch the cameras, like this:

 

Script 1 (void)

{

      ChangeCamera(tag)

}

 

And that's it, in essence.

 

EDIT: I made a few maps like this and videos too - haven't released the maps anywhere as they are just demos, but you can see the scripting if you like. The Lighthouse is for Hexen and Portal for Doom. Videos:

Video 1 Video 2

 

 

lighthouse_demo2.zip

 

 

#include "zcommon.acs"

Script 1 open {
    ChangeCamera(1,0,0);
    }
    
     
    Script 2 open {
        actor MyPlayer : DoomPlayer
    
       Speed 2.0
       Health 100
       Radius 16
       Height 56
       Mass 0
      
}

{
   GAMEINFO
   MAPINFO
   
   
   PlayerClasses = "MyPlayer"

}

 

 

So I do apologize if this makes you cringe I'm really not experienced in any way here. I've been looking at your post and other posts on Doomworld but I can't find anything. So how do I structure this type of script?

 

 

 

 

 

 

 

Share this post


Link to post

You have to understand the basic thing, and that is: There are sveral different programming languages in doom ports. I dont know which one you're using. But the examples provided here are for decorate, while the example you provided here is for acs. Buut, you've put an actor definition in acs script. It won't work this way. Decorate goes into decorate lump, not acs.

 

And please, so dont need to quote the last and only reply in the thread. It makes no sense at all.

Share this post


Link to post

It's not meant to all go to a single file :) Also, no need to quote me every time, it makes the thread very long...just reply, I'll get it :)

 

The part where you define the player actor must be in a lump(file) called DECORATE.

The part with gameinfo goes to lump called MAPINFO

And the script itself is in the map, that's where you are trying to put it all.

 

If you don't have it, download Slade3 to be able to manage lumps in your wad. It should look something like this, the lumps may be different, but you can clearly see the ones I am talking about:

 

image.png.568f855f750736d7c5d73e051ab1fe3d.png

 

Look at the syntax in my last post, yours is weird from trying to merge it all together; brackets are all over the place, the word MAPINFO should not be there and so on.

Share this post


Link to post

Yes, now you have all you need to begin. You can always add more resources later, but I'd start small first to get the hang of it. 

 

In UDB then place the cameras you want and ChangeCamera scripts to change the view. The rest is up to your imagination and some practice.

Share this post


Link to post

Okay, so my internet went out last night. So I couldn't say this. I figured out that you don't need to set up an actor to have one player in front of the camera, but I wanted to know how to get more than one character on the screen. 

Share this post


Link to post

I'm not sure I understand what you're asking.

 

If you want more characters on the screen, you need to put them in the map and position the cameras so they can see the actors.

 

 

 

 

Share this post


Link to post

I'll look into that. But what I was asking was how can I have multiple actors on the screen at once for Animation. 

Share this post


Link to post

Could you please describe what you're trying to do? Like, describe it wholly, without further asking on what you want to do. Nobody reads your mind, so you have to describe what tou want to do.

 

For your question: Have you actually tried placing the actors in editor?

Edited by ramon.dexter

Share this post


Link to post

What I'm trying to do is set up multiple actors for animation. Just like GamingGargoyle but less complex. That's it. 

Share this post


Link to post

Okay. Have you tried placing said actors in editor?

 

Maybe is you are little bit more descriptive, so we cpuld give you a better advice, instead of asking you what you did...

Share this post


Link to post

Well, then as said before - if you want to have multiple actors on screen, you need to put them in the map and make sure your cameras see them, then switch between cameras as you need. If you need the actors to be special somehow, you need to define them in DECORATE. The rest is up to your directorial skills and scripting.

Share this post


Link to post
11 hours ago, Rifleman said:

Well, then as said before - if you want to have multiple actors on screen, you need to put them in the map and make sure your cameras see them, then switch between cameras as you need. If you need the actors to be special somehow, you need to define them in DECORATE. The rest is up to your directorial skills and scripting.

Maybe this process needs to be explained, aswell. How to put them in the map, how to make sure an actor is picked up by a camera, and how to switch between camera and actor.

Share this post


Link to post
44 minutes ago, Redneckerz said:

Maybe this process needs to be explained, aswell. How to put them in the map, how to make sure an actor is picked up by a camera, and how to switch between camera and actor.

I don't disagree but as ramon said, we are not mind readers. We asked for details twice and OP twice repeated the same general sentence.

 

So, OP, please let us know what aspect you have issues with, don't be afraid to use more than one sentence ;)

Share this post


Link to post
26 minutes ago, Rifleman said:

I don't disagree but as ramon said, we are not mind readers. We asked for details twice and OP twice repeated the same general sentence.

 

So, OP, please let us know what aspect you have issues with, don't be afraid to use more than one sentence ;)

I agree, i am just assuming that this is why he is repeating the sentence in the first place.

Share this post


Link to post

I'll give a list of problems. 1 How would I place an actor into a map? 2 How would I get the actors to move? Those are the biggest problems I'm having. Foor further context I'm trying to create a Doom Animated series and I need to know how to move multiple actors at once along with you know? Being able to place them. For the first part of the show, there will be 4 Marines I need to know how to move them and place them.  

Share this post


Link to post

So far, I've gotten one marine to move, but I will need far more than that! But at first, I need to start off small, so having the ability to move mutable Marines at once is a huge priority. 

Share this post


Link to post

In Ultimate Doom Builder, switch to Things Mode and right click somewhere in your map to place a new actor. You can use the stock monsters and things and any you have defined earlier. By right clicking on any actor you can change its properties, like a tag.

 

Chubzdoomer has a new tutorial and near the end it shows a way to move things: https://www.youtube.com/watch?v=nwpW8M8BbtQ

It uses PatrolPoints in combination with Thing_SetGoal. I'm not super experienced with this, but I've used ActorMover and InterpolationPoint to move actors myself.

 

Once you have the route set, you usually have scripts triggered at certain points to activate the things so they move.

Edited by Rifleman

Share this post


Link to post

Okay, so after taking a look at it, I placed an Actor [In this case Player 2] I gave him a Tag both in the editor and the script in SLADE and I couldn't get him working. Should I use a Player start or a different actor? Or should I structure the script differently? EDIT: Those are screenshots of the unedited scripts. 

S!1.png

S@.png

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×