Author Topic: Help with ACS and Strife map conversations?  (Read 6417 times)

Offline darkstone

  • Modding... modding... pulling hair out... modding...
  • Cycloptis
  • **
  • Thank You
  • -Given: 5
  • -Receive: 3
  • Posts: 337
Help with ACS and Strife map conversations?
« on: January 19, 2016, 09:03:12 PM »
I have been mapping for a long while.
After I finally made my first DOOR I took off and have made some fun maps (but they're on another computer :'(). But now I am getting into polyobjects, conversations, specials and ACS, and it's not making sense. I learn from looking at others' work - tutorials don't make sense to me often - but there are a few base things of ACS and Strife conversations that just don't seem to be explained anywhere! I was wondering if you would tell me the basics of this, how to get ACS to work in a map, how to get Strife conversations to attach to an actor... and if you could, would you point me to a good thorough tutorial on polyobjects, perhaps with example wads?
Thank you very, VERY much. :)

Chex Quest Fan Forums

Help with ACS and Strife map conversations?
« on: January 19, 2016, 09:03:12 PM »

Offline 75

  • [IFOC] Server Admin
  • Multiplayer Team Leader
  • Chex Master
  • *****
  • Thank You
  • -Given: 29
  • -Receive: 26
  • Posts: 4232
    • IFOCSERV
Re: Help with ACS and Strife map conversations?
« Reply #1 on: January 20, 2016, 08:23:57 PM »
Just want to make sure, do you know about the zDoom wiki? In case you don't, it's a wiki that documents pretty much every aspect of the zDoom engine, the information on there generally works for zandronum too. here's a link: http://zdoom.org/wiki/Main_Page


There's a zDoom wiki article about Polyobjects http://zdoom.org/wiki/PolyObjects

If you're looking for a polyobject example wad you can take a look at this thing I made:

http://forum.zdoom.org/viewtopic.php?f=3&t=29536#p561721

NOTE that if you read stuff on forums saying that the polyobject needs to be convex and a null sector, that's all outdated. That was for Hexen style polyobjects!

Zandronum, zDoom, and gzDoom all support these newer polyobjects as of Zand 2.0 (July 2015).

For conversations and ACS,

