Forum Tawerny Four Ways

Mount&Blade - Modyfikacje => Modding => Wątek zaczęty przez: PissInPeace w Lutego 24, 2010, 20:45:14

Tytuł: Dodanie nowej frakcji
Wiadomość wysłana przez: PissInPeace w Lutego 24, 2010, 20:45:14
Witam.

Szukajka mi nie pomogła, więc utworzyłem nowy temat. Jak dodać nową frakcję? Myślę, że trzeba dodać coś w factions.txt, ale mam problem bo nie wiem co oznaczają podkreślone liczby
(click to show/hide)

oraz to:
(click to show/hide)
Może mi ktoś pomóc?

Pozdrawiam.
Tytuł: Odp: Dodanie nowej frakcji
Wiadomość wysłana przez: Kolba w Lutego 24, 2010, 20:55:01
Hehe, w taki sposób tego nie zrobisz (edytując pliki tekstowe z Native). Musisz zainstalować Pythona i ściągnąć module system. Dopiero wtedy udzielę dokładniejszych informacji jak dodać nową frakcję.
Tytuł: Odp: Dodanie nowej frakcji
Wiadomość wysłana przez: PissInPeace w Lutego 24, 2010, 20:59:09
Przygotowałem się wcześniej i mam już Pythona i Module System :P
Tytuł: Odp: Dodanie nowej frakcji
Wiadomość wysłana przez: DuoGum w Lutego 25, 2010, 17:19:29
A szukałeś na TaleWordls?
Dam głowę, że tam był poradnik o tym.
Tytuł: Odp: Dodanie nowej frakcji
Wiadomość wysłana przez: PissInPeace w Lutego 25, 2010, 17:43:32
http://forums.taleworlds.com/index.php?topic=94290.0 znalazłem, ale nie za bardzo rozumiem co tam jest napisane. Moja znajomość języków obcych pozostawia wiele do życzenia :P Więc jakby ktoś mógłby mi to przetłumaczyć to byłbym wdzięczny :)

Pozdrawiam.
Tytuł: Odp: Dodanie nowej frakcji
Wiadomość wysłana przez: Maly_007 w Lutego 25, 2010, 18:23:59
Zakładam, że zedytowałeś już pliku module_info...



W module_factions.py dodajesz:

Cytuj
("kingdom_6",  "Nazwa frakcji",  0, 0.9, [("outlaws",-0.05),("peasant_rebels", -0.1),("deserters", -0.02),("mountain_bandits", -0.05),("forest_bandits", -0.05)], [], kod koloru),

Kody koloru:
Cytuj
niebieski         = 0xFFAAAAFF
jasny niebieski  = 0xFFAAD8FF
czerwony        = 0xFFFFAAAA
żółty               = 0xFFFFFFAA
różowy           = 0xFFFFAAFF
fioletowy        = 0xFF6AAA89
czarny            = 0xFFAAAAAA
biały               = 0xFFFFFFFF
zielony           = 0xFFAAFFAA
brązowy         = 0xFF7A4800

W module_scripts.py szukasz linijki ([Ctrl] + F):
Cytuj
(call_script, "script_diplomacy_start_war_between_king doms", "fac_kingdom_1", "fac_kingdom_6"),

Jak pewnie niektórzy się domyślają te linijki odpowiadają za wojny między frakcjami... Możesz dodać kilka...

Potem szukasz:
Cytuj
(faction_set_slot, "fac_kingdom_5",  slot_faction_culture, "fac_culture_5"),

Skopiuj:
Cytuj
(faction_set_slot, "fac_kingdom_5",  slot_faction_culture, "fac_culture_5"),
(faction_set_slot, "fac_kingdom_5",  slot_faction_leader, "trp_kingdom_5_lord"),

I wklej to na koniec takich linijek zamieniając 5 na 6...

Poszukaj linii:
Cytuj
(faction_slot_eq, ":faction_no", slot_faction_culture, "fac_culture_5"),

