Vanilla+ is a huge update to Far Cry 2 that stays loyal to the original experience.
This tutorial has been archived by the uploader because it is out of date and no longer supported. We recommend you browse the file list for the latest tutorial.
This guide will explain how to add enhanced healing to your Far Cry 2 game. This is a feature from Far Cry 3 where once you are out of healing syringes you can heal with one of the animations normally reserved for critical healing. To activate this you hold the heal button once you are out of syringes.
This guide will explain how to add enhanced healing to your Far Cry 2 game. This is a feature from Far Cry 3 where once you are out of healing syringes you can heal with one of the animations normally reserved for critical healing. To activate this you hold the heal button once you are out of syringes. I have a google docs version of this guide available here.
It is strongly recommended to use Notepad++ to edit .xml files. It is available here: Notepad-plus-plus.org
The only commonly available mod unpacking/packing tools that will not cause crashes are found here: Moddb.com
This is a different set of tools than is listed elsewhere but the old method using bootstrap doesn't work for modern mods.
Download the mod tools and then follow these steps:
1. Find “main_avatar.gosm” within your “worlds_unpack” folder: \worlds_unpack\scripts\engine\objects\pawn\statemachine\.
2. Copy this file into the same directory within your “patch_unpack” folder: \patch_unpack\scripts\engine\objects\pawn\statemachine\.
3. Open “main_avatar.gosm” with notepad++ and find this section:
<State FullName="::Main Avatar/Common/Idle" Type="CGOStateAnim">
<Parameter Name="groups">
<Parameter Name="0" Value="Idle" />
<Parameter Name="1" Value="can_ironsight" />
</Parameter>
<Parameter Name="duration" Value="0" />
<Parameter Name="signalpriorities" />
<Parameter Name="forceAnim" Value="0" />
<Parameter Name="syncAnimDuration" Value="0" />
<Parameter Name="animStateID" Value="Pawn_Generic_Movement" />
<Parameter Name="layerStateID" Value="Pawn_Generic_Aim" />
<Parameter Name="gestureStateID" Value="0" />
<Parameter Name="followTerrain" Value="0" />
<Parameter Name="MoveLayer" Value="-1" />
<Sink Name="Slide" Start="0" End="100">
<Connection Target="::Main Avatar/Common/Slide/StartSliding" Signal="start_sliding" />
</Sink>
<Sink Name="random idle" Start="0" End="100">
<Connection Target="::Main Avatar/Common/IdleCycleBreaker" Signal="cyclebreaker" />
</Sink>
</State>
4. Add the following lines anywhere in that section but I recommend at the bottom:
<Sink Name="enhanced first aid" Start="0" End="100">
<Connection Target="::Healing/Healing/States/Entering Healing" Signal="enfirstaid" />
</Sink>
Your complete section should look like this:
<State FullName="::Main Avatar/Common/Idle" Type="CGOStateAnim">
<Parameter Name="groups">
<Parameter Name="0" Value="Idle" />
<Parameter Name="1" Value="can_ironsight" />
</Parameter>
<Parameter Name="duration" Value="0" />
<Parameter Name="signalpriorities" />
<Parameter Name="forceAnim" Value="0" />
<Parameter Name="syncAnimDuration" Value="0" />
<Parameter Name="animStateID" Value="Pawn_Generic_Movement" />
<Parameter Name="layerStateID" Value="Pawn_Generic_Aim" />
<Parameter Name="gestureStateID" Value="0" />
<Parameter Name="followTerrain" Value="0" />
<Parameter Name="MoveLayer" Value="-1" />
<Sink Name="Slide" Start="0" End="100">
<Connection Target="::Main Avatar/Common/Slide/StartSliding" Signal="start_sliding" />
</Sink>
<Sink Name="random idle" Start="0" End="100">
<Connection Target="::Main Avatar/Common/IdleCycleBreaker" Signal="cyclebreaker" />
</Sink>
<Sink Name="enhanced first aid" Start="0" End="100">
<Connection Target="::Healing/Healing/States/Entering Healing" Signal="enfirstaid" />
</Sink>
</State>
1. Find “inputactionmapcommon.xml” in your “patch_unpack” folder: \patch_unpack\config\.
2. Open this in notepad++ and find the following section:
<!-- Gameplay controls action map -->
<ActionMap name="common_gameplay">
<Import actionmap="common_gameplay_remap" optional=""/>
<import actionmap="common_use_remap" optional=""/>
<import actionmap="common_heal_remap" optional=""/>
<import actionmap="common_jump_remap" optional=""/>
<import actionmap="common_crouch_remap" optional=""/>
<import actionmap="common_grenade_remap" optional=""/>
<!--Keyboard-->
<Binding input="kb:space" action="press" signal="jump"/>
<Binding input="kb:c" action="press" signal="crouch"/>
<Binding input="kb:e" action="press" signal="use"/>
<Binding input="kb:h" action="press" signal="heal"/>
<Binding input="kb:q" action="press" signal="throw_grenade"/>
<Binding input="kb:f" action="press" signal="select_next_throw_gadget"/>
<!--Demo keys-->
<Binding input="kb:^" action="press" signal="start_rain_demo" />
<Binding input="kb:&" action="press" signal="stop_rain_demo" />
<Binding input="kb:*" action="press" signal="start_time_demo" />
<Binding input="kb:(" action="press" signal="start_storm_demo" />
<Binding input="kb:)" action="press" signal="stop_storm_demo" />
<!--Gamepad-->
<Binding input="pad:a" action="press" signal="jump"/>
<Binding input="pad:y" action="press" signal="use"/>
<Binding input="pad:b" action="press" signal="crouch"/>
<Binding input="pad:left_shoulder" action="press" signal="heal"/>
<Binding input="pad:right_shoulder" action="press" signal="throw_grenade"/>
<Binding input="pad:right_thumb_push" action="press" signal="select_next_throw_gadget"/>
</ActionMap>
3. We are going to add a line each to the keyboard and gamepad sections that says if we hold their respective heal buttons it will execute our healing script. These lines are:
<!--Keyboard-->
<Binding input="kb:h" action="hold" signal="enfirstaid"/>
<!--Gamepad-->
<Binding input="pad:left_shoulder" action="hold" signal="enfirstaid"/>
I have added the lines in the example below:
<!-- Gameplay controls action map -->
<ActionMap name="common_gameplay">
<Import actionmap="common_gameplay_remap" optional=""/>
<import actionmap="common_use_remap" optional=""/>
<import actionmap="common_heal_remap" optional=""/>
<import actionmap="common_jump_remap" optional=""/>
<import actionmap="common_crouch_remap" optional=""/>
<import actionmap="common_grenade_remap" optional=""/>
<!--Keyboard-->
<Binding input="kb:space" action="press" signal="jump"/>
<Binding input="kb:c" action="press" signal="crouch"/>
<Binding input="kb:e" action="press" signal="use"/>
<Binding input="kb:h" action="press" signal="heal"/>
<Binding input="kb:h" action="hold" signal="enfirstaid"/>
<Binding input="kb:q" action="press" signal="throw_grenade"/>
<Binding input="kb:f" action="press" signal="select_next_throw_gadget"/>
<!--Demo keys-->
<Binding input="kb:^" action="press" signal="start_rain_demo" />
<Binding input="kb:&" action="press" signal="stop_rain_demo" />
<Binding input="kb:*" action="press" signal="start_time_demo" />
<Binding input="kb:(" action="press" signal="start_storm_demo" />
<Binding input="kb:)" action="press" signal="stop_storm_demo" />
<!--Gamepad-->
<Binding input="pad:a" action="press" signal="jump"/>
<Binding input="pad:y" action="press" signal="use"/>
<Binding input="pad:b" action="press" signal="crouch"/>
<Binding input="pad:left_shoulder" action="press" signal="heal"/>
<Binding input="pad:left_shoulder" action="hold" signal="enfirstaid"/>
<Binding input="pad:right_shoulder" action="press" signal="throw_grenade"/>
<Binding input="pad:right_thumb_push" action="press" signal="select_next_throw_gadget"/>
</ActionMap>
And that’s it! Don’t forget that you need to hold the heal button once you’re out of syringes.
1. Drag your "patch_unpack" folder over "Gibbed.Dunia.Pack.exe" and this will create "patch_unpack.dat" and "patch_unpack.fat". Copy these and go to your Data_Win32 folder (Steam\steamapps\common\Far Cry 2\Data_Win32). Delete your original "patch.dat" and "patch.fat", paste your copied files in and rename them to the same.
Well documented! Thanks.
Nice!