Author Topic: Improvements  (Read 14766 times)

  • Administrator
  • Sr. Member
  • *****
  • Posts: 407
    • View Profile
Re: Improvements
« Reply #30 on: September 11, 2019, 07:23:50 am »
I would suggest to start with dialog bug, because it's the easiest to fix. Actually, it's not a bug, it's a matter of dialog fine trimming.

When you open XML file (in simple text editor), you find these lines there (chat_vira.xml for example)

  <state statename="state13">
    <text>I mean  it. I think I’m beginning to like you.</text>
    <resp newstate="state14">I feel the same way.</resp>
    <resp newstate="bye_d">I’m not feeling it.</resp>
    <onleave newstate="default" />
  </state>
  <state statename="state14">
    <text>...some text..</text>
    <resp newstate="state19">...next...</resp>
    <onleave newstate="backhere" />
  </state>

Where onleave tag chooses the state to go when player clicks BACK button. Typically either default state for back to the dialog beginning or backhere or similar named state for final friendship status. However you can also either:
1. remove onleave tag line, then dialog will resume in exactly same state where left. But it would look weird for most states when player returns after (usually) longer time.
2. change the resume state in onleave tag to any existing state defined in that XML file that does not look weird when returned after some time.
3. create some return state for the middle case when character is already familiar with player but not advanced to friend status. Then link this state to onleave tags of appropriate dialog states. Of course we don't want to create special return state for each dialog point.

Regarding decline or leave choice, it's a similar case.
You can find these responses in XML file:

<resp newstate="bye_d">Thanks for the pointer, lady. I’m gonna leave, bye!</resp>
<resp newstate="bye_s">Bye, beauty.</resp>

where there are typically two bye states defined in XML file:

  <state statename="bye_d">
    <text>Goodbye outsider. Try not to get too distracted while you’re away!</text>
    <onleave newstate="default" />
  </state>
  <state statename="bye_s">
    <text>Goodbye. Try not to get too distracted while you’re away!</text>
    <onleave newstate="backhere" />
  </state>

In most dialog files the text is the same (simple Bye.) in both states. The difference is in onleave tags leading to different return states. So this turns into fine picking whether to use bye_d or bye_s in decline/leave response tag in particular dialog state.

So it's technically easy to fix, but it has to be done in each dialog XML file.