[WB] Warband Script Enhancer v3.2.0 (21/07/2013)

Users who are viewing this thread

Status
Not open for further replies.
I'm getting the following error when trying to get the ek_slot of the wielded shield using WSE versions 2.4.7-2.5.1:

(agent_get_wielded_item_slot_no, ":ek_slot", ":agent_no", 1),
WSE ERROR on operation agent_get_wielded_item_slot_no: hand_no is above maximum (0)


Also, I did more testing with the various terrain generator/scene_* operations. It may be I'm not using them as they are intended, but I can't quite get them to do anything.

A few things I observed: if I use scene_set_flags to strip out the sf_randomize flag from the various "random" scenes used in SP battles, whatever values I feed with things like scene_set_ruggedness or scene_set_hill_height still have no effect, though the scene does stop randomizing and whatever the last scene generated was continues to get re-used. If I strip out the sf_generate flag, too, then I am left floating in the skybox with no terrain what-so-ever.

(These test were completed with code injected into the script setup_random_scene, before the jump_to_scene operation.)

If there isn't an obvious way to get the scene_set_* commands working, another possibility might (?) be to have a way to get and set the scene hex "string" from module_scenes that contains all of the values, aside from the various seeds (or is that what that what these operations are already manipulating?).
 
Caba`drin said:
I'm getting the following error when trying to get the ek_slot of the wielded shield using WSE versions 2.4.7-2.5.1:

(agent_get_wielded_item_slot_no, ":ek_slot", ":agent_no", 1),
WSE ERROR on operation agent_get_wielded_item_slot_no: hand_no is above maximum (0)
Fixed, thanks.
Caba`drin said:
Also, I did more testing with the various terrain generator/scene_* operations. It may be I'm not using them as they are intended, but I can't quite get them to do anything.

A few things I observed: if I use scene_set_flags to strip out the sf_randomize flag from the various "random" scenes used in SP battles, whatever values I feed with things like scene_set_ruggedness or scene_set_hill_height still have no effect, though the scene does stop randomizing and whatever the last scene generated was continues to get re-used. If I strip out the sf_generate flag, too, then I am left floating in the skybox with no terrain what-so-ever.

(These test were completed with code injected into the script setup_random_scene, before the jump_to_scene operation.)

If there isn't an obvious way to get the scene_set_* commands working, another possibility might (?) be to have a way to get and set the scene hex "string" from module_scenes that contains all of the values, aside from the various seeds (or is that what that what these operations are already manipulating?).
Changing the string is exactly what these operations do. When I tested them they seemed to work fine, can you psot the code snippet where you change them?
 
I also tried influencing the random scenes, for multiplayer, by using
Code:
       (store_current_scene,":current_scene"),
       (scene_set_place_river, ":current_scene", 1),
in
Code:
ti_before_mission_start
however out of the say 20 tries it only generated a river once.
 
It may be lazy question. Which one is better in performance wise between these code below?
Code:
   (try_begin),
      (is_vanilla_warband),
      <without WSE>
   (else_try),
      <with WSE>
   (try_end),
and
Code:
   (try_begin),
      (eq, "$WSE_loaded",0),  # after set the global variable once at game_start script or simple trigger that catch load saved game
      <without WSE>
   (else_try),
      <with WSE>
   (try_end),

I want to make 2 set of codes for both with and without WSE on a 'bussy' mission template's trigger like ti_on_agent_hit, so I think it's importeant to know which one 's less expensive.
 
