WB Question:Ajouter une faction

正在查看此主题的用户

Sayd Ûthman

Grandmaster Knight
Salut a tous et bonnes fêtes de fin d'année, j'aimerais qu'un moddeur expérimenté me donne quelques conseils sur la manière de créer une faction en utilisant le module system sur mount and blade premier du nom.
 
il ne me semble pas que se soit différent sur warband donc je vais te donner ce qu'il faut faire pour warband, ça devrait être a peut près pareil :

bon premièrement il faut mettre en place le basique : dans module_faction.py il faut rajouter ta faction entre kingdom_1 et kingdoms_end, de préférence juste avant kingdoms_end. Pour ce faire il suffit juste de copier l'un des kingdom_x et de changer l'identificateur (ce qui a entre les premiers guillemets) et a la fin il devrai y avoir des un série de chiffres ou nombres, précédé de 0x, c'est la couleur de la faction, en hexadécimal, tu peux donc la changer en ce que tu veux, en t'aidant d'internet pour faire les correspondance.

une fois fait, si ta faction a son propre arbre pour les troupes, il faut aussi ajouter une 'culture' dans module_faction.py, qui pourra être par exemple culture_6.

bon ensuite on va assigner les troupe a cette faction, pour ce faire c'est assez simple, il faut que la faction soit relié a une culture, si tu n'as pas de toupes perso c'est rapide, dans module_scripts.py, vers le debut, il y aura ça :
(faction_set_slot, "fac_kingdom_1",  slot_faction_culture, "fac_culture_1"),
(faction_set_slot, "fac_kingdom_1",  slot_faction_leader, "trp_kingdom_1_lord"),
(troop_set_slot, "trp_kingdom_1_lord", slot_troop_renown, 1200),

tu l'aura peut être deviné il faut rajouter aussi quelque chose comme :
(faction_set_slot, "fac_kingdom_6",  slot_faction_culture, "fac_culture_1"),
pour que la nouvelle faction ait les troupes swadiennes. Pour des troupes personnalisées il faut juste remplacer le "fac_culture_1" par "fac_culture_6" (par exemple, si la nouvelle culture a pour identificateur culture_6)

puisqu'on en es ici, l'autre bout de code assigne le roi de la faction, tu doit en créer un avant, il faudra ensuite rajouter deux lignes comme celles là :
(faction_set_slot, "fac_kingdom_6",  slot_faction_leader, "trp_kingdom_6_lord"),
(troop_set_slot, "trp_kingdom_6_lord", slot_troop_renown, 1200),

