Jump to content

Recommended Posts

Hello All,

 

Allow me to set the stage:

 

Running Steam version of Kane's Wrath on a Windows 10 Box. Using WrathEd 1.08. Trying to modify the NODSaboteur. I extracted the xml data from CNC3EP1_english_1.2.SkuDef using WrathEd's Open SkuDef.

 

My file structure is Mods\Nod\Data\. In the Data folder is the Static.xml file which contains...

<?xml version="1.0" encoding="utf-8"?>

<AssetDeclaration xmlns="uri:ea.com:eala:asset">
     <!-- Main Mod File for Static Data -->
     <Includes>
          <!-- Reference to the Game's Global Data -->
          <Include type="reference" source="Global.xml" />


          <!-- Includes of the Mod's Static Data -->
          <Include type="all" source="Static/NODSaboteur.xml" />
     </Includes>
</AssetDeclaration>

...and the Static folder that contains the NODSaboteur.xml file. I created a bat file with the following command line C:\WrathEd1.08\BuildMod.bat Nod 2.0 and run it as administrator. When I build, the files that are created are placed in C:\Users\Clay\Documents\Command & Conquer 3 Kane's Wrath\Mods\nod (created by the game itself). This is what shows up in it:

 

1efae87c10.png

 

I created several mods for TW and those files were a bit more than 1 kb...lol. As a sanity check I did a build of the sample mod. This was the results:

 

1efe4592a7.png

 

The mods were not incorporated at all. Any advice would be appreciated.

Share this post


Link to post

Exchange this line

          <Include type="all" source="Static/NODSaboteur.xml" />

with this

        <Include type="all" source="DATA:Static/NODSaboteur.xml" />

Share this post


Link to post

 

Exchange this line

          <Include type="all" source="Static/NODSaboteur.xml" />

with this

        <Include type="all" source="DATA:Static/NODSaboteur.xml" />

No joy. Same results.

Share this post


Link to post

I noticed that the static xml is referencing Global.xml...but this file is nowhere to be found. There is a GlobalGameData.xml file.

Share this post


Link to post

You should just Upload your Mod's xml files so we can see whats wrong.

Share this post


Link to post

I dropped back to WrathEd 1.07 and the mod compiles with the units in the big file. Only a minor issue now - they are all invisible. The only change made was to cost of the unit. The game sees the cost change and builds the unit...it's just invisible.

 

Share this post


Link to post

Check the prefix of the w3x file in the model conditions of the Unit. It should be something like "w3dcontainer:modelname_skn" or so, i'm not sure right now. If it doesn't exist, add it.

Share this post


Link to post

Check the prefix of the w3x file in the model conditions of the Unit. It should be something like "w3dcontainer:modelname_skn" or so, i'm not sure right now. If it doesn't exist, add it.

 

I added the prefix to all of the ModelConditionState tags for the NOD power plant xml. Eg...

 

<ModelConditionState
ParseCondStateType="PARSE_DEFAULT"
PortraitImage=""
ButtonImage=""
RetainSubObjects="False">
<Model
Name="W3DContainer:NBPOWER"
ExtraMesh="False" />
</ModelConditionState>
Compiled and took a look in the .big file and this is what I see:
<ModelConditionState
ParseCondStateType="PARSE_DEFAULT"
PortraitImage=""
ButtonImage=""
RetainSubObjects="False">
<Model
Name="NBPOWER"
ExtraMesh="False" />
</ModelConditionState>
Is W3DContainer: a directive or macro that does not show up in the built file?

Share this post


Link to post

Ok...that actually worked (who would of thought it was case sensitive)...thanks for your help amigo.

Share this post


Link to post

Ok...this is rather frustrating. The mods work fine in one mission then are completely ignored in the next mission. TW was never this difficult...lol.

Share this post


Link to post

If you're talking about missions in the campaign, it will not work. Mission Maps are pre-compiled mod maps. Your changes will have no effect if the same unit/building is also modded on the mission map.

Share this post


Link to post

If you're talking about missions in the campaign, it will not work. Mission Maps are pre-compiled mod maps. Your changes will have no effect if the same unit/building is also modded on the mission map.

 

Well that is a bit confusing. If that is the case, why would the unit mods work on any of the missions if is is solely based on compiled maps already in the game? Trying to get me head around this.

Share this post


Link to post

Well, overwrites are mission specific - they only contain things that were changed in that mission compared to the orignal game.

 