cmpxchg8b said:
Caba`drin said:
Also, I did more testing with the various terrain generator/scene_* operations. It may be I'm not using them as they are intended, but I can't quite get them to do anything.

A few things I observed: if I use scene_set_flags to strip out the sf_randomize flag from the various "random" scenes used in SP battles, whatever values I feed with things like scene_set_ruggedness or scene_set_hill_height still have no effect, though the scene does stop randomizing and whatever the last scene generated was continues to get re-used. If I strip out the sf_generate flag, too, then I am left floating in the skybox with no terrain what-so-ever.

(These test were completed with code injected into the script setup_random_scene, before the jump_to_scene operation.)

If there isn't an obvious way to get the scene_set_* commands working, another possibility might (?) be to have a way to get and set the scene hex "string" from module_scenes that contains all of the values, aside from the various seeds (or is that what that what these operations are already manipulating?).
Changing the string is exactly what these operations do. When I tested them they seemed to work fine, can you psot the code snippet where you change them?

At the end of script_setup_random_scene
Code:
      (try_end),
      (scene_set_flags, ":scene_to_use", sf_generate|sf_auto_entry_points), # Here-removes |sf_randomize
      (scene_set_ruggedness, ":scene_to_use", 0), #Here
      (scene_set_hill_height, ":scene_to_use", 0), #Here
      (jump_to_scene,":scene_to_use"),
tried both with and without scene_set_flags...but I didn't see any change to the scene (other than the scene becoming static).

Did the same thing on ti_before_mission_start with (store_current_scene, ":scene_to_use") rather than taking that local variable from the try block in the script. No difference.
 
[quote author="Thaess in M&B 1.011 Script Enchancer's Thread"]
I will add something like that:
(agent_set_sound, <agent_id>, <sound_constant>,<sound_id>),

sound_constant =  "agent_warcry", "agent_hit" etc.
[/quote]

Can we have something simillar for WSE? Pretty pretty please. :wink:
 
Also, a user is reporting that WSE 2.4.8 won't start on their 1.143 version of Warband, with the following logs:
bojan811 said:
Code:
WSE Loader by cmpxchg8b (Build date: Jan 13 2012 02:14:54)
OS version: 6.1.7601 SP 1.0
Command line: -m Diplo+PBOD
WSE path: D:\Program Files (x86)\Mount&Blade Warband\Modules\Diplo+PBOD\WSE\
Game executable origin: registry
Game executable path: d:\Program Files (x86)\Mount&Blade Warband\mb_warband.exe
Game executable checksum: B15E185
You are running an unsupported version of Warband.
The Warband Script Enhancer only supports version 1.143.
bojan811 said:
Code:
Starting new log file.
 Version:  1.143 
 
-- OS: Microsoft Windows 7  Service Pack 1 (build 7601), 64-bit
-- RAM: Available physical RAM: 2273MB/4096MB
-- CPU: Intel(R) Core(TM)2 Quad CPU    Q8200  @ 2.33GHz (GenuineIntel)
 - L2 cache size: 2048K
 - CPU Features: FPU MMX SSE SSE2 SSE3 SSSE3 EST HTT 
 - Number of CPUs: 4 ( Speed: ~2331MHz / ~2331MHz / ~2331MHz / ~2331MHz )

-- GPU:
 - D3D9 Adapter: 0 / Driver: nvd3dum.dll / Description: NVIDIA GeForce 9800 GT
 - Texture Memory: 2797 ( Available Texture Memory: 2788 )

 
 Processing Ini File {
 Module_name =  Floris 
 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 =  1 
 Loading Module Resource  min_env_materials 
 Loading Module Resource  min_bui_materials 
 Loading Module Resource  min_fac_materials 
 Loading Module Resource  min_fla_materials 
 Loading Module Resource  min_gui_materials 
 Loading Module Resource  min_itm_materials 
 Loading Module Resource  min_map_materials 
 Loading Module Resource  ext_itm_materials 
 Loading Module Resource  exp_bui_materials 
 Loading Module Resource  exp_env_materials 
 Loading Module Resource  exp_gui_materials 
 Loading Resource  barrier_primitives 
 Loading Resource  test 
 Loading Resource  shaders 
 Loading Resource  simple_primitives 
 Loading Resource  uimeshes 
 Loading Resource  helpers 
 Loading Resource  pictures 
 Loading Resource  ui_server_filter 
 Loading Resource  user_interface_b 
 Loading Resource  user_interface_c 
 Loading Module Resource  min_gui_overview 
 Loading Module Resource  min_gui_particle_meshes 
 Loading Module Resource  min_gui_particles_2 
 Loading Module Resource  exp_gui_interface 
 Loading Resource  ani_attacks 
 Loading Resource  ani_attacks_single 
 Loading Resource  ani_crouch_down 
 Loading Resource  ani_death 
 Loading Resource  ani_defends 
 Loading Resource  ani_equip_arms 
 Loading Resource  ani_human_mounted 
 Loading Resource  ani_jump 
 Loading Resource  ani_kicks 
 Loading Resource  ani_lady_stand 
 Loading Resource  ani_lancer 
 Loading Resource  ani_low_walk 
 Loading Resource  ani_man_cheer 
 Loading Resource  ani_man_walk 
 Loading Resource  ani_onehanded 
 Loading Resource  ani_parry_attack 
 Loading Resource  ani_poses 
 Loading Resource  ani_run_forward_left_right 
 Loading Resource  ani_run_lookingsides 
 Loading Resource  ani_run_p 
 Loading Resource  ani_run_sideways 
 Loading Resource  ani_stand 
 Loading Resource  ani_stand_guardsman 
 Loading Resource  ani_stand_onhorse 
 Loading Resource  ani_stand_shopkeeper 
 Loading Resource  ani_strikes 
 Loading Resource  uni_strikes3 
 Loading Resource  ani_throw_stone 
 Loading Resource  ani_turn_man 
 Loading Resource  ani_twohanded 
 Loading Resource  ani_walk_backward 
 Loading Resource  ani_walk_lookingsides 
 Loading Resource  ani_walk_sideways 
 Loading Resource  ani_wedding 
 Loading Resource  uni_defence 
 Loading Resource  uni_equip 
 Loading Resource  uni_fistswing 
 Loading Resource  uni_jump 
 Loading Resource  uni_lord_stand 
 Loading Resource  uni_sideways 
 Loading Resource  uni_stances 
 Loading Resource  uni_strike 
 Loading Resource  uni_throws 
 Loading Module Resource  min_mov_skeletons 
 Loading Resource  custom_banner 
 Loading Module Resource  min_fla_banners 
 Loading Module Resource  min_fla_banners_default 
 Loading Module Resource  min_fla_flags_vertical 
 Loading Resource  arabian_castle 
 Loading Resource  arabian_houses 
 Loading Resource  arabian_props 
 Loading Resource  arabian_village 
 Loading Resource  castle_a 
 Loading Resource  castle_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  churches 
 Loading Resource  destroy 
 Loading Resource  doors 
 Loading Resource  dungeon 
 Loading Resource  fake_houses 
 Loading Resource  food 
 Loading Resource  gatehouse 
 Loading Resource  houses1 
 Loading Resource  interior_thirsty_lion 
 Loading Resource  interiors_a 
 Loading Resource  interiors_arabian 
 Loading Resource  interiors_b 
 Loading Resource  interiors_c 
 Loading Resource  interiors_d 
 Loading Resource  interiors_steppe 
 Loading Resource  object_b 
 Loading Resource  object_c 
 Loading Resource  object_meshes 
 Loading Resource  prisons 
 Loading Resource  prisons_b 
 Loading Resource  scene_small_tavern 
 Loading Resource  ship 
 Loading Resource  snowy_castle 
 Loading Resource  snowy_houses 
 Loading Resource  square_keep 
 Loading Resource  steppe_fake_houses 
 Loading Resource  stone_houses 
 Loading Resource  town_houses 
 Loading Resource  town_houses_b 
 Loading Resource  town_houses_c 
 Loading Resource  town_houses_d 
 Loading Resource  town_houses_e 
 Loading Resource  valleyProps 
 Loading Resource  viking_houses 
 Loading Resource  village_houses 
 Loading Resource  village_houses_a 
 Loading Resource  village_houses_b 
 Loading Resource  wall_meshes1 
 Loading Resource  workshops 
 Loading Module Resource  min_bui_general 
 Loading Module Resource  min_bui_pavise 
 Loading Module Resource  exp_bui_general 
 Loading Module Resource  exp_bui_swadia 
 Loading Module Resource  exp_bui_vaegir 
 Loading Module Resource  exp_bui_nord 
 Loading Module Resource  exp_bui_rhodok 
 Loading Module Resource  exp_bui_sarranid 
 Loading Module Resource  exp_bui_player_faction 
 Loading Resource  object_bodies 
 Loading Module Resource  min_fac_beards 
 Loading Module Resource  min_fac_body 
 Loading Module Resource  min_fac_face 
 Loading Module Resource  min_fac_hair 
 Loading Module Resource  min_fac_jewellery 
 Loading Resource  armors_new_heraldic 
 Loading Resource  heraldic_armors 
 Loading Resource  tableau_shields 
 Loading Module Resource  min_itm_animals 
 Loading Module Resource  min_itm_armors 
 Loading Module Resource  min_itm_books 
 Loading Module Resource  min_itm_boots 
 Loading Module Resource  min_itm_cloths 
 Loading Module Resource  min_itm_dresses 
 Loading Module Resource  min_itm_gauntlets 
 Loading Module Resource  min_itm_helmets_civilian 
 Loading Module Resource  min_itm_helmets_war 
 Loading Module Resource  min_itm_horses_normal 
 Loading Module Resource  min_itm_horses_war 
 Loading Module Resource  min_itm_instruments 
 Loading Module Resource  min_itm_shields 
 Loading Module Resource  min_itm_trade 
 Loading Module Resource  min_itm_weapons_axe 
 Loading Module Resource  min_itm_weapons_blunt 
 Loading Module Resource  min_itm_weapons_ranged 
 Loading Module Resource  min_itm_weapons_spear 
 Loading Module Resource  min_itm_weapons_sword 
 Loading Module Resource  ext_itm_armors 
 Loading Module Resource  ext_itm_cloths 
 Loading Module Resource  ext_itm_dresses 
 Loading Module Resource  ext_itm_gauntlets 
 Loading Module Resource  ext_itm_helmets_civilian 
 Loading Module Resource  ext_itm_helmets_war 
 Loading Module Resource  ext_itm_horses_normal 
 Loading Module Resource  ext_itm_horses_war 
 Loading Module Resource  ext_itm_shields 
 Loading Module Resource  ext_itm_weapons_axe 
 Loading Module Resource  ext_itm_weapons_blunt 
 Loading Module Resource  ext_itm_weapons_ranged 
 Loading Module Resource  ext_itm_weapons_spear 
 Loading Module Resource  ext_itm_weapons_sword 
 Loading Resource  scene_encounter_spot 
 Loading Module Resource  min_env_terrain_borders 
 Loading Module Resource  min_env_map_trees 
 Loading Module Resource  exp_env_grass 
 Loading Module Resource  exp_env_objects 
 Loading Module Resource  exp_env_snow_trees 
 Loading Module Resource  exp_env_trees 
 Loading Module Resource  min_env_skyboxes 
 Loading Resource  map_icon_meshes 
 Loading Resource  map_icons_c 
 Loading Module Resource  min_map_icons 
 
} //Processing Ini File Finished
 Loading Music...
 Loading Textures...
 Finished Loading Textures...
 L8 Format is  supported
 WARNING: UNABLE TO MAP GAME PRESENTATION CODE:  prsnt_game_start 
 WARNING: UNABLE TO MAP GAME PRESENTATION CODE:  prsnt_game_escape 
 Loading Module...
 Loading item kinds...
 Loading dialogs...
 Loading mission templates...
 Loading party templates...
 loading time:  60592 
 Finished All...
 load_map_data complete.
 Init_map complete.
 init_meta_mission complete.
 map mesh built.
 get_ideal_sun_color.
 get_ideal_fog_color.
 242 parties added.
 launch complete.
 Switching to menu window...

Not sure what to suggest. WSE 2.5.1 or reinstall Warband?
 
Slawomir of Aaarrghh said:
"Thaess in M&B 1.011 Script Enchancer's Thread said:
I will add something like that:
(agent_set_sound, <agent_id>, <sound_constant>,<sound_id>),

sound_constant =  "agent_warcry", "agent_hit" etc.

Can we have something simillar for WSE? Pretty pretty please. :wink:
Ugh, I'd rather not. Engine does it on a per-skin basis, and a nasty hack is required to do it per-agent. I'll leave stuff like this for WSE2, when the hack part will no longer be an issue.

[quote author=Caba`drin"]
Also, a user is reporting that WSE 2.4.8 won't start on their 1.143 version of Warband, with the following logs:
Not sure what to suggest. WSE 2.5.1 or reinstall Warband?
[/quote]
He either uses a crack or has an infected executable. In the first case tell him to **** off, in the second tell him to get a good antivirus.