Skopiuj:
Cytuj
(else_try),
          (faction_slot_eq, ":faction_no", slot_faction_culture, "fac_culture_5"),
    
          (faction_set_slot, ":faction_no", slot_faction_deserter_troop, "trp_rhodok_deserter"),
          (faction_set_slot, ":faction_no", slot_faction_guard_troop, "trp_rhodok_trained_spearman"),
          (faction_set_slot, ":faction_no", slot_faction_messenger_troop, "trp_rhodok_messenger"),
          (faction_set_slot, ":faction_no", slot_faction_prison_guard_troop, "trp_rhodok_prison_guard"),
          (faction_set_slot, ":faction_no", slot_faction_castle_guard_troop, "trp_rhodok_castle_guard"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_a, "pt_kingdom_5_reinforcements_a"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_b, "pt_kingdom_5_reinforcements_b"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_c, "pt_kingdom_5_reinforcements_c"),

I wklej to. Ma to wyglądać tak:
Cytuj
(else_try),
          (faction_slot_eq, ":faction_no", slot_faction_culture, "fac_culture_5"),
      
          (faction_set_slot, ":faction_no", slot_faction_deserter_troop, "trp_rhodok_deserter"),
          (faction_set_slot, ":faction_no", slot_faction_guard_troop, "trp_rhodok_veteran_spearman"),
          (faction_set_slot, ":faction_no", slot_faction_messenger_troop, "trp_rhodok_messenger"),
          (faction_set_slot, ":faction_no", slot_faction_prison_guard_troop, "trp_rhodok_prison_guard"),
          (faction_set_slot, ":faction_no", slot_faction_castle_guard_troop, "trp_rhodok_castle_guard"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_a, "pt_kingdom_5_reinforcements_a"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_b, "pt_kingdom_5_reinforcements_b"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_c, "pt_kingdom_5_reinforcements_c"),
        (else_try),
          (faction_slot_eq, ":faction_no", slot_faction_culture, "fac_culture_6"),

          (faction_set_slot, ":faction_no", slot_faction_deserter_troop, "trp_rhodok_deserter"),
          (faction_set_slot, ":faction_no", slot_faction_guard_troop, "trp_rhodok_trained_spearman"),
          (faction_set_slot, ":faction_no", slot_faction_messenger_troop, "trp_rhodok_messenger"),
          (faction_set_slot, ":faction_no", slot_faction_prison_guard_troop, "trp_rhodok_prison_guard"),
          (faction_set_slot, ":faction_no", slot_faction_castle_guard_troop, "trp_rhodok_castle_guard"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_a, "pt_kingdom_6_reinforcements_a"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_b, "pt_kingdom_6_reinforcements_b"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_c, "pt_kingdom_6_reinforcements_c"),
        (try_end),
      (try_end),