Note that if you use the zDoom Strife Dialog Format ( http://zdoom.org/wiki/ZDoom_Strife_Dialog_Format ) I think you need to use UDMF format for your maps, I'd guess that Doom in Doom or Doom in Hexen wouldn't work; I did briefly experiment with ZSDF in a UDMF format map but that was about it.

If you really want a reference for USDF, feel free to look at this Blake Stone TC I started on and unfortunately didn't really get that far with http://ifocserv.net/ftp/Random/BS_AOG_07172012.pk3

EDIT: Also the map has polyobjects in it, pushwalls and sliding doors.

The guys in the white lab coats have dialog. Their classnames are InformantXX, e.g., Informant01, Informant02, where the number after Informant is their Conversation ID, assigning Conversation IDs is critical to making ZSDF work!

If you want to see the DECORATE code, look in the pk3 at Actors\Shootable\Scientists.dec

I copy/pasted the DECORATE code into here from that file:
Code: [Select]
ACTOR Informant  // do not use in a map, this is just a class to inherit from
{
Damagefactor "Electric", 0.0
Damagefactor "DontKillInfs", 0.0
MONSTER
Speed 10
Mass 10000
Health 50
Height 54
DeathHeight 0
Painchance 255
BloodColor "FF 00 00"

Deathsound "Informant/Die1"



States
{
Spawn:
BSCI Z 10 //A_Look2
loop

See:
BSCI AABBCCDD 4 A_Wander
loop

Pain:
BSCI I 6 A_Pain
Goto See

Death:
BSCI F 5
BSCI G 5 A_Scream
BSCI H 5
BSCI J 5
BSCI K -1
Stop
}
}

// defining extra informants, because each informant can only say one thing

Actor Informant01 : Informant 20102
{
ConversationID 1
}

Actor Informant02 : Informant 20103
{

ConversationID 2
}

Actor Informant03 : Informant 20104
{
ConversationID 3
}

Actor Informant04 : Informant 20105
{
ConversationID 4
}

Actor Informant05 : Informant 20106
{
ConversationID 5
}

Actor Informant06 : Informant 20107
{
ConversationID 6
}

Actor Informant07 : Informant 20108
{
ConversationID 7
}

Actor Informant08 : Informant 20109
{
ConversationID 8
}

Actor Informant09 : Informant 20110
{
ConversationID 9
}

Actor Informant10 : Informant 20111
{
ConversationID 10
}

Here's the DIALOGUE code, copy/pasted from E1M1:

Code: [Select]
namespace = "Strife";
include = "SCRIPT00";

conversation
{
    actor = 1;
   
    page
    {
        name = "Informant";
        dialog = "How can I help?";
       
        choice
        {
            text = "I'm looking for the red keycard";
           
            nextpage = 2;
        }
       
        choice
        {
            text = "I could use some ammo...";
            nextpage = 3;
        }
       
        choice
        {
            text = "Do you have any food tokens I could use?";
            nextpage = 4;
        }
       
        choice
        {
            text = "Seen anything suspicous around here?";
            nextpage = 5;
       
        }
    }
   
    page
    {
        name = "Informant";
        dialog = "I haven't seen it, sorry";
        choice
        {
            text = "I have another question";
            nextpage = 1;
        }
    }
   
    page
    {
        name = "Informant";
         dialog = "Sorry, I'm unarmed";
         choice
        {
            text = "I have another question";
            nextpage = 1;
        }
    }
   
    page
    {
        name = "Informant";
        dialog = "Sure, I can spare a few";
        giveitem = 50;

        choice
        {
            text = "I have another question";
            nextpage = 1;
        }
    }
   
    page
    {
        name = "Informant";
        dialog = "I saw a couple star troopers enter the building. It's rare to see elite guards in this area, goldfire must have them protecting something important";
       
           choice
        {
            text = "I have another question";
            nextpage = 1;
        }
    }
}

conversation
{
    actor = 2;
   
    page
    {
        name = "Informant";
        dialog = "You must be Blake, how can I help out?";
       
        choice
        {
            text = "I could use some ammo...";
            nextpage = 2;
        }
       
        choice
        {
            text = "Do you have any food tokens?";
            nextpage = 3;
        }
       
        choice
        {
            text = "What information do you have for me?";
            nextpage = 4;
        }
    }
   
    page
    {
        name = "Informant";
        dialog = "Here, take my charge pack";
       
        giveitem = 51;
       
        choice
        {
        text = "I have another question";
        nextpage = 1;
        }

    }
   
    page
    {
        name = "informant";
        dialog = "I guess I can spare a food token";
       
        giveitem = 50;
       
        choice
        {
            text = "I have another question";
            nextpage = 1;
        }
    }
   
    page
    {
        name = "informant";
        dialog = "Goldfire likes to hide things in areas behind fake walls";
       
        choice
        {
            text = "I have another question";
            nextpage = 1;
        }
    }
}
       
           
           
       

// credit is conversationID 50
// 51- chargepack
// 54 - half charge pack
// 53 - Rapid assault weapon
// 52 - slow fire protector


For ACS, you'll have to tell us more about what you're trying to do (global ACS, or just scripts local to the map?). I can give you this article http://zdoom.org/wiki/ACS_Execute , use ACS_Execute on a linedef to start executing a script.

If you're looking for a general reference, http://zdoom.org/wiki/ACS
« Last Edit: January 20, 2016, 10:35:06 PM by 75 »
"Give us those nice bright colors, give us the greens of summer, makes you think all the world's a sunny day."

Want a place to talk about Chex Pack, or Chex Quest in general? Join #IFOC: irc://irc.zandronum.net/IFOC

Offline darkstone

  • Modding... modding... pulling hair out... modding...
  • Cycloptis
  • **
  • Thank You
  • -Given: 5
  • -Receive: 3
  • Posts: 337
Re: Help with ACS and Strife map conversations?
« Reply #2 on: January 22, 2016, 11:45:53 PM »
Wow, lots to cover.
I do know about the ZDoom wiki and have been going to it for problems for years. The problem is A) it does not have any good tutorials on swinging doors that I found, only sliding doors, and I want a swinging door (wooden doors opening in a standard office building, and a refrigerator you can raid for my newest map). B) Tutorials... don't work for me. I read them and it doesn't work, I try, it doesn't work, but you give me a completed script to look at or the actual tool with a blank space to work, and I'll figure it out on my own in no time. And another...
I don't quite get which map format I'm using. I pick zdoom map format in XWE and go from there, that's what all CQ3 uses, that's what I use.

