OSP Kit QoL [Modmerger] Single Screen Character Creation for Native-Update 8/21/16!

Users who are viewing this thread

mercury19

Sergeant at Arms
So I created a single screen character creation kit. Like the one from floris, but more native compatible.

Downloads:
http://www.nexusmods.com/mountandblade/mods/5939/?

Pictures are also there, as well as a proof of concept video.

Description:
It's a single screen character creation. Rather than  going through the list of different questions, all of them are listed on one page. The same page includes a stat block that shows you how your current choices will affect your stats, as well as a biography giving your background story. Like Floris, but not as nice looking. Items are based on your starting region and the choice for your adult life. They are relatively limited.

Planned Features:
Due to my excessivly short attention span I'm not going to plan any further features. However, adding different starting equipment/stat changes should be possible simply by looking at what I've already done, so go nuts. If there is enough demand for an explanation on how to add simple features like that I may post it but only then.

Known Issues:
As of the last update (8/21/2016) none! Let me know if you find some though and I'll see what I can do about fixing them.


Installation:

1) Set up the module system and python. I used the 1.166 MS, so I'd recomend using that or higher for saftey's sake.

2) Download and install the modmerger framework: https://forums.taleworlds.com/index.php/topic,128890.0.html

3) Put all of the mcc_* files from the archive into whatever folder your module system is in.

4) Declare the mod in modmerger_options, like so:

mods_active = [
# insert the active mod names here
      "mcc",

5) Compile. You may have to compile twice. If you get a bunch of unassigned variable or illegal identifier errors the first time, compile again. Sometimes it needs a warm up run.

If you want to add it manually, without the modmerger framework, do this:

1) All of the files except for the game_menus file are independent. You should be able to take the code from them, copy it into the respective module_* files, and have it work properly. Except for anything that says "modmerge" or something similar. This should all be at the bottom of the files, so stop before that when you copy and paste.

2) For the game_menus, its a little different. Look in the spoilers. Anything in blue should be added in, and anything in red should be commented out. Or deleted, but I prefer commenting things out for later use. This will go in module_game_menus.

("start_game_0",menu_text_color(0xFF000000)|mnf_disable_all_keys,
    "Welcome, adventurer, to Mount and Blade: Warband. Before beginning the game you must create your character. Remember that in the traditional medieval society depicted in the game, war and politics are usually dominated by male members of the nobility. That does not however mean that you should not choose to play a female character, or one who is not of noble birth. Male nobles may have a somewhat easier start, but women and commoners can attain all of the same goals -- and in fact may have a much more interesting if more challenging early game.",
    "none",
    [],
    [
    ("continue",[],"Continue...",
      [(start_presentation, "prsnt_mcc_character_creation"),
        ]
      ),

    ("continue",[],"Continue...",
      [(jump_to_menu, "mnu_start_game_1"),
        ]
      ),
      ("go_back",[],"Go back",
      [
        (change_screen_quit),
      ]),
    ]
  ),

("start_phase_2",mnf_disable_all_keys, #start_phase_2_5
"{!}{s16}",
"none",
[
(str_store_party_name, s1, "$g_starting_town"),
(str_store_string, s16, "$g_journey_string"),
],
[
("continue",[], "Continue...",
[
(jump_to_menu, "mnu_start_phase_3"),
]),
]
),

