Some Dialog Questions (& Suggestions for Autonumber/Script Export)

Started by LilBlueSmurf, Thu 09/02/2012 21:28:44

Previous topic - Next topic

LilBlueSmurf

I'm creating a little program to deal with numbering lines and exporting a script because I don't like how the engine does it. Output isn't very useful for creating voice scripts because there are no indications of the dialog/room it occurs in and dialog options aren't included in-sequence, but lumped together. Also, autonumber has no option to just fill in non-numbered lines so working scripts would be ruined if you ran it after initial script creation. Comment tags to include remarks in script would be useful also ( //VScript: look bush) as they help voice actors immensely even if they require extra work for coders.

Anyways, I had some questions when it comes to Dialogs. I haven't actually done work in AGS other than quickly looking over what other team members have done and what the demo contains. And we don't actually use dialogs, but I'm trying to account from them anyways. So here are the questions:

1. How is it determined who will "say" the options? For instance if you control different characters at different times, how is it indicated you are currently playing as Ego2 and not Ego? Or will that even work as far as dialogs go? (in other words is ego always the one to say the options?)

2. How does the actor reference work? I know that in the demo and tutorials you use the script name minus the "c" in front, but what if you don't name your characters with a c? (or is that required?) and does the game still function fine even if you name them in dialog with a c? (I know some of this could be tested, but I figure the knowledge is likely out there so this is quicker)

3. I know it is possible to run normal code with dialog scripts, so is it possible to use say, sayat, display commands and have it actually still work fine? Even if it would normally make something wonky to do so, would it be possible with workarounds and thus should probably be accounted for even if very unusual?

If the above mentioned functionality was put in officially, that would be great and useful to everyone. But in the meantime, help on working out dialog issues for a separate tool are appreciated.

Khris

I haven't really used dialogs that much yet, let alone voice speech, so I'll just answer the questions:

1. The current player character will say the options, as in, the Character object pointed to by player.
If different player characters are supposed to say different things in dialogs, the standard procedure is to have multiple dialogs, I guess.

2. The "c" was introduced when AGS went oo but has been ditched again when the editor was overhauled.
A character's script name used to be generated automatically; if the Character was named "MERCHANT", AGS created a constant with that name which stored the character's ID (an int). And, besides character[MERCHANT], AGS also offered a pointer called cMerchant, pointing to the Character object. This lead to confusion sometimes though, and at least since 3.0, AGS allows to use an arbitrary name for the pointer.
However, people are generally encouraged to keep using the c in order to signify that the script object is an instance of the character class.
Dialog scripts still accept "EGO" if the character's script name is cEgo.

3. You can use any command, including Say or SayAt. Afaik, a dialog line like "ROGER: Hello!" ends up as character[ROGER].Say("Hello!"); anyway.

SMF spam blocked by CleanTalk