Version 1.150 - 1.151 - 1.152 - 1.153 released

Users who are viewing this thread

Oh yeah! This new patch is great for modders, I got all the good stuff from WFAS plus more. Good work guys.

agent_set_damage_modifier              = 2091  # (agent_set_damage_modifier, <agent_id>, <value>), # value is in percentage, 100 is default
agent_set_accuracy_modifier            = 2092  # (agent_set_accuracy_modifier, <agent_id>, <value>), # value is in percentage, 100 is default, value can be between [0..1000]
agent_set_speed_modifier              = 2093  # (agent_set_speed_modifier, <agent_id>, <value>), # value is in percentage, 100 is default, value can be between [0..1000]
agent_set_reload_speed_modifier        = 2094  # (agent_set_reload_speed_modifier, <agent_id>, <value>), # value is in percentage, 100 is default, value can be between [0..1000]
agent_set_use_speed_modifier          = 2095  # (agent_set_use_speed_modifier, <agent_id>, <value>), # value is in percentage, 100 is default, value can be between [0..1000]
agent_set_visibility                  = 2096  # (agent_set_visibility, <agent_id>, <value>), # 0 for invisible, 1 for visible.
F*** YES!

So many new animations...
 
...but they overwrote animations in the "unused human" area, breaking my source. 

Ah, the joys of rebuilding headers and working around other people's kludges, good times :lol:

Sound in my mod appears to be really horribly broken on this hardware atm.  I'm afraid of touching priorities or volumes though, because it's pretty clear that something major got screwed up in terms of the listening source or distance to it- it's kind of funny having the sound suddenly cut out then having it all full blast like usual, and having interface sounds play at minimal volumes, etc. :roll:  I presume somebody's working on a patch for that, as I see that the torch-and-pitchfork crew is already out and making a lot of noise.
 
Winmerge check. (against 1.134, as I am still modding with that)

Code:
party_end_battle                = 108 # (party_end_battle,<party_no>),

is_edit_mode_enabled            = 255 # (is_edit_mode_enabled),

options_get_damage_to_player    = 260 # (options_get_damage_to_player, <destination>), #0 = 1/4, 1 = 1/2, 2 = 1/1
options_set_damage_to_player    = 261 # (options_set_damage_to_player, <value>), #0 = 1/4, 1 = 1/2, 2 = 1/1
options_get_damage_to_friends   = 262 # (options_get_damage_to_friends, <destination>), #0 = 1/2, 1 = 3/4, 2 = 1/1
options_set_damage_to_friends   = 263 # (options_set_damage_to_friends, <value>), #0 = 1/2, 1 = 3/4, 2 = 1/1
options_get_combat_ai           = 264 # (options_get_combat_ai, <destination>), #0 = good, 1 = average, 2 = poor
options_set_combat_ai           = 265 # (options_set_combat_ai, <value>), #0 = good, 1 = average, 2 = poor
options_get_campaign_ai         = 266 # (options_get_campaign_ai, <destination>), #0 = good, 1 = average, 2 = poor
options_set_campaign_ai         = 267 # (options_set_campaign_ai, <value>), #0 = good, 1 = average, 2 = poor
options_get_combat_speed        = 268 # (options_get_combat_speed, <destination>), #0 = slowest, 1 = slower, 2 = normal, 3 = faster, 4 = fastest
options_set_combat_speed        = 269 # (options_set_combat_speed, <value>), #0 = slowest, 1 = slower, 2 = normal, 3 = faster, 4 = fastest

player_spawn_new_agent               = 409 # (player_spawn_new_agent, <player_id>, <entry_point>),

store_last_sound_channel        = 615 # (store_last_sound_channel, <destination>),
stop_sound_channel              = 616 # (stop_sound_channel, <sound_channel_no>),

position_rotate_z               = 725 # (position_rotate_z,<position_no>,<angle>,[use_global_z_axis]), # set use_global_z_axis as 1 if needed, otherwise you don't have to give that.

overlay_set_container_overlay            	= 951 # (overlay_set_container_overlay, <overlay_id>, <container_overlay_id>) # -1 to reset
overlay_set_additional_render_height	  = 952 # (overlay_set_additional_render_height, <overlay_id>, <height_adder>),

show_item_details                         = 970 # (show_item_details, <item_id>, <position_no>, <show_default_text_or_not>) #show_default_text_or_not should be 1 for showing "default" for default item costs
close_item_details                        = 971 # (close_item_details)
show_item_details_with_modifier           = 972 # (show_item_details_with_modifier, <item_id>, <item_modifier>, <position_no>, <show_default_text_or_not>) #show_default_text_or_not should be 1 for showing "default" for default item costs

