Jump to content

Lifeline Mod


pasmon79

Recommended Posts

You could make a new cdf that is identical to his original, but with a different name, and then change the entry in characters.xml to point to the new one.

 

Many character changes won't take effect after they are spawned, but the cdf appearances will.

Edited by qmjs
Link to comment
Share on other sites

Well i decided to spawn sasquatch all over again to try. Sending him off the base was easy part and done quite easily, but i am getting troubled at the spawning part.

For spawning

(1) I added a new character with the same Ist and second name but change one of the traits called by the game to different one and added new missions, scenes aprpopriate to the new trait.

(2) Build a second enclave with different name omitting the game handler preventing respawn of "old" Eldridge character while adding my own.

(2) Tested custom banner notification under Home_HP->HighRoad->.

(3) Add a difefrent action under HighRoad similar to the one creating old Sasquatch having key entries along with a text banner to indicate any kind of run

<Actors>
 <Enclave ActorFlags="Spawn" ActorName="Enclave.SasquatchReturns" EnclaveStat="" HideWarnings="" Optional="" />  </Actors>
        <Inputs />
        <Outputs>
          <ChangeState ActorIndex="0" Silent="false" State="JoinEldridgeAgain" />

Nothing happens several minutes after siege.

 

Where am i doing wrong?

Link to comment
Share on other sites

There are many things that could cause such an issue, especially if modifying multiple files at once (missions, scenes, characters, enclaves.)

 

However, the bit of code above... there is no character specified in the actor field, only the enclave, and it is missing quite a bit of code for the enclave creation.

 

I am assuming that you want to create your new character and make him playable, but stay in the normal storyline?

 

In enclaves, under <Enclave EnclaveId="Home_HP", section <State Alertness="Defending" Id="Highroad">:

