Looking For The Speech Tree System

Discussion in 'Fallout Tactics Modding' started by Nemesis666, Dec 15, 2012.

  1. Nemesis666

    Nemesis666 First time out of the vault

    10
    Dec 15, 2012
    Hi :) ,

    At first, i warm you that english is not my native language.

    I begin to modding on FoTBoS Editor, I using this site to help me : http://jj86tutorials.stgfc.com .

    Actualy, I can do talk to a Entity, but I can't answer to them, I don't found in the Trigger list :o .

    I want this, if you prefer :

    "Hi, who are you ?
    1. Your worst nightmare.
    2. I'm nobody, dude.
    3. I am your father !"

    Anyone can help me please :) ?
     
  2. Ox-Skull

    Ox-Skull First time out of the vault
    Modder

    29
    Mar 3, 2012
  3. Nemesis666

    Nemesis666 First time out of the vault

    10
    Dec 15, 2012
    Ho :o ...

    Developers have not implemented this oO ... It's juste unbelievable !

    It's maybe the reason why the game is not a lot modded.

    It's very beautiful Ox-Skull, I think that I will use it :) .

    Is there may be statistical validators?
    For example:
    [25/50 Heavy Weapon] With a bigger gun, it should go!
    Or
    [4/10 Intelligenre] It is perhaps not a good idea ...

    ?
     
  4. Ox-Skull

    Ox-Skull First time out of the vault
    Modder

    29
    Mar 3, 2012
    Im not so sure about the skill/stat checks.

    It was enough of a headache just getting the right NPC responses to the dilaogue chosen by the player.

    Have you looked at the scripting triggers for it, it still boggles my mind.

    Also i used Jarekfalls sprite creator program to create the text box entitys. This can also be download from my moddb page, there is a link on the sprite creator download page to jarekfalls website.
     
  5. Nemesis666

    Nemesis666 First time out of the vault

    10
    Dec 15, 2012
    I have tested, my character "fire", "walk" or "loot" on the button xDDDD .

    It's a good idea, but it's do not work for the moment :) .

    I think it's difficult to do ='( ...

    My creativity suffers :'( .
     
  6. Nemesis666

    Nemesis666 First time out of the vault

    10
    Dec 15, 2012
    An other solution of Speech Tree System anywhere :o ?
     
  7. Ox-Skull

    Ox-Skull First time out of the vault
    Modder

    29
    Mar 3, 2012
    Besides being able to shoot them and what not, did the response buttons lead to the correct NPC responses? Because a moddb member tested it, and he mentioned being able to shoot them, but besides that it functioned properly.
     
  8. Nemesis666

    Nemesis666 First time out of the vault

    10
    Dec 15, 2012
    When the button is link with a text line, it's work, but when the button is not "activated" (by a text line), it's do a strange thing, like "loot" the button.

    Whatever, i will try an other solution.

    I search how the caracteristic like "speech" or "charisma" can have a place in the gameplay of my mod.
     
  9. nadeauhugo

    nadeauhugo Author of FOT mod THE SUM Modder

    460
    Mar 9, 2014
    Hi all!

    I have some ideas about a very very old topic : Implementing a speech tree or dialog tree in Tactics! Only way I can find it to be (one day) usable and fun to make AND play would be with lua coding and/or .exe cracking of the original game. All other options I analyzed over the years are either too weird (prone, crouch, waiting time...) or too complicated to program or make (anwser items, boxes to check that are in fact pictures...) My suggestion would work as follows :

    All original (vanilla) Tactics dialogues stays in place and still work. This way, already made missions still function, and no one has to convert ALL his.her mod dialogues to the new speech system. Like bubblehead in Fallout 1 and 2, only some dialogue trees will be made INSIDE already programmed dialogues. They can then be added AFTER a mod has been done, and without breaking any part of it.

    1. Using codes, a function identifies when a specific dialogue is being displayed (after a click to an entity). Ex: "Dialog1 = {Hi! How are you?}"
    2. It then check the core/locale .txt file to see if there are extension entries to that specific displayed dialogue (same name as the dialog + a coded sentence, like "_s,_p,_e,_c,_i,_a,_l". Ex: "Dialog1_s, Dialog1_p, etc."
    2. It then access the already displayed dialogue and add to it a series of buttons at the end, each displaying a label written in one of these coded entries. Ex : "Dialog1_s = {I am fine, thank you.}, Dialog1_p = {Fuck yourself!}"
    3. At any time during the conversation, you can press "OK", "BARTER" or other buttons as normal. "OK" button will always be available to stop a conversation directly.
    4. When clicking a specific anwser option, it automatically search for "Dialog1s" (next step of "Dialog1_s") and display its content into the dialog, replacing all previous texts and buttons.
    5. It then check for next options, coded as this : "Dialog1s_s, Dialog1s_p, etc.".
    6. If it does not find any coded anwser entires, it displays nothing (like the vanilla dialog)
    7. When (just after a click) it does not find any entry to continue the dialog, it closes the dialog. This means that if you program something like this : "Dialog1s_s = {Goodbye.} and then there is no entries afterward, no "Dialog1ss", it closes the dialog completely.
    8. For EACH dialog that is displayed, the code add an event with the same name in the mission, like vanilla dialogues works with the condition "Dialog occured". All effects of dialogues can then be coded separately (like adding a new location to the map, or turning some NPC hostile), using the condition "Dialog occured".
    9. The BEST would be to also have a code to "call" another entry, like this Dialog1sp = {#Dialog1}. This would, instead of showing Dialog1sp, bring the dialog back to the first bit of conversation.

    DONE!

    And then an idea to go even further...

    Instead of the famous skill checks, that I don't like much because they makes all characters have the same dialog options, always, and never force "non charismatic characters to say mean things", or "very intelligent characters to say complicated things", it would work as follow :

    1. Check main character INT. The maximum number of dialog options will be half the INT score, rounded up. Ex : 1 INT shows a maximum of one dialog option. 2 INT gives a max of 2 dialog options. 5 INT gives 3 max.
    2. Check the highest main character stat. Ex : If this is ST, search for the "_s" anwser option and display it first. (So a 1 INT character with 10 ST will always be obliged to use dialogues based on ST, like "intimidation, insult, display of force, etc.").
    3. Check the second highest main character stat. Ex : If this is PE, search for the "_p" anwser option and display it second. Don't display it if maximum dialog options has been reach. (don't display it if main character has 1 INT).
    4. Do this until max dialog options has been reach, or until there are no entries left.

    When writing dialogues, the game creator will use those general considerations :

    ST dialogs : Intimidation, Courage, Accept a dangerous quest or challenge, insult
    PE dialogs : Observation, Remarks, questions, interrogations
    EN dialogs : Prudence, refuse dangerous quest or challenge, protect an NPC, endure mean words
    CH dialogs : Charm, convince NPC of something, try to get a better reward, accept in some conditions, solve critical situation
    IN dialogs : Logic, Say something bright, solve a technical question, give advice
    AG dialogs : Cunning, Make a deal, Lie, say something vague, avoid telling something
    LU dialogs : Emotion, show trust or not, say what we want you to say

    Voilà! Feel free to comment on this system if you want. I think this would be some work to do, but it will be so RAD.
     
  10. Melindil

    Melindil First time out of the vault

    67
    Apr 15, 2018
    It's unfortunately going to still be a long time before I can get to adding a speech engine to FTSE. But I have a very rough idea of how it'll likely work.

    The engine will be composed of a set of low-level calls to display the dialog screen and retrieve the user's selections, and reflect them to Lua, which will respond with calls to add text to the NPC's window, options for the player to choose from, and optionally call scripts when certain nodes in the dialog are reached (e.g. to set campaign variables, give perks/items, etc.). Built on top of this can be a higher-level set of functions fully implemented in Lua, so that a mod can select what type of dialog trees to use, and if necessary add further customization. (The idea to have skill checks as you described above - a great idea BTW - would be implemented here). As things get closer, we would probably want the higher-level engine to standardize on a format for how the dialog trees will be constructed by the mod creator (JSON is a great format for programs to parse, not as much for humans to write).
     
  11. nadeauhugo

    nadeauhugo Author of FOT mod THE SUM Modder

    460
    Mar 9, 2014
    Sounds promising! Thank you for the reply. I'll stay in arm's reach if you need someone to test and developt some dialogs in the future. Before that, I'll try to keep my current dialogs as simple as I can to pave the way to some changes in the future.