That's a little more specific about what I want, I think. And as for the ACS, it's all of it - I read somewhere it's supposed to be compiled and yet read elsewhere it's not, one of them is mistaken. I can figure out the code, it seems similar to Java/C++ in structure and that's easy, it's getting it to work that is hard.
Now, hopefully less rambling then my original post? :)

Edit: And, um...  :-[  What key starts a Strife conversation?
« Last Edit: January 23, 2016, 12:07:29 AM by darkstone »

Offline 75

  • [IFOC] Server Admin
  • Multiplayer Team Leader
  • Chex Master
  • *****
  • Thank You
  • -Given: 29
  • -Receive: 26
  • Posts: 4232
    • IFOCSERV
Re: Help with ACS and Strife map conversations?
« Reply #3 on: January 23, 2016, 11:06:28 AM »
- Go up to the thing you want to talk to, and use the Use key to start a Strife conversation, the Use key defaults to Space. IIRC if your DIALOGUE isn't set up properly you'll just not see anything if you press use, which makes debugging a little bit harder, unfortunately.

- You don't need an ACS script to make a polyobject

- I gave you an example of a sliding door in this topic (see attached wad in that topic) http://forum.zdoom.org/viewtopic.php?f=3&t=29536#p561721

If you want a swinging door, you're really close, it's just http://zdoom.org/wiki/Polyobj_DoorSwing instead of http://zdoom.org/wiki/Polyobj_DoorSlide

Open up the wad I linked on the topic and look at where I assigned door swing and replace it with door slide and mess with the parameters to that linedef action, note that all of the important linedef actions happen on the control sector.

Or if you prefer, the wad that goes with the tutorial on the zdoom wiki here http://zdoom.org/wiki/PolyObjects works -- wad download: http://zdoom.org/wiki/File:Polyexample.zip . You could edit that to work with door swing as well.

- Note that the polyobjects are identified by thing angle.

- ACS is always compiled, DIALOGUE is compiled for vanilla Strife and uncompiled for zDoom's ZSDF.

- Also I recommend switching from XWE to Slade 3 for wad editing http://slade.mancubus.net/

The map format you're using is chosen when you start a new map in Doombuilder 2, XWE isn't really a map editor, it just edits the other lumps in the wad.
"Give us those nice bright colors, give us the greens of summer, makes you think all the world's a sunny day."

Want a place to talk about Chex Pack, or Chex Quest in general? Join #IFOC: irc://irc.zandronum.net/IFOC

Offline darkstone

  • Modding... modding... pulling hair out... modding...
  • Cycloptis
  • **
  • Thank You
  • -Given: 5
  • -Receive: 3
  • Posts: 337
Re: Help with ACS and Strife map conversations?
« Reply #4 on: January 23, 2016, 11:18:55 AM »
:( I guess I'm not making it clear what I mean, I'm sorry.
I have these basics down. I don't quite understand ACS's compiling, and I can't seem to get the DIALOGUE lump right either. I think I'm further on Polyobject_DoorSwing, though. (I HAD done it, but it spawned this stupid flying polyobject some distance off in the nearby wall.) No, what I'm really interested in was how to get it compiled, and how to get DIALOGUE to work. If I could just do that I could look at others' code and go from there.

And on second note:
That Blake Stone map. OH
MY
GOODNESS
(<3 hubs)

Offline 75

  • [IFOC] Server Admin
  • Multiplayer Team Leader
  • Chex Master
  • *****
  • Thank You
  • -Given: 29
  • -Receive: 26
  • Posts: 4232
    • IFOCSERV
Re: Help with ACS and Strife map conversations?
« Reply #5 on: January 23, 2016, 07:05:12 PM »
If you're using Doombuilder 2 (you are, right?) then you don't need to worry about compiling ACS, DoomBuilder 2 compiles it for you using ACC every time you save the map.

Again I have DIALOGUE code (note the UK spelling of dialog, this is how zDoom spells it) in the Blake Stone map you can look at, try talking to the guys in the white lab coats. Some of them will shoot you, some of them will talk to you.

Also make sure to open the blake stone map (E1M1 in the pk3 under Maps\) as a UDMF format map.
« Last Edit: January 23, 2016, 07:06:54 PM by 75 »
"Give us those nice bright colors, give us the greens of summer, makes you think all the world's a sunny day."

Want a place to talk about Chex Pack, or Chex Quest in general? Join #IFOC: irc://irc.zandronum.net/IFOC

Offline darkstone

  • Modding... modding... pulling hair out... modding...
  • Cycloptis
  • **
  • Thank You
  • -Given: 5
  • -Receive: 3
  • Posts: 337
Re: Help with ACS and Strife map conversations?
« Reply #6 on: March 15, 2016, 11:40:25 PM »
Sorry but you are not allowed to view spoiler contents.

I have realized this was a bit strong. It's hard. Back when I first tried to reply to this topic I ended up spilling a bunch of emotion onto the page - and I couldn't post that.
But I won't use Doom Builder.
« Last Edit: March 15, 2016, 11:42:19 PM by darkstone »

Offline Drwalrustein

  • Walrsuses
  • Cycloptis
  • **
  • Thank You
  • -Given: 7
  • -Receive: 1
  • Posts: 456
Re: Help with ACS and Strife map conversations?
« Reply #7 on: March 16, 2016, 12:18:20 AM »
Maybe you should use GZDoom Builder. It has more features. But I have also used ACS. At first it frustrated me, but I kept on looking through the ZDoom Wiki and I finally learned. Remember to always use the ZDoom Wiki as a reference or go to the ZDoom forums and ask people.

Offline darkstone

  • Modding... modding... pulling hair out... modding...
  • Cycloptis
  • **
  • Thank You
  • -Given: 5
  • -Receive: 3
  • Posts: 337
Re: Help with ACS and Strife map conversations?
« Reply #8 on: March 16, 2016, 04:28:50 AM »
Maybe you should use GZDoom Builder. It has more features. But I have also used ACS. At first it frustrated me, but I kept on looking through the ZDoom Wiki and I finally learned. Remember to always use the ZDoom Wiki as a reference or go to the ZDoom forums and ask people.

Thank you.

Offline Awesomedude249

  • What am I supposed to put here?
  • Global Moderator
  • Flembrane
  • *****
  • Thank You
  • -Given: 13
  • -Receive: 29
  • Posts: 2085
  • I'm not really sure.
Re: Help with ACS and Strife map conversations?
« Reply #9 on: March 16, 2016, 12:25:59 PM »
Maybe you should use GZDoom Builder. It has more features. But I have also used ACS. At first it frustrated me, but I kept on looking through the ZDoom Wiki and I finally learned. Remember to always use the ZDoom Wiki as a reference or go to the ZDoom forums and ask people.

Thank you.
#Invalid YouTube Link#

There WAS a really good tutorial on polyobjects made by JaundiceJuan, but it appears to have been deleted.
I used to be the new guy that no one talks to, now I'm just the vaguely familiar guy that no one talks to

Offline ChexMaster2109

  • Self-Proclaimed ACS Grandmaster
  • Multiplayer Team Leader
  • Chex Master
  • *****
  • Thank You
  • -Given: 18
  • -Receive: 29
  • Posts: 4307
  • If life gives you lemons, give its lemons back!
    • Chex Quest: Reflections
Re: Help with ACS and Strife map conversations?
« Reply #10 on: March 16, 2016, 01:10:16 PM »
1. You REALLY should use Doom Builder (preferably GZDoomBuilder), as it is the premiere and virtually only map editor available these days. I realize you can edit a map by hand, and there are a few other methods of map editing, but these should really be discouraged as they are extremely inefficient and painstakingly slow.


2. If you need to compile your ACS, follow this link. It tells you how to use ACC, which is the compiler program. There are times when you need to compile your ACS manually, even when using DoomBuilder (which usually includes the latest version of ACC built-in, so you can compile with a single button click).


2b. If default ACS is too simple for you, take a look here. Its called BCC, and is essentially a more advanced version of ACC, with support for more complex structures and scripting.


(BTW 75, you should look at BCC as well. Its rather cool)
« Last Edit: March 16, 2016, 01:13:06 PM by ChexMaster2109 »
Shh!  I'm taking a break from reality.

John 3:16
For God so loved the world, that he gave his only son, that whoever believes in him shall not perish, but have eternal life!

Give God your life; You won't regret it!

Offline 75

  • [IFOC] Server Admin
  • Multiplayer Team Leader
  • Chex Master
  • *****
  • Thank You
  • -Given: 29
  • -Receive: 26
  • Posts: 4232
    • IFOCSERV
Re: Help with ACS and Strife map conversations?
« Reply #11 on: March 16, 2016, 08:04:46 PM »
[Note: I still call GzDoombuilder Doombuilder 2 accidentally, the codebase is so similar that I kind of forget to call it by its "new name"]

Quote
I never have and never WILL use Doom Builder.

That's okay, I think this might be some kind of misunderstanding, when I said:

If you're using Doombuilder 2 (you are, right?)

I didn't mean for that to come off like a recommendation or me shoving DB2 down your throat; I was confused by the problem you were having, and wanted to confirm what editor you were using. I was thinking you were using DB1 for a brief moment (I know somebody who still uses it).

By the way, what editor are you using to make your maps?

With that said you may have a hard time getting help for anything but (Gz)DoomBuilder,  I have no idea how to do DIALOGUE (USDF, Vanilla Strife, or otherwise) or map scoped ACS in any other editor than (Gz)DoomBuilder 2, sorry. I used Slade 3 very briefly for map editing but I never had time to look into it deeply.

There's ACS compilers (ACC) that you can use command line without a map editor, but that would make a global ACS library, which would start getting huge if you had a lot of maps, and you'd end up having to write down what script #251 was in the global library and what it did, it would probably be kind of a pain.

For Strife Dialog I'd guess there's some kind of external compiler but I can't find a dedicated binary for it.

Sorry but you are not allowed to view spoiler contents.

I have realized this was a bit strong. It's hard. Back when I first tried to reply to this topic I ended up spilling a bunch of emotion onto the page - and I couldn't post that.
But I won't use Doom Builder.

I know it can be kind of frustrating, if it's any consolation when I was first learning ACS / DECORATE I wasn't having a great time, but it gets better.

I wasn't really sure what you meant when you said

I don't quite understand ACS's compiling

and to be honest the grammar in the post was sort of throwing me off:

Trying again: I guess if you just want a "what does compiling ACS do" kind of answer, well, ACC compiles your ACS source into a binary file, sort of like a .o file in C/C++. zDoom sort of acts like a CPU and runs the bytecode in the .o file just like your Intel or AMD processor in your computer runs x86 bytecode. (Or if you prefer, the output of ACC, and the result of compiling a script, is like Java Bytecode). This was kind of a wild guess, usually when I start talking about object files people start dozing off, but if you're into that kind of stuff like I am then that's pretty cool.

When ACS was introduced with Hexen, Raven Software decided to make it compiled. I'm kind of curious to know why they went that route.


For DIALOGUE, again, the Blake Stone wad is the best reference I have, it took quite a bit of trial and error for me to make that work, I was hoping you'd open that up and ask me stuff like "what does actor = 1" mean so I knew where to start.

Regarding tutorials: I remembered that you don't like them; I only linked the tutorials because they had good example wads on them, I was thinking you'd download the wad linked on the page.

I'd like to offer a piece of advice on the subject of tutorials, though:

Sorry but you are not allowed to view spoiler contents.
« Last Edit: March 16, 2016, 08:22:43 PM by 75 »
"Give us those nice bright colors, give us the greens of summer, makes you think all the world's a sunny day."

Want a place to talk about Chex Pack, or Chex Quest in general? Join #IFOC: irc://irc.zandronum.net/IFOC

Offline darkstone

  • Modding... modding... pulling hair out... modding...
  • Cycloptis
  • **
  • Thank You
  • -Given: 5
  • -Receive: 3
  • Posts: 337
Re: Help with ACS and Strife map conversations?
« Reply #12 on: March 16, 2016, 08:34:38 PM »
...
Ah. Thank you. That clears it up a lot. There was a misunderstanding, and I feel a lot better now I understand. I use XWE, always have, Doom Builder did not work on any computers I had. It works well. And I did feel like everyone was shoving Doom Builder down my throat - so many people have.
Sorry about the grammar. I am learning French and it's throwing me off.
And... as for tutorials... I don't get any info out of them. It's something about me. I work well in multiplications of 8, reading other people's work, and being told mouth-to-ear (or text on screen by someone who's really explaining it). Tutorials just don't work.
And as for your map, I think I was too caught up in the polyobjects... :-) They're awesome. I opened it up, looked at the actors, tried to make my own DIALOGUE with a modified Commonus...

