• The forum has been updated. For an explanation of some of the changes, head over here.

Modding Q&A [For Quick Questions and Answers]

Currently viewing this thread:

Status
Not open for further replies.
Ivkolya said:
NPC99 said:
For Deathmatch:
You have to place entry points  0 - 64 so that people won't spawn on random places.

https://forums.taleworlds.com/index.php/topic,89831.0.html

Thank you, I saw that tutorial and figured out that it is normal for deathmatch and team deathmatch, but I still don't understand why in battle mode both teams spawn not at the entry points. Depending on how I place entry points either one team spawns outside of entry points either both teams spawn where they want (what is strange - one of teams always spawns at the same place all the time, but there are no entry points in that place)

I don’t mod multiplayer, do I’ve no idea. For battle the tutorial said:

Entry points:
Battle.
0 faction 1
32 faction 2

67 - Master of the Field flag pos 1
68 - Master of the Field flag pos 2
69 - Master of the Field flag pos 3


However, the tutorial was prior to NW. I suggest you look at the relevant mission templates in NW and see what spawn points are assigned so you can ensure to place these in scene. Entry points are the first number in a mission template’s spawn record:
(3,mtef_scene_source|mtef_team_0,af_override_horse,0,1,[]),


 

Linir

Veteran
Ivkolya said:
Linir said:
Hello, I require some help to make a small change (just for me) on The Last Days mod.
I intend to copy the Rivendell Helmets and replace the lorien helmets with them.
Can someone give me some pointers on what I should do?
Thanks :smile:

