Syberia-style speech

Started by ciborium, Sun 08/04/2007 14:03:22

Previous topic - Next topic

ciborium

Is it possible to do Syberia style speech, where the character is animated in speech view, but the words appear in a box at the bottom of the screen, like subtitles? 

Also, can I make a topic list that can be added to and removed from throughout the game, where only those key-words bring up conversation topics?

Akatosh

#1
Quote from: ciborium on Sun 08/04/2007 14:03:22
Is it possible to do Syberia style speech, where the character is animated in speech view, but the words appear in a box at the bottom of the screen, like subtitles?

Try something like cEgo.SayAt(0, 300, 200, "Message"); - it won't create a box and you'll probably have to fiddle around with the x and y co-ordinates a bit, but it should work.

Quote from: ciborium on Sun 08/04/2007 14:03:22
Also, can I make a topic list that can be added to and removed from throughout the game, where only those key-words bring up conversation topics?

Hm... my workaround would be:
* Put ABOVE game_start:
Code: ags

Character *cOtherguy;
//this creates a pointer we'll use later.


* Create the dialog dDialog with completly all options

* Put this in the dialog script:
Code: ags

@S
return
@1
run-script(1);
//if you want, you can put additional stuff here, e.g. stop (remove return then)
return 
@2
run-script(2);
//same here
return
//and so on, do this for every dialog topic.
//NOTE: create the options first, it will make the @S, @1, @2 and so on appear!
//also, remove the text behind //.


* Now create properties, as many as you have topics. They must be named 1, 2, 3, 4, 5 and so on. Create them as strings and set their respective properties to what you want that character to say about topic 1, 2, 3...

* Put this into dialog request:
Code: ags

String prop=String.Format("%d",parameter);
cOtherguy.Say(cOtherguy.GetProperty(prop));


//after that you can still use what dialog_request was intended for. for example, if option 6 gives you an item:

Code: ags

if (parameter==6) player.AddInventory(inventory[2]);


* Put the following interaction in "talk to character":

Code: ags

cOtherguy=Character.GetAtScreenXY(mouse.x, mouse.y);
dDialog.Start();


* If you want to turn options of that dialog on and off, just use the Dialog.SetOptionState command. It's described in the manual.

/EDIT: It's better that way.

/EDIT EDIT: If you use it in your game, please give me credit  :=

/EDIT EDIT EDIT: Dumb mistake fixed.


ciborium

#3
Can I put all my dialog topics in a gui that can access dialog scripts when list item is selected,  and just add and remove list items as the game progresses?

EDIT:  Figured it out.

SMF spam blocked by CleanTalk