Modding Q&A [For Quick Questions and Answers]

Users who are viewing this thread

Status
Not open for further replies.
Ok so a long time ago with the help of LaGrandmaster I got a decent infinite shader for better scene borders but it had it's issues.
But I found this post in a mod that implemented my borders to find you simply can extend the clipping plane???
Waka The Fox said:
Jacobhinds said:
To make the distant mountains work, I had to increase the "far clipping plane" which is basically the draw distance. In some engines this decreases the accuracy of the "depth buffer" which is a per-frame snapshot of the distance each pixel is from the camera. The water uses this to appear transparent, and to fade from deep water to shallow water, but with the depth buffer stretched between 0 and the new "far clipping plane", the water begins fading at much shallower depths than before.

Go to module.ini and lower the far_plane_distance value. This may make some of the mountains clip with the draw distance.

Okay, I'll try things out to see if I can hit a nice compromise, then I will get back to you.

EDIT: 45000 seems like a good value

IRHjzm6.jpg

4NV6ZM0.jpg

Bit hesitant to go lower


So my question is what other hidden options are there you can add to module.ini?

Some pictures of it in action.
The borders have been removed and a world map mesh that adjusts itself to display the correct location!

FxdYeeO.jpg

BR30eBU.jpg

fSULh0b.jpg

JlcrPKJ.jpg

ozE4BJ1.jpg

HAUZizg.jpg


The clipping plane extension does effect particle and water rendering if depth effects are on!

ypnCsTR.jpg
 
I tried again, changed module_constants (added infantry of all factions) after multiplayer_ai_troops_end (as this variable is referenced in original script)

Code:
multiplayer_ai_troops_begin = "trp_british_infantry_ai"
multiplayer_ai_troops_end = multiplayer_troops_begin

multiplayer_ai_british_infantry_begin = "trp_british_infantry_ai"
multiplayer_ai_british_infantry_end = "trp_british_hussar_ai"

multiplayer_ai_french_infantry_begin = "trp_french_infantry_ai"
multiplayer_ai_french_infantry_end = "trp_french_hussar_ai"

multiplayer_ai_prussian_infantry_begin = "trp_prussian_infantry_ai"
multiplayer_ai_prussian_infantry_end = "trp_prussian_dragoon_ai"

multiplayer_ai_russian_infantry_begin = "trp_russian_foot_guard_ai"
multiplayer_ai_russian_infantry_end = "trp_russian_hussar_ai"

multiplayer_ai_austrian_infantry_begin = "trp_austrian_infantry_ai"
multiplayer_ai_austrian_infantry_end = "trp_austrian_hussar_ai"

multiplayer_ai_rhine_infantry_begin = "trp_rhine_infantry_bavaria_ai"
multiplayer_ai_rhine_infantry_end = "trp_rhine_mounted_jaeger_ai"

So my code looks like this now

Code:
      (call_script, "script_multiplayer_find_bot_troop_and_group_for_spawn", ":selected_team", ":look_only_actives"),
      (assign, ":selected_troop", reg0),
      (assign, ":selected_group", reg1),

      (team_get_faction, ":team_faction", ":selected_team"),
      (assign, ":num_ai_troops", 0),
	  (store_current_scene, ":cur_scene"),
      (try_begin),
	   (eq, ":cur_scene", "scn_assault_on_malakoff_test"),
	   (eq, "$g_multiplayer_game_type", multiplayer_game_type_team_deathmatch),
           (try_for_range, ":cur_ai_troop", multiplayer_ai_british_infantry_begin, multiplayer_ai_british_infantry_end),
           (try_for_range, ":cur_ai_troop", multiplayer_ai_french_infantry_begin, multiplayer_ai_french_infantry_end),
           (try_for_range, ":cur_ai_troop", multiplayer_ai_russian_infantry_begin, multiplayer_ai_russian_infantry_end),
           (try_for_range, ":cur_ai_troop", multiplayer_ai_prussian_infantry_begin, multiplayer_ai_prussian_infantry_end),
           (try_for_range, ":cur_ai_troop", multiplayer_ai_austrian_infantry_begin, multiplayer_ai_austrian_infantry_end),
           (try_for_range, ":cur_ai_troop", multiplayer_ai_rhine_infantry_begin, multiplayer_ai_rhine_infantry_end),
	     (store_troop_faction, ":ai_troop_faction", ":cur_ai_troop"),
             (eq, ":ai_troop_faction", ":team_faction"),
             (val_add, ":num_ai_troops", 1),
	  (try_end),
	  
      (else_try),
	   (try_for_range, ":cur_ai_troop", multiplayer_ai_troops_begin, multiplayer_ai_troops_end),
             (store_troop_faction, ":ai_troop_faction", ":cur_ai_troop"),
             (eq, ":ai_troop_faction", ":team_faction"),
             (val_add, ":num_ai_troops", 1),
      (try_end),

