Difference between revisions of "HowTo:Edit Communications"

From VsWiki
Jump to: navigation, search
(Created page with "In-game communications (unit-to-unit chat) are implemented as conversation finite state machine - each state has a set of possible nodes, each node has a text and deltaRelation v...")
 
m
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
In-game communications (unit-to-unit chat) are implemented as conversation finite state machine - each state has a set of possible nodes, each node has a text and deltaRelation value. They are defined by XML files in [http://sourceforge.net/p/vegastrike/code/HEAD/tree/trunk/data/communications/ data/communications].
+
In-game communications (unit-to-unit chat) are implemented as finite state machine - each state has a set of possible nodes, each node has a text and deltaRelation value. Conversation are faction-dependent and are defined by XML files in [http://sourceforge.net/p/vegastrike/code/HEAD/tree/trunk/data/communications/ data/communications].
  
==Nodes: default positions and values==
+
==Nodes basics==
 
Their default positions and purpose we can see in [http://sourceforge.net/p/vegastrike/code/HEAD/tree/trunk/vegastrike/src/cmd/ai/communication.cpp#l10 the function creating the default set] and following ones. It have only basic text and relationship adjustment values:
 
Their default positions and purpose we can see in [http://sourceforge.net/p/vegastrike/code/HEAD/tree/trunk/vegastrike/src/cmd/ai/communication.cpp#l10 the function creating the default set] and following ones. It have only basic text and relationship adjustment values:
  
Line 68: Line 68:
 
| "Docking operation complete"
 
| "Docking operation complete"
 
| 0
 
| 0
| Dock/undock.
+
| On being udocked.
| usually set to 0.01 or so: you do business with them, they like you.
+
| Usually set to 0.01 or so: you do business with them, they like you.
 
|-
 
|-
 
| N-15
 
| N-15
 
| "Please move into a green docking box and press d."
 
| "Please move into a green docking box and press d."
 
| 0
 
| 0
|
+
| docking operations
 
|
 
|
 
|-
 
|-
Line 80: Line 80:
 
| "Docking operation begun."
 
| "Docking operation begun."
 
| 0
 
| 0
|
+
| docking operations
 
|
 
|
 
|-
 
|-
Line 86: Line 86:
 
| "Clearance denied."
 
| "Clearance denied."
 
| 0
 
| 0
|
+
| docking operations
 
|
 
|
 
|-
 
|-
Line 92: Line 92:
 
| "Clearance granted."
 
| "Clearance granted."
 
| 0
 
| 0
|
+
| docking operations
 
|
 
|
 
|-
 
|-
Line 98: Line 98:
 
| "No."
 
| "No."
 
| 0
 
| 0
|
+
| rejecting FG order
 
|
 
|
 
|-
 
|-
Line 104: Line 104:
 
| "Yes."
 
| "Yes."
 
| 0
 
| 0
|
+
| obeying FG order
 
|
 
|
 
|-
 
|-
Line 110: Line 110:
 
| "Prepare To Be Searched. Maintain Speed and Course."
 
| "Prepare To Be Searched. Maintain Speed and Course."
 
| 0
 
| 0
|
+
| contraband scan
 
|
 
|
 
|-
 
|-
Line 116: Line 116:
 
| "No contraband detected: You may proceed."
 
| "No contraband detected: You may proceed."
 
| 0
 
| 0
|
+
| contraband scan
 
|
 
|
 
|-
 
|-
Line 122: Line 122:
 
| "Contraband detected! All units close and engage!"
 
| "Contraband detected! All units close and engage!"
 
| 0
 
| 0
|
+
| contraband scan
| Value is set to -.125 or so. The actual "engage" part is done via ship relations.
+
| Usually is set to -.125 or so. It's in addition to hardcoded "close and engage!" orders and relations.
 +
See also variables - [[Manual:Config:Advanced:Variables#contraband|AI/ContrabandMadness]], etc.
 
|-
 
|-
 
| N-6
 
| N-6
 
| "Your Course is deviating! Maintain Course!"
 
| "Your Course is deviating! Maintain Course!"
 
| 0
 
| 0
|
+
| contraband scan
|
+
| The patrol also gets upset.
 
|-
 
|-
 
| N-5
 
| N-5
Line 171: Line 172:
 
** <code>relationship</code> [float] [0.0] - relationship adjustment.
 
** <code>relationship</code> [float] [0.0] - relationship adjustment.
 
*** (see above)
 
*** (see above)
** <code><'''edge'''> ... </node></code> -- connection to other nodes. Typically, there are 3 (good-neutral-bad) entries at the top level.
+
** <code><'''edge'''> ... </edge></code> -- connection to other nodes. Typically, there are 3 (good-neutral-bad) entries at the top level.
 
*** <code>index</code> [int] - linked node's number.
 
*** <code>index</code> [int] - linked node's number.
** <code><'''sound'''> ... </node></code> -- voice. Sound nodes corresponding to '''text''', '''text1''', etc are simply added in this order
+
** <code><'''sound'''> ... </sound></code> -- voice. Sound nodes corresponding to '''text''', '''text1''', etc are simply added in this order
*** <code>file</code> [string] [""] - OGG file name, relative to '''data''' ("communications/sounds/lihw/lihw_good-day.ogg")
+
*** <code>file</code> [string] [""] - OGG file name, relative to '''data/''' ("communications/sounds/lihw/lihw_good-day.ogg")
 
*** <code>gain</code> [float] [1.0] - relative volume.
 
*** <code>gain</code> [float] [1.0] - relative volume.
 
*** <code>sex</code> [unsigned small int] [0] - {{FIXME}} Support for variant sounds, doesn't seem to be used yet.
 
*** <code>sex</code> [unsigned small int] [0] - {{FIXME}} Support for variant sounds, doesn't seem to be used yet.

Latest revision as of 06:50, 3 March 2014

In-game communications (unit-to-unit chat) are implemented as finite state machine - each state has a set of possible nodes, each node has a text and deltaRelation value. Conversation are faction-dependent and are defined by XML files in data/communications.

Nodes basics

Their default positions and purpose we can see in the function creating the default set and following ones. It have only basic text and relationship adjustment values:

# Node text Value Hardcoded Comment
0 "welcome to cachunkcachunk.com" 0 (starting node: Don't link here) Its edges list starting nodes (depending on relations).
1 "I love you!" +.1
2 "J00 0wnz m3" +.08
3 "You are cool!" +.06
4 "You are nice!" +.05
5 "Ya you're naled! NALED PAL!" -.02
6 "i 0wnz j00" -.08
7 "I hate you!" -.1
... Built-ins:
N-16 "Docking operation complete" 0 On being udocked. Usually set to 0.01 or so: you do business with them, they like you.
N-15 "Please move into a green docking box and press d." 0 docking operations
N-14 "Docking operation begun." 0 docking operations
N-13 "Clearance denied." 0 docking operations
N-12 "Clearance granted." 0 docking operations
N-11 "No." 0 rejecting FG order
N-10 "Yes." 0 obeying FG order
N-9 "Prepare To Be Searched. Maintain Speed and Course." 0 contraband scan
N-8 "No contraband detected: You may proceed." 0 contraband scan
N-7 "Contraband detected! All units close and engage!" 0 contraband scan Usually is set to -.125 or so. It's in addition to hardcoded "close and engage!" orders and relations.

See also variables - AI/ContrabandMadness, etc.

N-6 "Your Course is deviating! Maintain Course!" 0 contraband scan The patrol also gets upset.
N-5 "Request Clearance To Land." 0
N-4 0 (killed)
N-3 0 (dealt damage)
N-2 0 (got damaged)
N-1 "*hit*" -.2 (got hit) Not a communication, just reaction on damage. Still supports friendly/neutral/hostile edges.

XML schema description

  • <comm> ... </comm> -- Marks the beginning and end of the XML file.
  • <node> ... </node> -- basic data.
    • text [string] [""] - What they say.
      • (see above)
    • text1, etc [string] [""] - Variant text (to be chosen randomly).
    • relationship [float] [0.0] - relationship adjustment.
      • (see above)
    • <edge> ... </edge> -- connection to other nodes. Typically, there are 3 (good-neutral-bad) entries at the top level.
      • index [int] - linked node's number.
    • <sound> ... </sound> -- voice. Sound nodes corresponding to text, text1, etc are simply added in this order
      • file [string] [""] - OGG file name, relative to data/ ("communications/sounds/lihw/lihw_good-day.ogg")
      • gain [float] [1.0] - relative volume.
      • sex [unsigned small int] [0] - FIXME Support for variant sounds, doesn't seem to be used yet.