One bite infection mod (request or help)

Discussion in 'PC Mods' started by tobu24, Feb 12, 2014.

  1. tobu24

    tobu24 Got Your Back

    Hi, fellow survivors! I've been failing to make a mod that is representative of the one bite infection of the zombie genre. Well, I can make the infection but cannot make the person need a mercy shot. Miraculously they heal over time. I was wondering if I could get help with that. I've been tinkering with the "characters.xml" but to no avail. The survivor either heals or spreads the infection, but never needs a mercy shot even though I add the black fever and mercy shot traits. Using the George Romero Mod with fatal attacks, I was able to add a trait under heavily damaged so that when the survivor is bitten, the sick trait is given. I added these lines under heavily wounded and extremely wounded.

    <Subtrait Name="Trait.MoodType.Sick" />
    <Subtrait Name="Trait.MoodType.Sick_BlackFever" />
    <Subtrait Name="Trait.Status.PotentialMercyShot" />
    <Subtrait Name="Trait.Meta.NoLabor" />
    <Subtrait Name="Trait.Meta.Grave" />
     
  2. bsnooch

    bsnooch Got Your Back

    MoodType is an exclusive trait group.
    It is also comprised mostly (afaik) of subtraits so they don't really do anything other than aid in the evolution of sickness.

    You are really adding a lot of unnecessary traits. For example:
    Status.PotentialMercyShot
    Meta.NoLabor

    all come (as subtraits) from just being sick, you don't have to add them.

    The important one is the blackfever I think, but you are calling it the wrong thing. It is not a Trait.MoodType but a Trait.Mood so the game has no idea what you are referencing.

    Anyways the long and short is delete all that, and just try this:

    <Subtrait Name="Trait.Mood.Sick_BlackFever" />

    That should give you all the stuff you want. Maybe :)
     
  3. tobu24

    tobu24 Got Your Back

    Thank you for your help! I have it to when my survivors are bitten, they're immediately given the trait Sick:Black Fever. Unfortunately, it's been a few days, 4 survivors are sick thanks to the one black fever sufferer, and not one Mercy Shot mission has popped up. I'm starting to think it's impossible in Breakdown. That's too bad.....
     
  4. It's definitely not impossible because Romero's mod has that "Start with Black Fever on all survivors" portion...that's what I used to get the Mercy Shot challenge done (after 4 days of trying normally).

    You might try adding that mod, checking the files it changes and then see what you can tweak in response.
     
  5. tobu24

    tobu24 Got Your Back

    I finally after studying Adeno's Romero Mod, found out how to do it. There was quite a few lines of code to remove. Thanks for your help, guys!

    Nevermind- Seems a new problem has arisen. Now I get a person with Black Fever for a short time, only for them to be upgraded to a Hurt status. The strange thing about the hurt status is the only description for it is an hatchet icon. Does the hatchet icon mean an eminent Mercy Shot?
     
    Last edited: Feb 15, 2014
  6. tobu24, can you share how you managed to get this working ....I've been struggling to find what has been edited in the Romero mod.
     
    tobu24 and Bob Crees like this.
  7. tobu24

    tobu24 Got Your Back

    I'm sorry to be just getting back to you, but I haven't been here in a long time. QMJS helped me a lot with the Black Fever mod. It takes quite a bit of work, but half of it was already done for me by him in his Extended Functions mod for vanilla SoD. Using those files and his help I was able to make the characters become very injured and sick after one bite. If they lingered on long enough they would die from their wounds, or get Black Fever thus creating the Mercy Shot mission. He also added a function to where if you had an Medical Expert they could perform surgery, and heal from their wounds, or they would fail the surgery with the payoff of them getting Black Fever.
     
  8. JollyZed

    JollyZed Starting Off

    can you told us exactly, what did you do? and it works on yose?
     
  9. tobu24

    tobu24 Got Your Back

    I'll first explain how the blackfever bite works with tweaking just a few files.
    (It's worked so far in YOSE so keep your fingers crossed.)

    Initially you want to increase the damage of one bite. That would mean starting
    with the 'actorsconstants.xml' file

    at the very top of the file you will see <DamageScaling>
    Under that replace the 4 lines with the following

    <DamageScalar Health="80" Scale="9.99" />
    <DamageScalar Health="50" Scale="9.9" />
    <DamageScalar Health="25" Scale="9.9" />
    <DamageScalar Health="0" Scale="0.6" />

    That will cause one bite or one to two hits from a zombie to make you go to one knee.

    Next you would go to 'characters.xml'

    Find the line
    <CharacterTrait BadgeName="" Flags="EventLog" Icon="" TraitId="Moderate" Badge="" IconId="">

    Replace the entire section with

    <CharacterTrait BadgeName="" Flags="EventLog" Icon="" TraitId="Moderate" Badge="" IconId="">
    <DescriptionText Flags="" Notes="Trait Description" Text="Vitality will gradually recover while resting at home. It should take about 10 hours to get back to full Vitality." />
    <ExpertiseBlock />
    <NameText Flags="" Notes="Trait" Text="-40% Max Vitality" />
    <CharacterBonuses />
    <CommunityBonuses />
    <SubTraits>
    <Subtrait Name="Trait.Status.Injury" />
    <Subtrait Name="Trait.MoodType.Sick" />
    <Subtrait Name="Trait.Meta.Grave" />
    </SubTraits>
    </CharacterTrait>

    Right under that section find the line
    <CharacterTrait BadgeName="" Flags="EventLog" Icon="" TraitId="Heavy" Badge="" IconId="">

    Replace that entire section with
    <CharacterTrait BadgeName="" Flags="EventLog" Icon="" TraitId="Heavy" Badge="" IconId="">
    <DescriptionText Flags="" Notes="Trait Description" Text="Vitality will gradually recover while resting at home. It should take about 15 hours to get back to full Vitality." />
    <ExpertiseBlock />
    <NameText Flags="" Notes="Trait" Text="-60% Max Vitality" />
    <CharacterBonuses />
    <CommunityBonuses />
    <SubTraits>
    <Subtrait Name="Trait.Status.Injury" />
    <Subtrait Name="Trait.MoodType.Sick" />
    <Subtrait Name="Trait.Meta.Grave" />
    </SubTraits>
    </CharacterTrait>

    Right under that section find the line
    <CharacterTrait BadgeName="" Flags="EventLog" Icon="" TraitId="Extreme" Badge="" IconId="">

    Replace that entire section with

    <CharacterTrait BadgeName="" Flags="EventLog" Icon="" TraitId="Extreme" Badge="" IconId="">
    <DescriptionText Flags="" Notes="Trait Description" Text="Vitality will gradually recover while resting at home. It should take about 20 hours to get back to full Vitality." />
    <ExpertiseBlock />
    <NameText Flags="" Notes="Trait" Text="-80% Max Vitality" />
    <CharacterBonuses />
    <SubTraits>
    <Subtrait Name="Trait.Status.Injury" />
    <Subtrait Name="Trait.MoodType.Sick" />
    <Subtrait Name="Trait.Meta.Grave" />
    </SubTraits>
    </CharacterTrait>

    That should cause the major damage you incur from the zombies to give you a sick and injured trait.

    Next you'll need the file 'rtsevents.xml'

    First we'll deal with how you recover from sickness

    Find the line
    <Event Id="fsEvent.RecoverFromSick">

    Under that section find the line
    <Action ActionFlags="Subaction" ActionId="Fail_Random" ActionType="Action.Passive" ExecuteTimeStandard="0.0" OutputDelayTime="0.0" PauseWhenOffline="">

    Under that section you should see
    <Alts>
    <Alt AltId="Fail_NoMedicine" AltOdds="100" />
    <Alt AltId="Fail_HighestInfirmary" AltOdds="100" />
    <Alt AltId="Fail_LowInfirmary" AltOdds="100" />
    <Alt AltId="Fail_NoInfirmary" AltOdds="100" />
    </Alts>

    Add in this line into that section
    <Alt AltId="Fail_Grave" AltOdds="50" />

    or if it's too confusing you could simply copy and paste this into that section
    <Alts>
    <Alt AltId="Fail_Grave" AltOdds="50" />
    <Alt AltId="Fail_NoMedicine" AltOdds="100" />
    <Alt AltId="Fail_HighestInfirmary" AltOdds="100" />
    <Alt AltId="Fail_LowInfirmary" AltOdds="100" />
    <Alt AltId="Fail_NoInfirmary" AltOdds="100" />
    </Alts>


    Next in the same file 'rtsevents.xml' find this line
    <Action ActionFlags="Alt" ActionId="Fail_NoMedicine" ActionType="Action.Passive" ExecuteTimeStandard="0.0" OutputDelayTime="0.0" PauseWhenOffline="">

    Right above that section add in these lines

    <Action ActionFlags="Alt" ActionId="Fail_Grave" ActionType="Action.Passive" ExecuteTimeStandard="0.0" OutputDelayTime="0.0" PauseWhenOffline="">
    <RTSActionIcon Name="" Id="" />
    <NameText Flags="" Notes="" Text="" />
    <Actors>
    <Character ActorFlags="" ActorName="" ActorTask="" ActorTraits="Trait.Status.NewlySick, Trait.MoodType.Sick" FunctionTags="" HideWarnings="True" Optional="" TargetEnclave="" />
    <Character ActorFlags="" ActorName="" ActorTask="" ActorTraits="" FunctionTags="Command" HideWarnings="" Optional="" TargetEnclave="" />
    </Actors>
    <Alts />
    <Effects />
    <Inputs />
    <Outputs>
    <Actor_Kill ActorIndex="0" Silent="" />
    <EventRewardStat ExludeFromSummary="false" Icon="HappyFace" OutputAmount="-40" OutputId="Stat.Morale" RewardList="General" IconId="11">
    <DescriptionText Flags="" Notes="" Text="%+d Community Morale." />
    </EventRewardStat>
    <EventLog DisplayType="FateCard" EventFlags="General, NoHudDisplay" Icon="Fate" IconId="92">
    <NameText Flags="" Notes="" Text="HOME: Death from Black Fever" />
    <TutorialText Flags="" Notes="" Text="Grave sickness can result in death." />
    <DescArgs>
    <EventDescArg Param="0" Type="CommandName" />
    <EventDescArg Param="0" Type="ActorName" />
    </DescArgs>
    <Descriptions>
    <EventLogDesc>
    <DescriptionText Flags="" Notes="" Text="%2$s has died due to their infection." />
    <SummaryText Flags="" Notes="" Text="Turned after death." />
    </EventLogDesc>
    </Descriptions>
    <NpcEffects>
    <EventNpcEffect ActorIndex="0" Value="-1">
    <DescriptionText Flags="" Notes="" Text="Dead." />
    </EventNpcEffect>
    </NpcEffects>
    </EventLog>
    </Outputs>
    </Action>

    That should give the survivor 50/50 odds after getting sick to die from their illness.

    Next we'll deal with how you recover from injury
    It will be similar to what you did with sickness

    Find this line
    <Event Id="fsEvent.RecoverFromInjury">

    Under that section find this line
    <Action ActionFlags="Subaction" ActionId="Fail_Random" ActionType="Action.Passive" ExecuteTimeStandard="0.0" OutputDelayTime="0.0" PauseWhenOffline="">

    Under that section you should see
    <Alts>
    <Alt AltId="Fail_NoMedicine" AltOdds="100" />
    <Alt AltId="Fail_HighestInfirmary" AltOdds="100" />
    <Alt AltId="Fail_LowInfirmary" AltOdds="100" />
    <Alt AltId="Fail_NoInfirmary" AltOdds="100" />
    </Alts>

    Add in this line into that section
    <Alt AltId="Fail_Grave" AltOdds="50" />

    or if it's too confusing you could simply copy and paste this into that section
    <Alts>
    <Alt AltId="Fail_Grave" AltOdds="50" />
    <Alt AltId="Fail_NoMedicine" AltOdds="100" />
    <Alt AltId="Fail_HighestInfirmary" AltOdds="100" />
    <Alt AltId="Fail_LowInfirmary" AltOdds="100" />
    <Alt AltId="Fail_NoInfirmary" AltOdds="100" />
    </Alts>

    Next similar to earlier find this line
    <Action ActionFlags="Alt" ActionId="Fail_NoMedicine" ActionType="Action.Passive" ExecuteTimeStandard="0.0" OutputDelayTime="0.0" PauseWhenOffline="">

    Right above that line put this

    <Action ActionFlags="Alt" ActionId="Fail_Grave" ActionType="Action.Passive" ExecuteTimeStandard="0.0" OutputDelayTime="0.0" PauseWhenOffline="">
    <RTSActionIcon Name="" Id="" />
    <NameText Flags="" Notes="" Text="" />
    <Actors>
    <Character ActorFlags="" ActorName="" ActorTask="" ActorTraits="Trait.Status.NewlyHurt, Trait.MoodType.Hurt" FunctionTags="" HideWarnings="True" Optional="" TargetEnclave="" />
    <Character ActorFlags="" ActorName="" ActorTask="" ActorTraits="" FunctionTags="Command" HideWarnings="" Optional="" TargetEnclave="" />
    </Actors>
    <Alts />
    <Effects />
    <Inputs />
    <Outputs>
    <Actor_Kill ActorIndex="0" Silent="" />
    <EventRewardStat ExludeFromSummary="false" Icon="HappyFace" OutputAmount="-40" OutputId="Stat.Morale" RewardList="General" IconId="11">
    <DescriptionText Flags="" Notes="" Text="%+d Community Morale." />
    </EventRewardStat>
    <EventLog DisplayType="FateCard" EventFlags="General, NoHudDisplay" Icon="Fate" IconId="92">
    <NameText Flags="" Notes="" Text="HOME: Death" />
    <TutorialText Flags="" Notes="" Text="Grave injuries can result in death." />
    <DescArgs>
    <EventDescArg Param="0" Type="CommandName" />
    <EventDescArg Param="0" Type="ActorName" />
    </DescArgs>
    <Descriptions>
    <EventLogDesc>
    <DescriptionText Flags="" Notes="" Text="%2$s has died due to their injuries. We didn't allow them to come back." />
    <SummaryText Flags="" Notes="" Text="Death from Injury" />
    </EventLogDesc>
    </Descriptions>
    <NpcEffects>
    <EventNpcEffect ActorIndex="0" Value="-1">
    <DescriptionText Flags="" Notes="" Text="Dead." />
    </EventNpcEffect>
    </NpcEffects>
    </EventLog>
    </Outputs>
    </Action>

    That should give the survivor 50/50 odds after getting injured to die from their injury.

    That should get the ball rolling. One bite or a few swipes from a zombie should put you in bad shape.
    Note: If you close out of the game for long enough the injury and sickness may remove from the survivor some of the time, unfortunately. I recommend you stay in the game session until the injured or sick person runs the course of healing for desired results.

    If it all works out you should see what happens in this video after the survivor is infected long enough.



    There are a ton more things to change but I don't want to confuse you. If you get this far and have the desired results I'll explain more. I'll add the rest of the stuff I modded thanks to QMJS.
     
    Last edited: Feb 6, 2017
    Bob Crees and QMJS like this.
  10. JollyZed

    JollyZed Starting Off

    im getting crash.... have a look at the files
     
  11. JollyZed

    JollyZed Starting Off

    rts (crashed) and the characters (cant upload it, but most likely not the problem)
     

    Attached Files:

  12. QMJS

    QMJS Famous

    In the Recover from sick event, the 'Fail_grave' is incorrect. You are working with sick, not hurt.
    In the Recover from injury event, the 'Fail_grave' is incorrect. Here you are working with hurt, not sick.

    You copy-pasted those two into the wrong areas (reversed positions). There may be other problems, but that needs to be fixed first. I would suggest going over the post above and checking all the changes you made.
     
  13. Hi. While zombies bite me, i go down quick. But it does not work for npcs and followers. How can i change it? I changed actorconstants but it only works for player not followers. It takes a lot to knock them down.
     
  14. JollyZed

    JollyZed Starting Off

  15. QMJS

    QMJS Famous

    For all three changes to characters.xml, go back and follow the instructions above. Here is one example of the three changes.

    You have this:
    <DescriptionText Flags="" Notes="Trait Description" Text="Vitality will gradually recover while resting at home. It should take about 10 hours to get back to full Vitality." />
    <ExpertiseBlock />
    <NameText Flags="" Notes="Trait" Text="-40% Max Vitality" />
    <CharacterBonuses />
    <CommunityBonuses />
    <SubTraits>
    <Subtrait Name="Trait.Status.Injury" />
    <Subtrait Name="Trait.MoodType.Sick" />
    <Subtrait Name="Trait.Meta.Grave" />
    </SubTraits>
    </CharacterTrait>

    <PlayerBonuses>
    <Action ActionFlags="" ActionId="PlayerBonuses" ActionType="Action.Passive" ExecuteTimeStandard="0.0" OutputDelayTime="0.0" PauseWhenOffline="">
    <RTSActionIcon Name="" Id="" />
    <NameText Flags="" Notes="" Text="" />
    <Actors />
    <Alts />
    <Effects />
    <Inputs />
    <Outputs>
    <RTSStat_SetBool DurationCancellable="" OutputAmount="true" OutputDuration="" OutputId="Game.Player.Wounded" PauseWhenOffline="" />
    </Outputs>
    </Action>
    </PlayerBonuses>
    <SubTraits>
    <Subtrait Name="Trait.Status.Wound" />
    </SubTraits>
    </CharacterTrait>


    You have two /charactertrait block ends, and two separate subtrait sections.

    It should look like this, as described above:
    <CharacterTrait BadgeName="" Flags="EventLog" Icon="" TraitId="Moderate" Badge="" IconId="">
    <DescriptionText Flags="" Notes="Trait Description" Text="Vitality will gradually recover while resting at home. It should take about 10 hours to get back to full Vitality." />
    <ExpertiseBlock />
    <NameText Flags="" Notes="Trait" Text="-40% Max Vitality" />
    <CharacterBonuses />
    <CommunityBonuses />
    <SubTraits>
    <Subtrait Name="Trait.Status.Injury" />
    <Subtrait Name="Trait.MoodType.Sick" />
    <Subtrait Name="Trait.Meta.Grave" />
    </SubTraits>
    </CharacterTrait>
     
    tobu24 likes this.
  16. QMJS

    QMJS Famous

    NPCs do not use the character stats when not under player control. Their behavior and combat reactions are controlled by the statemachines, which are currently inaccessible to modding.
     
  17. Ok. Tnx for reply really appreciate it. :)
     
  18. JollyZed

    JollyZed Starting Off

  19. JollyZed

    JollyZed Starting Off

    hey did you get it working?
     
  20. Hi. I will try it today and we'll see :)
     

Share This Page