Just download OpenBRF, find Rivendell helmets meshes in .brf files (in Resoure folder), copy them, open another window of OpenBRF, find Lorien helmets in .brf files (they can even be in the same file), paste copied Rivendell helmets meshes over Lorien helmets, give them names of Lorien helmets, delete old Lorien helmets (or rename them so game won't use them)

Fantastic advice, kudos man! It just replaced all helmets (even if using the same model for some troops, due to Lorien having 3 different types of helms comparing to rivendell 2) and even changed the ones at the market place. Again thanks, it was a small thing but it was driving me crazy :smile:
 
When you are resting in a town and the besiegers pile in and attack you usually automatically get taken to the menu "siege_started_defender". However currently in it doesn't happen automatically, you have to click the screen to get there meaning you can miss an attack phase or even the whole fight if you are slow and the defensive garrison is small.

Trouble is I cannot find any code to initiate this automatic menu jump. The only place in the module where the player is sent to mnu_siege_started_defender is when you get to a town after a siege has started. I have look at the game_encounter and siege/ai processing scripts to see if I can find the instruction to activate the menu but I cannot find it.

Does anyone know? Is this particular interaction hardcoded (ai party to party) because without the code it is hard to see why the game is now ignoring the fact that the player is resting there when the siege starts.
 

twinsens

Squire
I'm having trouble finding the right term for an error I've seen across a few mods, hoping someone can tell me what I need to search for.

Specifically meshes that bug out and extend or stretch into infinity, I've seen it happen in alot of mods when NPCs die, often they're arms will stretch out across the whole battlefield.
I'm trying to implement an OSP into my mod and the item seems to be bugged in a similar way, a part of the wrist area extending up into the sky.

Does it have a name I can look for or does anyone have any advice?
 
If I alt-tab during the first loading screen, there is like a 1/3 chance of the game crashing when I try to load a savegame (any save, I don't think it's save file being corrupted as I can load it later). It doesn't happen with native or other mods. What might be the problem?

Here's the rlg_log:

Code:
Starting new log file.
 Version:  1.174 
 
-- OS: Microsoft Windows 7  Service Pack 1 (build 7601), 64-bit
-- RAM: Available physical RAM: 3990MB/4096MB
-- CPU: AMD Phenom(tm) II X6 1055T Processor (AuthenticAMD)
 - L1 cache size: 64K
 - L2 cache size: 512K
 - CPU Features: FPU MMX SSE SSE2 SSE3 HTT 3DNow! Ex3DNow! MmxExt 
 - Number of CPUs: 6 ( Speed: ~2812MHz / ~2812MHz / ~2812MHz / ~2812MHz / ~2812MHz / ~2812MHz )

-- GPU:
 - D3D9 Adapter: 0 / Driver: aticfx32.dll / Description: AMD Radeon HD 7700 Series
 - Texture Memory: 4095 ( Available Texture Memory: 1736 )

 Received stats and achievements from Steam
 
 Processing Ini File {
 Module_name =  Calradia 
 Num Hints =  12 
 Setting Map Min X =  -180.000000 
 Setting Map Max X =  180.000000 
 Setting Map Min Y =  -145.000000 
 Setting Map Max Y =  145.000000 
 Setting Time Multiplier =  0.250000 
 Setting Seeing Range Multiplier =  6.500000 
 Setting Track Spotting Multiplier =  0.800000 
 Setting player_wounded_treshold =  5.000000 
 Setting hero_wounded_treshold =  15.000000 
 Setting Skill Prisoner Management Bonus =  5 
 Setting Skill Leadership Bonus =  3 
 Setting Base Companion Limit =  20 
 Setting player_xp_multiplier =  2.000000 
 Setting hero_xp_multiplier =  2.000000 
 Setting regulars_xp_multiplier =  3.000000 
 Setting damage_interrupt_attack_treshold =  3.000000 
 Setting damage_interrupt_attack_treshold_mp =  1.000000 
 Setting armor_soak_factor_against_cut =  0.800000 
 Setting armor_soak_factor_against_pierce =  0.650000 
 Setting armor_soak_factor_against_blunt =  0.500000 
 Setting armor_reduction_factor_against_cut =  1.000000 
 Setting armor_reduction_factor_against_pierce =  0.500000 
 Setting armor_reduction_factor_against_blunt =  0.750000 
 Setting horse_charge_damage_multiplier =  1.000000 
 Setting couched_lance_damage_multiplier =  0.650000 
 Setting fall_damage_multiplier =  1.000000 
 Setting shield_penetration_offset =  30.000000 
 Setting shield_penetration_factor =  3.000000 
 Setting missile_damage_speed_power =  1.900000 
 Setting melee_damage_speed_power =  2.000000 
 Setting multiplayer_walk_enabled =  0 
 Setting mission_object_prune_time =  180 
 Scan Module Textures =  1 
 Scan Module Sounds =  0 
 Loading Resource  test 
 Loading Resource  textures_face_gen 
 Loading Resource  shaders 
 Loading Resource  textures 
 Loading Resource  ccoop_extra_ui_textures 
 Loading Resource  materials 
 Loading Resource  materials_face_gen 
 Loading Resource  ccoop_extra_ui_materials 
 Loading Resource  uimeshes 
 Loading Resource  meshes_face_gen 
 Loading Resource  helpers 
 Loading Resource  map_tree_meshes 
 Loading Resource  map_icon_meshes 
 Loading Resource  particle_meshes 
 Loading Resource  skeletons 
 Loading Resource  tree_meshes 
 Loading Resource  xtree_meshes 
 Loading Resource  grass_meshes 
 Loading Resource  plant_meshes 
 Loading Resource  body_meshes 
 Loading Resource  object_meshes 
 Loading Resource  object_bodies 
 Loading Resource  goods_meshes 
 Loading Resource  item_meshes1 
 Loading Resource  horse_a 
 Loading Resource  arabian_horses 
 Loading Resource  arabian_castle 
 Loading Resource  food 
 Loading Resource  beards 
 Loading Resource  armors_b 
 Loading Resource  armors_c 
 Loading Resource  armors_d 
 Loading Resource  armors_e 
 Loading Resource  armors_f 
 Loading Resource  armors_g 
 Loading Resource  armors_h 
 Loading Resource  armors_i 
 Loading Resource  boots_b 
 Loading Resource  boots_c 
 Loading Resource  helmets 
 Loading Resource  helmets_b 
 Loading Resource  village_houses 
 Loading Resource  village_houses_a 
 Loading Resource  village_houses_b 
 Loading Resource  hair 
 Loading Resource  deneme 
 Loading Resource  interiors_a 
 Loading Resource  interiors_b 
 Loading Resource  interiors_c 
 Loading Resource  arena 
 Loading Resource  map_icons_b 
 Loading Resource  castle_a 
 Loading Resource  dungeon 
 Loading Resource  stone_houses 
 Loading Resource  snowy_houses 
 Loading Resource  snowy_castle 
 Loading Resource  helmets_d 
 Loading Resource  helmets_e 
 Loading Resource  helmets_f 
 Loading Resource  castle_b 
 Loading Resource  square_keep 
 Loading Resource  anim_b 
 Loading Resource  shields 
 Loading Resource  shields_b 
 Loading Resource  weapon_meshes_c 
 Loading Resource  xtree_meshes_b 
 Loading Resource  map_icons_c 
 Loading Resource  pictures 
 Loading Resource  user_interface_b 
 Loading Resource  user_interface_c 
 Loading Resource  scene_encounter_spot 
 Loading Resource  interior_thirsty_lion 
 Loading Resource  scene_small_tavern 
 Loading Resource  weapon_meshes1 
 Loading Resource  weapon_meshes_b 
 Loading Resource  houses1 
 Loading Resource  wall_meshes1 
 Loading Resource  town_houses 
 Loading Resource  doors 
 Loading Resource  churches 
 Loading Resource  town_houses_b 
 Loading Resource  castle_c 
 Loading Resource  castle_d 
 Loading Resource  castle_e 
 Loading Resource  castle_f 
 Loading Resource  castle_g 
 Loading Resource  castle_h 
 Loading Resource  castle_i 
 Loading Resource  gatehouse 
 Loading Resource  viking_houses 
 Loading Resource  fake_houses 
 Loading Resource  town_houses_c 
 Loading Resource  banners 
 Loading Resource  map_flags 
 Loading Resource  map_flags_b 
 Loading Resource  map_flags_c 
 Loading Resource  map_flags_d 
 Loading Resource  particles_2 
 Loading Resource  prisons 
 Loading Resource  prisons_b 
 Loading Resource  interiors_d 
 Loading Resource  costumes_b 
 Loading Resource  costumes_c 
 Loading Resource  arena_costumes 
 Loading Resource  boots_a 
 Loading Resource  terrain_borders 
 Loading Resource  terrain_borders_b 
 Loading Resource  terrain_borders_c 
 Loading Resource  skyboxes 
 Loading Resource  object_b 
 Loading Resource  tree_e_meshes 
 Loading Resource  destroy 
 Loading Resource  destroy_snowy 
 Loading Resource  xtree_meshes_c 
 Loading Resource  grass_meshes_b 
 Loading Resource  interiors_steppe 
 Loading Resource  grooming_horse 
 Loading Resource  town_houses_d 
 Loading Resource  horses_b 
 Loading Resource  ani_horse_mounted 
 Loading Resource  deneme2 
 Loading Resource  horse_skeleton 
 Loading Resource  steppe_fake_houses 
 Loading Resource  weapon_meshes_d 
 Loading Resource  tableau_shields 
 Loading Resource  heraldic_armors 
 Loading Resource  spear 
 Loading Resource  weapons_e 
 Loading Resource  weapons_f 
 Loading Resource  instruments 
 Loading Resource  sarranid_armors 
 Loading Resource  custom_banner 
 Loading Resource  simple_primitives 
 Loading Resource  ani_man_walk 
 Loading Resource  ani_twohanded 
 Loading Resource  ani_onehanded 
 Loading Resource  ani_death 
 Loading Resource  ani_stand_guardsman 
 Loading Resource  ani_human_mounted 
 Loading Resource  ani_lady_stand 
 Loading Resource  ani_poses 
 Loading Resource  ani_stand_shopkeeper 
 Loading Resource  ani_man_cheer 
 Loading Resource  ani_stand_onhorse 
 Loading Resource  ani_throw_stone 
 Loading Resource  ani_strikes 
 Loading Resource  ani_equip_arms 
 Loading Resource  ani_run_p 
 Loading Resource  ani_run_forward_left_right 
 Loading Resource  uni_strikes3 
 Loading Resource  ani_walk_sideways 
 Loading Resource  ani_run_sideways 
 Loading Resource  ani_stand 
 Loading Resource  ani_crouch_down 
 Loading Resource  ani_low_walk 
 Loading Resource  ani_turn_man 
 Loading Resource  ani_attacks_single 
 Loading Resource  ani_lancer 
 Loading Resource  ani_attacks 
 Loading Resource  ani_kicks 
 Loading Resource  ani_parry_attack 
 Loading Resource  ani_walk_backward 
 Loading Resource  ani_run_lookingsides 
 Loading Resource  ani_defends 
 Loading Resource  ani_walk_lookingsides 
 Loading Resource  ani_jump 
 Loading Resource  ani_wedding 
 Loading Resource  arabian_props 
 Loading Resource  uni_jump 
 Loading Resource  uni_stances 
 Loading Resource  uni_equip 
 Loading Resource  uni_strike 
 Loading Resource  uni_throws 
 Loading Resource  uni_fistswing 
 Loading Resource  uni_lord_stand 
 Loading Resource  uni_defence 
 Loading Resource  uni_sideways 
 Loading Resource  dart 
 Loading Resource  armors_new_a 
 Loading Resource  armors_new_b 
 Loading Resource  armors_new_heraldic 
 Loading Resource  armors_new_arena 
 Loading Resource  crossbows 
 Loading Resource  arabian_armors 
 Loading Resource  rock 
 Loading Resource  costumes_d 
 Loading Resource  nordic_helmets 
 Loading Resource  sarranid_helmets 
 Loading Resource  sarranid_armor 
 Loading Resource  raw_materials 
 Loading Resource  khergit_lady_dress 
 Loading Resource  vaegir_helmets 
 Loading Resource  gauntlets_new 
 Loading Resource  sarranid_lady_dress 
 Loading Resource  sarranid_boots 
 Loading Resource  bride_dress 
 Loading Resource  full_plate_armor 
 Loading Resource  weapon_meshes_e 
 Loading Resource  fur_armors_a 
 Loading Resource  ui_server_filter 
 Loading Resource  warhorse_new 
 Loading Resource  ship 
 Loading Resource  arabian_houses 
 Loading Resource  object_c 
 Loading Resource  tree_f 
 Loading Resource  interiors_arabian 
 Loading Resource  arabian_village 
 Loading Resource  valleyProps 
 Loading Resource  workshops 
 Loading Resource  barrier_primitives 
 Loading Resource  town_houses_e 
 Loading Resource  wb_mp_objects_a 
 Loading Resource  prisonCart 
 Loading Resource  ccoop_extra_ui_meshes 
 Loading Module Resource  mod_textures 
 Loading Module Resource  mod_materials 
 Loading Module Resource  mod_undead 
 Loading Module Resource  mod_races 
 Loading Module Resource  mod_dwarf_beard_sibylla 
 Loading Module Resource  mod_items 
 Loading Module Resource  mod_map_icons 
 Loading Module Resource  mod_fort 
 Loading Module Resource  mod_scene_props 
 Loading Module Resource  mod_ogre 
 Loading Module Resource  mod_dragon 
 Loading Module Resource  mod_bear_armor 
 Loading Module Resource  mod_elf_buildings 
 Loading Module Resource  mod_elf_buildings2 
 Loading Module Resource  mod_statues 
 Loading Module Resource  mod_map_bridges 
 Loading Module Resource  mod_spells 
 Loading Module Resource  mod_banners_new 
 Loading Module Resource  mod_map_flags_new 
 Loading Module Resource  mod_items2 
 Loading Module Resource  mod_boar 
 Loading Module Resource  mod_saracen_armor 
 Loading Module Resource  mod_crowns 
 Loading Module Resource  mod_gothic 
 Loading Module Resource  mod_vampires 
 Loading Module Resource  mod_skeletons 
 Loading Module Resource  mod_skeletal_horse 
 Loading Module Resource  mod_wererat 
 Loading Module Resource  mod_maglubiyet 
 Loading Module Resource  mod_pics 
 
} //Processing Ini File Finished
 Loading Music...
 Loading Textures...
 Finished Loading Textures...
 L8 Format is  supported
 WARNING: UNABLE TO MAP SOUND CODE:  snd_release_crossbow_medium 
 WARNING: UNABLE TO MAP SOUND CODE:  snd_release_crossbow_far 
 WARNING: UNABLE TO MAP SOUND CODE:  snd_bullet_hit_body 
 WARNING: UNABLE TO MAP SOUND CODE:  snd_player_hit_by_bullet 
 WARNING: UNABLE TO MAP GAME PRESENTATION CODE:  prsnt_game_start 
 WARNING: UNABLE TO MAP GAME PRESENTATION CODE:  prsnt_game_escape 
 WARNING: UNABLE TO MAP GAME SCRIPT CODE:  game_check_party_sees_party 
 WARNING: UNABLE TO MAP GAME SCRIPT CODE:  game_get_party_speed_multiplier 
 WARNING: UNABLE TO MAP GAME SCRIPT CODE:  game_missile_launch 
 WARNING: UNABLE TO MAP GAME SCRIPT CODE:  game_missile_dives_into_water 
 WARNING: UNABLE TO MAP GAME SCRIPT CODE:  game_troop_upgrades_button_clicked 
 WARNING: UNABLE TO MAP GAME SCRIPT CODE:  game_character_screen_requested 
 Loading Module...
 Loading item kinds...
 Loading dialogs...
 Loading mission templates...
 Loading party templates...
 
rgl_post_warning_line: get_skeleton_anim failed for: equip_musket 
rgl_post_warning_line: get_skeleton_anim failed for: equip_musket 
rgl_post_warning_line: get_skeleton_anim failed for: crouch_stand_man 
rgl_post_warning_line: get_skeleton_anim failed for: crouch_stand_man 
rgl_post_warning_line: get_skeleton_anim failed for: crouch_greatsword_cstance 
rgl_post_warning_line: get_skeleton_anim failed for: crouch_staff_cstance 
rgl_post_warning_line: get_skeleton_anim failed for: crouch_fire_pistol 
rgl_post_warning_line: get_skeleton_anim failed for: crouch_fire_pistol 
rgl_post_warning_line: get_skeleton_anim failed for: man_reload 
rgl_post_warning_line: get_skeleton_anim failed for: man_reload 
rgl_post_warning_line: get_skeleton_anim failed for: man_reload 
rgl_post_warning_line: get_skeleton_anim failed for: crouch_staff_cstance_attack 
rgl_post_warning_line: get_skeleton_anim failed for: crouch_staff_cstance_attack 
rgl_post_warning_line: get_skeleton_anim failed for: spear_thrust_overhead 
rgl_post_warning_line: get_skeleton_anim failed for: spear_thrust_overhead 
rgl_post_warning_line: get_skeleton_anim failed for: spear_thrust_overhead 
rgl_post_warning_line: get_skeleton_anim failed for: spear_thrust_overhead 
rgl_post_warning_line: get_skeleton_anim failed for: spear_thrust_overhead 
rgl_post_warning_line: get_skeleton_anim failed for: reload_pistol_new 
rgl_post_warning_line: get_skeleton_anim failed for: musket_upper_swing 
rgl_post_warning_line: get_skeleton_anim failed for: musket_upper_swing 
rgl_post_warning_line: get_skeleton_anim failed for: musket_upper_swing 
rgl_post_warning_line: get_skeleton_anim failed for: musket_upper_swing 
rgl_post_warning_line: get_skeleton_anim failed for: musket_upper_swing 
rgl_post_warning_line: get_skeleton_anim failed for: musket_thrust_forward 
rgl_post_warning_line: get_skeleton_anim failed for: musket_thrust_forward 
rgl_post_warning_line: get_skeleton_anim failed for: musket_thrust_forward 
rgl_post_warning_line: get_skeleton_anim failed for: musket_thrust_forward_parry 
rgl_post_warning_line: get_skeleton_anim failed for: musket_thrust_forward_parry 
rgl_post_warning_line: get_skeleton_anim failed for: equip_pistol 
rgl_post_warning_line: get_skeleton_anim failed for: equip_pistol loading time:  41662 
 Finished All...
 Loading tracks
 load_map_data complete.
 Init_map complete.
 init_meta_mission complete.
 map mesh built.
 get_ideal_sun_color.
 get_ideal_fog_color.
 672 parties added.



twinsens said:
I'm having trouble finding the right term for an error I've seen across a few mods, hoping someone can tell me what I need to search for.

Specifically meshes that bug out and extend or stretch into infinity, I've seen it happen in alot of mods when NPCs die, often they're arms will stretch out across the whole battlefield.
I'm trying to implement an OSP into my mod and the item seems to be bugged in a similar way, a part of the wrist area extending up into the sky.

Does it have a name I can look for or does anyone have any advice?

It's a problem with ragdolls. Those troops are either using scaled skins or custom skeletons. You need to adjust the hitboxes. You can do that with openbrf.

This might help.
 
Found out the source of the xp bugs. A script (cf_reinforce_party) at game_start was trying to pull a faction from the slot_center_culture slot, but the problem is that the slot wasn't assigned yet, so it pulled 0 (faction). Then it tried to pull a troop from the slot_faction_tier_1_troop which also returned a 0 (which in the case of troops is the player). Then it added that player troop to the garrison. At the give_center_to_lord script, every time a lord was assigned a fief at game start the fief garrison was upgraded with xp. The player troop was in the garrison, so he received xp every time that happened (that's why 24-27 levels at start menu). The xp bug at the map was also caused by the copies, but this time by the simple trigger that simulates fief training. The fief's party was upgraded with xp, and again since there was copies of the player troop he received a part of that every time it happened (which was 40 times a day). :lol:

