- Site Map >
- Modding and Creation >
- Sims 3 Creation >
- Modding Discussion >
- [Resolved]Dream tree debugging
- Site Map >
- Modding and Creation >
- Sims 3 Creation >
- Modding Discussion >
- [Resolved]Dream tree debugging
Replies: 5 (Who?), Viewed: 498 times.
#1
18th Dec 2021 at 4:03 PM
Last edited by lizcandor : 18th Dec 2021 at 7:53 PM.
[Resolved]Dream tree debugging
I've finally gotten a dream tree for a custom trait into the game, but I'm having trouble getting a visible wish for it to show up (the non-visible root node and the timer node that I'm trying to use to make the visible wish show up 1 hour after the root node is activated are both there; I can find them in the file generated by using NRaas DebugEnabler to export dreams and promises for a sim). So: does anyone know how to guarantee, for testing/debugging purposes, that a wish in a tree will be rolled as soon as the sim is eligible for it?I am barely understanding what I'm doing here and was up too late last night, so apologies if this is a somewhat incoherent question!
[Edit: Hmmm it's possible I fixed it but I need to do some tests, will update]
[Edit2: Yes, success! It's in, I think my issue was in my script when I'd been assuming it was the xml.]
Advertisement
#2
18th Dec 2021 at 8:06 PM
Posts: 562
Thanks: 3603 in 11 Posts
Glad you got it working! Are you looking at the hypochondriac mod as a reference? I had some success with making a tiny skill dream tree, but it was super frustrating to follow the EA trees :p
I'd love to know about any success you have with trait dreams because there's just not enough info on dreams out there! tagging @echoweaver too :p
I'd love to know about any success you have with trait dreams because there's just not enough info on dreams out there! tagging @echoweaver too :p
#3
18th Dec 2021 at 11:27 PM
I've been using VelocityGrass' LTW tutorial! The hypochondria trait dreamtree and some EA trees were my references on my first try, but they were waaaaaay beyond me so I gave up for a very long time I saw that you (or echoweaver? or both?) were working on dream trees on discord a while back though! I wouldn't have come back to this part of the project if I hadn't seen that somebody had managed it.
Right now my tree just has a root node that triggers a timer node that triggers a test wish to do a social interaction; I'm hoping now that I've confirmed it works at all and have a better debugging strategy I'll be able to make faster progress at expanding it, and learn some things about making more complicated nodes.
Right now my tree just has a root node that triggers a timer node that triggers a test wish to do a social interaction; I'm hoping now that I've confirmed it works at all and have a better debugging strategy I'll be able to make faster progress at expanding it, and learn some things about making more complicated nodes.
#4
19th Dec 2021 at 5:00 AM
Posts: 978
Thanks: 1929 in 13 Posts
Quote: Originally posted by lizcandor
I've been using VelocityGrass' LTW tutorial! The hypochondria trait dreamtree and some EA trees were my references on my first try, but they were waaaaaay beyond me so I gave up for a very long time I saw that you (or echoweaver? or both?) were working on dream trees on discord a while back though! I wouldn't have come back to this part of the project if I hadn't seen that somebody had managed it. Right now my tree just has a root node that triggers a timer node that triggers a test wish to do a social interaction; I'm hoping now that I've confirmed it works at all and have a better debugging strategy I'll be able to make faster progress at expanding it, and learn some things about making more complicated nodes. |
Haha. I experimented using the LTW tutorial but didn't succeed in getting regular dreams to work. I'm pretty sure it loaded, but I never saw the wishes. The problem with something that isn't guaranteed to show up is that it's miserable to debug.
I hadn't thought of using a timer node like that. I'd really like to do dream trees, but my time for projects like this hasn't been huge recently...
Echo Weaver's Simblr: http://echoweaver.tumblr.com/
A portrait in stubbornness - Playing the same legacy since 2009
Sample a Brave Legacy: http://sims3sample.illation.net
#5
19th Dec 2021 at 12:40 PM
The debugging really is the worst. My strategy is I've been using DebugEnabler to check if trees/nodes are really in the game at all even if my wishes don't show up, and I've also gotten unexpectedly good mileage out of putting debugging messages in the check and feedback functions – which if I'm understanding correctly, should both fire when a node's parent is fulfilled (e.g. timer node times out) and then again every time the event the node is linked to happens? And displaying the feedback function's result can explain why a wish isn't showing up if it should have, too.
#6
25th Dec 2021 at 7:22 PM
Last edited by lizcandor : 27th Dec 2021 at 10:03 PM.
I'm still testing and expanding the tree, but here are some notes for the archive after confirming that one full branch works (non-visible nodes are detectable in the debugging file and visible nodes appear as wishes).
First, here's a chunk of the outline (based on VelocityGrass' recommendation) for the fully tested branch, so the rest is more readable:
For each level of the outline, what's before the semicolon is the enum name + FNV32 hash of the enum name + decimal version of the FNV32 hash for the node primitive, and after the semicolon is the same information for the node instance.
The XMLs are as VelocityGrass described in their tutorial - node primitive table and dream tree excerpts corresponding to the outline above are below:
To link the tree to a custom trait, the root node's check and feedback functions call DreamsAndPromisesDelegateFunctions.HaveTraitHelperFunction and DreamsAndPromisesDelegateFunctions.HaveTraitFeedbackHelperFunction, respectively, for the custom trait:
And besides that, the script just adds enums and parses the node primitive and dream tree XMLs the same way as for making an LTW, skipping the step where you set up major dreams since none of the wishes in this tree is an LTW.
The check and feedback functions for the other nodes besides the root node are more complicated, but I think this is all the information that's needed for just making a trait-linked dream tree at all.
Edit: Some additional notes - for wishes with a sim as the subject, it seems like the primary icon will by default be the subject's thumbnail (with the secondary icon, if you specified one, overlaid on the bottom right corner). And information about the subject is at index 1 of the localization parameters, so if you want to put the subject's first name in the name of the wish you'd use 1.SimFirstName. Also, an important line of the InstanceNode that wasn't in my example before is "Repeatable", which is false by default - add <Repeatable>true</Repeatable> to allow a node to be repeated after being fulfilled once.
First, here's a chunk of the outline (based on VelocityGrass' recommendation) for the fully tested branch, so the rest is more readable:
Code:
1. Have PNM trait: have_polyamorous_trait_lizcandor, 0xFD534978, 4250093944; polyamory_dreamtree_lizcandor_root, 0xA7EB3D41, 2817211713 1.1 Be attracted to a non-partner sim: attracted_to_nonpartner_lizcandor, 0x097CFBB0, 159185840; attracted_to_nonpartner_lizcandor_inst1, 0x357346E9, 896747241 1.1.1 Wish to confess attraction for attractive sim to a partner: confess_attraction_for_other_to_a_partner_lizcandor, 0xECF88A79, 3975711353; confess_attraction_for_other_to_a_partner_lizcandor_inst1, 0x1A1711BD, 437719485 1.1.2 Wish to ask to be partners with attractive sim: ask_to_be_partners_with_specific_sim_lizcandor, 0x62DAC9BD, 1658505661; ask_to_be_partners_with_specific_sim_lizcandor_inst1,0x0C8F3929, 210712873 1.1.3 Wish to be partners with attractive sim: be_partners_with_sim_lizcandor, 0x036F5CD6, 57629910; be_partners_with_sim_lizcandor_inst1, 0x731C756A, 1931244906 1.1.4 Be in a closed relationship with another sim: be_in_closed_relationship_with_other_lizcandor, 0x73CF2135, 1942954293; be_in_closed_relationship_with_other_lizcandor_inst1, 0x5A386671, 1513645681 1.1.4.1 Wish to ask for an open relationship: ask_for_open_relationship_lizcandor, 0x80CD4F99, 2160938905; ask_for_open_relationship_lizcandor_inst1, 0x9EFB809D, 2667282589 1.1.4.2 Wish to ask to include attractive sim in a relationship: include_specific_other_in_a_relationship_lizcandor, 0x7F6DC54F, 2137900367; include_specific_other_in_a_relationship_lizcandor_inst1, 0x3C00047F, 1006634111
The XMLs are as VelocityGrass described in their tutorial - node primitive table and dream tree excerpts corresponding to the outline above are below:
Code:
<Primitives> <Name>Have PrefersNonMonogamy Trait</Name> <Category>Traits</Category> <Id>4250093944</Id> <!--FNV32 hash of "have_polyamorous_trait_lizcandor" (0xFD534978) converted to decimal--> <TriggerEvent>kTraitGained</TriggerEvent> <RequiredProductVersions>BaseGame</RequiredProductVersions> <CheckFunction>lizcandor.Polyamory.DreamsAndPromises, lizcandorPolyamory, HavePolyamorousTraitCheckFunction</CheckFunction> <FeedbackFunction>lizcandor.Polyamory.DreamsAndPromises, lizcandorPolyamory, HavePolyamorousTraitFeedbackFunction</FeedbackFunction> <PrimaryIcon>w_poly_relationship_lizcandor</PrimaryIcon> <!--Name of icon for the wish?--> </Primitives> <Primitives> <Name>Attracted To NonPartner</Name> <!-- Name of primitive; doesn't matter what it is unless it's a social primitive --> <Category>Misc (EP8)</Category> <Id>159185840</Id> <!--FNV32 hash of "attracted_to_nonpartner_lizcandor" (0x097CFBB0) converted to decimal--> <TriggerEvent>kMeetAttractiveSim</TriggerEvent> <!-- id of event that triggers the check and feedback functions --> <IsEverVisible>True</IsEverVisible> <!-- True/False if not default (false) --> <SubjectType>Sim</SubjectType> <!-- Any InputSubjectType if not default (None) --> <RequiredProductVersions>EP8</RequiredProductVersions> <CheckFunction>lizcandor.Polyamory.DreamsAndPromises, lizcandorPolyamory, AttractedToNonPartnerCheckFunction</CheckFunction> <!--Function to check if wish is fulfilled - namespace, assembly, function name --> <FeedbackFunction>lizcandor.Polyamory.DreamsAndPromises, lizcandorPolyamory, AttractedToNonPartnerFeedbackFunction</FeedbackFunction> <!--Function to set state of wish - namespace, assembly, function name --> <PrimaryIcon>w_attract_a_sim</PrimaryIcon> <!--Name of icon for the wish --> </Primitives> <Primitives> <Name>Confess Attraction For Other To Partner</Name> <!-- Name of primitive; doesn't matter what it is unless it's a social primitive --> <Category>Socialization</Category> <!-- Traits, Miscellaneous Events, Socialization, etc --> <Id>3975711353</Id> <!--FNV32 hash of "confess_attraction_for_other_to_a_partner_lizcandor" (0xECF88A79) converted to decimal--> <TriggerEvent>kSocialInteraction</TriggerEvent> <!-- id of event that triggers the check and feedback functions --> <IsEverVisible>True</IsEverVisible> <!-- True/False if not default (false) --> <SubjectType>Sim</SubjectType> <!-- Any InputSubjectType if not default (None) --> <AcceptsNumber>False</AcceptsNumber> <IsSocialPrimitive>False</IsSocialPrimitive> <!-- True/False if not default (false) --> <RequiredProductVersions>BaseGame</RequiredProductVersions> <CheckFunction>lizcandor.Polyamory.DreamsAndPromises, lizcandorPolyamory, ConfessAttractionForOtherToPartnerCheckFunction</CheckFunction> <!-- Namespace, assembly, function name of function to decide if node is fulfilled/available --> <FeedbackFunction>lizcandor.Polyamory.DreamsAndPromises, lizcandorPolyamory, ConfessAttractionForOtherToPartnerFeedbackFunction</FeedbackFunction> <!-- Namespace, assembly, function name of function to track and update state of node --> <PrimaryIcon>w_poly_relationship_lizcandor</PrimaryIcon> <!--Name of icon for the wish --> </Primitives> <Primitives> <Name>Express Devotion To Sim</Name> <!-- Name of primitive; doesn't matter what it is unless it's a social primitive --> <Category>Socialization</Category> <!-- Traits, Miscellaneous Events, Socialization, etc --> <Id>1658505661</Id> <!--FNV32 hash of "ask_to_be_partners_with_specific_sim_lizcandor" (0x62DAC9BD) converted to decimal--> <TriggerEvent>kSocialInteraction</TriggerEvent> <!-- id of event that triggers the check and feedback functions --> <IsEverVisible>True</IsEverVisible> <!-- True/False if not default (false) --> <SubjectType>Sim</SubjectType> <!-- Any InputSubjectType if not default (None) --> <IsSocialPrimitive>True</IsSocialPrimitive> <!-- True/False if not default (false) --> <RequiredProductVersions>BaseGame</RequiredProductVersions> <CheckFunction>lizcandor.Polyamory.DreamsAndPromises, lizcandorPolyamory, ExpressDevotionCheckFunctionLizcandor</CheckFunction> <!-- Namespace, assembly, function name of function to decide if node is fulfilled/available --> <FeedbackFunction>lizcandor.Polyamory.DreamsAndPromises, lizcandorPolyamory, ExpressDevotionFeedbackFunctionLizcandor</FeedbackFunction> <!-- Namespace, assembly, function name of function to track and update state of node --> <PrimaryIcon>w_poly_relationship_lizcandor</PrimaryIcon> <!--Name of icon for the wish --> </Primitives> <Primitives> <Name>Be Partners With Sim</Name> <!-- Name of primitive; doesn't matter what it is unless it's a social primitive --> <Category>Socialization</Category> <!-- Traits, Miscellaneous Events, Socialization, etc --> <Id>57629910</Id> <!--FNV32 hash of "be_partners_with_sim_lizcandor" (0x036F5CD6) converted to decimal--> <TriggerEvent>kSimHeartbeat</TriggerEvent> <!-- id of event that triggers the check and feedback functions --> <IsEverVisible>True</IsEverVisible> <!-- True/False if not default (false) --> <SubjectType>Sim</SubjectType> <!-- Any InputSubjectType if not default (None) --> <IsSocialPrimitive>False</IsSocialPrimitive> <!-- True/False if not default (false) --> <RequiredProductVersions>BaseGame</RequiredProductVersions> <CheckFunction>lizcandor.Polyamory.DreamsAndPromises, lizcandorPolyamory, BePartnersWithSimCheckFunction</CheckFunction> <!-- Namespace, assembly, function name of function to decide if node is fulfilled/available --> <FeedbackFunction>lizcandor.Polyamory.DreamsAndPromises, lizcandorPolyamory, BePartnersWithSimFeedbackFunction</FeedbackFunction> <!-- Namespace, assembly, function name of function to track and update state of node --> <PrimaryIcon>w_poly_relationship_lizcandor</PrimaryIcon> <!--Name of icon for the wish --> </Primitives> <Primitives> <Name>Be In Closed Relationship With Other</Name> <!-- Name of primitive; doesn't matter what it is unless it's a social primitive --> <Category>Socialization</Category> <!-- Traits, Miscellaneous Events, Socialization, etc --> <Id>1942954293</Id> <!--FNV32 hash of "be_in_closed_relationship_with_other_lizcandor" (0x73CF2135) converted to decimal--> <TriggerEvent>kSimHeartbeat</TriggerEvent> <!-- id of event that triggers the check and feedback functions --> <IsEverVisible>True</IsEverVisible> <!-- True/False if not default (false) --> <SubjectType>Sim</SubjectType> <!-- Any InputSubjectType if not default (None) --> <IsSocialPrimitive>False</IsSocialPrimitive> <!-- True/False if not default (false) --> <RequiredProductVersions>BaseGame</RequiredProductVersions> <CheckFunction>lizcandor.Polyamory.DreamsAndPromises, lizcandorPolyamory, BeClosedWithOtherSimCheckFunction</CheckFunction> <!-- Namespace, assembly, function name of function to decide if node is fulfilled/available --> <FeedbackFunction>lizcandor.Polyamory.DreamsAndPromises, lizcandorPolyamory, BeClosedWithOtherSimFeedbackFunction</FeedbackFunction> <!-- Namespace, assembly, function name of function to track and update state of node --> <PrimaryIcon>w_poly_relationship_lizcandor</PrimaryIcon> <!--Name of icon for the wish --> </Primitives> <Primitives> <Name>Ask For Open Relationship</Name> <!-- Name of primitive; doesn't matter what it is unless it's a social primitive --> <Category>Socialization</Category> <!-- Traits, Miscellaneous Events, Socialization, etc --> <Id>2160938905</Id> <!--FNV32 hash of "ask_for_open_relationship_lizcandor" (0x80CD4F99) converted to decimal--> <TriggerEvent>kSocialInteraction</TriggerEvent> <!-- id of event that triggers the check and feedback functions --> <IsEverVisible>True</IsEverVisible> <!-- True/False if not default (false) --> <IsSocialPrimitive>False</IsSocialPrimitive> <!-- True/False if not default (false) --> <RequiredProductVersions>BaseGame</RequiredProductVersions> <CheckFunction>lizcandor.Polyamory.DreamsAndPromises, lizcandorPolyamory, AskForOpenRelationshipCheckFunction</CheckFunction> <!-- Namespace, assembly, function name of function to decide if node is fulfilled/available --> <FeedbackFunction>lizcandor.Polyamory.DreamsAndPromises, lizcandorPolyamory, AskForOpenRelationshipFeedbackFunction</FeedbackFunction> <!-- Namespace, assembly, function name of function to track and update state of node --> <PrimaryIcon>w_poly_relationship_lizcandor</PrimaryIcon> <!--Name of icon for the wish --> </Primitives> <Primitives> <Name>Include Specific Other In A Relationship</Name> <!-- Name of primitive; doesn't matter what it is unless it's a social primitive --> <Category>Socialization</Category> <!-- Traits, Miscellaneous Events, Socialization, etc --> <Id>2137900367</Id> <!--FNV32 hash of "include_specific_other_in_a_relationship_lizcandor" (0x7F6DC54F) converted to decimal--> <TriggerEvent>kSocialInteraction</TriggerEvent> <!-- id of event that triggers the check and feedback functions --> <IsEverVisible>True</IsEverVisible> <!-- True/False if not default (false) --> <SubjectType>Sim</SubjectType> <!-- Any InputSubjectType if not default (None) --> <IsSocialPrimitive>False</IsSocialPrimitive> <!-- True/False if not default (false) --> <RequiredProductVersions>BaseGame</RequiredProductVersions> <CheckFunction>lizcandor.Polyamory.DreamsAndPromises, lizcandorPolyamory, AskToIncludeSpecificSimInRelationshipCheckFunction</CheckFunction> <!-- Namespace, assembly, function name of function to decide if node is fulfilled/available --> <FeedbackFunction>lizcandor.Polyamory.DreamsAndPromises, lizcandorPolyamory, AskToIncludeSpecificSimInRelationshipFeedbackFunction</FeedbackFunction> <!-- Namespace, assembly, function name of function to track and update state of node --> <PrimaryIcon>w_poly_relationship_lizcandor</PrimaryIcon> <!--Name of icon for the wish --> </Primitives>
Code:
<InstanceNode d2p1:type="DreamNodeInstance" xmlns:d2p1="http://www.w3.org/2001/XMLSchema-instance"> <Id>2817211713</Id> <!--FNV32 hash of "polyamory_dreamtree_lizcandor_root" (0xA7EB3D41) converted to decimal --> <ParentId>2817211713</ParentId> <IsRoot>true</IsRoot> <PrototypeId>4250093944</PrototypeId> <!--FNV32 hash of "have_polyamorous_trait_lizcandor" (0xFD534978) converted to decimal--> <DreamVisible>false</DreamVisible> <AgeGroups /> <MoodFlavors /> <Careers /> <Skills /> <Traits> <SelectedTrait> <Trait>lizcandorPolyamoryTrait</Trait> <Required>true</Required> <Excluded>false</Excluded> </SelectedTrait> </Traits> <Relationships /> <LocalizationKeyDescriptionOverride> <StringKey /> </LocalizationKeyDescriptionOverride> <LocalizationKeyGenericOverride> <StringKey /> </LocalizationKeyGenericOverride> <LocalizationKeyMaleOverride> <StringKey /> </LocalizationKeyMaleOverride> <LocalizationKeyFemaleOverride> <StringKey /> </LocalizationKeyFemaleOverride> </InstanceNode> <InstanceNode d2p1:type="DreamNodeInstance" xmlns:d2p1="http://www.w3.org/2001/XMLSchema-instance"> <Id>896747241</Id> <!--FNV32 hash of "attracted_to_nonpartner_lizcandor_inst1" (0x357346E9) converted to decimal--> <ParentId>2817211713</ParentId> <!-- Should appear if "polyamory_dreamtree_lizcandor_root" is fulfilled --> <IsRoot>false</IsRoot> <PrototypeId>159185840</PrototypeId> <!--FNV32 hash of wish enum name "attracted_to_nonpartner_lizcandor" (0x097CFBB0) converted to decimal--> <DreamVisible>false</DreamVisible> <AgeGroups /> <MoodFlavors /> <Careers /> <Skills /> <Traits /> <Relationships /> <InheritSubject>false</InheritSubject> <LocalizationKeyDescriptionOverride> <StringKey /> </LocalizationKeyDescriptionOverride> <LocalizationKeyGenericOverride> <StringKey /> </LocalizationKeyGenericOverride> <LocalizationKeyMaleOverride> <StringKey /> </LocalizationKeyMaleOverride> <LocalizationKeyFemaleOverride> <StringKey /> </LocalizationKeyFemaleOverride> </InstanceNode> <InstanceNode d2p1:type="DreamNodeInstance" xmlns:d2p1="http://www.w3.org/2001/XMLSchema-instance"> <Id>437719485</Id> <!--FNV32 hash of "confess_attraction_for_other_to_a_partner_lizcandor_inst1" (0x1A1711BD) converted to decimal--> <ParentId>896747241</ParentId> <!-- Should appear if "attracted_to_nonpartner_lizcandor_inst1" is fulfilled --> <IsRoot>false</IsRoot> <PrototypeId>3975711353</PrototypeId> <!--FNV32 hash of wish enum name "confess_attraction_for_other_to_a_partner_lizcandor" (0xECF88A79) converted to decimal--> <DreamVisible>true</DreamVisible> <Center> <X>327</X> <Y>-1454</Y> </Center> <FulfillmentScore>10</FulfillmentScore> <!-- real number of points is 10x this --> <AgeGroups /> <MoodFlavors /> <Careers /> <Skills /> <Traits /> <Relationships /> <InheritSubject>true</InheritSubject> <LocalizationKeyDescriptionOverride> <StringKey /> </LocalizationKeyDescriptionOverride> <LocalizationKeyGenericOverride> <StringKey /> </LocalizationKeyGenericOverride> <LocalizationKeyMaleOverride> <StringKey /> </LocalizationKeyMaleOverride> <LocalizationKeyFemaleOverride> <StringKey /> </LocalizationKeyFemaleOverride> </InstanceNode> <InstanceNode d2p1:type="DreamNodeInstance" xmlns:d2p1="http://www.w3.org/2001/XMLSchema-instance"> <Id>210712873</Id> <!--FNV32 hash of "ask_to_be_partners_with_specific_sim_lizcandor_inst1" (0x0C8F3929) converted to decimal--> <ParentId>896747241</ParentId> <!-- Should appear if "attracted_to_nonpartner_lizcandor_inst1" is fulfilled --> <IsRoot>false</IsRoot> <PrototypeId>1658505661</PrototypeId> <!--FNV32 hash of wish enum name "ask_to_be_partners_with_specific_sim_lizcandor" (0x62DAC9BD) converted to decimal--> <DreamVisible>true</DreamVisible> <Center> <X>327</X> <Y>-1454</Y> </Center> <FulfillmentScore>10</FulfillmentScore> <!-- real number of points is 10x this --> <AgeGroups /> <MoodFlavors /> <Careers /> <Skills /> <Traits /> <Relationships /> <InheritSubject>true</InheritSubject> <LocalizationKeyDescriptionOverride> <StringKey /> </LocalizationKeyDescriptionOverride> <LocalizationKeyGenericOverride> <StringKey /> </LocalizationKeyGenericOverride> <LocalizationKeyMaleOverride> <StringKey /> </LocalizationKeyMaleOverride> <LocalizationKeyFemaleOverride> <StringKey /> </LocalizationKeyFemaleOverride> </InstanceNode> <InstanceNode d2p1:type="DreamNodeInstance" xmlns:d2p1="http://www.w3.org/2001/XMLSchema-instance"> <Id>1931244906</Id> <!--FNV32 hash of "be_partners_with_sim_lizcandor_inst1" (0x731C756A) converted to decimal--> <ParentId>896747241</ParentId> <!-- Should appear if "attracted_to_nonpartner_lizcandor_inst1" is fulfilled --> <IsRoot>false</IsRoot> <PrototypeId>57629910</PrototypeId> <!--FNV32 hash of wish enum name "be_partners_with_sim_lizcandor" (0x036F5CD6) converted to decimal--> <DreamVisible>true</DreamVisible> <Center> <X>327</X> <Y>-1454</Y> </Center> <FulfillmentScore>10</FulfillmentScore> <!-- real number of points is 10x this --> <AgeGroups /> <MoodFlavors /> <Careers /> <Skills /> <Traits /> <Relationships /> <InheritSubject>true</InheritSubject> <LocalizationKeyDescriptionOverride> <StringKey /> </LocalizationKeyDescriptionOverride> <LocalizationKeyGenericOverride> <StringKey /> </LocalizationKeyGenericOverride> <LocalizationKeyMaleOverride> <StringKey /> </LocalizationKeyMaleOverride> <LocalizationKeyFemaleOverride> <StringKey /> </LocalizationKeyFemaleOverride> </InstanceNode> <InstanceNode d2p1:type="DreamNodeInstance" xmlns:d2p1="http://www.w3.org/2001/XMLSchema-instance"> <Id>1513645681</Id> <!--FNV32 hash of "be_in_closed_relationship_with_other_lizcandor_inst1" (0x5A386671) converted to decimal--> <ParentId>896747241</ParentId> <!-- Should appear if "attracted_to_nonpartner_lizcandor_inst1" is fulfilled --> <IsRoot>false</IsRoot> <PrototypeId>1942954293</PrototypeId> <!--FNV32 hash of wish enum name "be_in_closed_relationship_with_other_lizcandor" (0x73CF2135) converted to decimal--> <DreamVisible>false</DreamVisible> <Center> <X>327</X> <Y>-1454</Y> </Center> <AgeGroups /> <MoodFlavors /> <Careers /> <Skills /> <Traits /> <Relationships /> <InheritSubject>false</InheritSubject> <LocalizationKeyDescriptionOverride> <StringKey /> </LocalizationKeyDescriptionOverride> <LocalizationKeyGenericOverride> <StringKey /> </LocalizationKeyGenericOverride> <LocalizationKeyMaleOverride> <StringKey /> </LocalizationKeyMaleOverride> <LocalizationKeyFemaleOverride> <StringKey /> </LocalizationKeyFemaleOverride> </InstanceNode> <InstanceNode d2p1:type="DreamNodeInstance" xmlns:d2p1="http://www.w3.org/2001/XMLSchema-instance"> <Id>2667282589</Id> <!--FNV32 hash of "ask_for_open_relationship_lizcandor_inst1" (0x9EFB809D) converted to decimal--> <ParentId>1513645681</ParentId> <!-- Should appear if "be_in_closed_relationship_with_other_lizcandor_inst1" is fulfilled --> <IsRoot>false</IsRoot> <PrototypeId>2160938905</PrototypeId> <!--FNV32 hash of wish enum name "ask_for_open_relationship_lizcandor" (0x80CD4F99) converted to decimal--> <DreamVisible>true</DreamVisible> <Center> <X>327</X> <Y>-1454</Y> </Center> <FulfillmentScore>10</FulfillmentScore> <!-- real number of points is 10x this --> <AgeGroups /> <MoodFlavors /> <Careers /> <Skills /> <Traits /> <Relationships /> <LocalizationKeyDescriptionOverride> <StringKey /> </LocalizationKeyDescriptionOverride> <LocalizationKeyGenericOverride> <StringKey /> </LocalizationKeyGenericOverride> <LocalizationKeyMaleOverride> <StringKey /> </LocalizationKeyMaleOverride> <LocalizationKeyFemaleOverride> <StringKey /> </LocalizationKeyFemaleOverride> </InstanceNode> <InstanceNode d2p1:type="DreamNodeInstance" xmlns:d2p1="http://www.w3.org/2001/XMLSchema-instance"> <Id>1006634111</Id> <!--FNV32 hash of "include_specific_other_in_a_relationship_lizcandor_inst1" (0x3C00047F) converted to decimal--> <ParentId>1513645681</ParentId> <!-- Should appear if "be_in_closed_relationship_with_other_lizcandor_inst1" is fulfilled --> <IsRoot>false</IsRoot> <PrototypeId>2137900367</PrototypeId> <!--FNV32 hash of wish enum name "include_specific_other_in_a_relationship_lizcandor" (0x7F6DC54F) converted to decimal--> <DreamVisible>true</DreamVisible> <Center> <X>327</X> <Y>-1454</Y> </Center> <FulfillmentScore>10</FulfillmentScore> <!-- real number of points is 10x this --> <AgeGroups /> <MoodFlavors /> <Careers /> <Skills /> <Traits /> <Relationships /> <InheritSubject>true</InheritSubject> <LocalizationKeyDescriptionOverride> <StringKey /> </LocalizationKeyDescriptionOverride> <LocalizationKeyGenericOverride> <StringKey /> </LocalizationKeyGenericOverride> <LocalizationKeyMaleOverride> <StringKey /> </LocalizationKeyMaleOverride> <LocalizationKeyFemaleOverride> <StringKey /> </LocalizationKeyFemaleOverride> </InstanceNode>
Code:
[DreamsAndPromisesCheckFunction] public static ActiveNodeBase.CheckResult HavePolyamorousTraitCheckFunction(ActiveDreamNode node) { if (Instantiator.kDebugging) StyledNotification.Show(new StyledNotification.Format("Called HavePolyamorousTraitCheckFunctionLizcandor", StyledNotification.NotificationStyle.kGameMessagePositive)); return DreamsAndPromisesDelegateFunctions.HaveTraitHelperFunction(node, (TraitNames)0x944EA70EF76871FF); } [DreamsAndPromisesFeedbackFunction] public static FeedbackResult HavePolyamorousTraitFeedbackFunction(Event e, ActiveDreamNode node) { if (Instantiator.kDebugging) StyledNotification.Show(new StyledNotification.Format("Called HavePolyamorousTraitFeedbackFunctionLizcandor", StyledNotification.NotificationStyle.kGameMessagePositive)); return DreamsAndPromisesDelegateFunctions.HaveTraitFeedbackHelperFunction(e, node, (TraitNames)0x944EA70EF76871FF); }
The check and feedback functions for the other nodes besides the root node are more complicated, but I think this is all the information that's needed for just making a trait-linked dream tree at all.
Edit: Some additional notes - for wishes with a sim as the subject, it seems like the primary icon will by default be the subject's thumbnail (with the secondary icon, if you specified one, overlaid on the bottom right corner). And information about the subject is at index 1 of the localization parameters, so if you want to put the subject's first name in the name of the wish you'd use 1.SimFirstName. Also, an important line of the InstanceNode that wasn't in my example before is "Repeatable", which is false by default - add <Repeatable>true</Repeatable> to allow a node to be repeated after being fulfilled once.
Who Posted
|