Jump to content

Save Game mod


Vortaka

Recommended Posts

I know, it's not a "mod" per say but I wasted too much time on this!!! :smile:

 

Good news people of Nexus (and reddit, cause I posted it there too!). I found a way to change rented pawn inclination!!! It's not fast, it's stretchy at best, and requires a save game editor... (Sorry to say, mine is a property software (cheathappens) so I can't share it... But I'm sure it's possible to find a save decompressor somewhere (or to build one! )). This is offline stuff ONLY!!!
Anyway... Since it modifies the game itself, it's "kind" of a mod... Somehow...
So, in the save game (all mines (lots of backups/tests) takes 512kb) you must find your pawn... (I know, I know, it sucks!). <u8 name="mLevel" value="15"/> was the lines that I searched (4174) and if you go down (5666) you'll find the inclinations! (I don't know if every save game is the same BUT... My other rented pawn is at lvl is at 2449, the lines are at (3941) (notepad++ is cool!) (Since both are exactly at 1492 lines of difference, this might be static... Would be cool!)
<u32 ...[ INFO_TYPE_XXX ].mInfoType" value="0"/>
<f32 ..._TYPE_XXX ].mValue" value="0.000000"/>
<u32 ...[ INFO_TYPE_XXX ].mStatus" value="0"/>
P.S. The lines are too long so "..." is unwanted text and XXX is the inclination, left part!
2 of those 3 lines are important!!! The second and the third! The second is how much points are in it... (I put the Primary(2) at 800 and the Secondary(1) at 700. (Rented pawns inclination are STATIC (or so I read)). The numbers between () are used to note the primary and secondary inclination... So, the first one is (2), second is (1)... I repear! ONE is 2, TWO is 1! (It's weird but when your pawn only has one inclination, it's (2)!
Now, for the part I decoded!!! There are 9 inclination
BELLIGERENT --- Scather
PRUDENT --- Medicant
POOR_AIM --- Mitigator
STRATEGY --- Challenger
TACTICS --- Utilitarian
PROTECTION --- Guardian
SAME_SUPPORT- Nexus
CURIOSITY --- Pioneer
GATHER --- Aquisition
Vortaka
Edited by Vortaka
Link to comment
Share on other sites

  • 2 weeks later...

Well, to complement your info, here's what I found:

Basic XML Structure (Pertinent Data Only)
-----------------------------------------
<class name="mPlayerDataManual" type="sSave::playerData">
    <class name="mPlCmcEditAndParam" type="sSave::playerEditAndParam">
        <class name="mPl" type="cSAVE_DATA_PL">
            ... (Arisen data)
        </class>
        <array name="mCmc" type="class" count="3"> // Pawn list
            <class type="cSAVE_DATA_CMC">
                ... (Pawn data)
            </class>
            <class type="cSAVE_DATA_CMC">
                ... (Pawn data)
            </class>
            <class type="cSAVE_DATA_CMC">
                ... (Pawn data)
            </class>
        </array>
    </class>
</class>

For pawns, usually the 1st listed in the mCmc array is the main pawn, but see mPawnType for sure

Arisen Data
-----------
<class name="mPl" type="cSAVE_DATA_PL">
    <class name="mEdit" type="cSAVE_DATA_EDIT">
        ... (Appearance Data)
    </class>
    <class name="mParam" type="cSAVE_DATA_PARAM">
</class>

Pawn Data
---------
<class type="cSAVE_DATA_CMC">
    <class name="mEdit" type="cSAVE_DATA_EDIT"/>
    <class name="mParam" type="cSAVE_DATA_PARAM"/>
    <s32 name="mStatus" value="0"/>
    <array name="mUseSceneTalk" type="u32" count="6"/>
    <array name="mStudyFlag" type="u32" count="322"/>
    <array name="mLocalStudyFlag" type="u32" count="322"/>
    <array name="mStudyData.EncountFrame" type="f32" count="72"/>
    <array name="mStudyData.KillCnt" type="u32" count="72"/>
    <array name="mStudyData.UniqueCnt" type="u8" count="116"/>
    <f32 name="mInfo[ INFO_TYPE_BELLIGERENT ].mValue" value="200.000000"/>
    <f32 name="mInfo[ INFO_TYPE_PRUDENT ].mValue" value="200.000000"/>
    <f32 name="mInfo[ INFO_TYPE_POOR_AIM ].mValue" value="200.000000"/>
    <f32 name="mInfo[ INFO_TYPE_STRATEGY ].mValue" value="200.000000"/>
    <f32 name="mInfo[ INFO_TYPE_TACTICS ].mValue" value="200.000000"/>
    <f32 name="mInfo[ INFO_TYPE_PROTECTION ].mValue" value="200.000000"/>
    <f32 name="mInfo[ INFO_TYPE_SAME_SUPPORT ].mValue" value="200.000000"/>
    <f32 name="mInfo[ INFO_TYPE_CURIOSITY ].mValue" value="800.000000"/>
    <f32 name="mInfo[ INFO_TYPE_GATHER ].mValue" value="200.000000"/>
    <f32 name="mInfoEx[ INFO_TYPE_EX_TALK ].mValue" value="500.000000"/>
    <f32 name="mInfoEx[ INFO_TYPE_EX_SKILL_USE ].mValue" value="500.000000"/>
    <s32 name="mPawnType" value="1"/>
    <u32 name="mEmployGamePlayTime" value="0"/>
    <class name="mOnlinePawnInfo" type="cOnlinePawnInfo"/>
</class>

NOTE:
mPawnType
    0 Hired Pawn
    1 Main Pawn

Appearance Data
---------------
<class name="mEdit" type="cSAVE_DATA_EDIT">
    <array name="(u8*)mNameStr" type="u8" count="25"/>
    <u8 name="mGender" value="1"/>
    <u32 name="mNickname" value="412"/>
    <u8 name="mVoice" value="3"/>
    <u8 name="mPersonality" value="0"/>
    <u8 name="mFaceBase" value="41"/>
    <u8 name="mFaceEye" value="19"/>
    <u8 name="mFaceEyebrow" value="34"/>
    <u8 name="mFaceNose" value="5"/>
    <u8 name="mFaceMouth" value="16"/>
    <u8 name="mFaceEar" value="4"/>
    <u8 name="mOfsXFaceEye" value="2"/>
    <u8 name="mOfsYFaceEye" value="0"/>
    <u8 name="mOfsXFaceEyebrow" value="2"/>
    <u8 name="mOfsYFaceEyebrow" value="1"/>
    <u8 name="mOfsYFaceNose" value="1"/>
    <u8 name="mOfsYFaceMouth" value="2"/>
    <u8 name="mOfsYFaceEar" value="1"/>
    <u8 name="mOfsZFaceEar" value="3"/>
    <u8 name="mSclFaceEye" value="3"/>
    <u8 name="mSclFaceNose" value="2"/>
    <u8 name="mBodySlender" value="1"/>
    <u8 name="mBodyMuscle" value="1"/>
    <u8 name="mBustScale" value="3"/>
    <u8 name="mHumanBodyAll" value="5"/>
    <u8 name="mHumanHead" value="6"/>
    <u8 name="mHumanBody" value="9"/>
    <u8 name="mHumanArm" value="3"/>
    <u8 name="mHumanLeg" value="1"/>
    <u8 name="mMovement" value="2"/>
    <u8 name="mPosture" value="3"/>
    <u8 name="mWrinkleFace" value="0"/>
    <u8 name="mMakeupFace" value="11"/>
    <u8 name="mScarNo" value="9"/>
    <u8 name="mColorHair" value="1"/>
    <u8 name="mColorEyeR" value="11"/>
    <u8 name="mColorEyeL" value="11"/>
    <u8 name="mColorBody" value="2"/>
    <u8 name="mColorBeard" value="0"/>
    <u8 name="mColorEyebrow" value="0"/>
    <u8 name="mColorMakeup" value="19"/>
    <u8 name="mHairNo" value="46"/>
    <u8 name="mBeardNo" value="23"/>
</class>

Names
-----
<array name="(u8*)mNameStr" type="u8" count="25">
<u8 value="65"/>
<u8 value="100"/>
<u8 value="97"/>
....
</array>
Each child nodes of the array is a single character of the pawn name in ASCII code


Inclinations
------------
<class type="cSAVE_DATA_CMC">
    ...
    <f32 name="mInfo[ INFO_TYPE_BELLIGERENT ].mValue" value="0.000000"/>
    <f32 name="mInfo[ INFO_TYPE_PRUDENT ].mValue" value="0.000000"/>
    <f32 name="mInfo[ INFO_TYPE_POOR_AIM ].mValue" value="0.000000"/>
    <f32 name="mInfo[ INFO_TYPE_STRATEGY ].mValue" value="0.000000"/>
    <f32 name="mInfo[ INFO_TYPE_TACTICS ].mValue" value="0.000000"/>
    <f32 name="mInfo[ INFO_TYPE_PROTECTION ].mValue" value="0.000000"/>
    <f32 name="mInfo[ INFO_TYPE_SAME_SUPPORT ].mValue" value="0.000000"/>
    <f32 name="mInfo[ INFO_TYPE_CURIOSITY ].mValue" value="0.000000"/>
    <f32 name="mInfo[ INFO_TYPE_GATHER ].mValue" value="0.000000"/>
    ...
</class>

Scather     INFO_TYPE_BELLIGERENT
Medicant    INFO_TYPE_PRUDENT
Mitigator   INFO_TYPE_POOR_AIM
Challenger  INFO_TYPE_STRATEGY
Utilitarian INFO_TYPE_TACTICS
Guardian    INFO_TYPE_PROTECTION
Nexus       INFO_TYPE_SAME_SUPPORT
Pioneer     INFO_TYPE_CURIOSITY
Acquisitor  INFO_TYPE_GATHER

Vocation
--------
<!-- Arisen -->
<class name="mPl" type="cSAVE_DATA_PL">
    <class name="mParam" type="cSAVE_DATA_PARAM">
        ...
        <u8 name="mJob" value="1"/>
        <array name="mJobLevel" type="u8" count="10">
            <u8 value="1"/> <!-- Fighter (9 max) -->
            <u8 value="1"/> <!-- Strider -->
            <u8 value="1"/> <!-- Mage -->
            <u8 value="1"/> <!-- Mystic Knight -->
            <u8 value="1"/> <!-- Assassin -->
            <u8 value="1"/> <!-- Magic Archer -->
            <u8 value="1"/> <!-- Warrior -->
            <u8 value="1"/> <!-- Ranger -->
            <u8 value="1"/> <!-- Sorcerer -->
            <u8 value="1"/> <!-- UNKNOWN -->
        </array>
        ...
    </class>
</class>

<!-- Pawn -->
<array name="mCmc" type="class" count="3">
    <class type="cSAVE_DATA_CMC">
        <class name="mParam" type="cSAVE_DATA_PARAM">
            ...
            <u8 name="mJob" value="2"/>
            <array name="mJobLevel" type="u8" count="10">
                ...
            </array>
            ...
        </class>
    </class>
</array>

for a list of mJob values, see mJobLevel

As raised in the mod request forum, offline pawn appearance can be edited by:

  1. Use Secret of Metamorphosis to edit Arisen appearance to the desired pawn appearance
  2. copy the whole Arisen's mEdit node
  3. paste it to the desired pawn's mEdit node

I've tested it, and so far so good

Link to comment
Share on other sites

  • Recently Browsing   0 members

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