Now i got another question: How do i make the vanilla map AI less dumb? They don't seem to care much about the hostile parties passing nearby. It's almost like they are blind. In 1257 this doesn't seem to happen and parties are soon filled with prisoners.
 

Marko͘

Section Moderator
WBNWM&BWF&SVC
I've been stuck on this for a while now so I'd really appreciate some help if anyone can see what I missed here.

Does anyone know where all the usual flora went? I updated some of the ground textures. However I even placed more kinds of flora to spawn in the flora_kinds.py, but nothing's spawning. Maybe it isn't recognising it as 'green ground'? And if so, where's that even set?

eZplmDf.jpg

Code:
import string

dword      = 0x8000000000000000
dword_mask = 0xffffffffffffffff

density_bits      = 32
fkf_density_mask  = 0xFFFF #16K

#terain condition flags
fkf_plain             = 0x00000004
fkf_steppe            = 0x00000008
fkf_snow              = 0x00000010
fkf_desert            = 0x00000020
fkf_plain_forest      = 0x00000400
fkf_steppe_forest     = 0x00000800
fkf_snow_forest       = 0x00001000
fkf_desert_forest     = 0x00002000
fkf_terrain_mask      = 0x0000ffff

fkf_realtime_ligting  = 0x00010000 #deprecated
fkf_point_up          = 0x00020000 #uses auto-generated point-up(quad) geometry for the flora kind
fkf_align_with_ground = 0x00040000 #align the flora object with the ground normal
fkf_grass             = 0x00080000 #is grass
fkf_on_green_ground   = 0x00100000 #populate this flora on green ground
fkf_rock              = 0x00200000 #is rock 
fkf_tree              = 0x00400000 #is tree -> note that if you set this parameter, you should pass additional alternative tree definitions
fkf_snowy             = 0x00800000
fkf_guarantee         = 0x01000000

