WB Tutoriel: Créer et recruter des nouveau mercenaires

Users who are viewing this thread

Bonjour, tout d'abord je voudrais m'excuser de mon "mauvais" français et des erreur que je risque de commettre. Et je serais heureux que l'on me corrige pour les éviter.

Pour commencer je part du principe que tous connaissent le module_system et comment créer des nouvelles troupes, si vous ne connaissez pas réferez vous a ce tutoriel qui devrez vous aprendre a créer de nouvelles troopes.

Dans le module_system vous allez travailler uniquement avec le module_troops.py:

Tous les mercenaires sont inclus entre:

Code:
#soldiers:
#This troop is the troop marked as soldiers_begin
Marque le début des entrées des mercenaires et
Code:
  ["mercenaries_end","mercenaries_end","mercenaries_end",0,no_scene,reserved,fac_commoners,
   [],
Marque la fin des Mercenaires.

Pour créer un Mercenaire il vous suffit de l'inclure entre ces entrées comme par exemple:

Code:
#soldiers:
#This troop is the troop marked as soldiers_begin
  ["farmer","Farmer","Farmers",tf_guarantee_armor,no_scene,reserved,fac_commoners,
   [itm_cleaver,itm_knife,itm_pitch_fork,itm_sickle,itm_club,itm_stones,itm_leather_cap,itm_felt_hat,itm_felt_hat,itm_linen_tunic,itm_coarse_tunic,itm_nomad_boots,itm_wrapping_boots],
   def_attrib|level(4),wp(60),knows_common,man_face_middle_1, man_face_old_2],
  ["townsman","Townsman","Townsmen",tf_guarantee_boots|tf_guarantee_armor,no_scene,reserved,fac_commoners,
   [itm_cleaver,itm_knife,itm_club,itm_quarter_staff,itm_dagger,itm_stones,itm_leather_cap,itm_linen_tunic,itm_coarse_tunic,itm_leather_apron,itm_nomad_boots,itm_wrapping_boots],
   def_attrib|level(4),wp(60),knows_common,mercenary_face_1, mercenary_face_2],
## CC
  ["refugee","Refugee","Refugees",tf_female|tf_guarantee_armor,0,0,fac_commoners,
   [itm_knife,itm_pitch_fork,itm_sickle,itm_hatchet,itm_club,itm_dress,itm_robe,itm_woolen_dress, itm_headcloth, itm_woolen_hood, itm_wrapping_boots],
   def_attrib|level(1),wp(45),knows_common,refugee_face1,refugee_face2],
  ["peasant_woman","Peasant Woman","Peasant Women",tf_female|tf_guarantee_armor,0,0,fac_commoners,
   [itm_knife,itm_pitch_fork,itm_sickle,itm_hatchet,itm_club,itm_dress,itm_woolen_dress, itm_headcloth, itm_woolen_hood, itm_wrapping_boots],
   def_attrib|level(1),wp(40),knows_common,refugee_face1,refugee_face2],
  ["follower_woman","Camp Follower","Camp Follower",tf_female|tf_guarantee_armor,0,0,fac_commoners,
   [itm_bolts,itm_light_crossbow,itm_short_bow,itm_crossbow,itm_nordic_shield,itm_hide_covered_round_shield,itm_hatchet,itm_hand_axe,itm_voulge,itm_fighting_pick,itm_club,itm_dress,itm_woolen_dress, itm_skullcap, itm_wrapping_boots],
   def_attrib|level(5),wp(70),knows_common,refugee_face1,refugee_face2],
  ["hunter_woman","Huntress","Huntresses",tf_female|tf_guarantee_armor,0,0,fac_commoners,
   [itm_bolts,itm_arrows,itm_light_crossbow,itm_short_bow,itm_crossbow,itm_nordic_shield,itm_hide_covered_round_shield,itm_hatchet,itm_hand_axe,itm_voulge,itm_fighting_pick,itm_club,itm_dress,itm_leather_jerkin, itm_skullcap, itm_wrapping_boots],
   def_attrib|level(10),wp(85),knows_common|knows_power_strike_1,refugee_face1,refugee_face2],
  ["fighter_woman","Camp Defender","Camp Defenders",tf_female|tf_guarantee_boots|tf_guarantee_armor,0,0,fac_commoners,
   [itm_bolts,itm_arrows,itm_light_crossbow,itm_short_bow,itm_crossbow,itm_fur_covered_shield,itm_hide_covered_round_shield,itm_hatchet,itm_voulge,itm_mail_shirt,itm_byrnie, itm_skullcap, itm_wrapping_boots],
   def_attrib|level(16),wp(100),knows_common|knows_riding_3|knows_power_strike_2|knows_athletics_2|knows_ironflesh_1,refugee_face1,refugee_face2],
  ["sword_sister","Sword Sister","Sword Sisters",tf_female|tf_mounted|tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_gloves|tf_guarantee_shield|tf_guarantee_horse,0,0,fac_commoners,
   [itm_bolts,itm_sword_medieval_b,itm_sword_khergit_3,itm_plate_covered_round_shield,itm_tab_shield_small_round_c, itm_crossbow,itm_plate_armor,itm_coat_of_plates,itm_plate_boots,itm_guard_helmet,itm_helmet_with_neckguard,itm_courser,itm_leather_gloves],
   def_attrib|level(22),wp(140),knows_common|knows_power_strike_3|knows_riding_5|knows_athletics_3|knows_ironflesh_2|knows_shield_2,refugee_face1,refugee_face2],
## CC
  ["watchman","Watchman","Watchmen",tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_shield,no_scene,reserved,fac_commoners,
   [itm_bolts,itm_spiked_club,itm_fighting_pick,itm_sword_medieval_a,itm_boar_spear,itm_hunting_crossbow,itm_light_crossbow,itm_tab_shield_round_a,itm_tab_shield_round_b,itm_padded_cloth,itm_leather_jerkin,itm_leather_cap,itm_padded_coif,itm_footman_helmet,itm_nomad_boots,itm_wrapping_boots],
   def_attrib|level(9),wp(75),knows_common|knows_shield_1,mercenary_face_1, mercenary_face_2],
  ["caravan_guard","Caravan Guard","Caravan Guards",tf_mounted|tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_horse|tf_guarantee_shield,no_scene,0,fac_commoners,
   [itm_spear,itm_fighting_pick,itm_sword_medieval_a,itm_voulge,itm_tab_shield_round_b,itm_tab_shield_round_c,itm_leather_jerkin,itm_leather_vest,itm_hide_boots,itm_padded_coif,itm_nasal_helmet,itm_footman_helmet,itm_saddle_horse],
   def_attrib|level(14),wp(85),knows_common|knows_riding_2|knows_ironflesh_1|knows_shield_3,mercenary_face_1, mercenary_face_2],
  ["mercenary_swordsman","Mercenary Swordsman","Mercenary Swordsmen",tf_mounted|tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet|tf_guarantee_shield,no_scene,reserved,fac_commoners,
   [itm_bastard_sword_a,itm_sword_medieval_b,itm_sword_medieval_b_small,itm_tab_shield_heater_c,itm_mail_hauberk,itm_haubergeon,itm_leather_boots,itm_mail_chausses,itm_kettle_hat,itm_mail_coif,itm_flat_topped_helmet, itm_helmet_with_neckguard],
   def_attrib|level(20),wp(100),knows_common|knows_riding_3|knows_ironflesh_3|knows_shield_3|knows_power_strike_3,mercenary_face_1, mercenary_face_2],
  ["hired_blade","Hired Blade","Hired Blades",tf_mounted|tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_gloves|tf_guarantee_helmet|tf_guarantee_shield,no_scene,reserved,fac_commoners,
   [itm_bastard_sword_b,itm_sword_medieval_c,itm_tab_shield_heater_cav_a,itm_haubergeon,itm_mail_chausses,itm_iron_greaves,itm_plate_boots,itm_guard_helmet,itm_great_helmet,itm_bascinet, itm_leather_gloves],
   def_attrib|level(25),wp(130),knows_common|knows_riding_3|knows_athletics_5|knows_shield_5|knows_power_strike_5|knows_ironflesh_5,mercenary_face_1, mercenary_face_2],
  ["mercenary_crossbowman","Mercenary Crossbowman","Mercenary Crossbowmen",tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_ranged,no_scene,reserved,fac_commoners,
   [itm_bolts,itm_spiked_club,itm_fighting_pick,itm_sword_medieval_a,itm_boar_spear,itm_crossbow,itm_tab_shield_pavise_a,itm_tab_shield_round_b,itm_padded_cloth,itm_leather_jerkin,itm_leather_cap,itm_padded_coif,itm_footman_helmet,itm_nomad_boots,itm_wrapping_boots],
   def_attrib|level(19),wp_one_handed (90) | wp_two_handed (90) | wp_polearm (90) | wp_archery (90) | wp_crossbow (130) | wp_throwing (90),knows_common|knows_athletics_5|knows_shield_1,mercenary_face_1, mercenary_face_2],
  ["mercenary_horseman","Mercenary Horseman","Mercenary Horsemen",tf_mounted|tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet|tf_guarantee_horse|tf_guarantee_shield,no_scene,reserved,fac_commoners,
   [itm_lance,itm_bastard_sword_a,itm_sword_medieval_b,itm_tab_shield_heater_c,itm_mail_shirt,itm_haubergeon,itm_leather_boots,itm_norman_helmet,itm_mail_coif,itm_helmet_with_neckguard,itm_saddle_horse,itm_courser],
   def_attrib|level(20),wp(100),knows_common|knows_riding_4|knows_ironflesh_3|knows_shield_2|knows_power_strike_3,mercenary_face_1, mercenary_face_2],
  ["mercenary_cavalry","Mercenary Cavalry","Mercenary Cavalry",tf_mounted|tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet|tf_guarantee_horse|tf_guarantee_shield,no_scene,reserved,fac_commoners,
   [itm_heavy_lance,itm_bastard_sword_a,itm_sword_medieval_b,itm_tab_shield_heater_c,itm_cuir_bouilli,itm_banded_armor,itm_hide_boots,itm_kettle_hat,itm_mail_coif,itm_flat_topped_helmet,itm_helmet_with_neckguard,itm_warhorse,itm_hunter],
   def_attrib|level(25),wp(130),knows_common|knows_riding_5|knows_ironflesh_4|knows_shield_5|knows_power_strike_4,mercenary_face_1, mercenary_face_2],
  ["manhunter","Manhunter","Manhunters",tf_mounted|tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet|tf_guarantee_horse|tf_guarantee_shield,0,0,fac_manhunters,
   [itm_mace_3,itm_winged_mace,itm_nasal_helmet,itm_padded_cloth,itm_aketon_green,itm_aketon_green,itm_wooden_shield,itm_nomad_boots,itm_wrapping_boots,itm_sumpter_horse],
   def_attrib|level(10),wp(50),knows_common,bandit_face1, bandit_face2],
  ["slave_driver","Slave Driver","Slave Drivers",tf_mounted|tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet|tf_guarantee_horse ,0,0,fac_slavers,
   [itm_club_with_spike_head,itm_segmented_helmet,itm_tribal_warrior_outfit,itm_nordic_shield,itm_leather_boots,itm_leather_gloves,itm_khergit_leather_boots,itm_steppe_horse],
   def_attrib|level(14),wp(80),knows_common|knows_riding_2|knows_power_strike_1,bandit_face1, bandit_face2],
  ["slave_hunter","Slave Hunter","Slave Hunters",tf_mounted|tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet|tf_guarantee_horse|tf_guarantee_shield ,0,0,fac_slavers,
   [itm_winged_mace,itm_maul,itm_kettle_hat,itm_mail_shirt,itm_tab_shield_round_c,itm_leather_boots,itm_leather_gloves,itm_courser],
   def_attrib|level(18),wp(90),knows_common|knows_riding_3|knows_power_strike_2,bandit_face1, bandit_face2],
  ["slave_crusher","Slave Crusher","Slave Crushers",tf_mounted|tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet|tf_guarantee_horse|tf_guarantee_shield ,0,0,fac_slavers,
   [itm_sledgehammer,itm_spiked_mace,itm_mail_hauberk,itm_bascinet_2,itm_bascinet_3,itm_mail_mittens,itm_tab_shield_round_d,itm_mail_chausses,itm_splinted_leather_greaves,itm_hunter],
   def_attrib|level(22),wp(110),knows_common|knows_riding_4|knows_power_strike_3,bandit_face1, bandit_face2],
  ["slaver_chief","Slaver Chief","Slaver Chiefs",tf_mounted|tf_guarantee_all_wo_ranged,0,0,fac_slavers,
   [itm_military_hammer,itm_warhammer,itm_brigandine_red,itm_steel_shield,itm_scale_gauntlets,itm_mail_mittens,itm_guard_helmet,itm_plate_boots,itm_mail_boots,itm_warhorse],
   def_attrib|level(26),wp(130),knows_common|knows_riding_4|knows_power_strike_5,bandit_face1, bandit_face2],

#Nouveau Mercenaire
  ["Nouveau_Mercenaire","Mercenaire","Mercenaires",tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_shield,no_scene,reserved,fac_commoners,
 [itm_bolts,itm_spiked_club,itm_fighting_pick,itm_sword_medieval_a,itm_boar_spear,itm_hunting_crossbow,itm_light_crossbow,itm_tab_shield_round_a,itm_tab_shield_round_b,itm_padded_cloth,itm_leather_jerkin,itm_leather_cap,itm_padded_coif,itm_footman_helmet,itm_nomad_boots,itm_wrapping_boots],
   def_attrib|level(9),wp(75),knows_common|knows_shield_1,mercenary_face_1, mercenary_face_2],

  ["mercenaries_end","mercenaries_end","mercenaries_end",0,no_scene,reserved,fac_commoners,
   [],
   def_attrib|level(4),wp(60),knows_common,mercenary_face_1, mercenary_face_2],

Si vous avez suivi tous les pas et que vous ne rencontrez aucune erreur en compilant le module_System votre nouveau mercenaire devrait aparaitre dans unes des tavernes.

Notes:
-Si vous avez du mal en éditant le module_system utilisez ce programme qui vous aideras dans vos premiers pas : modding companion
-Personnellement je trouve plus facile d'éditer une troope en usant une autre comme base, par exemple en créant des nouveaux Mercenaires j'utilise le code du "Watchman" comme base et je l'édite pour avoir le résultat désiré.

#Si vous avez lu ce texte, vous faites parti du rare groupe des personnes qui lisent un tuto en entier, par conséquent vous méritez une médaille  :smile: #
 
Merci pour le support !  :grin:
J'espére que mes tutos résoudront les problémes des débutant (comme moi) et donneront un peu plus de vie au forum français qui a l'air un peut "mort" coté modding...

Ps: Bonne chance pour ton mod  :wink:
 
Oui je l'avoue, les moddeurs français sont très rares, et ceux qui sont bons ne trainent que sur les forums anglais. j'espère tout autant que toi que ceci permettra aux débutants de pouvoir commencer un peu.
Seek n Destroy said:
Ps: Bonne chance pour ton mod  :wink:

Merci, bonne chance pour le tien aussi
 
Hello,

Merci Seek pour ce tutorial très utile.
Par contre, pour être complet, il faudrait aussi indiquer (ce que je ne sais pas comment faire):

> comment modifier le prix initial des mercenaires (individuellement) ainsi que leur salaire.
> comment positionner un mercenaire pour qu'il n'apparaissent que dans des villes ou des factions spécifiques (par exemple, si je crée un mercenaire archer arabe, c'est mieux qu'il n'apparaissent pas à Thir).
> comment faire varier le nombre de mercenaires disponibles dans les tavernes.
> comment imposer un nombre maximum de mercenaires qu'on peut commander par type de mercenaire et en fonction du leadership du joueur (par exemple, on peut commander 100 mercenaires piquiers mais pas plus de 10 varangian guards à la fois)
> comment faire en sorte que les lords des différentes factions fassent appel aux mercenaires dans leurs armées (par exemple, si les nords n'ont pas de cavalerie, on peut imaginer qu'ils emploient une cavalerie mercenaire de temps en temps).

Voilà à quoi je pense pour commencer.
Si tu as des réponses à quelques unes de ces questions, je suis preneur.

++
 
pino69 said:
Hello,

Merci Seek pour ce tutorial très utile.
Par contre, pour être complet, il faudrait aussi indiquer (ce que je ne sais pas comment faire):

> comment modifier le prix initial des mercenaires (individuellement) ainsi que leur salaire.
> comment positionner un mercenaire pour qu'il n'apparaissent que dans des villes ou des factions spécifiques (par exemple, si je crée un mercenaire archer arabe, c'est mieux qu'il n'apparaissent pas à Thir).
> comment faire varier le nombre de mercenaires disponibles dans les tavernes.
> comment imposer un nombre maximum de mercenaires qu'on peut commander par type de mercenaire et en fonction du leadership du joueur (par exemple, on peut commander 100 mercenaires piquiers mais pas plus de 10 varangian guards à la fois)
> comment faire en sorte que les lords des différentes factions fassent appel aux mercenaires dans leurs armées (par exemple, si les nords n'ont pas de cavalerie, on peut imaginer qu'ils emploient une cavalerie mercenaire de temps en temps).

Voilà à quoi je pense pour commencer.
Si tu as des réponses à quelques unes de ces questions, je suis preneur.

++
1- Le prix dépend surtout du niveau du mercenaire,il faut payer 1 Dinar pour un niveau 1 et prés de 100 pour un niveau 20.
2- J'ai une petite idée sur comment le faire mais il faut que je la teste aprés si le résultat est bon j'expliquerais comment faire.
3- Il faut changer les numéros :
Code:
    #script_update_mercenary_units_of_towns
  # INPUT: none
  # OUTPUT: none
  ("update_mercenary_units_of_towns",
    [(try_for_range, ":town_no", towns_begin, towns_end),
      (store_random_in_range, ":troop_no", mercenary_troops_begin, mercenary_troops_end),
      (party_set_slot, ":town_no", slot_center_mercenary_troop_type, ":troop_no"),
      (store_random_in_range, ":amount", 10, 40), #Change les numéros 10 (minimum) et 40 (maximum) par les numéros de votre choix
      (party_set_slot, ":town_no", slot_center_mercenary_troop_amount, ":amount"),
    (try_end),
     ]),
4- Je ne sais pas
5- Je ne sais pas trop mais il est possibles d'assigner un certain nombre de mercenaires dans la troupes des lords
 
Salut à toi,

Tout d'abord je te remercie d'avoir pris la peine de  faire ce post.


Je suis sur Warband et j'ai essayer de créer de nouveaux mercenaire en suivant tes instructions et en m'inspirant de la syntaxe des mercenaires déjà présent. Mais quand je fais build module pour qu'il inscrive les codes des nouveaux mercenaires dans le fichier troops.txt dans mon mod, il me sort plein de "SyntaxError: invalid syntax etc..." Et aucun des mercenaires que j'ai créés ce trouvent en jeu. Quelqu'un pourrait m'aider svp ?
 
Hello

Seek n Destroy, bonne initiative !
Les tutos sur le forum Français ne sont pas si courant !
Je serais d'ailleurs preneur d'un tuto sur les textures, en particulier sur l'utilisation des calques et du canal alpha !  :wink:

TurokTarr, pour les "SyntaxError: invalid syntax etc...", c'est qu'il y a une possible erreur dans les codes, comme le dit fladin, il faut voir ce que tu as fait.
C'est vrai que que des fois il faut lancer deux fois le "build_module.bat", mais je pense que c'est principalement le cas lorsqu'on a créé un nouvel item et qu'il a été aussitôt attribué à une troupe, c'est un des exemples, on a d'ailleurs d'autres types de messages d'erreurs.

Sayd Ûthman, oui le forum Français n'est pas très prolifique pour le modding, mais il semble qu'il y ait un nouveau frémissement avec des mods en projet et en cours de réalisation, et c'est tant mieux !  :grin:
Peut-être qu'une entraide est envisageable dans un nouveau sujet, dans le genre "The Forge - Mod Development"  Anglais, mais là je fantasme un peu...  :razz:

Et bonne chance à tous dans la réalisation de vos mods !!!  :idea:

Tchin !
:twisted:
 
Back
Top Bottom