("start_phase_2",mnf_disable_all_keys,
    "You hear about Calradia, a land torn between rival kingdoms battling each other for supremacy,\
a haven for knights and mercenaries,  cutthroats and adventurers, all willing to risk their lives in pursuit of fortune, power, or glory...\
In this land which holds great dangers and even greater opportunities, you believe you may leave your past behind and start a new life.\
You feel that finally, you hold the key of your destiny in your hands, free to choose as you will,\
and that whatever course you take, great adventures will await you. Drawn by the stories you hear about Calradia and its kingdoms, you...",
    "none",
    [],
    [

       

      ("town_1",[(eq, "$current_startup_quest_phase", 0),],"join a caravan to Praven, in the Kingdom of Swadia.",
      [
        (assign, "$current_town", "p_town_6"),
        (assign, "$g_starting_town", "$current_town"),
        (assign, "$g_journey_string", "str_journey_to_praven"),
(jump_to_menu, "mnu_start_phase_2_5"),
#        (party_relocate_near_party, "p_main_party", "$g_starting_town", 2),
#        (change_screen_return),
      ]),
     
      ("town_2",[(eq, "$current_startup_quest_phase", 0),],"join a caravan to Reyvadin, in the Kingdom of the Vaegirs.",
      [
        (assign, "$current_town", "p_town_8"),
        (assign, "$g_starting_town", "$current_town"),
        (assign, "$g_journey_string", "str_journey_to_reyvadin"),
(jump_to_menu, "mnu_start_phase_2_5"),
#        (party_relocate_near_party, "p_main_party", "$g_starting_town", 2),
#        (change_screen_return),
      ]),
     
      ("town_3",[(eq, "$current_startup_quest_phase", 0),],"join a caravan to Tulga, in the Khergit Khanate.",
      [
        (assign, "$current_town", "p_town_10"),
        (assign, "$g_starting_town", "$current_town"),
        (assign, "$g_journey_string", "str_journey_to_tulga"),
(jump_to_menu, "mnu_start_phase_2_5"),
#        (party_relocate_near_party, "p_main_party", "$g_starting_town", 2),
#        (change_screen_return),
      ]),
     
      ("town_4",[(eq, "$current_startup_quest_phase", 0),],"take a ship to Sargoth, in the Kingdom of the Nords.",
      [
        (assign, "$current_town", "p_town_1"),
        (assign, "$g_starting_town", "$current_town"),
        (assign, "$g_journey_string", "str_journey_to_sargoth"),
(jump_to_menu, "mnu_start_phase_2_5"),
#        (party_relocate_near_party, "p_main_party", "$g_starting_town", 2),
#        (change_screen_return),
      ]),
     
      ("town_5",[(eq, "$current_startup_quest_phase", 0),],"take a ship to Jelkala, in the Kingdom of the Rhodoks.",
      [
        (assign, "$current_town", "p_town_5"),
        (assign, "$g_starting_town", "$current_town"),
        (assign, "$g_journey_string", "str_journey_to_jelkala"),
(jump_to_menu, "mnu_start_phase_2_5"),
#        (party_relocate_near_party, "p_main_party", "$g_starting_town", 2),
#        (change_screen_return),
      ]),
     
      ("town_6",[(eq, "$current_startup_quest_phase", 0),],"join a caravan to Shariz, in the Sarranid Sultanate.",
      [
        (assign, "$current_town", "p_town_19"),
        (assign, "$g_starting_town", "$current_town"),
        (assign, "$g_journey_string", "str_journey_to_shariz"),
(jump_to_menu, "mnu_start_phase_2_5"),
#        (party_relocate_near_party, "p_main_party", "$g_starting_town", 2),
#        (change_screen_return),
      ]),

Credit:
I would like to thank Windyplains for allowing me to modify his code from Floris.


Permissions:
This is an OSP. You don't have to ask my permission to use it in your mod, but please credit myself and Windyplains, and send me a link to the mod you've included it in! I like to see who I've helped out :razz:

This can be added to an existing mod if, and only if you have the source code. That is the module system. This does not work with .txt files.

That should be everything. Let me know if you have any questions.
 
I installed modmerger, followed all the steps, get no errors when building module - but when I launch MB and start a new game no changes have taken affect?
 
mercury19 said:
Did you build to the correct module? Did you make sure to load the "mcc" in the modmerger_options file?

I did both, and get the same error. Well, not "error" but lack of the screen appearing. Followed these instructions exactly.
 
Huh, that's weird. And there's no extra option in the first menu, right after you click start game? If there's no error it sounds like an installation problem, but I can't say for sure, since I tested it in the place I was building it. I'll try it out on a fresh module system and let you know how it goes.


EDIT: After a brief test with a fresh module system, I've determined that it does work. It might be that you didn't install modmerger properly? It took me a little while to figure out that you had to have .py files open with python as the default program in order for it to work. It should give you a cmd box, with a menu. If you have that working, then the only thing I could think of would be that you didn't declare it properly. Or maybe  you forgot the game_menus file? Did you perchance have the declaration in the modmerger_options commented out, as the examples were? Just a few ideas, although it sounds like you did it exactly as instructed.
 
Oh, my bad. No, I did not install Modmerger properly. It's loaded now.
Also has both vanilla creation and the new creation screen, but you've already listed that as a known issue. Aside from that, it works! Thanks for reminding me.  :smile:
 
New update! I believe I have fixed all the bugs for now. The only ones I remember where the extra option in the very first menu (start new game) and it was still going to the city selection page after the main screen. Well, no more! I fixed it! Now you will automatically go to the nation you selected on the main screen!
 
mercury19 said:
New update! I believe I have fixed all the bugs for now. The only ones I remember where the extra option in the very first menu (start new game) and it was still going to the city selection page after the main screen. Well, no more! I fixed it! Now you will automatically go to the nation you selected on the main screen!
Lol, I was trying to fix this thing right now, glad you fixed already.
 
I get a NameError on the GameMenuOptionWrapper and an injection error when using the modmerger, as im fairly new to modding with the MS and python itself im not entirly sure what i did wrong there.
Anyway to clarify a littlebit for me if possible?
 
Back
Top Bottom