PDA

View Full Version : How To...Create Culture Specific Battering Rams



Seasoned Alcoholic
08-14-2006, 14:24
Modding Resource Header


Title: How To...Create Culture Specific Battering Rams
Posted by: Seasoned Alcoholic
Modding area: Siege Engines (Battering Rams)
Required programmes: Notepad (or other text editor)
Related links: How To...Modify Siege Tower Aspects (https://forums.totalwar.org/vb/showthread.php?t=62498)
Summary: This tutorial illustrates how to create culture specific battering rams. The vanilla RTW game actually shipped with several alternate battering rams from the default ones, so the tutorial will demonstrate how to unlock these rams and make them feature during siege battles.

Tutorial Contents:


Introduction
The Battering Rams
Creating Culture Specific Battering Rams
The End Result

What You Need:
descr_engines.txt (DE) @ \Data

Before you begin:
Make necessary backups to the text files listed above. Do this frequently as you progress through editing both files. In the case of an error (usually in the form of a CTD) for whatever reason, you will then have a working file to fall back upon if and when needed. It is a good idea to number / date / name etc your backups so that you will know which is the most latest version without confusing yourself. Only delete a backup when you are 100% convinced that this backup is no longer relevant to your latest version of the game.

Introduction

This tutorial demonstrates how to create culture specific battering rams for each culture type in RTW. Presently, all cultures share a homogenous battering ram that features during siege battles. However, vanilla RTW actually shipped with 2 additional battering ram types, as well as an alternate CAS model for the default homogenous ram.

The Battering Rams

To begin with, let's aquaint ourselves with the 3 different battering rams that shipped with RTW. Open descr_engines.txt and either scroll down to or search for (Ctrl+F) each ram type. Here are the code entries for each, and are in consecutive order:

Tortoise Ram

type tortoise_ram
culture all; roman
class ram

engine_model_group normal
engine_skeleton tortoise_ram
engine_collision data/models_engine/tort_ram_low_LOD.CAS
engine_model data/models_engine/Tortram_model.CAS, 20.0
;engine_model data/models_engine/tort_ram_med_LOD.CAS, 40.0
;engine_model data/models_engine/tort_ram_low_LOD.CAS, 80.0
;engine_model data/models_engine/tort_ram_very_low_LOD.CAS, max
engine_platforms none

engine_model_group dying
engine_skeleton tortoise_ram_dying
engine_model data/models_engine/tort_ram_dying_model.CAS, max
engine_platforms none


engine_model_group dead
engine_model data/models_engine/tort_ram_dying_dead.CAS, max
engine_platforms none

engine_shadow none

engine_radius 4
engine_length 7
engine_width 6
engine_height 3.0
engine_mass 25
engine_dock_dist 5.0
engine_mob_dist 6.3
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set

obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0

engine_spo

engine_push_point -2.5 1.0
engine_push_point -2.5 -1.3
engine_push_point -2.5 -3.6
engine_push_point 2.5 1.0
engine_push_point 2.5 -1.3
engine_push_point 2.5 -3.6

engine_health 150
;engine_armour ram

attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
Eastern Ram

type eastern_ram
culture eastern
class ram

engine_model_group normal
engine_skeleton eastern_ram
engine_collision data/models_engine/east_ram_low_LOD.CAS
engine_model data/models_engine/Eastram_model.CAS, 20.0
engine_model data/models_engine/east_ram_med_LOD.CAS, 40.0
engine_model data/models_engine/east_ram_low_LOD.CAS, max
engine_platforms none

engine_model_group dying
engine_skeleton eastern_ram_dying
engine_model data/models_engine/east_ram_dying.CAS, max
engine_platforms none

engine_model_group dead
engine_model data/models_engine/east_ram_dead.CAS, max
engine_platforms none

engine_shadow none

engine_radius 4.0
engine_length 4
engine_width 4
engine_height 3.0
engine_mass 25
engine_dock_dist 4.7
engine_mob_dist 6.7
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set

obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0

engine_spo

engine_push_point -1.0 1.6
engine_push_point -1.0 0.0
engine_push_point -1.0 -1.6
engine_push_point 1.0 1.6
engine_push_point 1.0 0.0
engine_push_point 1.0 -1.6

engine_health 120
;engine_armour ram

attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
Open Frame Ram

type open_frame_ram
culture all
class ram

engine_model_group normal
engine_skeleton open_frame_ram
engine_collision data/models_engine/openframe_very_low_LOD.CAS
engine_model data/models_engine/OFRam_model.CAS, 20.0
engine_model data/models_engine/openframe_med_LOD.CAS, 40.0
engine_model data/models_engine/openframe_low_LOD.CAS, 80.0
engine_model data/models_engine/openframe_very_low_LOD.CAS, max
engine_platforms none

engine_model_group dying
engine_skeleton open_frame_ram_dying
engine_model data/models_engine/openframe_dying_model.CAS, max
engine_platforms none

engine_model_group dead
engine_model data/models_engine/openframe_dying_dead.CAS, max
engine_platforms none

engine_shadow none

engine_radius 1.5
engine_length 3
engine_width 3
engine_height 3.0
engine_mass 25
engine_dock_dist 2.2
engine_mob_dist 3.9
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set

obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0

engine_spo

engine_push_point -0.75 -2.1
engine_push_point 0.75 -2.1
engine_push_point -1.7 -0.2
engine_push_point 1.7 -0.2

engine_health 100
;engine_armour ram

attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
As mentioned, these code entries are in consecutive order, the tortoise ram being the first of the 3 in the list. You may have already noticed that under the tortoise ram entry, the culture line value is all. This suggests that each culture type featured in RTW will make use of this battering ram by default. This viewpoint is confirmed from actual siege battle experiences, as all cultures utilise the homogenous tortoise ram. It becomes clear that the game looks to the first battering ram entry and ignores the other 2.

Creating Culture Specific Battering Rams

The process of creating culture specific battering rams is relatively straightforward, as there already examples of the different RTW culture types scattered throughout the existing text files. If you're unfamiliar with the different cultures featured in RTW, here is a summary list:

roman
greek
eastern
carthaginian
egyptian
barbarian
You can specify a culture type for a battering ram in the culture line of each ram entry. A good idea is to create a new ram entry for each culture type, this way the game can refer / lookup the correct ram type during siege battles.

In this tutorial, the Romans & Greeks will use the tortoise ram, the Easterners, Carthaginians and Egyptians will use the eastern ram, and the Barbarians will use the open frame ram. You can of course change these to your personal preference once you've become familiar with the workings of the descr_engines ram entries.

Here are 6 sample entries that should replace the existing 3 ram entries:

Roman entry

type tortoise_ram_roman
culture roman
class ram

engine_model_group normal
engine_skeleton tortoise_ram
engine_collision data/models_engine/tort_ram_low_LOD.CAS
engine_model data/models_engine/Tortram_model.CAS, 20.0
engine_model data/models_engine/tort_ram_med_LOD.CAS, 40.0
engine_model data/models_engine/tort_ram_low_LOD.CAS, 80.0
engine_model data/models_engine/tort_ram_very_low_LOD.CAS, max
engine_platforms none

engine_model_group dying
engine_skeleton tortoise_ram_dying
engine_model data/models_engine/tort_ram_dying_model.CAS, max
engine_platforms none


engine_model_group dead
engine_model data/models_engine/tort_ram_dying_dead.CAS, max
engine_platforms none

engine_shadow none

engine_radius 4
engine_length 7
engine_width 6
engine_height 3.0
engine_mass 25
engine_dock_dist 5.0
engine_mob_dist 6.3
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set

obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0

engine_spo

engine_push_point -2.5 1.0
engine_push_point -2.5 -1.3
engine_push_point -2.5 -3.6
engine_push_point 2.5 1.0
engine_push_point 2.5 -1.3
engine_push_point 2.5 -3.6

engine_health 150
;engine_armour ram

attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
Greek entry

type tortoise_ram_greek
culture greek
class ram

engine_model_group normal
engine_skeleton tortoise_ram
engine_collision data/models_engine/tort_ram_low_LOD.CAS
engine_model data/models_engine/Tortram_model.CAS, 20.0
engine_model data/models_engine/tort_ram_med_LOD.CAS, 40.0
engine_model data/models_engine/tort_ram_low_LOD.CAS, 80.0
engine_model data/models_engine/tort_ram_very_low_LOD.CAS, max
engine_platforms none

engine_model_group dying
engine_skeleton tortoise_ram_dying
engine_model data/models_engine/tort_ram_dying_model.CAS, max
engine_platforms none


engine_model_group dead
engine_model data/models_engine/tort_ram_dying_dead.CAS, max
engine_platforms none

engine_shadow none

engine_radius 4
engine_length 7
engine_width 6
engine_height 3.0
engine_mass 25
engine_dock_dist 5.0
engine_mob_dist 6.3
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set

obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0

engine_spo

engine_push_point -2.5 1.0
engine_push_point -2.5 -1.3
engine_push_point -2.5 -3.6
engine_push_point 2.5 1.0
engine_push_point 2.5 -1.3
engine_push_point 2.5 -3.6

engine_health 150
;engine_armour ram

attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
Eastern entry

type eastern_ram_eastern
culture eastern
class ram

engine_model_group normal
engine_skeleton eastern_ram
engine_collision data/models_engine/east_ram_low_LOD.CAS
engine_model data/models_engine/Eastram_model.CAS, 20.0
engine_model data/models_engine/east_ram_med_LOD.CAS, 40.0
engine_model data/models_engine/east_ram_low_LOD.CAS, max
engine_platforms none

engine_model_group dying
engine_skeleton eastern_ram_dying
engine_model data/models_engine/east_ram_dying.CAS, max
engine_platforms none

engine_model_group dead
engine_model data/models_engine/east_ram_dead.CAS, max
engine_platforms none

engine_shadow none

engine_radius 4.0
engine_length 4
engine_width 4
engine_height 3.0
engine_mass 25
engine_dock_dist 5.6
engine_mob_dist 6.7
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set

obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0

engine_spo

engine_push_point -3.0 1.6
engine_push_point -3.0 0.0
engine_push_point -3.0 -1.6
engine_push_point 3.0 1.6
engine_push_point 3.0 0.0
engine_push_point 3.0 -1.6

engine_health 120
;engine_armour ram

attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
Carthaginian entry

type eastern_ram_carthaginian
culture carthaginian
class ram

engine_model_group normal
engine_skeleton eastern_ram
engine_collision data/models_engine/east_ram_low_LOD.CAS
engine_model data/models_engine/Eastram_model.CAS, 20.0
engine_model data/models_engine/east_ram_med_LOD.CAS, 40.0
engine_model data/models_engine/east_ram_low_LOD.CAS, max
engine_platforms none

engine_model_group dying
engine_skeleton eastern_ram_dying
engine_model data/models_engine/east_ram_dying.CAS, max
engine_platforms none

engine_model_group dead
engine_model data/models_engine/east_ram_dead.CAS, max
engine_platforms none

engine_shadow none

engine_radius 4.0
engine_length 4
engine_width 4
engine_height 3.0
engine_mass 25
engine_dock_dist 5.6
engine_mob_dist 6.7
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set

obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0

engine_spo

engine_push_point -3.0 1.6
engine_push_point -3.0 0.0
engine_push_point -3.0 -1.6
engine_push_point 3.0 1.6
engine_push_point 3.0 0.0
engine_push_point 3.0 -1.6

engine_health 120
;engine_armour ram

attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
Egyptian entry

type eastern_ram_egyptian
culture egyptian
class ram

engine_model_group normal
engine_skeleton eastern_ram
engine_collision data/models_engine/east_ram_low_LOD.CAS
engine_model data/models_engine/Eastram_model.CAS, 20.0
engine_model data/models_engine/east_ram_med_LOD.CAS, 40.0
engine_model data/models_engine/east_ram_low_LOD.CAS, max
engine_platforms none

engine_model_group dying
engine_skeleton eastern_ram_dying
engine_model data/models_engine/east_ram_dying.CAS, max
engine_platforms none

engine_model_group dead
engine_model data/models_engine/east_ram_dead.CAS, max
engine_platforms none

engine_shadow none

engine_radius 4.0
engine_length 4
engine_width 4
engine_height 3.0
engine_mass 25
engine_dock_dist 5.6
engine_mob_dist 6.7
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set

obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0

engine_spo

engine_push_point -3.0 1.6
engine_push_point -3.0 0.0
engine_push_point -3.0 -1.6
engine_push_point 3.0 1.6
engine_push_point 3.0 0.0
engine_push_point 3.0 -1.6

engine_health 120
;engine_armour ram

attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
Barbarian entry

type open_frame_ram
culture barbarian
class ram

engine_model_group normal
engine_skeleton open_frame_ram
engine_collision data/models_engine/openframe_very_low_LOD.CAS
engine_model data/models_engine/OFRam_model.CAS, 20.0
engine_model data/models_engine/openframe_med_LOD.CAS, 40.0
engine_model data/models_engine/openframe_low_LOD.CAS, 80.0
engine_model data/models_engine/openframe_very_low_LOD.CAS, max
engine_platforms none

engine_model_group dying
engine_skeleton open_frame_ram_dying
engine_model data/models_engine/openframe_dying_model.CAS, max
engine_platforms none

engine_model_group dead
engine_model data/models_engine/openframe_dying_dead.CAS, max
engine_platforms none

engine_shadow none

engine_radius 1.5
engine_length 3
engine_width 3
engine_height 3.0
engine_mass 25
engine_dock_dist 2.6
engine_mob_dist 3.9
engine_flammable true
engine_ignition 0.8
fire_effect engine_fire_ram_set

obstacle_shape rectangle
obstacle_x_radius 2.2
obstacle_y_radius 5.0

engine_spo

engine_push_point -2.5 1.0
engine_push_point -2.5 -1.5
engine_push_point 2.5 1.0
engine_push_point 2.5 -1.5

engine_health 100
;engine_armour ram

attack_stat 10, 4, no, 0, 0, melee, simple, blunt
attack_stat_attr no
Notice how the name (type) lines have been modified to help the game distinguish between each ram's culture category. There's no need to create any additonal enum entries for these new ram names, as apparently none exist.

Other areas that have changed from the vanilla entries include the removal of the semicolons (;) from multiple Roman & Greek ram CAS model entries. This unlocks a much more detailed tortoise ram model than the existing vanilla one.

Additionally, you may have noticed that the engine_push_point and engine_dock_dist entries for the Eastern, Carthaginian, Egyptian and Barbarian rams have been modified. This is to reflect changes in the ram model, and characteristics of each ram type. These modifcations were implemented after numerous testing and tweaking in custom battles to locate suitable values for these entries.

The End Result

Tortoise Ram
https://img83.imageshack.us/img83/8761/ram17zl.th.jpg (https://img83.imageshack.us/my.php?image=ram17zl.jpg)

Eastern Ram
https://img83.imageshack.us/img83/8126/ram39um.th.jpg (https://img83.imageshack.us/my.php?image=ram39um.jpg)

Open Frame Ram
https://img78.imageshack.us/img78/3903/ram26cb.th.jpg (https://img78.imageshack.us/my.php?image=ram26cb.jpg)