Offline 75

  • [IFOC] Server Admin
  • Multiplayer Team Leader
  • Chex Master
  • *****
  • Thank You
  • -Given: 29
  • -Receive: 26
  • Posts: 4232
    • IFOCSERV
Re: Help with ACS and Strife map conversations?
« Reply #13 on: March 16, 2016, 09:04:36 PM »
- Huh, I didn't know XWE had a map editor

- XWE definitely won't be able to open my map because it's in UDMF format; the last time XWE was released, UDMF format didn't even exist

- What's your computer's specs and OS?

- If your computer can't run Doombuilder 2, you might want to try Slade 3's map editor: http://slade.mancubus.net/index.php?page=downloads

The last time I used it, the map editor was kind of buggy but I'm sure it's improved over the last... few years (time flies I guess)

I made an example wad for you:

http://ifocserv.net/ftp/Random/E1M1_TalkingCommonus.wad

You can talk to the commonus and the flag pole, I think I had a little too much fun with this
"Give us those nice bright colors, give us the greens of summer, makes you think all the world's a sunny day."

Want a place to talk about Chex Pack, or Chex Quest in general? Join #IFOC: irc://irc.zandronum.net/IFOC

Offline darkstone

  • Modding... modding... pulling hair out... modding...
  • Cycloptis
  • **
  • Thank You
  • -Given: 5
  • -Receive: 3
  • Posts: 337
Re: Help with ACS and Strife map conversations?
« Reply #14 on: March 16, 2016, 09:24:17 PM »
...Did you make me feel short next to the Commonus on purpose? (huffs)

 ;D That said, that was great. So the DIALOGUE won't work for my ZDoom maps?

-Uh... Intel two core E7500 @ 2.97 GHz, 2GB ram, 1 terabyte hard drive, Windows 7. (Crummy windows 7.)

-How does Slade's work? I'm not good at learning new tools.

 


Web Hosting by InMotion Hosting