Pewnie chcielibyście zrobić własnego moda, co nie? Żeby zrobić takowego będziecie potrzebować programu Module System. Ogólnie o nim, o plikach i o jego "uruchamianiu" napisał w swoim tutorialu Mat Berserker. Natomiast ja skoncentruje się tylko na najważniejszej części tego programu - plikach z przedrostkiem "module". Powiedzmy ,że będziemy robić małego moda dodającego kilka nowych usprawnień - nazwijmy go Warriors of Calradia. Zatem zaczynamy:
Game MenusKlikamy przyciskiem myszy na plik module_game_menus i wybieramy z menu "Exit With Idle". Naszym oczom ukazuje się z pozoru skomplikowany ekran. Ale bez obaw - gdy się już to trochę ma "obcykane" to nie będzie żadnego problemu. Najpierw wyjaśnienie:
Linijki koloru czerwonego nie ukażą się w grze - są to zazwyczaj krótkie dopiski od Armagana albo rzeczy z poprzednich wersji M&B ,których nie powinniśmy ruszać. I jeszcze jedno - aby ułatwić wam znajdowanie linijek zastosuję nieco później ciekawszą metodę ich znajdowania.
No to jedziemy z zawartością:
Zostawiamy czerwone linijki na początku i zwróćmy uwagę na to:
(
"start_game_1",0,
"Welcome, adventurer, to Mount&Blade. Before you start the game, you must create a character. To begin, select your character's gender.",
"none",
[],
Jest to tekst ,który ukazuje się naszym oczom gdy wciśniemy w menu gry "start new game". Jak wiadomo nasz mod nazywa się Warriors of Calradia - więc zmieniamy lekko ten "menus". Tak powinien wyglądać tekst jeśli chcecie robić to samo co w tutorialu (można oczywiście wpisać tu co się chce):
(
"start_game_1",0,
"Welcome, adventurer, to Warriors of Calradia mod. Before you begin the adventure, you must create a character. To begin, select your character's gender.",
"none",
[],
Ok, w takim razie to mamy za sobą, więc ruszamy dalej:
[
("start_male",[],"Male",
[
(troop_set_type,"trp_player",0),
(assign,"$character_gender",0),
(jump_to_menu,"mnu_start_game_2"),
]
),
("start_female",[],"Female",
[
(troop_set_type,"trp_player",1),
(assign,"$character_gender",1),
(jump_to_menu,"mnu_start_game_2")
]
),
("go_back",[],"Go back",
[(change_screen_quit),
]
),
]
),
Jak zapewne się domyślacie jest to menus odpowiadający za płeć naszego herosa. W tym wypadku można tu zmienić kilka innych rzeczy jak np. następny ekran który po wciśnięciu buttona pojawi się, ale raczej nie warto tego ruszać. Ok, powiedzmy ,że w naszym modzie zamiast Male i Female będzie np. Man i Woman. Tak powinien wyglądać ten odcinek po zmianie:
[
("start_male",[],"Man",
[
(troop_set_type,"trp_player",0),
(assign,"$character_gender",0),
(jump_to_menu,"mnu_start_game_2"),
]
),
("start_female",[],"Woman",
[
(troop_set_type,"trp_player",1),
(assign,"$character_gender",1),
(jump_to_menu,"mnu_start_game_2")
]
),
("go_back",[],"Go back",
[(change_screen_quit),
]
),
]
),
Doba, wiemy już jak zmieniać tekst, teraz przejdźmy do najprostszych skryptów:
(
"start_phase_2",0,
"During your travels, you come accross a group of men who are looking for a leader. You...",
"none",
[],
[
("lead_them",[],"...convince them to follow you, promising riches and glory.",
[
(party_add_members, "p_main_party", "trp_farmer", 5),
(change_screen_return),
]
),
("let_them_go",[],"...wish them good luck and go the other way.",
[
(change_screen_return),
]
),
Jak widzicie tym razem tu chodzi o grupę ludzi ,która chce się do nas przyłączyć na początku gry. Jako że jest to tylko 5 farmerów pewnie chcielibyście aby było trochę lepszych żołdaków :D
Jeśli chcemy dodać np. 15 farmerów zmieniamy tą linjkę
(party_add_members, "p_main_party", "trp_farmer", 5),
na
(party_add_members, "p_main_party", "trp_farmer", 15),
Po tej operacji możecie zapisać aktualny stan pracy programu (File -> Save) i kliknąć dwa razy plik build_module aby importować stan pracy do gry. Jeśli wszystko jest ok i zmiany są widoczne w grze (nowe teksty menusów i 15 farmerów w drużynie gracza po pojawieniu się gracza na mapie) - gratuluję! Jeśli nie - sprawdźcie jeszcze raz czy nie ma jakichś literówek albo błędów w podaniu ścieżki gry.
Część 2Dobra, jeśli wszystko gra możemy przejść dalej. Otwieramy ponownie plik module_game_menus i znowu przypatrzmy się omawianej wcześniej linijce:
(party_add_members, "p_main_party", "trp_farmer", 5),
Ale powiedzmy ,że zwykli farmerzy są za ciency i chemy mieć lepszych żołdaków w drużynie. Zwijamy program i otwieramy plik module_troops.py. Naszym oczom ukazuje się ekran podobny do wcześniejszego. W tym pliku można zmieniać wszystkie rzeczy związane z żołnierzami - o tym w poźniejszej części tutorialu, my skoncentrujemy się tylko na skopiowaniu nazw żołnierzy. Powiedzmy ,że chcemy mieć 10 Vaegirskich łuczników i 5 Nordyckich Czempionów. Szukamy następujących linijek:
["vaegir_archer","Vaegir Archer","Vaegir Archers",tf_guarantee_ranged|tf_guarantee_boots|tf_guarantee_armor,0,0,fac_neutral, [itm_arrows,itm_battle_axe,itm_falchion,itm_scimitar,itm_nomad_bow,itm_nomad_bow,itm_short_bow,itm_leather_jerkin,itm_scale_armor,itm_leather_vest,itm_nomad_boots,itm_spiked_helmet,itm_nordic_helmet,itm_nasal_helmet,itm_nomad_cap],
def_attrib|str_12|level(19),wp(80)|wp_archery(110),knows_ironflesh_1|knows_power_draw_2|knows_athletics_2,vaegir_face1, vaegir_face2],
i
["nord_champion","Nord Champion","Nord Champions",tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_shield|tf_guarantee_helmet,0,0,fac_outlaws,
[itm_arrows,itm_nordic_sword,itm_nordic_sword,itm_fighting_axe,itm_battle_axe,itm_nordic_shield,itm_nordic_shield,itm_nordic_shield,itm_round_shield,itm_long_bow,itm_javelin,itm_throwing_axes,
itm_nordic_helmet,itm_nordic_helmet,itm_nordic_helmet,itm_mail_hauberk,itm_mail_hauberk,itm_surcoat_over_mail,itm_mail_boots,itm_leather_boots],
def_attrib|level(28),wp(140),knows_ironflesh_6|knows_power_strike_4|knows_power_draw_4|knows_power_throw_4|knows_riding_3|knows_athletics_3,vaegir_face1, vaegir_face2],
Trudno jest znaleźć te linijki w gąszczu innych linijek, więc zastosujemy to bardzo dobrą metodę. Poszukiwane numery linijek to 244 i 342. Wciskamy ALT + G i w tym okienku możemy wpisać numer poszukiwanych linjek. Robimy to i z łatwością znajdziemy wtedy szukane punkty. Nie będziemy kopiować całych żołnierzy bo to mija się z celem. Skopiujmy pogrubione wyrazy:
["vaegir_archer","Vaegir Archer","Vaegir Archers",tf_guarantee_ranged|tf_guarantee_boots|tf_guarantee_armor,0,0,fac_neutral,
Otwórzmy ponownie game_menus. Odszukamy linjkę:
(party_add_members, "p_main_party", "trp_farmer", 5),
Usuńmy "farmer" (ale bez przedrostka "trp"!) i wklejmy w to miejsce skopiowany vaegir_archer. Znieniamy też liczbę żołnierzy na 10. Może mówię to trochę dziwnie, ale popatrzcie na to jak powinna wyglądać w całości:
(party_add_members, "p_main_party", "trp_vaegir_archer", 10),
Teraz przyszła kolej na "nordic_champion". Otwieramy module_troops.py, wyszukujemy linijkę 342 (sposobem ,który opisałem wcześniej albo zwyczajnie). Kopiujemy "nord_champion".
Otwieramy ponownie plik module_game_menus. I teraz dodajemy nową linijkę pod
(party_add_members, "p_main_party", "trp_farmer", 5),
Wykonujemy poprzednią operację wpisując nazwę żołnierza i jego liczebność. Tak to wygląda w całości
(party_add_members, "p_main_party", "trp_vaegir_archer", 10),
(party_add_members, "p_main_party", "trp_nord_champion", 5),
Na tym kończymy dzisiejszy odcienk. Zapraszam jutro!
Część 3