So one mission might just edit a commandset to remove some construction options, another mission might edit the health of some units to make them easier to use while other missions might edit tons of stuff to remove an upgrade from the game.... it really depends on the mission.

Edited by Stygs

Share this post


Link to post

So, to get my modified units into the game I need to edit the map data for every mission?

Share this post


Link to post

I am new to the CNCNZ community, but have been a longtime fan of the C&C franchise.  I have spent significant effort attempting to make what I thought would be a simple beginner mod to adjust some basic parameters of existing units/weapons (reload rate, range, health, etc.).  However, I don't see any in-game changes, and suspect I am just missing something simple.  i wanted to reach out to see if anyone here would be able to help, given your significantly greater expertise.

I have been following the instructions listed in the very helpful linked tutorial by egozi44 (i.e. I took steps similar to what Shrike described in his original post)

https://www.moddb.com/tutorials/how-to-do-simple-modifications-to-kanes-wrath-with-wrathed

and also have done a lot of reading elsewhere (including this very useful resource by PurpleGaga27).

I have uploaded the contents of the modified GDIJuggernaughtArtillery.xml file (uploaded here as a txt file because it appears this site does not allow xml files to be uploaded per se).  Please note also that I have used the spelling from the game asset extracted with WrathEd (there it is spelled Juggernaught rather than juggernaut ).   Under "clipreloadtime" i have changed 3s to 5s.  Yet, no luck.  I am not sure what I am missing and am feeling discouraged, since I really love KW (had a blast playing it about 10 years ago) and was hoping to have some fun revisiting it.  If I can get this simple mod to work I would like to make a number of other more interesting changes.  )

Any advice would be truly appreciated.

 

GDIJuggernaughtArtillery.txt

Edited by Psychopomp

Share this post


Link to post

Solved the issue described in my previous post.  

In case it helps anyone else, the issue was that I needed to delete some extra lines from the unit/weapon xml file.  In the tutorial for which I placed a link in my prior post, there is the following instruction:

 

If your name was correct then some unit entry will appear in the middle window, press on the unit's entry and you will see that in the most right window xml codes will pop up, copy them all to a simple notepad but make sure you start copying from

""

And stop AFTER