fkf_speedtree         = 0x02000000  #NOT FUNCTIONAL: we have removed speedtree support on M&B Warband

fkf_has_colony_props  = 0x04000000  # if fkf_has_colony_props -> then you can define colony_radius and colony_treshold of the flora kind


def density(g):
  if (g > fkf_density_mask):
    g = fkf_density_mask
  return ((dword | g) << density_bits)


fauna_kinds = [
  ("grass",fkf_grass|fkf_on_green_ground|fkf_guarantee|fkf_align_with_ground|fkf_point_up|fkf_plain|fkf_steppe_forest|fkf_plain_forest|density(2500),[["grass_a","0"],["grass_b","0"],["grass_c","0"],["grass_d","0"],["grass_e","0"]]),
  ("grass_bush",fkf_grass|fkf_align_with_ground|fkf_guarantee|fkf_on_green_ground|fkf_plain|fkf_steppe|fkf_plain_forest|fkf_steppe_forest|density(15),[["grass_bush_a","0"],["grass_bush_b","0"]]),
  ("grass_saz",fkf_grass|fkf_on_green_ground|fkf_plain|fkf_guarantee|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(600),[["grass_bush_c","0"],["grass_bush_d","0"]]),
  ("grass_purple",fkf_grass|fkf_plain|fkf_on_green_ground|fkf_steppe|fkf_plain_forest|fkf_steppe_forest|density(600),[["grass_bush_e","0"],["grass_bush_f","0"]]),
  ("fern",fkf_grass|fkf_plain_forest|fkf_on_green_ground|fkf_align_with_ground|density(1200),[["fern_a","0"],["fern_b","0"]]),
  ("grass_steppe",fkf_grass|fkf_on_green_ground|fkf_guarantee|fkf_align_with_ground|fkf_point_up|fkf_steppe|fkf_steppe_forest|density(2500),[["grass_yellow_a","0"],["grass_yellow_b","0"],["grass_yellow_c","0"],["grass_yellow_d","0"],["grass_yellow_e","0"]]),

  ("grass_bush_g",fkf_grass|fkf_align_with_ground|fkf_steppe|fkf_steppe_forest|fkf_plain|fkf_plain_forest|density(500),[["grass_bush_g01","0"],["grass_bush_g02","0"],["grass_bush_g03","0"]]),
  ("grass_bush_h",fkf_grass|fkf_align_with_ground|fkf_plain|fkf_plain_forest|density(500),[["grass_bush_h01","0"],["grass_bush_h02","0"],["grass_bush_h03","0"]]),
  ("grass_bush_i",fkf_grass|fkf_align_with_ground|fkf_plain|fkf_plain_forest|density(500),[["grass_bush_i01","0"],["grass_bush_i02","0"]]),
  ("grass_bush_j",fkf_grass|fkf_align_with_ground|fkf_steppe|fkf_steppe_forest|fkf_plain|fkf_plain_forest|density(500),[["grass_bush_j01","0"],["grass_bush_j02","0"]]),
  ("grass_bush_k",fkf_grass|fkf_align_with_ground|fkf_plain|fkf_plain_forest|density(500),[["grass_bush_k01","0"],["grass_bush_k02","0"]]),
  ("grass_bush_l",fkf_align_with_ground|fkf_plain|fkf_plain_forest|density(80),[["grass_bush_l01","0"],["grass_bush_l02","0"]]),
  
  ("thorn_a",fkf_align_with_ground|fkf_plain|fkf_plain_forest|density(150),[["thorn_a","0"],["thorn_b","0"],["thorn_c","0"],["thorn_d","0"]]),

  ("basak",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(70),[["basak","0"]]),
  ("common_plant",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(70),[["common_plant","0"]]),
  ("small_plant",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(50),[["small_plant","0"],["small_plant_b","0"],["small_plant_c","0"]]),
  ("buddy_plant",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(50),[["buddy_plant","0"],["buddy_plant_b","0"]]),
  ("yellow_flower",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(50),[["yellow_flower","0"],["yellow_flower_b","0"]]),
  ("spiky_plant",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_align_with_ground|density(50),[["spiky_plant","0"]]),
  ("seedy_plant",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(50),[["seedy_plant_a","0"]]),
  ("blue_flower",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(30),[["blue_flower","0"]]),
  ("big_bush",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(30),[["big_bush","0"]]),

  ("bushes02_a",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(30),[["bushes02_a","bo_bushes02_a"],["bushes02_b","bo_bushes02_b"],["bushes02_c","bo_bushes02_c"]]),
  ("bushes03_a",fkf_plain|fkf_plain_forest|density(30),[["bushes03_a","0"],["bushes03_b","0"],["bushes03_c","0"]]),
  ("bushes04_a",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(70),[["bushes04_a","0"],["bushes04_b","0"],["bushes04_c","0"]]),
  ("bushes05_a",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(70),[["bushes05_a","0"],["bushes05_b","0"],["bushes05_c","0"]]),
  ("bushes06_a",fkf_steppe|fkf_steppe_forest|density(70),[["bushes06_a","0"],["bushes06_b","0"],["bushes06_c","0"]]),
  ("bushes07_a",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(70),[["bushes07_a","0"],["bushes07_b","0"],["bushes07_c","0"]]),
  ("bushes08_a",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(70),[["bushes08_a","0"],["bushes08_b","0"],["bushes08_c","0"]]),
  ("bushes09_a",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(70),[["bushes09_a","0"],["bushes09_b","0"],["bushes09_c","0"]]),
  ("bushes10_a",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(70),[["bushes10_a","0"],["bushes10_b","0"],["bushes10_c","0"]]),
  ("bushes11_a",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(70),[["bushes11_a","0"],["bushes11_b","0"],["bushes11_c","0"]]),
  ("bushes12_a",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(70),[["bushes12_a","0"],["bushes12_b","0"],["bushes12_c","0"]]),

  ("aspen",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[["aspen_a","bo_aspen_a",("0","0")],["aspen_b","bo_aspen_b",("0","0")],["aspen_c","bo_aspen_c",("0","0")]]),
  ("pine_1",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("pine_1_a","bo_pine_1_a",("0","0")),("pine_1_b","bo_pine_1_b",("0","0"))]),
  ("pine_2",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[["pine_2_a","bo_pine_2_a",("0","0")]]),
  ("pine_3",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[["pine_3_a","bo_pine_3_a",("0","0")]]),
  ("pine_4",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[["pine_4_a","bo_pine_4_a",("0","0")]]),
  ("snowy_pine",fkf_snow|fkf_snow_forest|fkf_tree|density(5),[["tree_snowy_a","bo_tree_snowy_a",("0","0")]]),
  ("snowy_pine_2",fkf_snow|fkf_snow_forest|fkf_tree|density(5),[["snowy_pine_2","bo_snowy_pine_2",("0","0")]]),
  ("small_rock",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_realtime_ligting|fkf_rock|density(5),[["bf_rock_c","bo_rock_c"],["bf_rock_d","bo_rock_d"],["bf_rock_e","bo_rock_e"],["bf_rock_f","bo_rock_f"],["bf_rock_g","bo_rock_g"],["bf_rock_h","bo_rock_h"],["bf_rock_i","bo_rock_i"],["bf_rock_k","bo_rock_k"]]),
  ("rock_snowy",fkf_snow|fkf_snow_forest|fkf_realtime_ligting|fkf_rock|density(5),[["rock_snowy_a","bo_rock_snowy_a"],["rock_snowy_b","bo_rock_snowy_b"],["rock_snowy_c","bo_rock_snowy_c"],]),

  ("rock",fkf_plain|fkf_align_with_ground|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_realtime_ligting|fkf_rock|density(50),[["rock1","bo_rock1"],["rock2","bo_rock2"],["rock3","bo_rock3"],["rock4","bo_rock4"],["rock5","bo_rock6"],["rock7","bo_rock7"]]),
  ("rock_snowy2",fkf_snow|fkf_snow_forest|fkf_realtime_ligting|fkf_rock|density(5),[["rock1_snowy","bo_rock1"],["rock2_snowy","bo_rock2"],["rock4_snowy","bo_rock4"],["rock6_snowy","bo_rock6"],]),


  ("tree_1",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tree_1_a","bo_tree_1_a",("0","0")),("tree_1_b","bo_tree_1_b",("0","0"))]),
  ("tree_3",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tree_3_a","bo_tree_3_a",("0","0")),("tree_3_b","bo_tree_3_b",("0","0"))]),
  ("tree_4",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tree_4_a","bo_tree_4_a",("0","0")),("tree_4_b","bo_tree_4_b",("0","0"))]),
  ("tree_5",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tree_5_a","bo_tree_5_a",("0","0")),("tree_5_b","bo_tree_5_b",("0","0")),("tree_5_c","bo_tree_5_c",("0","0")),("tree_5_d","bo_tree_5_d",("0","0"))]),
  ("tree_6",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tree_6_a","bo_tree_6_a",("0","0")),("tree_6_b","bo_tree_6_b",("0","0")),("tree_6_c","bo_tree_6_c",("0","0")),("tree_6_d","bo_tree_6_d",("0","0"))]),
  ("tree_7",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tree_7_a","bo_tree_7_a",("0","0")),("tree_7_b","bo_tree_7_b",("0","0")),("tree_7_c","bo_tree_7_c",("0","0"))]),
  ("tree_8",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tree_8_a","bo_tree_8_a",("0","0")),("tree_8_b","bo_tree_8_b",("0","0")),("tree_8_c","bo_tree_8_c",("0","0"))]),

  ("tree_9",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tree_9_a","bo_tree_9_a",("0","0")),("tree_9_b","bo_tree_9_a",("0","0")),("tree_9_c","bo_tree_9_a",("0","0"))]),
  ("tree_10",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tree_10_a","bo_tree_10_a",("0","0")),("tree_10_b","bo_tree_10_a",("0","0")),("tree_10_c","bo_tree_10_a",("0","0"))]),
  ("tree_11",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tree_11_a","bo_tree_11_a",("0","0")),("tree_11_b","bo_tree_11_a",("0","0")),("tree_11_c","bo_tree_11_a",("0","0"))]),
  ("tree_12",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tree_12_a","bo_tree_12_a",("0","0")),("tree_12_b","bo_tree_12_b",("0","0")),("tree_12_c","bo_tree_12_c",("0","0"))]),
  ("tree_14",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tree_14_a","bo_tree_14_a",("0","0")),("tree_14_b","bo_tree_14_b",("0","0")),("tree_14_c","bo_tree_14_c",("0","0"))]),
  ("tree_15",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tree_15_a","bo_tree_15_a",("mb_test1","tree_a")),("tree_15_b","bo_tree_15_b",("mb_test1","tree_a")),("tree_15_c","bo_tree_15_c",("mb_test1","tree_b"))]),
  ("tree_16",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tree_16_a","bo_tree_16_a",("0","0")),("tree_16_b","bo_tree_16_b",("0","0"))]),

  ("tree_17",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tree_17_a","bo_tree_17_a",("0","0")),("tree_17_b","bo_tree_17_b",("0","0")),("tree_17_c","bo_tree_17_c",("0","0")),("tree_17_d","bo_tree_17_d",("0","0"))]),

  ("palm",fkf_desert_forest|fkf_tree|density(4),[("bf_palm_a","bo_palm_a",("0","0"))]),

  ("tree_new_1",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("bf_tree_a01","bo_tree_a01",("0","0")),("bf_tree_a02","bo_tree_a01",("0","0"))]),
  ("bush_new_1",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(70),[["bush_a01","0"],["bush_a02","0"]]),
  ("bush_new_2",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(70),[["bush_new_a","0"]]),
  ("bush_new_3",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(70),[["bush_new_b","0"]]),
  ("bush_new_4",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(70),[["bush_new_c","0"]]),

  ("dry_bush",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(70),[["dry_bush","0"]]),
  ("dry_leaves",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(70),[["dry_leaves","0"]]),

  ("tree_new_2",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("bf_tree_b01","bo_tree_b01",("0","0")),("bf_tree_b02","bo_tree_b02",("0","0"))]),
  ("tree_new_3",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("bf_tree_c01","bo_tree_c01",("0","0")),("bf_tree_c02","bo_tree_c02",("0","0"))]),

  ("tree_plane",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tree_18_a","bo_tree_18_a",("0","0")),("tree_18_b","bo_tree_18_b",("0","0"))]),
  ("tree_19",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tree_19_a","bo_tree_19_a",("0","0"))]),
  ("beech",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(3),[("tree_20_a","bo_tree_20_a",("0","0")),("tree_20_b","bo_tree_20_b",("0","0"))]),

  ("tall_tree",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[("tall_tree_a","bo_tall_tree_a",("0","0"))]),

  ("tree_e",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[["tree_e_1","bo_tree_e_1",("0","0")],["tree_e_2","bo_tree_e_2",("0","0")],["tree_e_3","bo_tree_e_3",("0","0")]]),
  ("tree_f",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|fkf_tree|density(4),[["tree_f_1","bo_tree_f_1",("0","0")],["tree_f_2","bo_tree_f_1",("0","0")],["tree_f_3","bo_tree_f_1",("0","0")]]),
  ("grape_vineyard",density(0),[("grape_vineyard","bo_grape_vineyard")]),
  ("grape_vineyard_stake",density(0),[("grape_vineyard_stake","bo_grape_vineyard_stake")]),  
  
  ("wheat",fkf_plain|fkf_plain_forest|fkf_steppe|fkf_steppe_forest|density(4),[["wheat_a","0"],["wheat_b","0"],["wheat_c","0"],["wheat_d","0"]]),
  
  ("valleyRock_rounded",fkf_rock|density(5),[["valleyRock_rounded_1","bo_valleyRock_rounded_1"],["valleyRock_rounded_2","bo_valleyRock_rounded_2"],["valleyRock_rounded_3","bo_valleyRock_rounded_3"],["valleyRock_rounded_4","bo_valleyRock_rounded_4"]]),
  ("valleyRock_flat",fkf_rock|density(5),[["valleyRock_flat_1","bo_valleyRock_flat_1"],["valleyRock_flat_2","bo_valleyRock_flat_2"],["valleyRock_flat_3","bo_valleyRock_flat_3"],["valleyRock_flat_4","bo_valleyRock_flat_4"],["valleyRock_flat_5","bo_valleyRock_flat_5"],["valleyRock_flat_6","bo_valleyRock_flat_6"]]),
  ("valleyRock_flatRounded_small",fkf_rock|density(5),[["valleyRock_flatRounded_small_1","bo_valleyRock_flatRounded_small_1"],["valleyRock_flatRounded_small_2","bo_valleyRock_flatRounded_small_2"],["valleyRock_flatRounded_small_3","bo_valleyRock_flatRounded_small_3"]]),
  ("valleyRock_flatRounded_big",fkf_rock|density(5),[["valleyRock_flatRounded_big_1","bo_valleyRock_flatRounded_big_1"],["valleyRock_flatRounded_big_2","bo_valleyRock_flatRounded_big_2"]]),
]


def save_fauna_kinds():
  file = open("./flora_kinds.txt","w")
  file.write("%d\n"%len(fauna_kinds))
  for fauna_kind in fauna_kinds:
    meshes_list = fauna_kind[2]
    file.write("%s %d %d\n"%(fauna_kind[0], (dword_mask & fauna_kind[1]), len(meshes_list)))
    for m in meshes_list:
      file.write(" %s "%(m[0]))
      if (len(m) > 1):
        file.write(" %s\n"%(m[1]))
      else:
        file.write(" 0\n")
      if ( fauna_kind[1] & (fkf_tree|fkf_speedtree) ):  #if this fails make sure that you have entered the alternative tree definition (NOT FUNCTIONAL in Warband)
        speedtree_alternative = m[2]
        file.write(" %s %s\n"%(speedtree_alternative[0], speedtree_alternative[1]))
    if ( fauna_kind[1] & fkf_has_colony_props ):
      file.write(" %s %s\n"%(fauna_kind[3], fauna_kind[4]))
  file.close()

def two_to_pow(x):
  result = 1
  for i in xrange(x):
    result = result * 2
  return result

fauna_mask = 0x80000000000000000000000000000000
low_fauna_mask =             0x8000000000000000
def save_python_header():
  file = open("./fauna_codes.py","w")
  for i_fauna_kind in xrange(len(fauna_kinds)):
    file.write("%s_1 = 0x"%(fauna_kinds[i_fauna_kind][0]))
    file.write("%x\n"%(fauna_mask | two_to_pow(i_fauna_kind)))
    file.write("%s_2 = 0x"%(fauna_kinds[i_fauna_kind][0]))
    file.write("%x\n"%(fauna_mask | ((low_fauna_mask|two_to_pow(i_fauna_kind)) << 64)))
    file.write("%s_3 = 0x"%(fauna_kinds[i_fauna_kind][0]))
    file.write("%x\n"%(fauna_mask | ((low_fauna_mask|two_to_pow(i_fauna_kind)) << 64) | two_to_pow(i_fauna_kind)))
  file.close()

print "Exporting flora data..."
save_fauna_kinds()


Code:
gtf_overlay = 0x00000001 #deprecated
gtf_dusty   = 0x00000002 #controls dustiness of the ground for foot dust particle systems 
gtf_has_color  = 0x00000004 #you can overwrite the ambient color of the ground spec (default: 0.61, 0.72, 0.15)

#IMPORTANT NOTE: Ground_specs have dependency on mnodule system and the engine c++ code!
#                You cannot add new ground types as they are hardcoded in the engine code.
#                Make sure you have updated your module's header_ground_types.py file 

#arguments:
#spec_name, flags, material, uv_scale, multitex_material_name, gtf_has_color->color
ground_specs = [
    ("gray_stone",gtf_has_color,"ground_stone_a",8.0,"none",(0.8 , 0.8 , 0.8)),
    ("brown_stone",gtf_has_color,"ground_patch_rock",8,"none",(0.8 , 0.8 , 0.8)),
    ("turf",gtf_overlay|gtf_has_color,"ground_grassy",8,"ground_earth_under_grass",(0.43 , 0.61 , 0.21)),
    ("steppe",gtf_overlay|gtf_dusty|gtf_has_color,"ground_steppe",8,"ground_earth_under_steppe",(0.83 , 0.70 , 0.34)),
    ("snow",gtf_overlay|gtf_has_color,"ground_snow",8,"none",(1.6 ,1.6 ,1.6)),
    ("earth",gtf_overlay|gtf_dusty|gtf_has_color,"ground_earth",8,"none",(0.7 ,0.8 , 0.33)),
    ("desert",gtf_overlay|gtf_dusty|gtf_has_color,"ground_desert", 8,"none",(1.4, 1.2, 0.4)),
    ("forest",gtf_overlay|gtf_has_color,"ground_forest",8,"ground_forest_under_grass",(0.6, 0.42, 0.28)),
    ("pebbles",gtf_overlay|gtf_has_color,"ground_pebbles",8,"none",(0.7, 0.7, 0.7)),
    ("village",gtf_overlay|gtf_has_color,"ground_village",8,"none",(1.0 ,0.9 ,0.9)),
    ("path",gtf_overlay|gtf_dusty|gtf_has_color,"ground_path",8,"none",(0.93, 0.68, 0.34)),
]

def write_vec(file,vec):
  file.write(" %f %f %f "%vec)
  
def save_ground_specs():
  file = open("./ground_specs.txt","w")
  for ground_spec in ground_specs:
    file.write(" %s %d %s %f %s"%(ground_spec[0],ground_spec[1],ground_spec[2],ground_spec[3],ground_spec[4]))
    if (ground_spec[1] & gtf_has_color):
      file.write(" %f %f %f"%ground_spec[5])
    file.write("\n")
  file.close()

def save_c_header():
  file = open("./ground_spec_codes.h","w")
  file.write("#ifndef _GROUND_SPEC_CODES_H\n")
  file.write("#define _GROUND_SPEC_CODES_H\n\n")
  file.write("typedef enum {\n")
  for ground_spec in ground_specs:
    file.write("  ground_%s,\n"%ground_spec[0])
  file.write("}Ground_spec_codes;\n")
  file.write("const int num_ground_specs = %d;\n"%(len(ground_specs)))
  file.write("\n\n")
  file.write("\n#endif\n")
  file.close()
  
def save_python_header():
  file = open("../Module_system/header_ground_types.py","w")
  for ig in xrange(len(ground_specs)):
    ground_spec = ground_specs[ig]
    file.write("ground_%s = %d\n"%(ground_spec[0], ig))
  file.write("\n\n")
  file.close()

print "Exporting ground_spec data..."
save_ground_specs()
save_c_header()
save_python_header()
#print "Finished."
 
 

daniel99

Squire
Is it at all possible to change the time of day after a mission starts in multiplayer? From what I have seen this is normally set before the map start, but there are a few people i've seen who also created multiplayer day/night cycles mods. How would this be accomplished?
 

Trueten

Section Moderator
WBVC
Any ways to change my companions' gender and faces without using Python, but with text changes only?
I found these lines in troop txt
Code:
trp_npc2 Marnid Marnid 0 268435472 0 0 1 0 0
  239 0 175 0 374 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 
  7 7 11 6 1
 60 60 60 60 60 60 0
19 200720 0 4130 65536 0 
  6929006593 6272257775674905229 1951897 0 0 0 0 0 

trp_npc3 Ymira Ymira 0 268435473 0 0 1 0 0
  234 0 172 0 388 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 
  6 9 11 6 1
 30 30 30 30 30 30 0
3 201008 0 19 0 0 
  2198077441 6357795939742487131 1933464 0 0 0 0 0

If I, for exmple, simply copy and paste all Marnid's numbers and replace Ymira's ones, would that do the deal?
 

Pitch

Sergeant at Arms
WBNWVCM&BWF&S
pete99 said:
Is it at all possible to change the time of day after a mission starts in multiplayer? From what I have seen this is normally set before the map start, but there are a few people i've seen who also created multiplayer day/night cycles mods. How would this be accomplished?

They use data outside warband .

Send URL requested to PHP script or any other server side scripting language.
Return to warband data which u need and assign it from local variables to global  ones so you can use them in mission templates.
Then finally use your data from global variables in map weather script or something .


You can even summon fog or rain at middle of round.

Time on map and skybox must be choosen before map initialize.
 
trueten said:
Any ways to change my companions' gender and faces without using Python, but with text changes only?
I found these lines in troop txt
Code:
trp_npc2 Marnid Marnid 0 268435472 0 0 1 0 0
  239 0 175 0 374 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 
  7 7 11 6 1
 60 60 60 60 60 60 0
19 200720 0 4130 65536 0 
  6929006593 6272257775674905229 1951897 0 0 0 0 0 

trp_npc3 Ymira Ymira 0 268435473 0 0 1 0 0
  234 0 172 0 388 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 
  6 9 11 6 1
 30 30 30 30 30 30 0
3 201008 0 19 0 0 
  2198077441 6357795939742487131 1933464 0 0 0 0 0

If I, for exmple, simply copy and paste all Marnid's numbers and replace Ymira's ones, would that do the deal?
Use morgh's editing tool. Much easier.
 

Dalion

Knight
trueten said:
If I, for exmple, simply copy and paste all Marnid's numbers and replace Ymira's ones, would that do the deal?
It will but that's not what you want. As stated above, using Morgh's editor is your best choice. Also, no matter what way you choose, new game will be required.
 
KratosMKII said:
Is there a way to randomize or at least assign a new face to a hero troop through a script?

I've never tried, but presumably that's what these operations are for:

Code:
str_store_player_face_keys            = 2747 # (str_store_player_face_keys, <string_no>, <player_id>), #Stores <player_id>'s face key into string.
player_set_face_keys                  = 2748 # (player_set_face_keys, <player_id>, <string_no>), #Sets <player_id>'s face keys from string.
str_store_troop_face_keys             = 2750 # (str_store_troop_face_keys, <string_no>, <troop_no>, [<alt>]), #Stores <troop_no>'s face key into string. if [<alt>] is non-zero the second pair of face keys is stored
troop_set_face_keys                   = 2751 # (troop_set_face_keys, <troop_no>, <string_no>, [<alt>]), #Sets <troop_no>'s face keys from string. if [<alt>] is non-zero the second pair of face keys is set.
 

Trueten

Section Moderator
WBVC
KratosMKII said:
trueten said:
Any ways to change my companions' gender and faces without using Python, but with text changes only?
I found these lines in troop txt
Code:
trp_npc2 Marnid Marnid 0 268435472 0 0 1 0 0
  239 0 175 0 374 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 
  7 7 11 6 1
 60 60 60 60 60 60 0
19 200720 0 4130 65536 0 
  6929006593 6272257775674905229 1951897 0 0 0 0 0 

trp_npc3 Ymira Ymira 0 268435473 0 0 1 0 0
  234 0 172 0 388 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 
  6 9 11 6 1
 30 30 30 30 30 30 0
3 201008 0 19 0 0 
  2198077441 6357795939742487131 1933464 0 0 0 0 0

If I, for exmple, simply copy and paste all Marnid's numbers and replace Ymira's ones, would that do the deal?
Use morgh's editing tool. Much easier.
UndeadDuke said:
It will but that's not what you want. As stated above, using Morgh's editor is your best choice. Also, no matter what way you choose, new game will be required.

Shiiiiite.
I was quite sure I've been using it and couldn't find the proper option for what I wanted to do... until I re-read the title of the tool I've used, which is "TweakMB".

Thanks a lot guys! Everything works like a charm.
 
Status
Not open for further replies.
Top Bottom