Level scaling in Warband

正在查看此主题的用户

ripple

Knight
Is there a way to remove or curb level scaling in Warband?

Leveling scaling is a really lazy method to maintain the 'challenge factor' in the late stages of any game. With a level 40 character, every time I go anywhere in a city at night I get assaulted by 5 or 6 bandits (whereas at lower levels you would get maybe 2 bandits). The 'train villagers' quests have become a chore when I have to habitually take on 3 villagers with nothing but a stick. Not to mention the bugged hired assassin waiting at every tavern who respawns every time I re-enter the tavern. Then there is the increased party size of bandits that has basically doubled from when you were level 10. Where are they coming from? Is there a bandit hive mother mass (re)producing them?

I am ok with -some- limited scaling (like Fallout 3), but this is ridiculous. What can I do to remove or limit level scaling?
 
Edit the bandit parites to have a set amount of troops, no idea about the other ones though.
 
There are at least a handful of things that are scaled with level. You have to find them and change the codes.
 
For the first: Alter module_scripts.py, relevant portions are shown below
插入代码块:
...
        (party_slot_eq, "$current_town", slot_party_type, spt_village),
        (assign, ":spawn_amount", 2),
        (store_div, ":level_fac",  ":level", 10),
        (val_add, ":spawn_amount", ":level_fac"),
        (try_for_range, ":unused", 0, 3),
          (gt, ":level", 10),
          (store_random_in_range, ":random_no", 0, 100),
          (lt, ":random_no", ":level"),
          (val_add, ":spawn_amount", 1),
        (try_end),
...
      (else_try),
        (assign, ":spawn_amount", 1),
        (assign, "$num_center_bandits", 0),
        (try_begin), #change/remove this
          (gt, ":level", 15),
          (store_random_in_range, ":random_no", 0, 100),
          (lt, ":random_no", ":level"),
          (assign, ":spawn_amount", 2),
        (try_end),
...
        (assign, ":spawn_amount", 1),
        (try_begin),
          (gt, ":level", 20),
          (store_random_in_range, ":random_no", 0, 100),
          (lt, ":random_no", ":level"),
          (assign, ":spawn_amount", 2),
        (try_end),
...
        (try_begin),
          (gt, ":level", 9),
          (assign, ":spawn_amount", 1),
          (try_begin),
            (gt, ":level", 25),
            (store_random_in_range, ":random_no", 0, 100),
            (lt, ":random_no", ":level"),
            (assign, ":spawn_amount", 2),
          (try_end),
...
For the second: Go to module_game_menus.py, and again, change the following
插入代码块:
      (store_character_level, ":level", "trp_player"),
      (val_div, ":level", 10),
      (val_add, ":level", 1),
...
      (assign, ":max_random", ":level"),
...
      (val_add, ":max_random", 1),
      (store_random_in_range, ":random_number", 1, ":max_random"),
      (assign, "$g_train_peasants_against_bandits_num_peasants", ":random_number"),
For the third: The assassin only reappears if you've loaded a savegame from 1.126 or something. Has nothing to do with level.
For the last: Disable (or tweak) script_update_party_creation_random_limits. Or just remove the following trigger so it never updates.
插入代码块:
  # Make parties larger as game progresses.
  (24,
   [
       (call_script, "script_update_party_creation_random_limits"),
    ]),
 
Brilliant! Thank you Somebody. Question: If I remove the trigger for "# Make parties larger as game progresses", that will affect party sizes for nobles as well as bandits, not just bandits, right?
 
To be honest, I'm not sure how. The script involved is here:
插入代码块:
    ("update_party_creation_random_limits",
      [
        (store_character_level, ":player_level", "trp_player"),
        (store_mul, ":upper_limit", ":player_level", 3),
        (val_add, ":upper_limit", 25),
        (val_min, ":upper_limit", 100),
        (set_party_creation_random_limits, 0, ":upper_limit"),
        (assign, reg0, ":upper_limit"),
    ]),
And according to header_operations, set_party_creation_random_limits should have values should be between {0, 100}. The script makes the upper limit between {25,100}, and leaves the lower bound as 0.
Now, since most parties are created from various party_templates, I'm assuming that those value are involved in the calculation of the actual output when party_add_template is used.

Btw, lord party (max/ideal) size is determined from various factors in script_party_get_ideal_size, which also scales with the player's level/80. So your level 40 character experiences 1.5 times greater theoretical party sizes.
插入代码块:
      (store_character_level, ":level", "trp_player"), #increase limits a little bit as the game progresses.
      (store_add, ":level_factor", 80, ":level"),
      (val_mul, ":limit", ":level_factor"),
      (val_div, ":limit", 80),
 
Nice thread necro.
Stop what?

Reading some replies back, I guess you mean stopping the "Make parties larger" thing.
Open your simple_triggers.txt, search for "
插入代码块:
24.000000  1
", cause the trigger, as said by Somebody, refreshes every 24 hours and only calls a script.
One of the resulting lines will have to be it. Replace all the stuff after 24.0000 with 0, delete the line and remove 1 from the number on the second line of the file.
 
后退
顶部 底部