Add this action (change name in ActionId, ActorTraits to your new unique trait that you selected, or remove the ActorTraits and use the character name directly, selecting it from characters.xml from the line:
<NameText Flags="Do Not Localize" Notes="" Text="3 MIL Sgt Kelly Eldridge" />
Both are included in the example, and it will work with either/or/both.



<Action ActionFlags="ActivateOnce" ActionId="SpawnSasquatch" ActionType="Action.Passive" ExecuteTimeStandard="0.0" OutputDelayTime="0.0" PauseWhenOffline="">
<RTSActionIcon Name="" Id="" />
<NameText Flags="" Notes="" Text="" />
<Actors>
<Character ActorFlags="FindOrSpawn" ActorName="3 MIL Sgt Kelly Eldridge" ActorTask="" ActorTraits="Trait.Story.HPDelta" FunctionTags="" HideWarnings="" Optional="" TargetEnclave="" />
</Actors>
<Alts />
<Effects />
<Inputs />
<Outputs>
<Actor_JoinEnclave ActorIndex="0" EnclaveIndex="" />
<Actor_AddTrust ActorIndex="1" DisableBonus="false" Trust="100" />
</Outputs>
</Action>

 

Also, note that the name specified above is what identifies the character, not the

<Names>
<FirstNames>
<NameText Flags="" Notes="" Text="Sasquatch" />
</FirstNames>
<LastNames>
<NameText Flags="" Notes="" Text="(Kelly Eldridge III)" />
</LastNames>
</Names>

Edited by qmjs
Link to comment
Share on other sites

Well i based my code on the following ingame function used probably for creation of sasquatch in my view. It works in conjugation with Enclave named "sasquatch" defined before.

 

<Action ActionFlags="WaitForNoMission" ActionId="CreateSasquatch" ActionType="Action.Passive" ExecuteTimeStandard="6m" OutputDelayTime="0.0" PauseWhenOffline="">
        <RTSActionIcon Name="" Id="" />
        <NameText Flags="" Notes="" Text="" />
        <Actors>
          <Enclave ActorFlags="Spawn" ActorName="Sasquatch" EnclaveStat="" HideWarnings="" Optional="" />
        </Actors>
        <Alts />
        <Effects />
-        <Inputs>
          <CheckBool InputFlags="" InputId="!Lifeline.Eldridge.Created" Invert="" />
        </Inputs>
        <Outputs>
          <ChangeState ActorIndex="0" Silent="false" State="JoinEldridge" />
        </Outputs>
      </Action>

It is similar to EnclaveHeroSpawn in breakdown.

 

My code works with the enclave defined exactly in line of your suggestion excluding Actor name as they overlap.

Enclave EnclaveId="SasquatchReturns" Flags="">
<OnNextDay />
<Names>
<NameText Flags="" Notes="" Text="SasquatchAgain" />
</Names>
..................................................<State Alertness="Relax" Id="JoinEldridgeAgain">
<OnNextDay />
      <Action ActionFlags="WaitForNoMission" ActionId="SetupCharacters" ActionType="Action.Passive" ExecuteTimeStandard="0.0" OutputDelayTime="0.0" PauseWhenOffline="">
        <RTSActionIcon Name="" Id="" />
        <NameText Flags="" Notes="" Text="" />
        <Actors>
          <Character ActorFlags="Spawn" ActorName="" ActorTask="" ActorTraits="Trait.Story.HPAlpha" FunctionTags="" HideWarnings="" Optional="" TargetEnclave="" />
        </Actors>
        <Alts />
        <Effects />
        <Inputs />
        <Outputs>
          <Actor_JoinEnclave ActorIndex="0" EnclaveIndex="" />
        </Outputs>
      </Action>

I had redefined my own "CreateSasquatchAgain" version

 <Action ActionFlags="WaitForNoMission" ActionId="CreateSasquatchAgain" ActionType="Action.Passive" ExecuteTimeStandard="5s" OutputDelayTime="0.0" PauseWhenOffline="">
        <RTSActionIcon Name="" Id="" />
        <NameText Flags="" Notes="" Text="" />
        <Actors>
		  <Enclave ActorFlags="Spawn" ActorName="Enclave.SasquatchReturns" EnclaveStat="" HideWarnings="" Optional="" />
        </Actors>
        <Alts />
        <Effects />
        <Inputs>
		  <Check InputAmount="7" InputFlags="" InputId="Lifeline.Eldridge.Progress" />	  
        </Inputs>
        <Outputs>
          <ChangeState ActorIndex="0" Silent="false" State="JoinEldridgeAgain" />
		  <Display_Text Flags="" Notes="" Text="Sasquatch lives" Type="Banner - Secondary" />
		  <EventLog DisplayType="EventBanner" EventFlags="General" Icon="Mail" IconId="105">
            <NameText Flags="" Notes="" Text="Sasquatch lives" />
            <TutorialText Flags="" Notes="" Text="" />
            <DescArgs />
            <Descriptions>
              <EventLogDesc>
                <DescriptionText Flags="" Notes="" Text="Sasquatch is alive." />
                <SummaryText Flags="" Notes="" Text="Congrats" />
              </EventLogDesc>
            </Descriptions>
            <NpcEffects />
          </EventLog>
		  <RTSStat_SetBool DurationCancellable="" OutputAmount="true" OutputDuration="" OutputId="Lifeline.CreateEldridge" PauseWhenOffline="" />
		  <RTSStat_SetBool DurationCancellable="" OutputAmount="1" OutputDuration="" OutputId="Lifeline.EldridgeCount" PauseWhenOffline="" />
        </Outputs>
      </Action>
Edited by pasmon79
Link to comment
Share on other sites

The Sasquatch enclave already exists, so
<Enclave ActorFlags="Spawn" ActorName="Sasquatch" EnclaveStat="" HideWarnings="" Optional="" />
is going to fail.

 

The spawned character needs
<Actor_AddTrust ActorIndex="1" DisableBonus="false" Trust="100" />
to work properly as a playable character.

 

Again, if the enclave exists

<Enclave ActorFlags="Spawn" ActorName="Enclave.SasquatchReturns" EnclaveStat="" HideWarnings="" Optional="" />
is going to fail.

 

You can not respawn a dead character in any given game. Once gone, they are gone.

You also can't make a duplicate enclave.

Edited by qmjs
Link to comment
Share on other sites

Okay the devs destroyed the enclave when eldridge joins first but left it there afterwards in nuke trigger mission.

 

I am going to spawn Eldridge the way Vienna Cho spawned in nuke mission. By the way I am using a character with same name but difefrent traits and dead refugees(Hero class) respawn all the time.

Edited by pasmon79
Link to comment
Share on other sites

The easiest way to do that is to use a variable, then put them in a specific order.

 

1st check if variable is true and runs.

2nd checks if variable is false and runs, sets variable to true.

 

First time through the 2nd will run, next time the 1st will run.

 

if you want it to repeat each time, 1st would also reset it to false.

 

Where you would put them would depend on when you want it to run, if you want him away during sieges, put the leave action at the beginning of the siege, and the return action in the enclave state it changes back to, or possibly in each one (same action) if you want him back no matter which state it switches to.

Edited by qmjs
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...