party_set_extra_icon                   = 1682   # (party_set_extra_icon, <party_id>, <map_icon_id>, <up_down_distance_fixed_point>, <up_down_frequency_fixed_point>, <rotate_frequency_fixed_point>, <fade_in_out_frequency_fixed_point>), #frequencies are in number of revolutions per second

agent_deliver_damage_to_agent          = 1722	# (agent_deliver_damage_to_agent, <agent_id_deliverer>, <agent_id>, <value>, [item_id]), #if value <= 0, then damage will be calculated using the weapon item. # item_id is the item that the damage is delivered. can be ignored.

agent_unequip_item                     = 1774	  # (agent_unequip_item, <agent_id>, <item_id>, [weapon_slot_no]), #weapon_slot_no is optional, and can be between 1-4 (used only for weapons, not armor). in either case, item_id has to be set correctly.
agent_equip_item                       = 1779	  # (agent_equip_item, <agent_id>, <item_id>, [weapon_slot_no]), #for weapons, agent needs to have an empty weapon slot. weapon_slot_no is optional, and can be between 1-4 (used only for weapons, not armor).

scene_prop_set_prune_time              = 1819   # (scene_prop_set_prune_time, <scene_prop_id>, <value>), # prune time can only be set to objects that are already on the prune queue. static objects are not affected by this operation.
scene_prop_set_cur_hit_points          = 1820   # (scene_prop_set_cur_hit_points, <scene_prop_id>, <value>),
scene_prop_fade_out                    = 1822   # (scene_prop_fade_out, <scene_prop_id>, <fade_out_time>)
scene_prop_fade_in                     = 1823   # (scene_prop_fade_in, <scene_prop_id>, <fade_in_time>)

agent_get_ammo_for_slot                = 1825	# (agent_get_ammo_for_slot, <destination>, <agent_id>, <slot_no>), #slot no can be between 0-3
agent_is_in_line_of_sight              = 1826 # (agent_is_in_line_of_sight, <agent_id>, <position_no>), # rotation of the position register is not used.
agent_deliver_damage_to_agent_advanced = 1827	# (agent_deliver_damage_to_agent_advanced, <destination>, <agent_id_deliverer>, <agent_id>, <value>, [item_id]), #if value <= 0, then damage will be calculated using the weapon item. # item_id is the item that the damage is delivered. can be ignored.
#this advanced mode of agent_deliver_damage_to_agent has 2 differences. 1- the delivered damage is returned. 2- the damage delivery is done after checking the relationship between agents. this might cause no damage, or even damage to the shooter agent because of a friendly fire.
team_get_gap_distance				   = 1828   # (team_get_gap_distance, <destination>, <team_no>, <sub_class>),

add_missile                            = 1829	# (add_missile, <agent_id>, <starting_position>, <starting_speed_fixed_point>, <weapon_item_id>, <weapon_item_modifier>, <missile_item_id>, <missile_item_modifier>), # starting position also contains the direction of the arrow

prop_instance_play_sound               = 1881 # (prop_instance_play_sound, <scene_prop_id>, <sound_id>, [flags]), # sound flags can be given
prop_instance_stop_sound               = 1882 # (prop_instance_stop_sound, <scene_prop_id>),

prop_instance_clear_attached_missiles  = 1885 # (prop_instance_clear_attached_missiles, <scene_prop_id>), # Works only with dynamic scene props (non-retrievable missiles)
prop_instance_add_particle_system      = 1886 # (prop_instance_add_particle_system, <scene_prop_id>, <par_sys_id>, <position_no>), # position is local, not global.
prop_instance_stop_all_particle_systems= 1887 # (prop_instance_stop_all_particle_systems, <scene_prop_id>),
particle_system_burst_no_sync		   = 1975	# (particle_system_burst_without_sync,<par_sys_id>,<position_no>,[percentage_burst_strength]),

spawn_item_without_refill              = 1976   # (spawn_item_without_refill, <item_kind_id>, <item_modifier>, [seconds_before_pruning]) #if seconds_before_pruning = 0 then item never gets pruned
agent_get_item_cur_ammo                = 1977	# (agent_get_item_cur_ammo, <destination>, <agent_id>, <slot_no>)

agent_ai_get_look_target               = 2080 # (agent_ai_get_look_target, <destination>, <agent_id>),
agent_ai_get_move_target               = 2081 # (agent_ai_get_move_target, <destination>, <agent_id>),
agent_ai_get_behavior_target           = 2082 # (agent_ai_get_behavior_target, <destination>, <agent_id>),

agent_set_max_hit_points               = 2090	# set absolute to 1 if value is absolute, otherwise value will be treated as relative number in range [0..100]
						# (agent_set_max_hit_points,<agent_id>,<value>,[absolute]),