But still bots are dead when I start team deathmach with bots.
And maybe I wrote something wrong? Maybe it is not correct - to have so many lines with try_for_range ?


eDu kIggZ said:
(call_script, "script_multiplayer_find_bot_
troop_and_group_for_spawn", ":selected_
team", ":look_only_actives"),
      (assign, ":selected_troop", reg0),
      (assign, ":selected_group", reg1),
      (team_get_faction, ":team_faction",
":selected_team"),
      (assign, ":num_ai_troops", 0),
(store_current_scene, ":cur_
scene"),  #my new script

Hi, you can try changing from troops to agents. Then using (agent_get_horse, ":value", ":agent_id"), where value is -1 to allow unmounted to spawn and an else_try option that uses (remove_agent, ":agent_id"), to remove mounted agents.

This is a brute force method that may lead to the need for a count of the total combatants and if less, spawn more agents after setting a spawn point - (set_spawn_position, posX). Hope this helps.

Thank you, eDu kIggZ, it's an interesting approach, but I don't understand how to implement this, i'm very new to coding :smile:

 
By the way - in siege mode in NW there is working restriction for bots spawning as cavalry, at least in defending team, but I didn't find script for that. Maybe someone can point me where it is? I think it can be a start for disabling AI cavalry in other modes

Also I've noticed that on my new scene attacking team has no horses (but all bots are of the same unit), and defending team has cavalry, which is strange
 
ShaunRemo said:
Here are more of the "extra" module.ini features: (Thought these were all in the current Native, no?)
Code:
limit_hair_colors = 1
show_faction_color = 1
show_quest_notes = 1

use_explicit_couch_flag = 1
dont_load_regular_troop_inventories = 1

#assign '1' for moveable physics on all scene props; no sokf_moveable flag will be needed
disable_moveable_flag_optimization = 0

#You can change the following to 1 for ease in module development
show_party_ids_instead_of_names = 0

 crush_through_treshold = 2.4
 
 can_crouch = 1
# can_objects_make_sound = 0
# disable_zoom = 0
 use_advanced_formation = 0
# use_crossbow_as_firearm = 0
# can_reload_while_moving = 0
 #can_run_faster_with_skills = 1
# use_phased_reload = 0
 horses_try_running_away = 0
# horses_rear_with_attack = 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 = 1
# #1.168 things
# operation_set_version = 1168  # to force new version of engine API
# supports_directx_7 = 1

  # this should improve loading time by making it multithread
   reduce_texture_loader_memory_usage = 1  
# use_case_insensitive_mesh_searches = 0

# use_texture_degration_cache = 1 #improve loading times but generate chache files.
# use_scene_unloading = 1
# auto_compute_party_radius = 1 #helps space, select if mod has large icons
# disable_disband_on_terrain_type = 0
# use_strict_pathfinding_for_ships = 0 #keeps ships at sea for sea-to-sea routes
 disable_force_leaving_conversations = 1 #no TAB end in conversations.
# shorter_pistol_aiming = 1 #add pistols to the exception just like in crossbow and muskets
 apply_all_ammo_damage_modifiers = 1
 maximum_number_of_notification_messages = 1 #msg in battle. Common 10
 ai_decide_direction_according_to_damage = 1
# far_plane_distance = 2000 #Default is 1250 cm
# battle_size_min = 30 #minimum battle size for module
# battle_size_max = 150 #maximum battle size for module
 blood_multiplier = 6.0 #chief aumentado
 consider_weapon_length_for_weapon_quality = 1 
 #weapon selection
# use_bordered_shadow_sampler = 0
# show_troop_upgrades_button = 0
Though there could be more... Also keep in mind the uncommented ones are not necessarily the default values.

A question about your map borders Shaun:
How do you get it to fit so well to the terrain?
HAUZizg.jpg
Here I assume you manually raised the terrain over the map mesh - do you use the scene borders for random maps too/how do you get around map clipping? I also implemented this in my mod and have to move the map around and fudge the position a bit to prevent clipping - but it still doesn't work for every case (specifically if the player is at the bottom of a V-shaped dip in terrain):
Code:
	("get_map_offset",
	[
	#Spawn a party to check if terrain is higher to the north and east to prevent complex_map from clipping
	#Check both variables when spawning map in mission template, offset position by map length if true (<- code not included)
			(assign, "$offset_east",  0),
			(assign, "$offset_north", 0),
			(set_fixed_point_multiplier, 100),
		(position_get_x, ":main_p_x", pos13),
		(position_get_y, ":main_p_y", pos13),
		
		(try_begin), #Set dummy party east of player
		(copy_position, pos5, pos13),
		(val_add, ":main_p_x", 100),
		(position_set_x, pos5, ":main_p_x"),
		(party_set_position, "p_map_collisor", pos5),
		(party_get_position, pos5, "p_map_collisor"),
		(position_get_z, ":collis_east_z", pos5),
		(copy_position, pos5, pos13),
		(val_sub, ":main_p_x", 200), #200 because we just added 100
		(position_set_x, pos5, ":main_p_x"),
		(party_set_position, "p_map_collisor", pos5),
		(party_get_position, pos5, "p_map_collisor"),
		(position_get_z, ":collis_west_z", pos5),
			(try_begin),
			(gt, ":collis_east_z", ":collis_west_z"),
			(assign, "$offset_east", 1),
			(try_end),
		(try_end),
		
		(try_begin), #North now
		(copy_position, pos5, pos13),
		(val_add, ":main_p_y", 100),
		(position_set_y, pos5, ":main_p_y"),
		(party_set_position, "p_map_collisor", pos5),
		(party_get_position, pos5, "p_map_collisor"),
		(position_get_z, ":collis_north_z", pos5),
		(copy_position, pos5, pos13),
		(val_sub, ":main_p_y", 200), #200 because we just added 100
		(position_set_y, pos5, ":main_p_y"),
		(party_set_position, "p_map_collisor", pos5),
		(party_get_position, pos5, "p_map_collisor"),
		(position_get_z, ":collis_south_z", pos5),
			(try_begin),
			(gt, ":collis_north_z", ":collis_south_z"),
			(assign, "$offset_north", 1),
			(try_end),
		(try_end),
		
		]),
Was this an issue for you as well?
 
eDu kIggZ said:
After wandering through the MS, I stumbled upon, (agent_get_speed, posX, ":agent_id"). I have a question, how can one call the value from this operation?
Code:
agent_get_speed                          = 1689  # (agent_get_speed, <position>, <agent_id>),
                                                 # Retrieves agent speed to (X,Y) coordinates of the position register. What do these mean - speed by world axis?
What do you need this for? Never used it, but it should be a vector composition (without Z) for complex calculations.

If you dont know how to use the variable type of position (pos1, pos2, etc) see this https://forums.taleworlds.com/index.php/topic,142422.0.html

If you just need to manipulate the linear speed then use this
Code:
agent_get_speed_modifier                 = 2067  # (agent_get_speed_modifier, <destination>, <agent_id>), 
                                                 # output value is in percentage, 100 is default, value can be between [0..1000]
it gives the % for the speed. So you can make a agent slower than his normal (80% speed), faster (120% speed), etc. It is used for simulation of damage, or as a morale buff, etc.


ShaunRemo said:
So my question is what other hidden options are there you can add to module.ini?
Check other official modules like VC DLC, as they include new options for the engine that are compatible with any other module. As Native doesnt use them (default value) TW doesnt tend to add to Native module.ini.

example
Code:
#New leveling system
skill_points_per_level = 2
attribute_points_per_level = 0.195 #0.125
weapon_points_per_level = 5
level_boundary_multiplier = 2.0
attribute_required_per_skill_level = 2
 
kalarhan said:
WilhelmKohle1992 said:
Hey, so I got a question - you know those 4 free attribute points you get when creating a new character. Is it possible to get rid of them?

we dont have operations for complete troop stats manipulation, as the UI for character is hardcoded inside the engine (and not a presentation on the modsys). You could go around it with some hacks and create your own UI, but that is advanced stuff.

experiment with stuff you can do like creating a troop of higher level, changing the module.ini stats config, negative XP, giving stats on a secondary screen (like a dialog or game menu), etc, and see if you can find a solution that fits close to your design.

wouldn't it be possible to put the attributes back in default position
so lets say you know player starts with attribute x at 4 and y at 5/
then he gets 4 points and upgrades his attributes
but upon game start you set the attribute x to 4 an y to 5 so the points are spent but resetted

so for troop player use, and set to the specific values you want at game start
Code:
troop_set_attribute          = 3708 #(troop_set_attribute, <troop_no>, <attribute>, <value>), #Sets <troop_no>'s <attribute> to <value>
troop_set_attribute_points   = 3703 #(troop_set_attribute_points, <troop_no>, <value>), #Sets <troop_no>'s unused attribute points to <value>
 
Godarcher said:
wouldn't it be possible to put the attributes back in default position

he was talking about avoiding that scenario, otherwise the player still needs to choose stats and later see them change outside his control. That sort of thingy works if you are using a system where you create the parents and the child is a combination of them, otherwise it looks like a bug.

but like mentioned earlier those are some of the limitations we have as the character UI is hardcoded and not all operations are available. That is why he will need to experiment with what he can do and adapt his design around those limitations. As long the final implementation is close to his original idea that should be enough.

or he can explain to players that the character screen is not funcional at game creation, that they just need to bypass it without much care. As a mod that is perfectly fine. As long it is clear.

With a little more work he can even avoid the character screen at game creation (UI will not show up) if he learns how to use the game menus and hook scripts.
 
Ivkolya said:
I tried again, changed module_constants (added infantry of all factions) after multiplayer_ai_troops_end (as this variable is referenced in original script)

Code:
multiplayer_ai_troops_begin = "trp_british_infantry_ai"
multiplayer_ai_troops_end = multiplayer_troops_begin

multiplayer_ai_british_infantry_begin = "trp_british_infantry_ai"
multiplayer_ai_british_infantry_end = "trp_british_hussar_ai"

multiplayer_ai_french_infantry_begin = "trp_french_infantry_ai"
multiplayer_ai_french_infantry_end = "trp_french_hussar_ai"

multiplayer_ai_prussian_infantry_begin = "trp_prussian_infantry_ai"
multiplayer_ai_prussian_infantry_end = "trp_prussian_dragoon_ai"

multiplayer_ai_russian_infantry_begin = "trp_russian_foot_guard_ai"
multiplayer_ai_russian_infantry_end = "trp_russian_hussar_ai"

multiplayer_ai_austrian_infantry_begin = "trp_austrian_infantry_ai"
multiplayer_ai_austrian_infantry_end = "trp_austrian_hussar_ai"

multiplayer_ai_rhine_infantry_begin = "trp_rhine_infantry_bavaria_ai"
multiplayer_ai_rhine_infantry_end = "trp_rhine_mounted_jaeger_ai"

So my code looks like this now

Code:
      (call_script, "script_multiplayer_find_bot_troop_and_group_for_spawn", ":selected_team", ":look_only_actives"),
      (assign, ":selected_troop", reg0),
      (assign, ":selected_group", reg1),

      (team_get_faction, ":team_faction", ":selected_team"),
      (assign, ":num_ai_troops", 0),
	  (store_current_scene, ":cur_scene"),
      (try_begin),
	   (eq, ":cur_scene", "scn_assault_on_malakoff_test"),
	   (eq, "$g_multiplayer_game_type", multiplayer_game_type_team_deathmatch),
           (try_for_range, ":cur_ai_troop", multiplayer_ai_british_infantry_begin, multiplayer_ai_british_infantry_end),
           (try_for_range, ":cur_ai_troop", multiplayer_ai_french_infantry_begin, multiplayer_ai_french_infantry_end),
           (try_for_range, ":cur_ai_troop", multiplayer_ai_russian_infantry_begin, multiplayer_ai_russian_infantry_end),
           (try_for_range, ":cur_ai_troop", multiplayer_ai_prussian_infantry_begin, multiplayer_ai_prussian_infantry_end),
           (try_for_range, ":cur_ai_troop", multiplayer_ai_austrian_infantry_begin, multiplayer_ai_austrian_infantry_end),
           (try_for_range, ":cur_ai_troop", multiplayer_ai_rhine_infantry_begin, multiplayer_ai_rhine_infantry_end),
	     (store_troop_faction, ":ai_troop_faction", ":cur_ai_troop"),
             (eq, ":ai_troop_faction", ":team_faction"),
             (val_add, ":num_ai_troops", 1),
	  (try_end),
	  
      (else_try),
	   (try_for_range, ":cur_ai_troop", multiplayer_ai_troops_begin, multiplayer_ai_troops_end),
             (store_troop_faction, ":ai_troop_faction", ":cur_ai_troop"),
             (eq, ":ai_troop_faction", ":team_faction"),
             (val_add, ":num_ai_troops", 1),
      (try_end),

But still bots are dead when I start team deathmach with bots.
And maybe I wrote something wrong? Maybe it is not correct - to have so many lines with try_for_range ?


eDu kIggZ said:
(call_script, "script_multiplayer_find_bot_
troop_and_group_for_spawn", ":selected_
team", ":look_only_actives"),
      (assign, ":selected_troop", reg0),
      (assign, ":selected_group", reg1),
      (team_get_faction, ":team_faction",
":selected_team"),
      (assign, ":num_ai_troops", 0),
(store_current_scene, ":cur_
scene"),  #my new script

Hi, you can try changing from troops to agents. Then using (agent_get_horse, ":value", ":agent_id"), where value is -1 to allow unmounted to spawn and an else_try option that uses (remove_agent, ":agent_id"), to remove mounted agents.

This is a brute force method that may lead to the need for a count of the total combatants and if less, spawn more agents after setting a spawn point - (set_spawn_position, posX). Hope this helps.

Thank you, eDu kIggZ, it's an interesting approach, but I don't understand how to implement this, i'm very new to coding :smile:

kalarhan, can you look into this code and the whole issue with bots spawning as cavalry or not spawning at all, please?
 
Ivkolya said:
kalarhan, can you look into this code and the whole issue with bots spawning as cavalry or not spawning at all, please?

I could, but I dont do MP so it is best to let people that do that often discuss MP stuff.

If you want a advice I would stop looking at after effect (spawn agents) and instead focus on the setup (script/trigger that selects troops to add as visitors).

Cheers
 
Already asked this a little while ago, but thought I would give it another go. Is there some way to see (serverside) in multiplayer when a button is pressed by a player?

In NW they have a number of options for this added, and I tried to imitate what is already there, but it doesn't appear to work from serverside only.

Is this something that can be done without a client mod?
 
kalarhan, the MS I use might be prior since it doesn't have "(agent_get_speed_modifier,
<destination>, <agent_id>)," in it. Perhaps an update. Thank you.

I am very much in the learning process, Ivkolya. Your old code was alright, only one unnecessary "try_end" denied your conditional block different alternatives. Place it at the end of the original script.
      (call_script, "script_multiplayer_find_bot_troop_and_group_for_spawn", ":selected_team", ":look_only_actives"),
      (assign, ":selected_troop", reg0),
      (assign, ":selected_group", reg1),
     
      (team_get_faction, ":team_faction", ":selected_team"),
      (assign, ":num_ai_troops", 0),
      (store_current_scene, ":cur_
scene"),  #my new script
      (try_begin),
          (eq, ":cur_scene", "scn_assault_on_malakoff_test"), #if map is my new map
          (eq, "$g_multiplayer_game_type", multiplayer_game_type_team_deathmatch),#and gamemode is deathmatch
      (try_for_range, ":cur_ai_troop",
multiplayer_ai_troops_begin, multiplayer_ai_troops_end),#troops which can be spawned
          (neg|tf_mounted, ":cur_ai_
troop"),    #but not troops with flag "tf_
mounted"
          (store_troop_faction, ":ai_troop_
faction", ":cur_ai_troop"),
          (eq, ":ai_troop_faction", ":team_
faction"),
          (val_add, ":num_ai_troops", 1),
    (try_end), --- Unnecessary
(else_try),
    (try_for_range, ":cur_ai_troop",
multiplayer_ai_troops_begin, multiplayer_ai_
troops_end), #original script
        (store_troop_faction, ":ai_troop_
faction", ":cur_ai_troop"),
        (eq, ":ai_troop_faction", ":team_
faction"),
        (val_add, ":num_ai_troops", 1),
      (try_end),
    (try_end), --- New position
 
pete99 said:
Already asked this a little while ago, but thought I would give it another go. Is there some way to see (serverside) in multiplayer when a button is pressed by a player?

In NW they have a number of options for this added, and I tried to imitate what is already there, but it doesn't appear to work from serverside only.

Is this something that can be done without a client mod?

there is no way to do this without client side mod.

You need to send and receive events.
 
Thanks Ruthven I asked because my module.ini didn't have the far_plane_distance = 2000 orginally!
Yep so for all scenes so far I have been moving the map mesh into the correct position via script then modifying the scenes terrain around the map, very tedious!
Random maps defiantly have clipping issues, no way to modify scene terrain on the fly so currently the map mesh moves well below the map by default.
However I'm going to have a play with  cast_ray ideal, have the map spawn well below the scene and fire rays down from below ground level down in a grid, the shortest ray would be the closest point the map can be to the terrain and shifts it up by that amount minus a little. 
 
My script for the map mesh if interested.
Code:
 ("ZZ_Map_Test",0,"map","0", 
   [
   (ti_on_scene_prop_init,
    [
     (store_trigger_param_1, ":scene_prop_id"),
     (prop_instance_get_variation_id, ":var_1", ":scene_prop_id"),
     (prop_instance_get_variation_id_2, ":var_2", ":scene_prop_id"),
     (eq,":var_1",0), # Object is live - lock map position by setting Var to 1
     (party_get_position,pos6,"p_main_party"),
     (eq,":var_1",0),  # Map is live check
(try_begin),
     (party_is_in_any_town,"p_main_party"),	#In a town
     (party_get_position,pos6,"$current_town"), #town position
    (else_try),
     (ge,":var_2",1),				#Check if you want to choose a town (useful for multiplayer maps)
     (party_get_position,pos6,":var_2"),        #Moves map to chosen town
(try_end),
     (store_div,":Map_X","$g_battle_map_width",2), #Prepare to center Map
     (assign,":Scale",50), #Choose scale of map
     (set_fixed_point_multiplier, ":Scale"), 
     (position_get_x,":X",pos6),
     (position_get_y,":Y",pos6),
     (position_get_z,":Z",pos6),
     (set_fixed_point_multiplier, 1),
     (val_add,":X",":Map_X"), #centers map
     (val_add,":Y",":Map_X"), #centers map
     (val_mul,":Z",-1),
     (val_sub,":Z",0),
     (position_set_x,pos6,":X"),
     (position_set_y,pos6,":Y"),
     (position_set_z,pos6,":Z"),
     (position_get_rotation_around_z,":rotation",pos6), #Sets map to face north
     (val_mul,":rotation",-1),
     (position_rotate_z,pos6,":rotation",0), # Rotates map correctly
     (prop_instance_set_position, ":scene_prop_id", pos6),
     (prop_instance_set_scale, ":scene_prop_id", ":Scale", ":Scale", ":Scale"),

  
    ]),
   ]),
 
eDu kIggZ said:
kalarhan, the MS I use might be prior since it doesn't have "(agent_get_speed_modifier,
<destination>, <agent_id>)," in it. Perhaps an update. Thank you.

the header_XXX.py files are about the engine, not the module. So keep updating your own modsys to gain access to new flags, operations, etc, plus changes to old operations that got new parameters or bug fixes. Dont expect anything major from now on, but if you are using a 1.153 or older modsys then there are tons of new stuff that came with VC DLC.

same for module.ini. Look at the new flags and see if any is of use to your own module.

in other words: get the new header_XXX.py and merge yours.
 
Code:
["modded_falchion_3", "Gaelic Falchion", [("falchion_godenak", imodbits_none)], itp_type_one_handed_wpn|itp_merchandise|itp_primary|itp_secondary|itp_no_blur, itcf_carry_sword_left_hip|itcf_show_holster_when_drawn|itc_longsword, 1250, thrust_damage(28, cut)|hit_points(36864)|spd_rtng(95)|abundance(40)|weight(2.25)|swing_damage(36, cut)|difficulty(9)|weapon_length(102), imodbit_fine|imodbits_sword_high, [], [fac_culture_gaelic]],
["modded_arab_sword_1", "Saracen Sword", [("sword_arabic_1", imodbits_none), ("sword_arabic_1_scab", ixmesh_carry)], itp_type_one_handed_wpn|itp_merchandise|itp_primary|itp_secondary|itp_no_blur, itcf_carry_sword_left_hip|itcf_show_holster_when_drawn|itc_longsword, 1450, thrust_damage(32, pierce)|hit_points(36864)|spd_rtng(95)|abundance(40)|weight(2.25)|swing_damage(28, cut)|difficulty(9)|weapon_length(96), imodbit_fine|imodbits_sword_high, [], arab_factions],
Here's the bug: The first weapon is fine, but the second shows up in game with the cut damage doubled. Why? I checked and it doesn't seem to have anything extra.

  [anyone|plyr, "minister_talk",
  [
  (is_between, "$g_player_minister", active_npcs_begin, kingdom_ladies_end),
  ],
"I wish to grant myself a fief.", "minister_grant_self_fief", []],

 

  [anyone, "minister_grant_self_fief",
  [
  (faction_get_slot, ":fief_on_agenda", "$players_kingdom", slot_faction_political_issue),
  (str_clear, s12),
  (try_begin),
    (is_between, ":fief_on_agenda", centers_begin, centers_end),
    (str_store_party_name, s4, ":fief_on_agenda"),
    (str_store_string, s12, "str_minister_advice_select_fief"),
  (else_try),
    (eq, ":fief_on_agenda", 1),
    (str_store_string, s12, "str_minister_advice_select_fief_wait"),
  (try_end),
  ],
"Which of your fiefs do you wish to take?{s12}", "minister_grant_fief_player_select", []],
#2 When i select the first dialogue this happens. I don't understand this. I copied the "grant fief to vassal" dialogue and that one works fine.
 
Hello everyone.

Just a quick question, is there a town/settlement limit in Waband and if so
what would be the limit before problems would occur?.

This was asked by someone quite a while back but I could not find the thread.
 
Blubby said:
Hello everyone.

Just a quick question, is there a town/settlement limit in Waband and if so
what would be the limit before problems would occur?.

This was asked by someone quite a while back but I could not find the thread.
No limit but the problems that can occur are:
#1: The game will lag more because it will need to process more fiefs when a script requires it.
#2: The savegame size will increase due to fiefs taking slots which occupy space.
The first (if you encounter lag) can be solved by using the Viking Conquest trigger method. The second by careful management of slots.
 
Status
Not open for further replies.
Back
Top Bottom