Also, I'll test the scene operations some more when I have time.
 
cmpxchg8b said:
Caba`drin said:
Also, a user is reporting that WSE 2.4.8 won't start on their 1.143 version of Warband, with the following logs:
Not sure what to suggest. WSE 2.5.1 or reinstall Warband?
He either uses a crack or has an infected executable. In the first case tell him to **** off, in the second tell him to get a good antivirus.

Also, I'll test the scene operations some more when I have time.

Lol. Yeah. Something like that happened to me in the past though. Right after I installed the fully authenticated Warband on my current PC it gave me that problem. Turns out that the installer f***ed up.
 
Hello, I got a question about changing the chat.

I'm intercepting the chat by using ... ah what I'll post all my code:

Code:
("wse_chat_message_received", [
	(store_script_param, ":player_no", 1),
	(store_script_param, ":chat_type", 2),

	(try_begin),# changes chat colors for teamchat, not sure if it works 100%
		(neg|multiplayer_is_dedicated_server),
			(str_store_player_username, s1, ":player_no"),
			(str_store_replace_underscores_with_spaces, s1, s1),
			(str_store_string,s2,"@: "),
			(str_store_string,s3,s0),
			(str_store_join, s0,1, 3), #Joins <count> string registers starting from string register <start_string_register>, using [<delimiter>] (default = empty string) and stores them into <string_register>
			(player_get_agent_id, ":agent", ":player_no"),
			(try_begin),
				(player_get_team_no, ":team", ":player_no"),
				(eq, ":team", 2),  #spectator
					(display_message, s0, 0xFFAAAAFF),
			(else_try),
				(eq, ":chat_type", 1), #teamchat
					(try_begin),
						(player_get_troop_id, ":troop", ":player_no"),
						(this_or_next|eq, ":troop", "trp_chieftain_multiplayer"),
						(this_or_next|eq, ":troop", "trp_earl_multiplayer"),
						(this_or_next|eq, ":troop", "trp_duke_multiplayer"),
						(this_or_next|eq, ":troop", "trp_gaelic_leader_multiplayer"),
						(eq, ":troop", "trp_knyaz_multiplayer"),
							(try_begin),
								(ge, ":agent", 0),
								(neg|agent_is_alive, ":agent"),
								# (neg|player_is_active,":player_no"),
									(display_message, s0, 0xFFBBBB55),
							(else_try),
									(display_message, s0, 0xFFFFFF88),
							(try_end),
					(else_try),
							(try_begin),
								(ge, ":agent", 0),
								(neg|agent_is_alive, ":agent"),
								# (neg|player_is_active,":player_no"),
									(display_message, s0, 0xFF234BBB),
							(else_try),
								(display_message, s0, 0xFF467FFF),
							(try_end),

						# (display_message, s0, 0xFF00FFBE),
						# (display_message, "@{s1} says: '{s0}' ", 0xFF0591C1),
					(try_end),
			(else_try),
				(try_begin),
					(ge, ":agent", 0),
					(neg|agent_is_alive, ":agent"),
					# (neg|player_is_active,":player_no"),
						(display_message, s0, 0xFFBBBBBB),
				(else_try),
					(display_message, s0, 0xFFFFFFFF),
				(try_end),
			(try_end),
			(set_trigger_result, 1),
	(try_end),
]),

It all works nicely, but I was wondering if it could be done in another way. There is one small problem, if someone types '^^' it treats it as a line-break while Id rather just have ^^ displayed. Can I fix this?
 
cmpxchg8b said:
cmpxchg8b said:
v2.5.1
- Improved Steam injection
- Fixed crash in wse_chat_message_received
Not sure whether it will help or not, but people who are having "Failed to inject library into remote process" errors with Steam should try this version.

Now I'm getting the error:
Failed to inject library into remote process.
check wse_crash_log.txt for more information.
if you are running antivirus or security suite , try temporarily disabling it.

Again no wse_crash_log.txt is created, the wse_loader_log.txt is empty, I tried disabling my antivirus but that didn't change anything.
But it now does start up the launcher, it didn't do that before.
Thanks for attempting to get this fixed, I really appreciate it, it would be great if this problem would eventually be solved.

*Edited*
Also I tried downloading the non-steam version, but when I try to start up WSE it gives me the exact same error, or am I doing something wrong?
I'm not sure how I'm suppose to get the non-steam version working with WSE (running windows xp sp3).
 
Question about troop_has_flag function. (Disclaimer: the following is pushing my knowledge of bit-wise stuff like troop flags, so apologies if my ignorance is blatantly obvious and what follows ends up not making sense.)

From what I can tell, the troop flag 'number' (forgive my lack of proper programming-speak knowledge) has unused bits that one might use to add new flags (say, if one wanted to guarantee weapons by type)
Code:
#Troop flags
tf_male           = 0
tf_female         = 1
tf_undead         = 2
troop_type_mask   = 0x0000000f
tf_hero              = 0x00000010
tf_inactive          = 0x00000020
tf_unkillable        = 0x00000040
tf_allways_fall_dead = 0x00000080
tf_no_capture_alive  = 0x00000100
tf_mounted           = 0x00000400 #Troop's movement speed on map is determined by riding skill.
tf_is_merchant       = 0x00001000 #When set, troop does not equip stuff he owns
tf_randomize_face    = 0x00008000 #randomize face at the beginning of the game.

tf_guarantee_boots            = 0x00100000
tf_guarantee_armor            = 0x00200000
tf_guarantee_helmet           = 0x00400000
tf_guarantee_gloves           = 0x00800000
tf_guarantee_horse            = 0x01000000
tf_guarantee_shield           = 0x02000000
tf_guarantee_ranged           = 0x04000000
tf_unmoveable_in_party_window = 0x10000000
This should leave the 4th digit completely unused (0x000#0000) and some of the values of the first and second digits unused, etc.

So, I defined some new flags that used this 4th digit (1,2,4,:cool: and ran a test using troop_has_flag. Adding the new flags did not cause any problems with the pre-defined troop flags and troop_has_flag...but, troop_has_flag could not detect the newly added flags.

Might you rework how troop_has_flag operates to allow for non-native flags to be checked (and would you be interested in doing so)?

I'd rather not need to store the flag value to a troop-slot via Python at compile time and check using the val_and operation (I'm trying to eliminate the on-compile time Python with the WSE operations), but I'd understand if such an extension doesn't make sense to you (or isn't possible)...just didn't see the harm in asking.
 
Just a quick question about sth I originally thought for my Iron Launcher back in 2010:

Won't you be able to locate a buffer overflow... let's say, in some of the parameters of the
Code:
module.ini
file...
Then pass a hand-crafted, long string containing some easy injection code a la metasploit, and later letting the DLL to patch it up in a separate thread?.

I'm pretty sure that the game doesn't makes any kind of validation.
The launcher's pretty cumbersome. I know that, at least technically, is possible.


Of course it could only work on a single build.But hey, the code doesn't changes that much.
Adjust some offsets every rev. And let the players load everything up seamlessly without annoyances.
 
Some WSE features require that code is patched before global constructors are called, so no, I'd rather not do anything like that.
Besides, the game doesn't overflow while reading module.ini, it just discards everything that doesn't fit in the buffer.
 
Status
Not open for further replies.
Back
Top Bottom