agent_set_damage_modifier              = 2091   # (agent_set_damage_modifier, <agent_id>, <value>), # value is in percentage, 100 is default
agent_set_accuracy_modifier            = 2092   # (agent_set_accuracy_modifier, <agent_id>, <value>), # value is in percentage, 100 is default, value can be between [0..1000]
agent_set_speed_modifier               = 2093   # (agent_set_speed_modifier, <agent_id>, <value>), # value is in percentage, 100 is default, value can be between [0..1000]
agent_set_reload_speed_modifier        = 2094   # (agent_set_reload_speed_modifier, <agent_id>, <value>), # value is in percentage, 100 is default, value can be between [0..1000]
agent_set_use_speed_modifier           = 2095   # (agent_set_use_speed_modifier, <agent_id>, <value>), # value is in percentage, 100 is default, value can be between [0..1000]
agent_set_visibility                   = 2096   # (agent_set_visibility, <agent_id>, <value>), # 0 for invisible, 1 for visible.

val_lshift             = 2100 # (val_lshift, <destination>, <value>), # shifts the bits of destination to left by value amount.
val_rshift             = 2101 # (val_rshift, <destination>, <value>), # shifts the bits of destination to right by value amount.

store_zoom_amount               = 2220 # (store_zoom_amount, <destination_fixed_point>),
set_zoom_amount                 = 2221 # (set_zoom_amount, <value_fixed_point>),

set_cheer_at_no_enemy = 2379    # (set_cheer_at_no_enemy, <value>), # values:0->do not cheer (do as commander says), 1->cheer

set_postfx                  = 2386
set_river_shader_to_mud     = 2387 #changes river material for muddy env
show_troop_details          = 2388 #(show_troop_details, <troop_id>, <position>, <troop_price>)
set_skybox                  = 2389 #(set_skybox, <non_hdr_skybox_index>, <hdr_skybox_index>)	#forces selected skybox for a scene, use -1 to disable 
set_startup_sun_light       = 2390 #(set_startup_sun_light, <r>, <g>, <b>)	#changes the sun light color
set_startup_ambient_light   = 2391 #(set_startup_ambient_light, <r>, <g>, <b>)	#changes the ambient light color
set_startup_ground_ambient_light = 2392 #(set_startup_ground_ambient_light, <r>, <g>, <b>)	#changes the ground ambient light color
rebuild_shadow_map			= 2393 #(rebuild_shadow_map),

set_shader_param_int			= 2400 # (set_shader_param_int, <parameter_name>, <value>),	#Sets the int shader parameter <parameter_name> to <value>
set_shader_param_float			= 2401 # (set_shader_param_float, <parameter_name>, <value>),	#Sets the float shader parameter <parameter_name> to <value>
set_shader_param_float4			= 2402 # (set_shader_param_float4, <parameter_name>, <valuex>, <valuey>, <valuez>, <valuew>),	#Sets the float4 shader parameter <parameter_name> to <valuex/y/z/w>
set_shader_param_float4x4		= 2403 # (set_shader_param_float4x4, <parameter_name>, [0][0], [0][1], [0][2], [1][0], [1][1], [1][2], [2][0], [2][1], [2][2], [3][0], [3][1], [3][2]),	#Sets the float4x4 shader parameter <parameter_name> to the given values .w components are 0001 by default

Some are new. Some are enhanced. Still, much much much more than I could ever have expected :smile:. I feel loved.

Awesome ones:

Code:
Shader:
set_shader_param_int			= 2400 # (set_shader_param_int, <parameter_name>, <value>),	#Sets the int shader parameter <parameter_name> to <value>
set_shader_param_float			= 2401 # (set_shader_param_float, <parameter_name>, <value>),	#Sets the float shader parameter <parameter_name> to <value>
set_shader_param_float4			= 2402 # (set_shader_param_float4, <parameter_name>, <valuex>, <valuey>, <valuez>, <valuew>),	#Sets the float4 shader parameter <parameter_name> to <valuex/y/z/w>
set_shader_param_float4x4		= 2403 # (set_shader_param_float4x4, <parameter_name>, [0][0], [0][1], [0][2], [1][0], [1][1], [1][2], [2][0], [2][1], [2][2], [3][0], [3][1], [3][2]),	#Sets the float4x4 shader parameter <parameter_name> to the given values .w components are 0001 by default

Zoom:
store_zoom_amount               = 2220 # (store_zoom_amount, <destination_fixed_point>),
set_zoom_amount                 = 2221 # (set_zoom_amount, <value_fixed_point>),