Poszukaj linijki (numer miasta możesz sprawdzić w pliku module_parties.py):
Cytuj
(call_script, "script_give_center_to_lord", "p_town_11"

Cytuj
(call_script, "script_give_center_to_lord", "p_town_11", "trp_kingdom_6_lord"),

Pierwsze pogrubione to "ID" miasta, drugie osoby do której miasto ma należeć... W tym przypadku króla frakcji (który jeszcze nie został zrobiony)...



Otwierasz plik module_troops.py
Znajdź tekst:
Cytuj
["kingdom_5_lord"

Skopiuj całą tą jednostkę i wkleją ją. Powinieneś mieć coś takiego:

Cytuj
 ["kingdom_5_lord",  "King Graveth",  "Kingdom 5 Lord",  tf_hero, 0,reserved,  fac_kingdom_5,[itm_warhorse,  itm_tabard,             itm_leather_boots,              itm_splinted_leather_greaves,   itm_heraldic_mail_with_tabard,  itm_gauntlets,         itm_bastard_sword_b,         itm_tab_shield_heater_cav_b,        itm_spiked_helmet],         knight_attrib_3,wp(220),knight_skills_4|knows_trainer_5, 0x0000000efc04119225848dac5d50d62400000 000001d48b80000000000000000, rhodok_face_old_2],
  ["kingdom_6_lord",  "Imię króla",  "Kingdom 6 Lord",  tf_hero, 0,reserved,  fac_kingdom_6,[itm_warhorse,  itm_tabard,             itm_leather_boots,              itm_splinted_leather_greaves,   itm_heraldic_mail_with_tabard,  itm_gauntlets,         itm_bastard_sword_b,         itm_tab_shield_heater_cav_b,        itm_spiked_helmet],         knight_attrib_3,wp(220),knight_skills_4|knows_trainer_5, 0x00000006bf002014041b71f49245813800000000001eb6bb0000000000000000, rhodok_face_old_2],

Po kolei co oznaczają pogrubienia: Imię, ID frakcji do której należy, kod twarzy (gdzieś na forum jest poradnik o co z tym chodzi, a mi się tego tłumaczyć nie chce :P)



Otwierasz plik module_party_templates.
Znajdź:
Cytuj
 ("kingdom_5_reinforcements_c", "kingdom_5_reinforcements_c", 0, 0, fac_commoners, 0, [(trp_rhodok_sergeant,3,6)]),

Skopiuj:
Cytuj
 ("kingdom_5_reinforcements_a", "kingdom_5_reinforcements_a", 0, 0, fac_commoners, 0, [(trp_rhodok_spearman,3,7),(trp_rhodok_tribesman,3,6)]),
  ("kingdom_5_reinforcements_b", "kingdom_5_reinforcements_b", 0, 0, fac_commoners, 0, [(trp_rhodok_trained_crossbowman,2,6),(trp_rhodok_crossbowman,4,7)]),
  ("kingdom_5_reinforcements_c", "kingdom_5_reinforcements_c", 0, 0, fac_commoners, 0, [(trp_rhodok_sergeant,3,6)]),

I wklej to. Zmień 5, na 6... Rzeczy z przedrostkiem trp oznaczają jednostki, które muszą być w module_troops (obecnie, jeśli robiłeś wszystko według instrukcji to jeszcze ich nie masz), a te liczby potem oznaczają od ilu do ilu ich będzie...


Zapisz wszystkie pliki (o ile tego jeszcze nie zrobiłeś) i uruchom plik: build_module (radzę zrobić to 2 razy, dla pewności).
Jeżeli wszystko poszło dobrze to właśnie dodałeś nową frakcję, dając im jedno z istniejących miast...

Poradnik pisany na sucho.

Orginał: http://forums.taleworlds.com/index.php/topic,28839.0.html (http://forums.taleworlds.com/index.php/topic,28839.0.html)


PS: Zawsze jest jakaś możliwość, że popełniłem błąd, więc jeżeli jakiś doświadczony moder to zobaczy to proszę o wskazanie błędu...


EDIT: Założyłem odpowiedni temat w dziale Poradniki i tutoriale (http://www.mountblade.info/forum/index.php?topic=4346.0). Tamten poradnik zawiera o kilka (mało istotnych) informacji więcej i jest trochę bardziej przejrzysty...

Do Kolby: Co do tego poradnika to więcej jest w tym tłumaczenia niż moich zdolności... :)
Tytuł: Odp: Dodanie nowej frakcji
Wiadomość wysłana przez: PissInPeace w Lutego 25, 2010, 19:07:01
Dzięki Mały :P Dodam sobie jeszcze jednostki i zobaczę czy działa.

EDIT: Działa, wielkie dzięki.
Tytuł: Odp: Dodanie nowej frakcji
Wiadomość wysłana przez: Kolba w Lutego 25, 2010, 20:21:34
Już zabierałem się za pisanie własnego poradnika, ale widzę że mnie wyręczyłeś Mały_007 ;)