la deuxième ligne correspond a la renommée du roi, qui doit être assez élevé (c'est un roi quoi) mais qui peut être différente

si tu as une culture propre pour ta factin alors il faut faire ça aussi :
juste au dessus, tu auras quelque chose comme ça :
(faction_set_slot, "fac_culture_1",  slot_faction_tier_1_troop, "trp_swadian_recruit"),
(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"),
et un peu plus bas :
(faction_set_slot, "fac_culture_1", slot_faction_town_walker_male_troop, "trp_town_walker_1"),
(faction_set_slot, "fac_culture_1", slot_faction_town_walker_female_troop, "trp_town_walker_2"),
(faction_set_slot, "fac_culture_1", slot_faction_village_walker_male_troop, "trp_village_walker_1"),
(faction_set_slot, "fac_culture_1", slot_faction_village_walker_female_troop, "trp_village_walker_2"),
(faction_set_slot, "fac_culture_1", slot_faction_town_spy_male_troop, "trp_spy_walker_1"),
(faction_set_slot, "fac_culture_1", slot_faction_town_spy_female_troop, "trp_spy_walker_2"),

il faut donc rajouter la même chose pour ta culture (c'est pas la même chose que la faction, une culture peut être utilisé par plusieurs faction) :
(faction_set_slot, "fac_culture_6",  slot_faction_tier_1_troop, "trp_ma_super_recrue"),
(faction_set_slot, "fac_culture_6",  slot_faction_tier_2_troop, "trp_ma_super_troupe"),
(faction_set_slot, "fac_culture_6",  slot_faction_tier_3_troop, "trp_ma_super_infanterie"),
(faction_set_slot, "fac_culture_6",  slot_faction_tier_4_troop, "trp_ma_super_infanterie_2"),
(faction_set_slot, "fac_culture_6",  slot_faction_tier_5_troop, "trp_ma_super_top_unité"),

(faction_set_slot, "fac_culture_6", slot_faction_town_walker_male_troop, "trp_town_walker_1"),
(faction_set_slot, "fac_culture_6", slot_faction_town_walker_female_troop, "trp_town_walker_2"),
(faction_set_slot, "fac_culture_6", slot_faction_village_walker_male_troop, "trp_village_walker_1"),
(faction_set_slot, "fac_culture_6", slot_faction_village_walker_female_troop, "trp_village_walker_2"),
(faction_set_slot, "fac_culture_6", slot_faction_town_spy_male_troop, "trp_spy_walker_1"),
(faction_set_slot, "fac_culture_6", slot_faction_town_spy_female_troop, "trp_spy_walker_2"),

bon bien sur la première partie du code est utilisé entre autre dans les gardes dans les villes ou les recrues des villages.
pour la deuxième partie, je n'ai pas changé la troupe, car ce n'est pas nécessaire, sa peut être utile si ta faction utilise des visages particuliers mais bon.

et ensuite pour les renfort il faut rechercher ce script : initialize_faction_troop_types (dans module_scripts.py donc)
vous aurez quelque chose qui ressemble a :
(try_begin),
          (faction_slot_eq, ":faction_no", slot_faction_culture, "fac_culture_1"),
     
          (faction_set_slot, ":faction_no",  slot_faction_deserter_troop, "trp_swadian_deserter"),
          (faction_set_slot, ":faction_no",  slot_faction_guard_troop, "trp_swadian_sergeant"),
          (faction_set_slot, ":faction_no",  slot_faction_messenger_troop, "trp_swadian_messenger"),
          (faction_set_slot, ":faction_no",  slot_faction_prison_guard_troop, "trp_swadian_prison_guard"),
          (faction_set_slot, ":faction_no",  slot_faction_castle_guard_troop, "trp_swadian_castle_guard"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_a, "pt_kingdom_1_reinforcements_a"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_b, "pt_kingdom_1_reinforcements_b"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_c, "pt_kingdom_1_reinforcements_c"),

la vous pouvez ajouter juste apres sa
(else_try),
          (faction_slot_eq, ":faction_no", slot_faction_culture, "fac_culture_6"),
     
          (faction_set_slot, ":faction_no",  slot_faction_deserter_troop, "trp_mon_deserter"),
          (faction_set_slot, ":faction_no",  slot_faction_guard_troop, "trp_mon_garde"),
          (faction_set_slot, ":faction_no",  slot_faction_messenger_troop, "trp_mon_messenger"),
          (faction_set_slot, ":faction_no",  slot_faction_prison_guard_troop, "trp_mon_prison_guard"),
          (faction_set_slot, ":faction_no",  slot_faction_castle_guard_troop, "trp_mon_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"),

et pour modifier ces renforts il faut aller dans module_party_template.py et rajouter peut être un truc comme ça :
("kingdom_6_reinforcements_a", "{!}kingdom_6_reinforcements_a", 0, 0, fac_commoners, 0, [(trp_watchman,6,12),(trp_farmer,2,4),(trp_townsman,1,2),(trp_peasant_woman,1,2)]),

il faut rajouter le b et le c aussi, et ici c'est juste une  culture pour les mercenaires, mais vous pouvez mettre vos propres troupes. (Le premier nombre représente le nombre minimum qui va être ajouté en renfort, le second le nombre max)

bon c'est pas tout, plus tard tu as des bout de code comme ça :
(call_script, "script_give_center_to_faction_aux", "p_town_1", "fac_kingdom_4"),
(call_script, "script_give_center_to_faction_aux", "p_town_2", "fac_kingdom_4"),
(call_script, "script_give_center_to_faction_aux", "p_town_3", "fac_kingdom_5"),
(call_script, "script_give_center_to_faction_aux", "p_town_4", "fac_kingdom_1"),
(call_script, "script_give_center_to_faction_aux", "p_town_5", "fac_kingdom_5"),
(call_script, "script_give_center_to_faction_aux", "p_town_6", "fac_kingdom_1"),
(call_script, "script_give_center_to_faction_aux", "p_town_7", "fac_kingdom_1"),
(call_script, "script_give_center_to_faction_aux", "p_town_8", "fac_kingdom_2"),
(call_script, "script_give_center_to_faction_aux", "p_town_9", "fac_kingdom_2"),

ces lignes distribuent les villes et châteaux aux faction, si tu en as fait il faudra que tu les assignent a ta faction comme ceci :
(call_script, "script_give_center_to_faction_aux", "p_town_19", "fac_kingdom_6"),

on n'assigne pas les villages car ils sont automatiquement assignés aux châteaux et villes.

c'est presque fini ici, car il ne reste plus qu'a rajouter les seigneurs :
dans module_troops.py il faut ajouter apres knight_5_20 tout les seigneurs qui doivent être dans la nouvelle faction :

["knight_6_1", "Lord Elios", "Lord Elios", tf_hero, 0, reserved,  fac_kingdom_6, [],      knight_attrib_5,wp(250),knight_skills_5, 0x00000001a20850c417264518422e596b00000000001d35630000000000000000, rhodok_face_middle_2],
sa peut ressembler a ça, en pensant a mettre ce que j'ai mis en rouge, c'est a dire mettre la bonne faction pour le seigneur
et entre les crochets verts il faut mettre les équipements que le seigneur doit porter (penser a lui mettre des vêtement civils aussi pour éviter qu'il soit nu dans les châteaux)

voila je ne pense pas avoir oublié quelque chose, si tu as d'autres question ou des précisions a demander je suis la  :grin:
 
后退
顶部 底部