Hehe...: (WSE has this... and I actually coded a whole scene-prop simulator for it; this should have been added WAAAY back!)
add_missile                            = 1829	# (add_missile, <agent_id>, <starting_position>, <starting_speed_fixed_point>, <weapon_item_id>, <weapon_item_modifier>, <missile_item_id>, <missile_item_modifier>), # starting position also contains the direction of the arrow

Others:
agent_deliver_damage_to_agent          = 1722	# (agent_deliver_damage_to_agent, <agent_id_deliverer>, <agent_id>, <value>, [item_id]), #if value <= 0, then damage will be calculated using the weapon item. # item_id is the item that the damage is delivered. can be ignored.
(Enhanced, no more headshot figures I guess...)

Nothing too exciting for triggers.
 
Question though. Do these set_shader_param_xxx operation also work for stuff that's defined in the postfx file?
 
The fun of making new operations for a commercial game is that your ideas can be repurposed.... Really ridiculous for TW to do it if you ask me, but it is for the betterment of us all
 
Whee, reload animations for troops with firearms are badly broken when kneeling.

Worse yet, why are bowmen kneeling while firing?  They shouldn't crouch at all.

Why are crossbowmen with the can't-move flag set for their weapons not standing to reload?  Why aren't infantry with firearm animations but using Crossbow itc not standing to reload?  Why aren't infantry with throwing weapons forced to stand?

Why aren't infantry with shields in a line with enemies further away than 50 meters not kneeling?

So much doesn't make sense here, when crouch is enabled. 

Crouch is really a useful addition to the game, as it reduces target profiles and it makes troop actions feel a lot more natural, but meh, this is all kinds of broken  :lol:
 
can_crouch = 1
can_objects_make_sound = 1
disable_zoom = 0
use_advanced_formation = 0
use_crossbow_as_firearm = 0
can_reload_while_moving = 1
can_run_faster_with_skills = 1
use_phased_reload = 1
horses_try_running_away = 1
lance_pike_effect_speed = 3.0
no_friendly_fire_for_bots = 1
can_adjust_camera_distance = 1
sync_ragdoll_effects = 0
has_forced_particles = 0
can_use_scene_props_in_single_player = 1
disable_attack_while_jumping = 0
disable_high_hdr = 0
has_accessories_for_female = 0

I haven't turned on the advanced formation stuff yet; I'm going to have to resolve some differences between my strings in the CSVs and Native first, amongst other fun stuff.

I'll have to look into the reload / firing stuff, see what can be done.  The whole crouching animation stuff is, erm, very very much feeling like it was never tested properly with Native and I am thinking that we're going to need some custom animations for that pretty quickly.
 
xenoargh said:
I'll have to look into the reload / firing stuff, see what can be done.  The whole crouching animation stuff is, erm, very very much feeling like it was never tested properly with Native and I am thinking that we're going to need some custom animations for that pretty quickly.
Hmm, I'm pretty sure that most of the new commands are in-game to support the DLC that was released. If they can get it to work I'm sure we can.
 
xenoargh said:
The whole crouching animation stuff is, erm, very very much feeling like it was never tested properly with Native and I am thinking that we're going to need some custom animations for that pretty quickly.
With a couple trips in game and what others are reporting in the Guildhall's thread (e.g. backwards crossbowmen), it is very much feeling like most of the engine changes weren't tested properly in Native. Wunderbar.
 
You mean porting? I would say yes if you haven't added any animations. It'll be easier to port since many of the changes aren't made to the "module_*.py" files. Most of them are just added functions here and there.
 
As far as the new stuff goes, I tested my mod in the new version without changing anything and all the crouching and new orders/formations seem to work perfectly without breaking any of my code or PBOD.

And here I was thinking I'd have to remake the mod for a fourth time.
 
Docm30 said:
As far as the new stuff goes, I tested my mod in the new version without changing anything and all the crouching and new orders/formations seem to work perfectly without breaking any of my code or PBOD.

And here I was thinking I'd have to remake the mod for a forth time.
o_O Are you sure? I was thinking that too.
 
I'm glad you guys like the engine changes!

Don't forget you can also place core_ brf files in your module directory now and edit them, they will be loaded.

I hope you all will make better mods now, as always if there are any more intresting requests that could do a lot with little time, hit me up with a PM.


The module system and other sourcecode for the DLC will be released in a few months time, then you can easily make mods upon NW, ill create a simple installer script for you guys aswell for that.

Cheers and mod on!

Vince.
 
Affengeil said:
I want to report 2 bugs which I noticed with the new parameters in the module.ini

can_crouch = 1
If you crouch down, then the agend plays many different animations in a loop.

disable_attack_while_jumping = 1
If you hold an attack, then jump would not chancel the attack... it will stay untill you block or do another attack.

Did you dev-guys noticed this?
 
Back
Top Bottom