Search results for query: *

  1. German Translation

    A retainer usually means Gefolgsmann - Lesser Lord's Retainer --> Gefolgsmann eines niederen Adligen.

    A retainer's apprentice is someone who is trained/is about to become a Gefolgsmann when he's old enough --> maybe 'Gefolgsmann Anwärter' could be an appropriate translation.

    Often times these were the sons/relatives of retainers who were in service to the concerning lords, and this over several generations in many cases thus creating a strong bond/tradition to the specific lord or house of nobles.

    For the later Medieval times it could also be translated as Lehnsmann, the ones who the lord would gather from his fiefs. But for this timeframe I think Gefolgsmann is more appropriate, as the characteristic fiefdom system, i.e. handing out land for vassalage, was not that common until around the 8th Century. A Gefolgsmann is somewhat more than a simple warrior or paid soldier in the service of a lord. As mentinoed above, a Gefolgsmann usually has strong personal ties, i.e. a stronger allegiance to the concerning lord or high-born.
  2. German Translation

    Good, bad luck. -->  Na gut, Pech gehabt.


    Is this a defence or an attack sentence : Advance your ships to the harbor entrance, approaching and putting to flight merchant ships and other boats with defenders of the city.

    Sounds like an attack - you move your ships to the harbor entrance and the ships with city defenders on board start to flee
  3. Splash damage on firearma

    You find the stuff in the module system files which you need for modding M&B - you can get the module system here http://forums.taleworlds.com/index.php/topic,111706.0.html
    For compiling the module system you need to have Python installed on your PC.
    The ti_on_missile_hit, ti_on_weapon_attack, etc., are triggers in module_items.
  4. SP Musket Era Enhancement Mod. Rule your own kingdom! 1.75 final. Open mod source code.

    Did you really proceed exactly through all the points I've listed?

    After executing modmerger, you have to enter '1' for installing I guess it was and then exit the window. Did the modmerger options window show up at all? After having executed modmerger, were there any backup files created of the original python files in the mod?

    Maybe there are some files missing in your compiled version of the mod, like module.ini, the map and some ...variables.txt? These are not processed through the compiler and have to be put manually into your mod by copying them from the original mod. But if they would be missing your game wouldn't start, so this can't be it...

    Maybe it is a problem with Steam - do you use Steam? Then it could help to download WFaS again and place it directly into a directory on C:\. Then switch the WFaS Enhanced mod folder from Steam to your new directory.

    If nothing helps then you could retry the whole procedure by re-downloading the original version of the WFaS Enhanced mod and doing the following:
    First, you re-download WFaS and install it somewhere on C:\. Then you download the WFaS Enhanced mod and just leave it in the download folder, extracted. Then you create a new folder for your own version of the mod in the WFaS modules folder of the newly installed WFaS, somewhere on C:\, and adjust the export path in your module_info file. Start modmerger, follow the instructions, then compile build_meshes.bat and compile build_module.bat again - you now should have only the txt files in your version's folder. Then you copy the sub-folders from the newly downloaded original mod (where all the textures etc. are contained) into your version's folder. Compare the number of files from your version with the original version and copy/paste the missing files from there into your version's folder.

    Now take a look at your files, their content and sizes (use BeyondCompare, WinGrep or some similar tool for this) - if the files in your version of the mod are the same as in the original mod, you should have no problem with the game. By using one of this tools you can also easily find out where your files possibly deviate from the original mod files and therefore you'll know what is missing, or if something is missing.

    Do this all with the admin account, not a user account with admin rights but with the admin account. You need absolutely full rights on your machine and a user account that just has admin rights does not exactly work like the admin account itself.
  5. SP Musket Era Enhancement Mod. Rule your own kingdom! 1.75 final. Open mod source code.

    I've downloaded and compiled it today. Basically, you just have to do what el_infante said on page 1. Anyhow, here's how I did it, hope it helps a few of you

    - I've download the source and unzipped it

    - then I've copied everything from the folder WFaS Pre battle orders into this folder WFaS Enhanced 175

    - in the folder WFaS Enhanced 175 I've double-clicked on the file modmerger.py

    - here I followed the steps of the modmerger installation (I think the options I chose was 1 -> Enter and then 0 -> Enter)

    - after this, I opened module_troops.py (right click -> edit with notepad) which is in this folder WFaS Enhanced 175

    - here I've looked for nord_footman_levelup3, which lead to the following line which I commented out by placing a # in front of that line, so that it looked like this #upgrade(troops,"nord_footman_levelup2","nord_footman_levelup3")

    - saved the module_troops.py and closed it

    - went to my WFaS Enhanced folder (the game/mod itself, not the source) and backed up all the files in there

    - went back to the WFaS Enhanced 175 folder

    - opened the file module_info.py and checked whether the export-path pointed to the location of the WFaS Enhanced mod folder

    - then I ran (double-click) the build_meshes.bat (file should be in the folder WFaS Enhanced 175)

    - then I ran the build_module.bat (file is in the folder WFaS Enhanced 175), on compiling you will get a warning that several global_variables are not being used - you can ignore this warning, it should have no effect on the game play

    - on being asked whether I wanted to overwrite, I checked 'yes to all'


    After this you're done. You can start to play. I didn't test that much though, i.e. I didn't play the mod that much. But I compared the files of the original mod download with the new version I've compiled and they are the same sizes. So, I guess it should work without bugs, at least I didn't encounter any bugs in 2 hours gameplay - the new/added stuff was all in there, pre-battle order deployments worked too, etc.

    Why did I comment the module_troops.py/comment the nord_footman_levelup3 line out?
    Because there doesn't exist any nord_footman_levelup3, only a nord_footman_levelup2. If you leave it as it is, you will get an error on compiling the mod. So, instead of commenting the above line out you could also delete the line completely, or, add/create a new troop nord_footman_levelup3 (that's a pikeman veteran or elite pikeman or something) in which case you can leave the line as it is of course.


    A few hints:

    If you have Vista, Win7 or Win8 you will have to have, or give yourself, full admin rights first, in order to be able to install/compile everything properly - just ask google or youtube how to do it, it's not difficult.

    And to run the batch files, i.e. in order to compile the files of the module system, you have to have Python installed on your PC. I think I use version 2.6.x or 2.7.x of Python which works fine with WFaS and Warband. You can download Python for free, just ask the search engine of your choice. For properly installing Python you also need full admin rights on your PC as you have to add a new path variable.

    If you open Python files (use right-click -> edit with notepad), always use a proper editor for working with those files. The Python install includes the editor IDLE which I don't like that much, I prefer to use Notepad++ - it makes working with the code so much more convenient. You can download notepad++ for free. There are different other good editors out there, you could even use the Windows default editor, but that'll become a real pain in the ass.


    You might get a bit better performance or less crashes if you change the following stuff, if not already done

    - go to C:\Users\Administrator\Documents\Mount&Blade With Fire and Sword (your directory could look a bit different but the last part should be the same C:\...\Documents\Mount&Blade With Fire and Sword)
    - or simply search C:\ for rgl_config
    - open the file rgl_config
    - look for render_buffer_size and increase the value to something like half of your graphic card's memory capacity (I've 1 GB, so I set it to 512)
    - save the file and close it
    - start With Fire and Sword
    - in the launcher, go to configure, select the tab "video"
    - check 'load textures on demand'
    - look for 'Max. Frame. Rate' and reduce it from 120 to 60 or 80 (the human eye won't notice any difference)
    - either here in the configure menu or during the game in "options", you could also try to set Shadow Quality to 'High' and Antialiasing to 'off' and/or maybe reduce texture details somewhat

  6. God damn beer, man

    As far as I know, the profit of all enterprises of the same kind will be reduced for 10% if you have more than 1 enterprise, and again 10% less for every other enterprise. I usually built no more than 3 enterprises of the same kind, this was the best cost/profit margin I could make. Maybe 4 enterprises and very rarely 5, if it was a really profitable business like dyeries in the Mongol regions, or iron works and tanneries in England/Northern Europe. However, the profit can still vary heavily. Therefore I used to close down businesses, if they provided very low or negative profit over several weeks in a row, and reopen the same business at some other place where I would get more profit. Once-high-now-low-profit businesses usually recover over a period of time, though.
  7. Lords Not Following Me (As Marshal)

    If it is a problem with the script/code you won't be able to solve the problem on your own, as you'd need the mod's module system for this. If your current game just bugged out, it could help to start a new game. Or, if you don't want to quit your current game, you could try to leave the faction and do some other stuff, join another faction or become king, etc. However, before doing that that, I would resign the current marshalship and wait whether the AI lords follow their new marshal. Maybe this solves your problem, though I somehow doubt it, but it's still worth a try.
  8. God damn beer, man

    A brewery should be good in Ilkhanate or Byzantine regions and perhaps Italy, I think. Bakeries were good around Ireland/England/Northern Europe or something, IIRC.
  9. Holy Orders

    There is nothing good or special as far as I know, besides that you get the particular order's equipment for free and you can share some imaginary brotherly love in the name of Christ. But you will loose all your current stuff and troops, etc. And that is about the only difference there is between the orders, their equipment. Except for the Teutonics that is, who have their own state of course. But as a member of their order you won't have much to do with affairs of the state.
  10. Lords Not Following Me (As Marshal)

    The script error seems to be exactly what is wrong with your game and the AI lords not following you as their new marshal. I don't think that this problem can be solved without having a look at the script decide_faction_ai, if it indeed should be a problem within the code, and/or starting a new game.
  11. Mercenary companion 'on a mission' and will not come back

    Trebu said:
    oroboros said:
    I see, your thread's title is a bit misleading then - mercenary companion 'on a mission' - but now I understand that you've meant the game notes/whereabouts status of this companion... Anyhow, in this case you could try to gain a bit of renown, like 50 - 100, and then, after a couple of days or 1 or 2 weeks (can't recall the time span of the trigger), start to look around in taverns and/or ask travellers for the whereabouts of this particular companion. This is the usual procedure, same as it is in Native - a "lost" companion will appear again and travel around the taverns after you've gained some renown. Maybe this will help you, but I'm not 100% sure if it does.
    My renown is over 400, I asked travellers and went to his location several times, checked the taverns, and I've had no luck.

    Maybe 400 is not enough - I meant that you have to gain ~50 more renown than you had when you were defeated and your companions got captured, not your current total renown. If the traveller can tell you in which city/tavern your companion is and the companion is not there, it might also be broken. But then again, the "on a mission" indicates that the companion has not returned yet, so maybe the traveller talks bull. Or maybe you are too slow because of the huge map, companions switch locations every couple days. You could try the traveller again after having 450 renown or so (if your manor is big enough there should be a few of them walking around), and/or maybe use CTRL+Click to teleport to the city immediately if he can tell you the companion's whereabouts. If this doesn't work, I have no idea how to get him back.
  12. Mercenary companion 'on a mission' and will not come back

    I see, your thread's title is a bit misleading then - mercenary companion 'on a mission' - but now I understand that you've meant the game notes/whereabouts status of this companion... Anyhow, in this case you could try to gain a bit of renown, like 50 - 100, and then, after a couple of days or 1 or 2 weeks (can't recall the time span of the trigger), start to look around in taverns and/or ask travellers for the whereabouts of this particular companion. This is the usual procedure, same as it is in Native - a "lost" companion will appear again and travel around the taverns after you've gained some renown. Maybe this will help you, but I'm not 100% sure if it does.
  13. Mercenary companion 'on a mission' and will not come back

    If you send out your mercenary companions on a mission (the ones you can hire from any town menu) they won't return to you automatically, like companions normally do. But you can re-hire them from any town menu after you've sent them out, if they do not return. I am not quite sure whether this was fixed or not, if not, the mercenary companions cannot accomplish those missions, like increasing your right to rule, etc.

    If you send out your noble companions (the ones you can hire within a fief if you're the lord of that fief - there are 3 nobles per culture and there are 5 different cultures) they will return to you automatically after having accomplished their missions and they surely do accomplish their missions. So if you're king, better don't promote all noble companions to lords and instead keep 1 noble companion as an emissary. He can be of great help if you're a monarch.
  14. Modding Q&A [For Quick Questions and Answers]

    Cozur said:
    oroboros said:

    It does seem to prevent the trigger from firing, but if it's after the day set here:

          (store_current_day, ":cur_day"),
          (store_random_in_range, ":village_no", "p_castle_84", "p_castle_83"),
        (eq, ":cur_day", 1),  

    I think it doesn't fire? At least doesn't in-game.

    Hm, you could leave out the below, as I think you won't need it if you use the version with the global variable

      (store_current_day, ":cur_day"),
      (eq, ":cur_day", 1),

    So the trigger would look like this then

    (24,
      [
          (try_begin),
                (ge, "$g_global_var_announce_invasion", 1), ## only if the dialogue option above has been picked will the trigger start to add 1 to the variable every day
                (lt, "$g_global_var_announce_invasion", 7),
                (val_add, "$g_global_var_announce_invasion", 1),
            (else_try),
                (assign, "$g_global_var_announce_invasion, 0),
          (try_end),

          (eq, "$g_global_var_announce_invasion", 7), ## condition for executing the below stuff
     
          (store_random_in_range, ":village_no", "p_castle_84", "p_castle_83"),
         
        #CHEAT TEST REMOVE ME
        ##  (call_script, "script_change_troop_renown", "trp_player", 20000),
        ##    (try_for_range, ":troop_new", "trp_ief_velites", "trp_ief_deserter"),
        ##        (party_add_members, "p_main_party", ":troop_new", 10),
        ##    (try_end),
        #CHEAT TEST REMOVE ME
     
            (troop_set_faction, "trp_kingdom_20_lord", "fac_kingdom_20"),
            (faction_set_slot, "fac_kingdom_20", slot_faction_state, sfs_active),
            (call_script, "script_create_kingdom_hero_party", "trp_kingdom_20_lord", ":village_no"),
            (troop_set_slot, "trp_kingdom_20_lord", slot_troop_wealth, 100000),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_1", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_2", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_5", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_8", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_9", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_10", 1),
            (call_script, "script_start_give_center_to_lord", "p_castle_83", "trp_knight_20_1", 0),
            (call_script, "script_start_give_center_to_lord", "p_castle_84", "trp_knight_20_6", 0),
            (call_script, "script_start_give_center_to_lord", "p_castle_85", "trp_knight_20_9", 0),
            (call_script, "script_start_give_center_to_lord", "p_castle_20", "trp_knight_20_2", 0),
            (call_script, "script_start_give_center_to_lord", "p_castle_124", "trp_kingdom_20_lord", 0),
                (try_for_range, ":troop_no", "trp_knight_20_1", "trp_kingdom_1_pretender"),
                  (troop_slot_eq, ":troop_no", slot_troop_occupation, slto_kingdom_hero),
                  (neg|troop_slot_ge, ":troop_no", slot_troop_prisoner_of_party, 0),
                  (neg|troop_slot_ge, ":troop_no", slot_troop_leaded_party, 1),
                  (call_script, "script_create_kingdom_hero_party", ":troop_no", ":village_no"),
                  (troop_set_slot, ":troop_no", slot_troop_wealth, 40000),
                (try_end),
            (jump_to_menu, "mnu_dk_invasion_start_warning"),
        ]),

    Or, as somebody suggested, instead of using a trigger you could just either put the block of code directly into the dialogue, or create a new script with the code and call that script from the dialogue option, then it would be executed immediately after the dialogue option has been chosen.

    You can also leave out all the conditions then

          (store_random_in_range, ":village_no", "p_castle_84", "p_castle_83"),
         
        #CHEAT TEST REMOVE ME
        ##  (call_script, "script_change_troop_renown", "trp_player", 20000),
        ##    (try_for_range, ":troop_new", "trp_ief_velites", "trp_ief_deserter"),
        ##        (party_add_members, "p_main_party", ":troop_new", 10),
        ##    (try_end),
        #CHEAT TEST REMOVE ME
     
            (troop_set_faction, "trp_kingdom_20_lord", "fac_kingdom_20"),
            (faction_set_slot, "fac_kingdom_20", slot_faction_state, sfs_active),
            (call_script, "script_create_kingdom_hero_party", "trp_kingdom_20_lord", ":village_no"),
            (troop_set_slot, "trp_kingdom_20_lord", slot_troop_wealth, 100000),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_1", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_2", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_5", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_8", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_9", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_10", 1),
            (call_script, "script_start_give_center_to_lord", "p_castle_83", "trp_knight_20_1", 0),
            (call_script, "script_start_give_center_to_lord", "p_castle_84", "trp_knight_20_6", 0),
            (call_script, "script_start_give_center_to_lord", "p_castle_85", "trp_knight_20_9", 0),
            (call_script, "script_start_give_center_to_lord", "p_castle_20", "trp_knight_20_2", 0),
            (call_script, "script_start_give_center_to_lord", "p_castle_124", "trp_kingdom_20_lord", 0),
                (try_for_range, ":troop_no", "trp_knight_20_1", "trp_kingdom_1_pretender"),
                  (troop_slot_eq, ":troop_no", slot_troop_occupation, slto_kingdom_hero),
                  (neg|troop_slot_ge, ":troop_no", slot_troop_prisoner_of_party, 0),
                  (neg|troop_slot_ge, ":troop_no", slot_troop_leaded_party, 1),
                  (call_script, "script_create_kingdom_hero_party", ":troop_no", ":village_no"),
                  (troop_set_slot, ":troop_no", slot_troop_wealth, 40000),
                (try_end),
            (jump_to_menu, "mnu_dk_invasion_start_warning"),
  15. Modding Q&A [For Quick Questions and Answers]

    Cozur said:
    Cozur said:
    oroboros said:
    Cozur said:
    I want this trigger:

    Code:
    ####################################################################################################################################
       (24,
       [
          (store_current_day, ":cur_day"),
          (store_random_in_range, ":village_no", "p_castle_84", "p_castle_83"),
          (eq, ":cur_day", 1),      
             #CHEAT TEST REMOVE ME
          ##   (call_script, "script_change_troop_renown", "trp_player", 20000),
          ##   (try_for_range, ":troop_new", "trp_ief_velites", "trp_ief_deserter"),
          ##   (party_add_members, "p_main_party", ":troop_new", 10),
          ##   (try_end),
             #CHEAT TEST REMOVE ME
             (troop_set_faction, "trp_kingdom_20_lord", "fac_kingdom_20"),
             (faction_set_slot, "fac_kingdom_20", slot_faction_state, sfs_active),
             (call_script, "script_create_kingdom_hero_party", "trp_kingdom_20_lord", ":village_no"),
             (troop_set_slot, "trp_kingdom_20_lord", slot_troop_wealth, 100000),
             (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_1", 1),
             (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_2", 1),
             (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_5", 1),
             (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_8", 1),
             (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_9", 1),
             (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_10", 1),
             (call_script, "script_start_give_center_to_lord", "p_castle_83", "trp_knight_20_1", 0),
             (call_script, "script_start_give_center_to_lord", "p_castle_84", "trp_knight_20_6", 0),
             (call_script, "script_start_give_center_to_lord", "p_castle_85", "trp_knight_20_9", 0),
             (call_script, "script_start_give_center_to_lord", "p_castle_20", "trp_knight_20_2", 0),
             (call_script, "script_start_give_center_to_lord", "p_castle_124", "trp_kingdom_20_lord", 0),
                (try_for_range, ":troop_no", "trp_knight_20_1", "trp_kingdom_1_pretender"),
                   (troop_slot_eq, ":troop_no", slot_troop_occupation, slto_kingdom_hero),
                   (neg|troop_slot_ge, ":troop_no", slot_troop_prisoner_of_party, 0),
                   (neg|troop_slot_ge, ":troop_no", slot_troop_leaded_party, 1),
                   (call_script, "script_create_kingdom_hero_party", ":troop_no", ":village_no"),
                   (troop_set_slot, ":troop_no", slot_troop_wealth, 40000),
                (try_end),
                (jump_to_menu, "mnu_dk_invasion_start_warning"),
                ]),

    to fire 7 days after a dialogue has been finished. How would I go about doing that?

    You could try to use a global variable which you set to 1 after the dialogue has finished (assign, "$g_global_var", 1) and count it up to 7 in the trigger. As the trigger runs through every 24 hours anyhow, you would then have your 7 days time span, something like

    (try_begin),
    (is_between, "$g_global_var", 1, 7),
    (val_add, "$g_global_var", 1),
    (else_try),
    (assign, "$g_global_var, 0), ## ensures that the trigger doesn't run through every day after day 7
    (try_end),
    (eq, "$g_global_var", 7), ## condition for the trigger to execute

    (store_current_day, ":cur_day"),
    (store_random_in_range, ":village_no", "p_castle_84", "p_castle_83"),
    (eq, ":cur_day", 1),
    etc.

    and at the end of the trigger you reset the global_var to 0, so that the trigger's condition doesn't apply anymore, after it has run through once (assign, "$g_global_var", 0), - this is just to make sure that the condition isn't met if the is_between/else_try doesn't catch it in the first place on the next execution time, due to whatever reason, a double insurance, so to say. But you can leave this out, if you trust the little loop.

    Hmm, not quite sure what goes where.

    Doesn't even have to be after 7 days. Just need a way to make the trigger fire once after a dialogue option has been chosen.


    So, the dialogue might look something like the following -- at the end of the talk option you assign your global variable

    [anyone|plyr, "placeholder_whatever", [],"Damn, I've just picked the wrong option and now the invasion will start...","close_window",[(assign, "$g_global_var_announce_invasion", 1)]],


    Then I would adjust the simple_trigger, if I wanted to have a 7 day delay

    (24,
      [
    (try_begin),
    (ge, "$g_global_var_announce_invasion", 1), ## only if the dialogue option above has been picked will the trigger start to add 1 to the variable every day
    (lt, "$g_global_var_announce_invasion", 7),
    (val_add, "$g_global_var_announce_invasion", 1),
    (else_try),
    (assign, "$g_global_var_announce_invasion, 0),
    (try_end),

    (eq, "$g_global_var_announce_invasion", 7), ## condition for executing the below stuff


    (store_current_day, ":cur_day"),
    (store_random_in_range, ":village_no", "p_castle_84", "p_castle_83"),
    (eq, ":cur_day", 1),   

        #CHEAT TEST REMOVE ME
        ##  (call_script, "script_change_troop_renown", "trp_player", 20000),
        ##  (try_for_range, ":troop_new", "trp_ief_velites", "trp_ief_deserter"),
        ##  (party_add_members, "p_main_party", ":troop_new", 10),
        ##  (try_end),
        #CHEAT TEST REMOVE ME

            (troop_set_faction, "trp_kingdom_20_lord", "fac_kingdom_20"),
            (faction_set_slot, "fac_kingdom_20", slot_faction_state, sfs_active),
            (call_script, "script_create_kingdom_hero_party", "trp_kingdom_20_lord", ":village_no"),
            (troop_set_slot, "trp_kingdom_20_lord", slot_troop_wealth, 100000),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_1", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_2", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_5", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_8", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_9", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_10", 1),
            (call_script, "script_start_give_center_to_lord", "p_castle_83", "trp_knight_20_1", 0),
            (call_script, "script_start_give_center_to_lord", "p_castle_84", "trp_knight_20_6", 0),
            (call_script, "script_start_give_center_to_lord", "p_castle_85", "trp_knight_20_9", 0),
            (call_script, "script_start_give_center_to_lord", "p_castle_20", "trp_knight_20_2", 0),
            (call_script, "script_start_give_center_to_lord", "p_castle_124", "trp_kingdom_20_lord", 0),
                (try_for_range, ":troop_no", "trp_knight_20_1", "trp_kingdom_1_pretender"),
                  (troop_slot_eq, ":troop_no", slot_troop_occupation, slto_kingdom_hero),
                  (neg|troop_slot_ge, ":troop_no", slot_troop_prisoner_of_party, 0),
                  (neg|troop_slot_ge, ":troop_no", slot_troop_leaded_party, 1),
                  (call_script, "script_create_kingdom_hero_party", ":troop_no", ":village_no"),
                  (troop_set_slot, ":troop_no", slot_troop_wealth, 40000),
                (try_end),
            (jump_to_menu, "mnu_dk_invasion_start_warning"),
        ]),


    If I didn't want to have a delay of 7 days, I would adjust the simple_trigger as follows
    (--> the trigger will fire on the next execution time after the dialogue option above has been chosen. This can be anywhere from 1 to 24 hours, depending on when the talk happened/the above option was chosen)

    (24,
      [
    (eq, "$g_global_var_announce_invasion", 1), ## if this condition has been met the rest of the code below will be executed

    (store_current_day, ":cur_day"),
    (store_random_in_range, ":village_no", "p_castle_84", "p_castle_83"),
    (eq, ":cur_day", 1),     

    #CHEAT TEST REMOVE ME
        ##  (call_script, "script_change_troop_renown", "trp_player", 20000),
        ##  (try_for_range, ":troop_new", "trp_ief_velites", "trp_ief_deserter"),
        ##  (party_add_members, "p_main_party", ":troop_new", 10),
        ##  (try_end),
    #CHEAT TEST REMOVE ME

            (troop_set_faction, "trp_kingdom_20_lord", "fac_kingdom_20"),
            (faction_set_slot, "fac_kingdom_20", slot_faction_state, sfs_active),
            (call_script, "script_create_kingdom_hero_party", "trp_kingdom_20_lord", ":village_no"),
            (troop_set_slot, "trp_kingdom_20_lord", slot_troop_wealth, 100000),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_1", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_2", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_5", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_8", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_9", 1),
            (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_10", 1),
            (call_script, "script_start_give_center_to_lord", "p_castle_83", "trp_knight_20_1", 0),
            (call_script, "script_start_give_center_to_lord", "p_castle_84", "trp_knight_20_6", 0),
            (call_script, "script_start_give_center_to_lord", "p_castle_85", "trp_knight_20_9", 0),
            (call_script, "script_start_give_center_to_lord", "p_castle_20", "trp_knight_20_2", 0),
            (call_script, "script_start_give_center_to_lord", "p_castle_124", "trp_kingdom_20_lord", 0),
                (try_for_range, ":troop_no", "trp_knight_20_1", "trp_kingdom_1_pretender"),
                  (troop_slot_eq, ":troop_no", slot_troop_occupation, slto_kingdom_hero),
                  (neg|troop_slot_ge, ":troop_no", slot_troop_prisoner_of_party, 0),
                  (neg|troop_slot_ge, ":troop_no", slot_troop_leaded_party, 1),
                  (call_script, "script_create_kingdom_hero_party", ":troop_no", ":village_no"),
                  (troop_set_slot, ":troop_no", slot_troop_wealth, 40000),
                (try_end),

    (assign, "$g_global_var_announce_invasion", 0), ## prevents the trigger from being fired every day after
               
    (jump_to_menu, "mnu_dk_invasion_start_warning"),
        ]),


    I haven't written invasion stuff, so I cannot guarantee whether your code works or not, I assume that it does. However, I used a pretty similar piece of condition for ordering masterwork weapons by talking to the weapon smith in a specific town and the time delay thereafter until you get a notification that it has been finished, like it is in WFAS. So, I'm pretty sure that it works.
  16. Lords Renown modding

    You don't necessarily need the module system for party size changes, but it's of course more comfortable and less error-prone to use it. There is no other way to change the values in mods as through using txt-tweaks unless the source code has been released. You could also try to use TweakMB or some other editors, of course. So, you can change the numbers of men the ai lords and the player can carry around with the tweaks below. This also includes the renown required for being able to have 1 more unit in your party (default is 25 renown per unit - lower it to 5 to give just renown a siginifcantly higher boost/importance, without having the need to tweak the general renown of lords, etc., per se). However, this will not change the number of soldiers in garrisons. Garrison numbers can be changed by tweaking the wealth of castles/towns. Unfortunately, this is not possible with mods like 1257AD, for instance, at least not without putting some serious work into it, as they've changed the wealth calculation of the places. If you want to change the garrison in native or some other mod, this might help you http://forums.taleworlds.com/index.php/topic,46290.480.html. The tweaks below can partly be found in that thread, too, as well as different other stuff. In order to have larger battles, you have to open your rgl_config (C:\...\Documents\Mount&Blade Warband\), look for battle_size and increase the number. Start a new game after you've made the changes, and always make backup-copies of the unchanged original files beforehand.


    Increase AI party size

    look for party_get_ideal_size in scripts.txt, should look roughly like the below

    party_get_ideal_size -1
    34 21 1 1224979098644774912 2133 2 1224979098644774913 30 4 0 541 3 1224979098644774912 0 13 1652 3 1224979098644774914 1224979098644774912 0 2204 2 1224979098644774915 1224979098644774912 2133 2 1224979098644774913 10 2170 3 1224979098644774916 1369094286720630785 1224979098644774914 2172 3 1224979098644774917 1224979098644774914 3 2107 2 1224979098644774916 5 2105 2 1224979098644774913 1224979098644774916 2105 2 1224979098644774913 1224979098644774917 520 3 1224979098644774918 1224979098644774914 7 2123 3 1224979098644774919 1224979098644774918 25 2105 2 1224979098644774913 1224979098644774919 4 0 542 3 1224979098644774915 11 1224979098644774914 2105 2 1224979098644774913 100 3 0 4 0 542 3 1224979098644774915 8 1224979098644774914 2105 2 1224979098644774913 20 3 0 6 3 1224979098644774920 648518346341351467 648518346341351515 541 3 1224979098644774920 7 1224979098644774914 2105 2 1224979098644774913 20 3 0 3 0 2171 2 1224979098644774921 360287970189639680 2110 2 1224979098644774921 80 2120 3 1224979098644774922 80 1224979098644774921 2107 2 1224979098644774913 1224979098644774922 2108 2 1224979098644774913 80 2133 2 72057594037927936 1224979098644774913

    1. 10 is the base party size
    2. 5 is the number of soldiers per point in leadership
    3. 25 is the number of renown needed for 1 additional soldier
    4. 100 is the additional number of men the king gets
    5. 20 is the number of men the marshal gets additionally
    6. 20 is the additional number of men an ai lord receives for owning a castle

    On another note, if you want to tweak the different mods, the numbers may vary, so you have to look for the corresponding numbers before or after the bolded numbers, like e.g. the 2170 is always after the base party size, etc. or the 2105 is always after the soldiers per point in leadership, etc.


    Increase player party size

    look for game_get_party_companion_limit in scripts.txt, should look roughly like the below

    game_get_party_companion_limit -1
    12 2133 2 1224979098644774912 360287970189639680 2133 2 1224979098644774913 30 2170 3 1224979098644774914 1369094286720630785 1224979098644774912 2172 3 1224979098644774915 1224979098644774912 3 2107 2 1224979098644774914 5 2105 2 1224979098644774913 1224979098644774914 2105 2 1224979098644774913 1224979098644774915 520 3 1224979098644774916 1224979098644774912 7 2123 3 1224979098644774917 1224979098644774916 25 2105 2 1224979098644774913 1224979098644774917 2133 2 72057594037927936 1224979098644774913 2075 1 72057594037927936 

    1. the 30 in first line is the base party size
    2. the 5 in the second row of numbers is the number of troops per point of leadership
    3. the 25 in the third row of numbers is the number of renown needed to gain 1 additional troop


    If you increase the player party size substantially, you might want to adjust the player party morale values accordingly

    look for get_player_party_morale_values in scripts.txt, should look like the below

    get_player_party_morale_values -1
    54 1650 2 1224979098644774912 648518346341351424 2133 2 1224979098644774913 0 6 3 1224979098644774914 1 1224979098644774912 1652 3 1224979098644774915 648518346341351424 1224979098644774914 4 0 1507 1 1224979098644774915 2105 2 1224979098644774913 1 5 0 1653 3 1224979098644774916 648518346341351424 1224979098644774914 2105 2 1224979098644774913 1224979098644774916 3 0 3 0 2133 2 144115188075856824 1224979098644774913 2170 3 1224979098644774917 1369094286720630785 360287970189639680 4 0 31 2 144115188075856287 432345564227567630 522 3 1224979098644774918 144115188075856287 11 31 2 1224979098644774918 360287970189639680 2122 3 144115188075856825 1224979098644774917 15 5 0 2122 3 144115188075856825 1224979098644774917 12 3 0 2133 2 1224979098644774919 144115188075856825 2106 2 1224979098644774919 144115188075856824 2105 2 1224979098644774919 50 2133 2 144115188075856826 0 6 3 1224979098644774920 288230376151711854 288230376151711869 1 3 936748722493063448 1224979098644774920 41 527 3 1224979098644774921 1224979098644774920 1 2107 2 1224979098644774921 3 2108 2 1224979098644774921 2 2105 2 144115188075856826 1224979098644774921 3 0 2105 2 1224979098644774919 144115188075856826 4 0 31 2 144115188075856826 0 2133 2 144115188075856827 30 2106 2 1224979098644774919 144115188075856827 5 0 2133 2 144115188075856827 0 3 0 2133 2 144115188075856828 0 4 0 32 2 144115188075856754 0 1 1 936748722493063404 2133 2 1224979098644774922 72057594037927936 2122 3 144115188075856828 144115188075856754 10 2111 2 1224979098644774922 1 2108 2 144115188075856828 1224979098644774922 2112 3 144115188075856828 1 31 2106 2 1224979098644774919 144115188075856828 3 0 2112 3 1224979098644774919 0 100 2133 2 72057594037927936 1224979098644774919

    1. 15 morale per point in leadership for being king
    2. 12 is the default morale per point in leadership


    For increasing the number of reinforcements (number of units a lord/place gets every 24 hours or something until he/it reaches its max -- depends on the current wealth of the lord/place, however)

    In party_templates.txt, look for the below

    pt_kingdom_1_reinforcements_a {!}kingdom_1_reinforcements_a 0 0 1 0 35 5 10 0 36 2 4 0 -1 -1 -1 -1
    pt_kingdom_1_reinforcements_b {!}kingdom_1_reinforcements_b 0 0 1 0 37 3 6 0 40 2 4 0 -1 -1 -1 -1
    pt_kingdom_1_reinforcements_c {!}kingdom_1_reinforcements_c 0 0 1 0 43 2 4 0 41 1 2 0 -1 -1 -1 -1
    pt_kingdom_2_reinforcements_a {!}kingdom_2_reinforcements_a 0 0 1 0 49 5 10 0 50 2 4 0 -1 -1 -1 -1
    pt_kingdom_2_reinforcements_b {!}kingdom_2_reinforcements_b 0 0 1 0 54 2 4 0 51 2 4 0 50 1 2 0 -1 -1 -1
    pt_kingdom_2_reinforcements_c {!}kingdom_2_reinforcements_c 0 0 1 0 57 2 3 0 55 1 2 0 -1 -1 -1 -1

    --> The numbers in bold are the numbers of units a reinforcement round can have, the number before that is the troop id of the particular troops, e.g. for the first line it's:
    5 to 10 soldiers of the unit with ID 35 (Swadian Recruit) and 2 to 4 soldiers of the unit with ID 36 (Swadian Militia)

    You can look up which soldier is which ID by using a tool like Morgh's Editor, for instance. Alternatively, you can open troops.txt and start to count the troops, starting with the trp_player at ID 0.
    Be careful with tweaking the party templates too much because the lords and garrisons will recover way faster as they are getting way more troops per one run.
  17. Best-dressed Warrior

    jacobhinds said:
    the mongols didn't usually have superior numbers. that's a misconception as well.

    europe in the 1200s was no different to anywhere else in terms of fighting prowess. there are a number of reasons the mongols didn't properly attack europe, and none of them are to do with them fearing battles with europeans. often, there simply werent enough mongols to go 'round, and the further they got from mongolia, the more their armies were comprised mainly of foot soldiers from the places they conquered. central asia is as sparsely populated as it gets - and they were spread out the majority of eurasia. the idea that "hordes" of mongols just popped up somewhere around samarkand and beat the world into a pulp is nonsense - and a myth the mongols themselves loved to perpetuate.

    No, they did not usually have superior numbers, they had in most of their battles superior numbers, to be more specific, in their battles against European forces. Of course they did not ALWAYS have superior numbers, I said "in most of the cases", and this is still valid and certainly not a misconception on my side, especially as far as the battles against European forces are concerned about which I thought I had talked as I corrected the very wrong and biased view depicted in that book. Mongols were quite sophisticated in siege warfare at their times, they were generally good at applying very effective tactics in warfare. Sieges also didn't happen in scarcely populated areas, usually. And they had not only a siege here and there but quite a few sieges during their conquests, where the main defenders were mainly civilians, "in most cases". And I have never said that they were afraid to give battle to the Europeans. They didn't attack Europe Central because it would have been devastating for both "empires", this is what I meant. I would say it was a tactical decision not to attack, out of different reasons, none of them having to do with "being afraid".

    I don't know exactly what you want to emphasize by "hordes that pop up", but due to their way of travelling and their army composition, they were substantially faster than any other army with way less horsemen and therefore it may indeed have appeared for some people at that time that the hordes "pop up" because they travelled twice as fast as other armies. A sudden appearance has nothing to do with magically appearing out of thin air, with no information beforehand, about that huge army "marching" into a certain direction. This probably was never meant by the people back then, though, it could and did happen, the "out of thin air", and this you also know very well yourself. For instance, if someone today would drive with 300 km/h on the motorway while you are driving with 150 km/h it can happen that you see him "popping up, out of thin air" in your rear mirror. And if you go for a longer distance, let's say 1,000 km and each of you drives with the above mentioned speed, he indeed would surprise everyone if he travels with an average of 300 km/h in his car on the motorway. Then maybe someone would say "Whoa! 3 hours, 20 minutes! Did you use magic?!" Or take a look at Napoleon and how he surprised his enemies on different occasions with the "speed" of his army. Maybe it is more clear now what the term "out of thin air" means or could have meant, respectively.

    You cannot count every watchman and the guys who stayed behind as garrison or whatever to an "active" army. Of course Mongols also had footsoldiers, I didn't say otherwise. But at the battle of Liegnica? Nope. Is it a heroic deed to beat down upon an enemy who is vastly inferior? Nope. How would they have fared against an equal number of knights, mounted sergeants, squires and men-at-arms, or against a mounted force half as many as they were? Probably not so good at all, rather the opposite. Without a doubt the Europeans never had nowhere near a ratio of footsoldiers to horseman as Mongol armies used to have. Of course the Mongols had way more horsemen than their European counterparts, and during a siege (almost) no-one attacked on horseback. You have some interesting ideas of Mongolian armies with mainly footsoldiers who walk through the steppes of Asia in order to e.g. attack Hungary, which is quite a bit far away from Mongolia itself. And though they had already conquered very much territory around the place before they went for Hungary in force, the Mongol armies attacked mainly on horseback, how's that?

    There are many myths around the Golden Horde, some of which I maybe have chosen to believe, I cannot rule it out per se. But you are certainly not free from such "myths" yourself. Ok, I didn't use a rational approach to the matter in the first place, that much is clear. It was not my intention to step on anyone's shoes, and I should have known better before writing stuff. However, the approach regarding the battle of Liegnica in that book has stepped on my shoes first. And with this the discussion has ended for me.
  18. Best-dressed Warrior

    At Liegnica, it was more like 20,000 Mongols vs. 5,000-8,000 Europeans though, with maybe, maybe 100 order knights/heavy cavalry (including mounted sergeants) of various background, not only Teutonic Knights about whom there is doubt if they took part in the battle at all, but mainly Hospitallers and Templars. 25,000 is the maximum number given for the Europeans, which was found in some texts, like the maximum number for the Mongols was supposed to be 100,000 - both of which are most certainly wrong. I don't know why the Mongols are always depicted as being so vastly superior to European forces while their only superiority in most of the cases was numbers, and numbers only. Must be some Katana fetish or the like, else I don't know where this "European inferiority complex" comes from, seems to be the latest fashion or something. I suppose that's the reason why we speak Mongolian today, because of the vastly superior Mongols. There is a good reason why the Mongols never tried to properly invade Europe, besides Hungary and occasional raids into Eastern Europe/Balticum, and that reason is not because Europe was a poorhouse, or the Mongols were too tired, or already had enough conquered territory, or couldn't simply decide what to do with the rest of that vastly inferior Europe. That is not to say that the Mongols would have had no chance to pull it off, but the combined European forces would have given them the fight of their life, over a long period of time, with probably not many of them remaining to rule over their vast Mongolian Empire (which probably would have been non-existant by then) - IF they would have won, that is.

    At Liegnica it was a mixed force of Polish/Silesian (the Silesians being the only ones properly trained and armored, besides the knightly order contingents), Bavarian, Moravian and HRE troops under the main command of the Polish Duke Henry II of Silesia. How the battle is depicted in this "history book", as if the superior Mongols, clearly outnumbered, slaughtered an army of roughly 5,000-10,000 knights with 15,000 infantry, is nothing but ridiculous at best. An army of 10,000 knights/mounted sergeants would have stomped the Mongols so hard into the ground that even their forefathers up to the 10th generation before them would have started twerking in pain in the afterworld. What a fantastic feat of 20,000 cavalry men to destroy 100 heavy cav/knights with maybe 500-1,000 light to medium support troops on horses, while the majority of the "infantry" being lightly armored militia and inexperienced levies.

    But we are lucky though, on the first pic of matmohair1 we can see the total number of Teutonic Knights that took part in the battle, if they took part that is. The artist just forgot to add roughly 500 to 1,000 more Mongols so that it comes closer to as it was in reality.
  19. Modding Q&A [For Quick Questions and Answers]

    Cozur said:
    I want this trigger:

    Code:
    ####################################################################################################################################
       (24,
       [
          (store_current_day, ":cur_day"),
          (store_random_in_range, ":village_no", "p_castle_84", "p_castle_83"),
          (eq, ":cur_day", 1),      
             #CHEAT TEST REMOVE ME
          ##   (call_script, "script_change_troop_renown", "trp_player", 20000),
          ##   (try_for_range, ":troop_new", "trp_ief_velites", "trp_ief_deserter"),
          ##   (party_add_members, "p_main_party", ":troop_new", 10),
          ##   (try_end),
             #CHEAT TEST REMOVE ME
             (troop_set_faction, "trp_kingdom_20_lord", "fac_kingdom_20"),
             (faction_set_slot, "fac_kingdom_20", slot_faction_state, sfs_active),
             (call_script, "script_create_kingdom_hero_party", "trp_kingdom_20_lord", ":village_no"),
             (troop_set_slot, "trp_kingdom_20_lord", slot_troop_wealth, 100000),
             (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_1", 1),
             (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_2", 1),
             (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_5", 1),
             (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_8", 1),
             (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_9", 1),
             (call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_20", "fac_kingdom_10", 1),
             (call_script, "script_start_give_center_to_lord", "p_castle_83", "trp_knight_20_1", 0),
             (call_script, "script_start_give_center_to_lord", "p_castle_84", "trp_knight_20_6", 0),
             (call_script, "script_start_give_center_to_lord", "p_castle_85", "trp_knight_20_9", 0),
             (call_script, "script_start_give_center_to_lord", "p_castle_20", "trp_knight_20_2", 0),
             (call_script, "script_start_give_center_to_lord", "p_castle_124", "trp_kingdom_20_lord", 0),
                (try_for_range, ":troop_no", "trp_knight_20_1", "trp_kingdom_1_pretender"),
                   (troop_slot_eq, ":troop_no", slot_troop_occupation, slto_kingdom_hero),
                   (neg|troop_slot_ge, ":troop_no", slot_troop_prisoner_of_party, 0),
                   (neg|troop_slot_ge, ":troop_no", slot_troop_leaded_party, 1),
                   (call_script, "script_create_kingdom_hero_party", ":troop_no", ":village_no"),
                   (troop_set_slot, ":troop_no", slot_troop_wealth, 40000),
                (try_end),
                (jump_to_menu, "mnu_dk_invasion_start_warning"),
                ]),

    to fire 7 days after a dialogue has been finished. How would I go about doing that?

    You could try to use a global variable which you set to 1 after the dialogue has finished (assign, "$g_global_var", 1) and count it up to 7 in the trigger. As the trigger runs through every 24 hours anyhow, you would then have your 7 days time span, something like

    (try_begin),
    (is_between, "$g_global_var", 1, 7),
    (val_add, "$g_global_var", 1),
    (else_try),
    (assign, "$g_global_var, 0), ## ensures that the trigger doesn't run through every day after day 7
    (try_end),
    (eq, "$g_global_var", 7), ## condition for the trigger to execute

    (store_current_day, ":cur_day"),
    (store_random_in_range, ":village_no", "p_castle_84", "p_castle_83"),
    (eq, ":cur_day", 1),
    etc.

    and at the end of the trigger you reset the global_var to 0, so that the trigger's condition doesn't apply anymore, after it has run through once (assign, "$g_global_var", 0), - this is just to make sure that the condition isn't met if the is_between/else_try doesn't catch it in the first place on the next execution time, due to whatever reason, a double insurance, so to say. But you can leave this out, if you trust the little loop.
  20. Modding Q&A [For Quick Questions and Answers]

    9jakub9 said:
    Tocan said:
    9jakub9 said:
    I am developing a mod called Myrtana at War which is a mod based on a game called Gothic 3. In the game there is an orc faction (they are orcs) and there are humans that work for the orcs but belong in the same faction. I would like to ask you would it be possible to give an option in a village to either recruit orcs or human mercs. Could somebody please help me with this? All i came to is errors.
    look for update_volunteer_troops_in_village

    you can change it i something like this:
              #script_update_volunteer_troops_in_village
              # INPUT: arg1 = center_no
              # OUTPUT: none
              ("update_volunteer_troops_in_village",
                [
                  (store_script_param, ":center_no", 1),
                  (party_get_slot, ":player_relation", ":center_no", slot_center_player_relation),
                  (party_get_slot, ":center_culture", ":center_no", slot_center_culture),
               
                  (store_random_in_range, ":random_quality", 1, 6),
                  (try_begin),
                    (eq,":random_quality",1),
                    (faction_get_slot, ":volunteer_troop", ":center_culture", slot_faction_tier_1_troop),
                    (party_set_slot, ":center_no", slot_center_volunteer_troop_type, ":volunteer_troop"),
                  (try_end),
                  (try_begin),
                    (eq,":random_quality",2),
                    (faction_get_slot, ":volunteer_troop", ":center_culture", slot_faction_tier_2_troop),
                    (party_set_slot, ":center_no", slot_center_volunteer_troop_type, ":volunteer_troop"),
                  (try_end),
                  (try_begin),
                    (eq,":random_quality",3),
                    (faction_get_slot, ":volunteer_troop", ":center_culture", slot_faction_tier_3_troop),
                    (party_set_slot, ":center_no", slot_center_volunteer_troop_type, ":volunteer_troop"),
                  (try_end),
                  (try_begin),
                    (eq,":random_quality",4),
                    (faction_get_slot, ":volunteer_troop", ":center_culture", slot_faction_tier_4_troop),
                    (party_set_slot, ":center_no", slot_center_volunteer_troop_type, ":volunteer_troop"),
                  (try_end),
                  (try_begin),
                    (eq,":random_quality",5),
                    (faction_get_slot, ":volunteer_troop", ":center_culture", slot_faction_tier_5_troop),
                    (party_set_slot, ":center_no", slot_center_volunteer_troop_type, ":volunteer_troop"),
                  (try_end),
               
                  (assign, ":upper_limit", 25),
                  (try_begin),
                    (ge, ":player_relation", 5),
                    (val_add, ":upper_limit", 45),
                  (else_try),
                    (lt, ":player_relation", 0),
                    (assign, ":upper_limit", 0),
                  (try_end),
               
                  (store_random_in_range, ":amount", 0, ":upper_limit"),
                  (party_set_slot, ":center_no", slot_center_volunteer_troop_amount, ":amount"),
              ]),

    I pasted it in and adjusted it so its all spaced out properly and when i compile this pops up:
    Error: Unable to find object:script_update_npc_volunteer_troops_in_village
    ERROR: Illegal Identifier:script_update_npc_volunteer_troops_in_village

    With your script you won't get any tier upgrades if you have a higher relationship with your villages but it is a random effect which tier you get. You could create new troop tiers for your orcs, like slot_faction_tier_1b_troop, etc., this should just work fine. You then would also need a new slot where you can save a value in order to use it in both update_volunteer scripts.

    - so, in module_constants
    --------------------------

    look for the below slots and then add your new constant:

    slot_center_npc_volunteer_troop_type  = 90
    slot_center_npc_volunteer_troop_amount = 91
    slot_center_mercenary_troop_type  = 90
    slot_center_mercenary_troop_amount= 91
    slot_center_volunteer_troop_type  = 92
    slot_center_volunteer_troop_amount= 93

    slot_center_volunteer_orc_type = 95 ## this is your new constant



    - module_scripts in game_start
    ----------------------------------
          (faction_set_slot, "fac_culture_1",  slot_faction_tier_1_troop, "trp_swadian_recruit"),
      (faction_set_slot "fac_culture_1", slot_faction_tier_1b_troop, "trp_orc_recruit"), ## repeat this for all the other cultures too -- you only need one tier 1 troop as from thereon you follow the upgrade path of the particular orc unit, i.e. you don't need a factionized orc tier_2, tier_3, etc.
          (faction_set_slot, "fac_culture_1",  slot_faction_tier_2_troop, "trp_swadian_militia"),
          (faction_set_slot, "fac_culture_1",  slot_faction_tier_3_troop, "trp_swadian_footman"),
          (faction_set_slot, "fac_culture_1",  slot_faction_tier_4_troop, "trp_swadian_infantry"),
          (faction_set_slot, "fac_culture_1",  slot_faction_tier_5_troop, "trp_swadian_knight"),


     
    - module_scripts in initialize_faction_troop_types
    ---------------------------------------------------
            (faction_get_slot, ":troop", ":culture",  slot_faction_tier_1_troop),
            (faction_set_slot, ":faction_no",  slot_faction_tier_1_troop, ":troop"),
            (faction_get_slot, ":troop", ":culture",  slot_faction_tier_1b_troop), ## your new tier_1 orc unit
            (faction_set_slot, ":faction_no",  slot_faction_tier_1b_troop, ":troop"), ## your new tier_1 orc unit
            (faction_get_slot, ":troop", ":culture",  slot_faction_tier_2_troop),
            (faction_set_slot, ":faction_no",  slot_faction_tier_2_troop, ":troop"),
            (faction_get_slot, ":troop", ":culture",  slot_faction_tier_3_troop),
            (faction_set_slot, ":faction_no",  slot_faction_tier_3_troop, ":troop"),
            (faction_get_slot, ":troop", ":culture",  slot_faction_tier_4_troop),
            (faction_set_slot, ":faction_no",  slot_faction_tier_4_troop, ":troop"),
            (faction_get_slot, ":troop", ":culture",  slot_faction_tier_5_troop),
            (faction_set_slot, ":faction_no",  slot_faction_tier_5_troop, ":troop"),  
     
     
     
    - these are the 2 marginally modified original scripts, in module_scripts
    --------------------------------------------------------------------------
              #script_update_volunteer_troops_in_village
              # INPUT: arg1 = center_no
              # OUTPUT: none
              ("update_volunteer_troops_in_village",
                [
                  (store_script_param, ":center_no", 1),
                  (party_get_slot, ":player_relation", ":center_no", slot_center_player_relation),
                  (party_get_slot, ":center_culture", ":center_no", slot_center_culture),
     
    ## new stuff begin
                  (store_random_in_range, ":random_unit", 0, 10), ## 0-9; random choice, if lower than 5 you get humans, if equal or higher than 5 you get orcs
                  (try_begin),
                    (lt,":random_unit", 5),
                    (faction_get_slot, ":volunteer_troop", ":center_culture", slot_faction_tier_1_troop),
                    (party_set_slot, ":center_no", slot_center_volunteer_troop_type, ":volunteer_troop"),
      (else_try),
                    (ge,":random_unit", 5),
    (faction_get_slot, ":volunteer_troop", ":center_culture", slot_faction_tier_1b_troop), ## this is your new orc unit
                    (party_set_slot, ":center_no", slot_center_volunteer_troop_type, ":volunteer_troop"),
                  (try_end),

      (party_set_slot, ":center_no", slot_center_volunteer_orc_type, ":random_unit"), ## this is further needed for the script update_npc_volunteer_troops_in_village
    ## new stuff end

    ## ALTERNATIVE new stuff begin -- if you only want to use one and the same orc unit for all factions without declaring a new tier_1b unit (you then have to leave out the changes to initialize_faction_troop_types and game_start in module_scripts)
      (assign, ":volunteer_troop", 0),
                  (store_random_in_range, ":random_unit", 0, 10), ## 0-9; random choice, if lower than 5 you get humans, if equal or higher than 5 you get orcs
                  (try_begin),
                    (lt,":random_unit", 5),
                    (faction_get_slot, ":volunteer_troop", ":center_culture", slot_faction_tier_1_troop),
                    (party_set_slot, ":center_no", slot_center_volunteer_troop_type, ":volunteer_troop"),
      (else_try),
                    (ge,":random_unit", 5),
    (assign, ":volunteer_troop", "trp_orc_recruit"), ## this is your new orc unit
                    (party_set_slot, ":center_no", slot_center_volunteer_troop_type, ":volunteer_troop"),
                  (try_end),

      (party_set_slot, ":center_no", slot_center_volunteer_orc_type, ":random_unit"), ## this is further needed for the script update_npc_volunteer_troops_in_village
    ## ALTERNATIVE new stuff end

      (assign, ":volunteer_troop_tier", 1),
      (store_div, ":tier_upgrades", ":player_relation", 10),
      (try_for_range, ":unused", 0, ":tier_upgrades"),
    (store_random_in_range, ":random_no", 0, 100),
    (lt, ":random_no", 10),
    (store_random_in_range, ":random_no", 0, 2), ## make sure that your orc unit has an upgrade path to higher tier orc units, else you will only receive tier1 orc units
    (troop_get_upgrade_troop, ":upgrade_troop_no", ":volunteer_troop", ":random_no"),
    (try_begin),
      (le, ":upgrade_troop_no", 0),
      (troop_get_upgrade_troop, ":upgrade_troop_no", ":volunteer_troop", 0),
    (try_end),
    (gt, ":upgrade_troop_no", 0),
    (val_add, ":volunteer_troop_tier", 1),
    (assign, ":volunteer_troop", ":upgrade_troop_no"),
      (try_end),
     
      (assign, ":upper_limit", 12),
      (try_begin),
    (ge, ":player_relation", 12),
    (assign, ":upper_limit", ":player_relation"),
    (val_div, ":upper_limit", 2),
    (val_add, ":upper_limit", 6),
      (else_try),
    (lt, ":player_relation", 0),
    (assign, ":upper_limit", 0),
      (try_end),

      (val_mul, ":upper_limit", 3), 
      (store_add, ":amount_random_divider", 2, ":volunteer_troop_tier"),
      (val_div, ":upper_limit", ":amount_random_divider"),
     
      (store_random_in_range, ":amount", 0, ":upper_limit"),
      (party_set_slot, ":center_no", slot_center_volunteer_troop_type, ":volunteer_troop"), ## this line was missing in your original script
      (party_set_slot, ":center_no", slot_center_volunteer_troop_amount, ":amount"),
    ]),


      #script_update_npc_volunteer_troops_in_village
      # INPUT: arg1 = center_no
      # OUTPUT: none
      ("update_npc_volunteer_troops_in_village",
        [
          (store_script_param, ":center_no", 1),
          (party_get_slot, ":center_culture", ":center_no", slot_center_culture),
    ## new stuff begin
      (party_get_slot, ":eek:rc_yes_or_no", ":center_no", slot_center_volunteer_orc_type),
    (try_begin),
    (lt, ":eek:rc_yes_or_no", 5),
    (faction_get_slot, ":volunteer_troop", ":center_culture", slot_faction_tier_1_troop),
      (else_try),
    (ge, ":eek:rc_yes_or_no", 5),
    (faction_get_slot, ":volunteer_troop", ":center_culture", slot_faction_tier_1b_troop),
    (try_end),
    ## new stuff end

    ## ALTERNATIVE new stuff begin -- only one orc unit for all factions without declaring a new tier_1b unit (you then have to leave out the changes to initialize_faction_troop_types and game_start in module_scripts)
      (assign, ":volunteer_troop", 0),
      (party_get_slot, ":eek:rc_yes_or_no", ":center_no", slot_center_volunteer_orc_type),
    (try_begin),
    (lt, ":eek:rc_yes_or_no", 5),
    (faction_get_slot, ":volunteer_troop", ":center_culture", slot_faction_tier_1_troop),
      (else_try),
    (ge, ":eek:rc_yes_or_no", 5),
    (assign, ":volunteer_troop", "trp_orc_recruit"),
    (try_end),
    ## ALTERNATIVE new stuff end

          (assign, ":volunteer_troop_tier", 1),
          (try_for_range, ":unused", 0, 5),
            (store_random_in_range, ":random_no", 0, 100),
            (lt, ":random_no", 10),
            (store_random_in_range, ":random_no", 0, 2), ## make sure that your orc unit has an upgrade path to higher tier orc units, else you will only receive tier1 orc units
            (troop_get_upgrade_troop, ":upgrade_troop_no", ":volunteer_troop", ":random_no"),
            (try_begin),
              (le, ":upgrade_troop_no", 0),
              (troop_get_upgrade_troop, ":upgrade_troop_no", ":volunteer_troop", 0),
            (try_end),
            (gt, ":upgrade_troop_no", 0),
            (val_add, ":volunteer_troop_tier", 1),
            (assign, ":volunteer_troop", ":upgrade_troop_no"),
          (try_end),
         
          (assign, ":upper_limit", 12),
         
          (store_add, ":amount_random_divider", 2, ":volunteer_troop_tier"),
          (val_div, ":upper_limit", ":amount_random_divider"),
         
          (store_random_in_range, ":amount", 0, ":upper_limit"),
          (party_set_slot, ":center_no", slot_center_npc_volunteer_troop_type, ":volunteer_troop"),
          (party_set_slot, ":center_no", slot_center_npc_volunteer_troop_amount, ":amount"),
        ]),

    Or, if you want to create a recruitment option where you can ADDITIONALLY recruit orcs, then you can follow the steps below. This should definitely work, as I used something similar in order to recruit mercenaries from castles.

    1) you need a new constant in module_constants
    ------------------------------------------------
    in module constants somewhere around the other slot_center stuff like here, for instance:

    slot_center_npc_volunteer_troop_type  = 90
    slot_center_npc_volunteer_troop_amount = 91
    slot_center_mercenary_troop_type  = 90
    slot_center_mercenary_troop_amount= 91
    slot_center_volunteer_troop_type  = 92
    slot_center_volunteer_troop_amount= 93

    slot_center_village_orcs_amount = 94 ## this is your new constant



    2) a new menu in module_game_menus
    -----------------------------------
    ("recruit_orcs_village",
      [
    (party_slot_eq, "$g_encountered_party", slot_party_type, spt_village), ## villages only
    (party_slot_ge, "$g_encountered_party", slot_center_village_orcs_amount, 1),
          ],"Recruit Orcs.",     
        [
    (try_begin),
      (call_script, "script_cf_enter_center_location_bandit_check"),
    (else_try),
      (jump_to_menu, "mnu_recruit_orcs_village"),
    (try_end),
    ]),

    ###
    insert it right after or above the below, in game_menus

          ("village_manage",
          [
            (neg|party_slot_eq, "$current_town", slot_village_state, svs_looted),
            (neg|party_slot_eq, "$current_town", slot_village_state, svs_being_raided),
            (neg|party_slot_ge, "$current_town", slot_village_infested_by_bandits, 1),
            (party_slot_eq, "$current_town", slot_town_lord, "trp_player")
            ]
          ,"Manage this village.",
          [
              (assign, "$g_next_menu", "mnu_village"),
              (jump_to_menu, "mnu_center_manage"),
            ]),
          ("recruit_volunteers",
          [
            (call_script, "script_cf_village_recruit_volunteers_cond"),
          ]
          ,"Recruit Volunteers.",
          [
            (try_begin),
              (call_script, "script_cf_enter_center_location_bandit_check"),
            (else_try),
              (jump_to_menu, "mnu_recruit_volunteers"),
            (try_end),
            ]),

    ####


    3) at the very end of game_menus you insert the below menu (this is referenced by the one above)
    ---------------------------------------------------------------------------------------------------
      (
        "recruit_orcs_village",0,
        "{s18}",
        "none",
        [
    (party_get_slot, ":eek:rc_troop_amount", "$g_encountered_party", slot_center_village_orcs_amount),
    (party_get_free_companions_capacity, ":free_capacity", "p_main_party"),
    (val_min, ":eek:rc_troop_amount", ":free_capacity"),
    (store_troop_gold, ":gold", "trp_player"),
    (store_div, ":gold_capacity", ":gold", 20), ## cost is 20 dinar per hired orc unit, adjust it if you wish
    (assign, ":party_capacity", ":free_capacity"),
    (val_min, ":party_capacity", ":gold_capacity"),
    (try_begin),
      (gt, ":party_capacity", 0),
      (val_min, ":eek:rc_troop_amount", ":party_capacity"),
    (try_end),
    (assign, reg5, ":eek:rc_troop_amount"),
    (assign, reg7, 0),
    (try_begin),
    (gt, ":eek:rc_troop_amount", ":gold_capacity"),
    (assign, reg7, 1),
    (try_end),
    (store_mul, reg6, ":eek:rc_troop_amount", 20), ## cost is 20 dinar per hired orc unit, adjust it if you wish
    (str_store_troop_name_by_count, s3, "trp_orc_unit", ":eek:rc_troop_amount"),
    (str_store_string, s18, "@{reg5} {s3} volunteer to follow you."),
    (set_background_mesh, "mesh_pic_recruits"),
    ],
    [
      ("continue_not_enough_gold",
      [
    (eq, reg7, 1),
      ],
    "I don't have enough money...",
      [
    (jump_to_menu, "mnu_town"),
      ]),
     
      ("recruit_them",
      [
    (eq, reg7, 0),
    (gt, reg5, 0),
      ],
    "Recruit them ({reg6} denars).",
    [
    (call_script, "script_recruit_orcs_from_villages"),
    (jump_to_menu, "mnu_town"),
          ]),
         
          ("forget_it",
          [
            (eq, reg7, 0),
            (gt, reg5, 0),
          ],
    "Forget it.",
          [
    (jump_to_menu, "mnu_town"),
          ]),
        ],
      ),

     
    4) in module_scripts
    ---------------------

    a) insert the following right after the script village_recruit_volunteers_recruit

      #script_recruit_orcs_from_villages
      # INPUT: none
      # OUTPUT: none
      ("recruit_orcs_from_villages",
    [
    (party_get_slot, ":eek:rc_troop_amount", "$g_encountered_party", slot_center_village_orcs_amount),
    (party_get_free_companions_capacity, ":free_capacity", "p_main_party"),
    (val_min, ":eek:rc_troop_amount", ":free_capacity"),
    (store_troop_gold, ":gold", "trp_player"),
    (store_div, ":gold_capacity", ":gold", 20), ## cost is 20 dinar per hired orc unit, adjust it if you wish
    (val_min, ":eek:rc_troop_amount", ":gold_capacity"),
            (party_add_members, "p_main_party", "trp_orc_unit", ":eek:rc_troop_amount"),
    (party_set_slot, "$g_encountered_party", slot_center_village_orcs_amount, 0),
            (store_mul, ":total_cost", ":eek:rc_troop_amount", 20), ## cost is 20 dinar per hired orc unit, adjust it if you wish
            (troop_remove_gold, "trp_player", ":total_cost"),
        ]),


    b) insert the following right after the script update_mercenary_units_of_towns

      #script_update_orc_units_villages
      # INPUT: none
      # OUTPUT: none
        ("update_orc_units_villages",
        [
    (try_for_range, ":current_village", villages_begin, villages_end), ## you won't even need the try_for_range here, theoretically, but you never know, maybe you want to expand the script one day
    (store_random_in_range, ":amount", 5, 16),
    (party_set_slot, ":current_village", slot_center_village_orcs_amount, ":amount"),
    (try_end),
        ]),


    5) in order to have the units updated regularly, you add the following into simple_triggers
    --------------------------------------------------------------------------------------------
    just look for the below trigger

      # Adding mercenary troops to the towns
      (72,
      [
        (call_script, "script_update_mercenary_units_of_towns"),
        #NPC changes begin
        # removes  (call_script, "script_update_companion_candidates_in_taverns"),
        #NPC changes end
        (call_script, "script_update_ransom_brokers"),
        (call_script, "script_update_tavern_travellers"),
        (call_script, "script_update_tavern_minstrels"),
        (call_script, "script_update_booksellers"),
        (call_script, "script_update_villages_infested_by_bandits"),
        (try_for_range, ":village_no", villages_begin, villages_end),
          (call_script, "script_update_volunteer_troops_in_village", ":village_no"),
          (call_script, "script_update_npc_volunteer_troops_in_village", ":village_no"),
      (call_script, "script_update_orc_units_villages", ":village_no"), ## this is your new script which was added to the trigger, if it throws errors paste the call_script above the try_for_range, without the ":village_no" at the end
        (try_end),
        ]),



    ==> this works only for 1 specific orc unit, if you want several different orc units to be recruited from your villages or a random one out of a certain range (like mercenary units in taverns), you have to create a 2nd constant where you define the troop type, i.e. slot_center_orc_unit_type or something along the line.

Back
Top Bottom