Jump to content

Welcome to Obsidian Forum Community
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!
Photo

How are relationship parameters set in conversations?

conversationbundle stringtable relationship

  • Please log in to reply
4 replies to this topic

#1
Fhav6X

Fhav6X

    (2) Evoker

  • Members
  • 71 posts

I'm trying to figure out how the relationship between companions is set during conversations. The conversationbundle and stringtable files offer condition checks for the relationship parameters, but nothing that sets them or the reaction strength.

 

Where can I find those?



#2
Fhav6X

Fhav6X

    (2) Evoker

  • Members
  • 71 posts

Never mind. I figured it out. Its the Void TriggerTopic script. It works like this...

        [ScriptParam0("Speaker", "The character object speaking.", "b1a8e901-0000-0000-0000-000000000000", Scripts.BrowserType.ObjectGuid)]
        [ScriptParam1("Topic", "The topic to trigger.", "", "56878498-81a5-4140-86b6-01cfd09041f1", Scripts.BrowserType.GameData)]
        [ScriptParam2("Strength", "Strength of the change.", "71c858fe-7c4b-432a-a105-c518319eaed7", "32e5c672-85db-423f-b363-71c8a08674fc", Scripts.BrowserType.GameData)]
        [ScriptParam3("Include Reaction Text", "If set, a reaction from the companion will automatically be included in the node text.", true)]

        public static void TriggerTopic(Guid speakerGuid, Guid topicGuid, Guid strengthGuid, bool includeReactionText)


Edited by Fhav6X, 19 October 2018 - 05:21 AM.


#3
Fhav6X

Fhav6X

    (2) Evoker

  • Members
  • 71 posts

I have a new problem. I wanted to change the reaction strength for Pallegina on some conversations with Xoti. To my surprise I found the reaction strength to be preset for each reaction. Pallegina only have this reaction strength for piety

 

{"$type":"Game.GameData.TopicGameData, Assembly-CSharp",
"DebugName":"Pro-Gods",
"ID":"94f2f608-a765-4e55-be0a-c3dddaa54d47",
"Components":[
{"$type":"Game.GameData.TopicComponent, Assembly-CSharp",
"Value":3,
"DisplayName":11,
"Icon":"gui/icons/gamesystems/pro_gods.png",
"CircularIcon":"gui/icons/gamesystems/rep_pro_gods.png",
"NegativeDescription":20,
"PositiveDescription":21}]},

 

I tried to create new reactions with different values, but my self made guid ids aren't recognized by the game.

 

Is it possible to create new entries?



#4
BMac

BMac

    Programmer

  • Developers
  • 410 posts
  • Lords of the Eastern Reach Backer
The reputation change applied by any call to TriggerTopic is the product of three value:
  • The strength parameter to TriggerTopic
  • The inherent Value on the TopicGameData passed to TriggerTopic
  • The Weight assigned to the companion for that topic in CompanjonGameData.Topics.
If you wanted to change the reaction strength for a particular line, you'd want to change the ChangeStrengthGameData passed to TriggerTopic.  If you wanted to change the reaction strength of a companion to all occurrences of a particular topic, you want to change the Weight for that topic in their CompanionGameData.  And if you wanted to change the reaction strength globally for all companions to a particular topic, you could change the Value on the TopicGameData itself.
 
Creating new TopicGameData objects with different Values will actually create entirely new topics.  This is possible and should work, but the new object is an entirely separate topic from the one you based it on, and their values won't combine.
  • Rolandur and Fhav6X like this

#5
Fhav6X

Fhav6X

    (2) Evoker

  • Members
  • 71 posts

Many thanks :)







Also tagged with one or more of these keywords: conversationbundle, stringtable, relationship

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users