"" (the rest of the lines beneath it aren't import).

Perhaps to someone with coding background this would be obvious, but It was not clear to a relative novice like me where exactly I needed to start copying and where I needed to stop, as there are a lot of quotation marks in the file.  After a lot of troubleshooting I realized I needed to delete some of the lines in the file.  Using the example of the weapon template for the GDI juggernaut (spelled juggernaught in the asset files), the lines below are what I ultimately kept when I was successful in getting the mod to work.  As a test case I was just reverting the reload time from 3s to 5s (i.e. what it was in vanilla KW).  This did the trick.  Hopefully someone else will find this information helpful.

<AssetDeclaration xmlns="uri:ea.com:eala:asset">
    <WeaponTemplate
        id="GDIJuggernaughtArtillery"
        Name="GDIJuggernaughtArtillery"
        AttackRange="600"
        MinimumAttackRange="100"
        RangeBonusMinHeight="0"
        RangeBonus="0"
        RangeBonusPerFoot="0"
        RequestAssistRange="0"
        AcceptableAimDelta="0d"
        AimDirection="0d"
        ScatterRadius="50"
        ScatterLength="50"
        ScatterTargetScalar="0"
        WeaponSpeed="500"
        MinWeaponSpeed="99999"
        MaxWeaponSpeed="99999"
        IdleAfterFiringDelaySeconds="-1s"
        HoldAfterFiringDelaySeconds="0s"
        WeaponRecoil="0d"
        MinTargetPitch="-15d"
        MaxTargetPitch="15d"
        FireFX="FX_GDI_JuggernaughtArtilleryFire"
        FireVeteranFX="FX_GDI_JuggernaughtArtilleryFireHeroic"
        FireFlankFX=""
        PreAttackFX=""
        ClipSize="3"
        ContinuousFireOne="99999"
        ContinuousFireTwo="99999"
        ContinuousFireCoastSeconds="0s"
        AutoReloadWhenIdleSeconds="0s"
        ShotsPerBarrel="1"
        RequiredFiringObjectStatus="DEPLOYED"
        ForbiddenFiringObjectStatus=""
        ContinueAttackRange="0"
        SuspendFXDelaySeconds="0s"
        HitPercentage="100%"
        HitPassengerPercentage="100%"
        HealthProportionalResolution="0"
        MaxAttackPassengers="0"
        RestrictedHeightRange="0"
        Flags="ORTHOGONAL_SCATTER"
        PreAttackType="PER_SHOT"
        ReAcquireDetailType="PER_SHOT"
        AutoReloadsClip="AUTO"
        SingleAmmoReloadedNotFullSound=""
        ClipReloadedSound=""
        RadiusDamageAffects="ALLIES ENEMIES NEUTRALS"
        ProjectileCollidesWith="ALLIES ENEMIES NEUTRAL STRUCTURES WALLS"
        AntiMask="ANTI_GROUND"
        ProjectileStreamName=""
        ScatterIndependently="False"
        DisableScatterForTargetsOnWall="False"
        ScaleWeaponSpeed="False"
        CanBeDodged="False"
        HoldDuringReload="False"
        CanFireWhileMoving="False"
        CanFireWhileCharging="False"
        FiringLoopSoundContinuesDuringReload="True"
        FiringLoopSoundPlaysOnlyForAttackPosition="False"
        DamageDealtAtSelfPosition="False"
        CheckStatusFlagsInRangeChecks="False"
        ProjectileSelf="False"
        MeleeWeapon="False"
        ChaseWeapon="False"
        LeechRangeWeapon="False"
        HitStoredTarget="False"
        CapableOfFollowingWaypoints="False"
        ShowsAmmoPips="False"
        AllowAttackGarrisonedBldgs="False"
        PlayFXWhenStealthed="False"
        IgnoreLinearFirstTarget="False"
        ForceDisplayPercentReady="False"
        IsAimingWeapon="False"
        NoVictimNeeded="False"
        RotatingTurret="False"
        PassengerProportionalAttack="False"
        FinishAttackOnceStarted="True"
        CannotTargetCastleVictims="False"
        RequireFollowThru="False"
        ShareTimers="False"
        ShouldPlayUnderAttackEvaEvent="True"
        InstantLoadClipOnActivate="False"
        LockWhenUsing="False"
        BombardType="False"
        UseInnateAttributes="False"
        StopFiringOnCanBeInvisible="False"
        ContactWeapon="False">
        <ClipReloadTime
            MinSeconds="5s"
            MaxSeconds="5s" />
        <Nuggets>
            <ProjectileNugget
                PartitionFilterTestType="EXTENTS_3D"
                ForbiddenTargetObjectStatus=""
                ForbiddenTargetModelCondition=""
                RequiredObjectStatus=""
                WarheadTemplate="JuggernaughtArtilleryWarhead"
                ProjectileTemplate="FXArtilleryShell"
                WeaponLaunchBoneSlotOverride="NO_WEAPON">
                <VeterancyProjectiles
                    VeterancyLevel="HEROIC"
                    ProjectileTemplate="FXArtilleryShell_Veteran" />
            </ProjectileNugget>
            <SuppressionNugget
                PartitionFilterTestType="EXTENTS_3D"
                ForbiddenTargetObjectStatus=""
                ForbiddenTargetModelCondition=""
                RequiredObjectStatus=""
                Radius="100"
                Suppression="100"
                DurationSeconds="5s" />
        </Nuggets>
        <ScatterRadiusVsType
            Radius="50">
            <Filter
                Rule="NONE"
                Relationship=""
                Alignment="NONE"
                Include="INFANTRY"
                Exclude=""
                StatusBitFlags=""
                RejectStatusBitFlags=""
                AcceptModelCondition=""
                RejectModelCondition="" />
        </ScatterRadiusVsType>
        <ScatterRadiusVsType
            Radius="25">
            <Filter
                Rule="NONE"
                Relationship=""
                Alignment="NONE"
                Include="VEHICLE"
                Exclude=""
                StatusBitFlags=""
                RejectStatusBitFlags=""
                AcceptModelCondition=""
                RejectModelCondition="" />
        </ScatterRadiusVsType>
    </WeaponTemplate>
</AssetDeclaration>

 

Share this post


Link to post

As a random aside, it makes me happy to see that there is still a community of people who love CnC after all these years.  : )   Thank you to everyone who keeps this site operational and to everyone who has modded or otherwise helped provide tools and/or information to enable others to mod.   

Special thanks to Bibber.  I never had any interactions with you, but I (and it is clear that many others) have really benefited from the tools you created.  I don't know if you will ever read this, but if you do, just know that you are truly appreciated.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×