WB [MBW1.153][MOD] Calradia mod

正在查看此主题的用户

shadyre

Recruit
- Créer sous : Warband 1.153
- Crédit * : @bOuYA_k-hlO, @Hurleur, @FantasyWarrior
- Auteur : @shadyre
(* tous ceux qui ont participer de manière direct ou indirect au développement de mon mod, un grand merci à eux !)

Calradia mod v1.0 bêta : télécharger

Historique :
Cette histoire remonte lorsque un seul et puissant empire régnait en maitre sur Calradia, jusqu'au jour ou plusieurs vassaux ont trahi leur empereur.
Une grande guerre éclata et plusieurs royaumes se sont formée, indépendant de l'empereur Calradien et maitre de leur propre terre, terre ravagée par une guerre ou se dispute désormais 6 roi auto-proclamé et un empereur presque déchu.
Pour qui vous combattrez vous ?

Prochainement :
* De nouveaux équipements.
* Modification des menus et icônes.
* Modification du menu des relations entre factions.

Version 1.0 :
* Ajout de la faction "Empire Calradian".
* Ajout d'un roi pour cette faction.
* Ajout de 20 Seigneur pour cette faction.
* Ajout de Femme, Fille et Dame pour cette faction.
* Modification intégrale du comportement diplomatique en début de partie.
* Modification du statut, de la richesse et des propriétés de départ.
* Ajout de 9 nouvelles unité pour cette faction.

Bonjour à tous,
J'ai cherché pendant des heures (même des nuits) comment faire pour mettre à jour le type d'unité que l'ont peut recruter en visitant un village.
J'ai trouver plusieurs possibilités mais non fonctionnel sur la version 1.143 de Warband ...
Si quelqu'un pourrait me venir en aide ainsi que pour bon nombre de personne qui cherche la solution à ce problème.

Voici le lien du topic sur la méthode que je "travail" actuellement :
http://forums.taleworlds.com/index.php/topic,111689.0.html
et le second mais qui ne convient pas vraiment à mes besoin ... :
http://forums.taleworlds.com/index.php/topic,202029.0.html
 
Que veux tu dire par 'mettre à jour' ?
Le script que tu dois modifier est surement update_volunteer_troops_in_village
插入代码块:
       (party_get_slot, ":player_relation", ":center_no", slot_center_player_relation),
       (party_get_slot, ":center_culture", ":center_no", slot_center_culture),

       (...)

       (faction_get_slot, ":volunteer_troop", ":center_culture", slot_faction_tier_1_troop),
C'est cette partie qui détermine quelle troupe est recruté.
En prenant la faction originelle du village.
 
@bOuYA_k-hlO
C'est sa, "j'ai trouver la solution", en fesant un peut n'importe quoi j'ai pourrit mon code ce qui me créer des erreurs pour certaine ID du à l'utilisation de plusieurs éditeurs différents le code actuel fonction bel et bien pour Warband 1.143 (compiler avec Diplomacy 4.2)

插入代码块:
### Calradia+
(store_faction_of_party, ":center_faction", ":center_no"),
(try_begin),
	(is_between, ":center_faction", "fac_kingdom_1", "fac_kingdoms_end"),
	(faction_get_slot, ":volunteer_troop", ":center_faction", slot_faction_tier_1_troop),
(else_try),
	(eq, ":center_faction", "fac_player_supporters_faction"),
	(assign, ":volunteer_troop", "trp_calradia_recruit"),
(try_end), 
### Calradia-

Le problème ne viens pas vraiment de l'utilisation de plusieurs éditeur mais de "TroopEditor", désoler pour la mauvaise pub ... le souci viens des ID qui sont uniquement numérique, ce qui lors d'ajout sur d'autre fichier tel que module_faction cela décale les identité des factions pour la majeur parti des entités.

Problème que l'on ne rencontre pas avec "Morghs M&B WB-WFAS Editor" en utilisant python.

@bisthebis25
Oui et non car faire sa reviendrait à changer la culture d'une entité unique, mon but étant que cela soit dynamique et lié à la faction qui occupe la ville courante.
 
Bon voila mon mod progresse avec l'ajout d'une faction un roi, un vassal 3 types de soldat pour l'heure actuel, je n'est pas rajouter de cité mais juste modifier les propriétaires originaux, car je souhaite juste modifier le gameplay.

En cours de partie je n'ai pas d'erreur tous se passe bien, mais évidement il y a un souci lors du lancement d'une nouvelle partie, il faut bien commencer quelque pars ... :



J'ai essayer de cherché d'où pouvait provenir les erreurs mais sans succès ...

Voici l'intégralité du code que j'ai insérer :

插入代码块:
-------------------------- module_scripts.py --------------------------
### Calradia+
(store_faction_of_party, ":center_faction", ":center_no"),
(try_begin),
	(is_between, ":center_faction", "fac_kingdom_1", "fac_kingdoms_end"),
	(faction_get_slot, ":volunteer_troop", ":center_faction", slot_faction_tier_1_troop),
(else_try),
	(eq, ":center_faction", "fac_player_supporters_faction"),
	(assign, ":volunteer_troop", "trp_calradia_recruit"),
(try_end), 
### Calradia-

### Calradia+
(faction_set_slot, "fac_culture_7", slot_faction_town_walker_male_troop, "trp_town_walker_1"),
(faction_set_slot, "fac_culture_7", slot_faction_town_walker_female_troop, "trp_town_walker_2"),
(faction_set_slot, "fac_culture_7", slot_faction_village_walker_male_troop, "trp_village_walker_1"),
(faction_set_slot, "fac_culture_7", slot_faction_village_walker_female_troop, "trp_village_walker_2"),
(faction_set_slot, "fac_culture_7", slot_faction_town_spy_male_troop, "trp_spy_walker_1"),
(faction_set_slot, "fac_culture_7", slot_faction_town_spy_female_troop, "trp_spy_walker_2"),
### Calradia-

### Calradia+
(faction_set_slot, "fac_kingdom_7",  slot_faction_culture, "fac_culture_7"),      
(faction_set_slot, "fac_kingdom_7",  slot_faction_leader, "trp_kingdom_7_lord"),
(troop_set_slot, "trp_kingdom_7_lord", slot_troop_renown, 2400),
### Calradia-

### Calradia+
(faction_set_slot, "fac_culture_7", slot_faction_tier_1_troop, "trp_calradia_recruit"),
(faction_set_slot, "fac_culture_7", slot_faction_tier_2_troop, "trp_calradia_guard"),
(faction_set_slot, "fac_culture_7", slot_faction_tier_3_troop, "trp_calradia_champion"),
### Calradia-

### Calradia+
(else_try),
(faction_slot_eq, ":faction_no", slot_faction_culture, "fac_culture_7"),
(faction_set_slot, ":faction_no", slot_faction_deserter_troop, "trp_calradia_guard"),
(faction_set_slot, ":faction_no", slot_faction_guard_troop, "trp_calradia_guard"),
(faction_set_slot, ":faction_no", slot_faction_messenger_troop, "trp_calradia_guard"),
(faction_set_slot, ":faction_no", slot_faction_prison_guard_troop, "trp_calradia_guard"),
(faction_set_slot, ":faction_no", slot_faction_castle_guard_troop, "trp_calradia_guard"),
(faction_set_slot, ":faction_no",  slot_faction_reinforcements_a, "pt_kingdom_7_reinforcements_a"),
(faction_set_slot, ":faction_no",  slot_faction_reinforcements_b, "pt_kingdom_7_reinforcements_b"),
(faction_set_slot, ":faction_no",  slot_faction_reinforcements_c, "pt_kingdom_7_reinforcements_c"),
### Calradia-

### Calradia+
(call_script, "script_give_center_to_lord", "p_town_12", "trp_kingdom_7_lord", 0),#Wercheg
(call_script, "script_give_center_to_lord", "p_castle_10", "trp_knight_7_1", 0),#Alburq_Castle
(troop_set_slot, "trp_kingdom_7_lord", slot_troop_home, "p_town_12"),
### Calradia-
### Calradia-

-------------------------- module_troops.py --------------------------
### Calradia+
["kingdom_7_lord",  "King Thor",  "Thor",  tf_hero, 0,reserved,  fac_kingdom_7,[itm_charger, itm_rich_outfit,        itm_blue_hose, itm_plate_boots, itm_plate_armor, itm_gauntlets, itm_bastard_sword_b, itm_tab_shield_heater_cav_b, itm_great_helmet], knight_attrib_5,wp(220),knight_skills_5|knows_trainer_5, 0x0000000f45041105241acd2b5a66a86900000000001e98310000000000000000, nord_face_older_2],
["knight_7_1", "Sergeant Kïrhin", "Kïrhin", tf_hero, 0, reserved,  fac_kingdom_7, [itm_warhorse,          itm_nobleman_outfit,     itm_coat_of_plates,                 itm_leather_boots,          itm_splinted_leather_greaves,        itm_flat_topped_helmet, itm_gauntlets, itm_bastard_sword_b,   itm_tab_shield_heater_d],  knight_attrib_5,wp(260),knight_skills_5|knows_trainer_3, 0x000000002900200436db6d86db6db6db00000000001db6db0000000000000000, swadian_face_young_2 ],
["calradia_champion", "Calradia_Champion", "Calradia_Champions", tf_male|tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet|tf_guarantee_shield, no_scene, reserved, fac_kingdom_4, [itm_sword_viking_3,itm_tab_shield_round_e,itm_nordic_warlord_helmet,itm_mail_boots,itm_scale_gauntlets,itm_calradia_mail_surcoat], level(20)|str_10|agi_8|int_6|cha_6, wp(220), knows_ironflesh_8|knows_athletics_7|knows_shield_8|knows_weapon_master_8, nord_face_middle_1, nord_face_older_2 ],
["calradia_guard", "Calradia_Guard", "Calradia_Guards", tf_male|tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet|tf_guarantee_shield, no_scene, reserved, fac_kingdom_4, [itm_sword_viking_2,itm_tab_shield_round_d,itm_splinted_leather_greaves,itm_light_mail_and_plate,itm_nordic_footman_helmet], level(15)|str_10|agi_8|int_6|cha_6, wp(140), knows_ironflesh_8|knows_athletics_7|knows_shield_8|knows_weapon_master_8, nord_face_middle_1, nord_face_older_2 ],
["calradia_recruit", "Calradia_Recruit", "Calradia_Recruits", tf_male|tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet|tf_guarantee_shield, no_scene, reserved, fac_kingdom_4, [itm_sword_viking_1,itm_tab_shield_round_b,itm_leather_cap,itm_leather_gloves,itm_leather_boots,itm_nomad_vest], level(10)|str_10|agi_8|int_6|cha_6, wp(85), knows_ironflesh_8|knows_athletics_7|knows_shield_8|knows_weapon_master_8, nord_face_middle_1, nord_face_older_2 ],
### Calradia-

### Calradia+
upgrade(troops,"calradia_recruit","calradia_guard")
upgrade(troops,"calradia_guard","calradia_champion")
### Calradia-

-------------------------- module_factions.py --------------------------
### Calradia+
("culture_7",  "{!}culture_7", 0, 0.9, [], []), 
### Calradia-

### Calradia+
("kingdom_7",  "Calradia Empire",  0, 0.9, [("outlaws",-0.05),("peasant_rebels", -0.1),("deserters", -0.02),("mountain_bandits", -0.05),("forest_bandits", -0.05)], [], 0x254117),
### Calradia-

-------------------------- module_party_template.py --------------------------
### Calradia+
("kingdom_7_reinforcements_a", "{!}kingdom_7_reinforcements_a", 0, 0, fac_commoners, 0, [(trp_calradia_recruit,5,10),(trp_calradia_guard,2,4)]),
("kingdom_7_reinforcements_b", "{!}kingdom_7_reinforcements_b", 0, 0, fac_commoners, 0, [(trp_calradia_recruit,2,4),(trp_calradia_guard,2,3),(trp_calradia_champion,1,3)]),
("kingdom_7_reinforcements_c", "{!}kingdom_7_reinforcements_c", 0, 0, fac_commoners, 0, [(trp_calradia_champion,3,5)]),
### Calradia-
 
Bonjour à tous !

Petite erreur sur lequel je reviens, la faute de décalage des ID ne vient pas de "TroopEditor" mais de tous les éditeurs de texte, je tient à m'excuser pour la mauvaise pub qui ne lui ai pas mériter !

Secondement, en ce qui concerne les erreurs que j'obtiens lors de la création d'une nouvelle partie, je pense que cela viens du fait que mes seigneurs n'ont pas de bannière ni de comportement IA ... je sais plus ou sur le forum j'avais trouver sa et je ne le retrouve plus ...

Je ne sais pas s'il y a des tutos pour sa, je recherche toujours, en attendant si quelqu'un à une solution pour mon problème je suis preneur.

PS: Autre erreur de ma pars, je n'avais pas placer le roi et son vassal au bon endroit, il doivent être placer avant :

插入代码块:
["heroes_end", "{!}heroes end", "{!}heroes end", tf_hero, 0,reserved,  fac_neutral,[itm_saddle_horse,itm_leather_jacket,itm_nomad_boots],def_attrib|level(2),wp(20),knows_common, 0x000000000008318101f390c515555594],
 
Tout est fonctionnel  :grin: les erreur provenait uniquement de la bannière de la faction j'ai temporairement résolue le problème en indiquant :

插入代码块:
### Calradia+ marqueur_faction_banner
(faction_set_slot, "fac_kingdom_7", slot_faction_banner, "mesh_banner_kingdom_a"),
### Calradia-

Soit la bannière des Nordistes ...
Question : comment créer et attribuer sa propre bannière ?
 
shadyre 说:
Question : comment créer et attribuer sa propre bannière ?

Salut et bienvenue

comment ca creer sa banière ?  :mrgreen:

il faut creer la texture avec gimp ou photoshop et in game tu choisis la banière que t'as fait  :mrgreen:

si tu veux la changer en cours de partie, touche ctrl+² ,taper "cheatmenu"et au camp tu peut la changer,sinon on peut retrouver cette fonction dans module menu et enlever la condition "$cheat" pour la changer dans son camp sans faire de manip.
 
@FantasyWarrior
Merci pour l'accueil et pour ta réponse, je m’explique mieux sur la question :
à l'heure actuel pour mon mode je souhaite que tous les vassaux est la même bannière que leur roi respectif, chose qui est à presque faite grâce à ce code (j'obtiens plusieurs erreur indiquant que toute les bannières sont prise et in-game les vassaux n'en n'ont plus ...) :

插入代码块:
(assign, ":num_khergit_lords_assigned", 0),
     
      (try_for_range, ":kingdom_hero", kingdom_heroes_begin, kingdom_heroes_end),
        (store_troop_faction, ":kingdom_hero_faction", ":kingdom_hero"),
        (try_begin),
          (eq, ":kingdom_hero_faction", "fac_kingdom_3"), #Khergit Khanate
          (store_add, ":kingdom_3_banners_begin", banner_scene_props_begin, khergit_banners_begin_offset),
          (store_add, ":banner_id", ":kingdom_3_banners_begin", ":num_khergit_lords_assigned"),
          (troop_set_slot, ":kingdom_hero", slot_troop_banner_scene_prop, ":banner_id"),
          (val_add, ":num_khergit_lords_assigned", 1),
        (else_try),
        (eq, ":kingdom_hero_faction", "fac_kingdom_6"),
        (troop_set_slot, ":kingdom_hero", slot_troop_banner_scene_prop, "spr_banner_f18"),
   (else_try),
        (neq, ":kingdom_hero_faction", "fac_kingdom_6"),
          (store_sub, ":hero_offset", ":kingdom_hero", kingdom_heroes_begin),
          (val_sub, ":hero_offset", ":num_khergit_lords_assigned"),#Remove khergits from offset since their banners are assigned above here
          (try_begin),
            (gt, ":hero_offset", khergit_banners_begin_offset),#Do not add khergit banners to non-khergit lords
            (val_add, ":hero_offset", khergit_banners_end_offset),
            (val_sub, ":hero_offset", khergit_banners_begin_offset),
          (try_end),
          (store_add, ":banner_id", banner_scene_props_begin, ":hero_offset"),
          (troop_set_slot, ":kingdom_hero", slot_troop_banner_scene_prop, ":banner_id"),
        (try_end),

Source : http://forums.taleworlds.com/index.php/topic,49473.msg1345824.html#msg1345824

Cela fonctionne oui mais lorsque je répète l'action pour les 7 factions qui composent mon mode ... erreur !

Enfin bref cela ne répond pas à ta question, ayant créer ma 7e faction et ne disposant que de 6 "mesh_banner_kingdoms_x", il me manque donc une bannière maitresse pour ma faction.

Plus précisément je sais comment créer ma bannière,  j'ai suivit les tutoriels qui sont à disposition tous vas bien de ce côté là, mais comment l'incorporé dans le code ? Là est la vrai question.

PS: dans le code ci-dessus les vassaux ont des bannière en "spr_xxx" hors celle des roi : "mesh_xxx" et lorsque j'ai essayer ce même code pour les vassaux je n'obtiens aucune erreur mais pas le même drapeaux que celui de la faction ...

Edit : Problème résolue pour les "spr_" ou "mesh_" j'ai comprit le truc, un peut plus de précision en ce qui concerne les bannières j'ai beau essayer de comprendre de quel manière leur ID est définie quelque soit le fichier leur nom etc rien à y faire je ne sais pas si les ID ont été donner au pif, avec un algorithme ou dans un ordre totalement chaotique ... si quelqu'un dispose de LA solution pour savoir à quoi correspond quoi cela serait fort aimable !
 
Enfin bref pour l'heure je passe à autre chose je fait sans, je m'adresse à ceux qui si connaisse un peut mieux en code qu'en copier coller ( je doit admettre que c'est légèrement mon cas, python c'est pas ma spécialité, php oui ... ).

Sans raconter ma vie, j'ai repris un script donner par @Idibil ici : http://forums.taleworlds.com/index.php/topic,180830.msg4337808.html#msg4337808 , qui permet en outre de mettre à tous les vassaux une même bannière, le code n'étant pas assez dynamique j'ai souhaiter l'améliorer de la sorte :

插入代码块:
(try_for_range, ":cur_faction", npc_kingdoms_begin, npc_kingdoms_end),
	(faction_get_slot, ":cur_faction_king", ":cur_faction", slot_faction_leader),
	(faction_get_slot, ":cur_faction_banner", ":cur_faction", slot_faction_banner),
	(val_sub, ":cur_faction_banner", banner_meshes_begin),
	(val_add, ":cur_faction_banner", banner_scene_props_begin),
	(troop_set_slot, ":cur_faction_king", slot_troop_banner_scene_prop, ":cur_faction_banner"),
(try_end),

(try_for_range, ":kingdom_hero", active_npcs_begin, active_npcs_end),
	(this_or_next|troop_slot_eq, ":kingdom_hero", slot_troop_occupation, slto_kingdom_hero),
	(troop_slot_eq, ":kingdom_hero", slot_troop_occupation, slto_inactive_pretender),

	(store_troop_faction, ":kingdom_hero_faction", ":kingdom_hero"),
	(neg|faction_slot_eq, ":kingdom_hero_faction", slot_faction_leader, ":kingdom_hero"),
	(try_for_range, ":cur_troop", lords_begin, lords_end),
		(troop_set_slot, ":cur_troop", slot_troop_occupation, slto_kingdom_hero),
		(try_begin),
			(eq, ":kingdom_hero_faction", "fac_kingdom_1"),
			(is_between, ":cur_troop", "trp_knight_1_1", "trp_knight_2_1"),
			(troop_set_slot, ":cur_troop", slot_troop_banner_scene_prop, "spr_banner_kingdom_f"),
		(else_try),
			(eq, ":kingdom_hero_faction", "fac_kingdom_2"),
			(is_between, ":cur_troop", "trp_knight_2_1", "trp_knight_3_1"),
			(troop_set_slot, ":cur_troop", slot_troop_banner_scene_prop, "spr_banner_kingdom_b"),
		(else_try),
			(eq, ":kingdom_hero_faction", "fac_kingdom_3"),
			(is_between, ":cur_troop", "trp_knight_3_1", "trp_knight_4_1"),
			(troop_set_slot, ":cur_troop", slot_troop_banner_scene_prop, "spr_banner_kingdom_c"),
		(else_try),
			(eq, ":kingdom_hero_faction", "fac_kingdom_4"),
			(is_between, ":cur_troop", "trp_knight_4_1", "trp_knight_5_1"),
			(troop_set_slot, ":cur_troop", slot_troop_banner_scene_prop, "spr_banner_kingdom_a"),
		(else_try),
			(eq, ":kingdom_hero_faction", "fac_kingdom_5"),
			(is_between, ":cur_troop", "trp_knight_5_1", "trp_knight_6_1"),
			(troop_set_slot, ":cur_troop", slot_troop_banner_scene_prop, "spr_banner_kingdom_d"),
		(else_try),
			(eq, ":kingdom_hero_faction", "fac_kingdom_6"),
			(is_between, ":cur_troop", "trp_knight_6_1", "trp_knight_7_1"),
			(troop_set_slot, ":cur_troop", slot_troop_banner_scene_prop, "spr_banner_kingdom_e"),
		(else_try),
			(eq, ":kingdom_hero_faction", "fac_kingdom_7"),
			(is_between, ":cur_troop", "trp_knight_7_1", "trp_kingdom_1_pretender"),
			(troop_set_slot, ":cur_troop", slot_troop_banner_scene_prop, "spr_banner_r"),
		(try_end),
	(try_end),

	(store_character_level, ":level", ":kingdom_hero"),
	(store_mul, ":renown", ":level", ":level"),
	(val_div, ":renown", 4),

	(troop_get_slot, ":age", ":kingdom_hero", slot_troop_age),
	(store_mul, ":age_addition", ":age", ":age"),
	(val_div, ":age_addition", 8),
	(val_add, ":renown", ":age_addition"),

	(try_begin),
		(faction_slot_eq, ":kingdom_hero_faction", slot_faction_leader, ":kingdom_hero"),
		(store_random_in_range, ":random_renown", 350, 500),
	(else_try),
		(store_random_in_range, ":random_renown", 100, 300),
	(try_end),
	(val_add, ":renown", ":random_renown"),

	(troop_set_slot, ":kingdom_hero", slot_troop_renown, ":renown"),            
(try_end),

(try_for_range, ":troop_no", "trp_player", "trp_merchants_end"),
	(add_troop_note_tableau_mesh, ":troop_no", "tableau_troop_note_mesh"),
(try_end),

(try_for_range, ":center_no", centers_begin, centers_end),
	(add_party_note_tableau_mesh, ":center_no", "tableau_center_note_mesh"),
(try_end),

(try_for_range, ":faction_no", kingdoms_begin, kingdoms_end),
	(is_between, ":faction_no", "fac_kingdom_1", kingdoms_end), #Excluding player kingdom
	(add_faction_note_tableau_mesh, ":faction_no", "tableau_faction_note_mesh"),
(else_try),
	(add_faction_note_tableau_mesh, ":faction_no", "tableau_faction_note_mesh_banner"),
(try_end),

Problème, oui car pour ma part je ne trouve pas sa encore assez dynamique ... je souhaite reprendre le principe de ce code mais lors d'évènement, précisément pour mettre à jour la bannière d'un vassale, lors d'une trahison, lors de la défaite de sa faction ou encore lors de son enrôlement dans notre propre faction etc etc ...

Je voie plutôt les chose en une seul étapes, mais je n'est aucun support pour le mettre en place, j'étais tomber sur la database des fonctions python pour warband mais je ne la retrouve plus au passage si quelqu'un aurait le lien se serait super génial.

Zapons je m'étale, en reprenant la boucle qui englobe tous les vassaux, à l'intérieure de celle-ci récupérer la faction du vassale, la stocker (j'ai cru comprendre que cela se fait avec "store_add" ?), via ce paramètre prit en compte récupérer la bannière de la faction, puis mettre à jour cette bannière pour le vassale.

Je sais pas si j'ai été assez explicite ?
 
pour les operation , il faut regarder dans header_operations.y  , jete un oeil dans tout les header_xxx.py , c'est tres utile.
Desole de ne pouvoir t'aider plus.
 
@Hurleur
Ah très inintéressant merci je n'avais jamais regarder ce fichier !

Je pense (de manière simplifier) à un code de ce style :

插入代码块:
(try_for_range, ":cur_troop", lords_begin, lords_end),
	(store_troop_faction, ":hero_faction", ":cur_troop"),
	<get_faction_banner???, :faction_banner, :cur_troop>
	(troop_set_slot, ":cur_troop", slot_troop_banner_scene_prop, <faction_banner>),
(try_end),

Mais je ne trouve pas de fonction équivalente à "get_faction_banner" ...
De plus dans le fichier header_operations.py il manque un bon nombre de fonction.
 
Je comprend mieux pour les 7eme banières,mais pas le temp d'aider non plus on es tous sur nos mods en fait  :???:

mais juste en copiant l'ID d'une banière et en recherchant dans les scripts tu devrais avoir les entrées en modèle pour les reproduires  :mrgreen: sinon,y'a le topic des tutos et le topic forge en anglais tape a "rechercher" banner /sur le topic courant ,et ca fouille dans tout ce qui as été dans une discution sur ca,perdu dans les pages  :mrgreen:

c'est hyper complet...mais en anglais  :roll:
 
FantasyWarrior 说:
Je comprend mieux pour les 7eme banières,mais pas le temp d'aider non plus on es tous sur nos mods en fait  :???:

mais juste en copiant l'ID d'une banière et en recherchant dans les scripts tu devrais avoir les entrées en modèle pour les reproduires  :mrgreen: sinon,y'a le topic des tutos et le topic forge en anglais tape a "rechercher" banner /sur le topic courant ,et ca fouille dans tout ce qui as été dans une discution sur ca,perdu dans les pages  :mrgreen:

c'est hyper complet...mais en anglais  :roll:

Merci pour ton aide  :smile: oui je comprend bien c'est également mon cas  :razz:
En ce qui concerne les recherches c'est déjà fait ... l'anglais n'est pas un souci, le problème c'est qu'ils propose tous de créer la bannière mais aucun n'explique comment l'incorporé dans le code ou alors j'ai mal regarder ce qui est possible aussi, a 4 heures du mat la fatigue se fait ressentir ...

Je vais tout de même suivre ton conseil et regarder de nouveau, il n'est pas impossible que je soit passé à coté du sujet qu'il me faut !

Cependant avec le code que j'ai mis à jour (citer plus haut), tous les vassaux et roi des 6 factions de base dispose bien de leur bannière de faction, en revanche en utilisant la même méthode pour ma faction personnalisé, seul les vassaux dispose de la même bannière, sans doute du au fait que ce ne soit pas une bannière du type "spr_banner_kingdom_x" ... est-il possible de rajouter une "spr_banner_kingdom_g" sachant que la dernière de la liste est : "spr_banner_kingdom_f" ?

@Hurleur
Je te suis infiniment reconnaissant ! Je test sa immédiatement et te tient au courant :smile:

Edit :

插入代码块:
(try_for_range, ":cur_troop", lords_begin, lords_end),
	(troop_set_slot, ":cur_troop", slot_troop_occupation, slto_kingdom_hero),
	(try_begin),
		(store_troop_faction, ":cur_faction", ":cur_troop"),
		(faction_get_slot, ":cur_faction_banner", ":cur_faction", slot_faction_banner),
		(troop_set_slot, ":cur_troop", slot_troop_banner_scene_prop, ":cur_faction_banner"),
	(try_end),
(try_end),

Cela fonctionne belle et bien de manière totalement dynamique comme j'aime !
Mais c'est évidement trop beau et trop facile ...

Le résultat obtenue est que tous les vassaux ont bien leur bannières mais ce n'est pas celle de leur faction, je pense savoir pourquoi : les bannières de factions sont déclarer par "spr_banner_kingdom_x" hors via les fonctions indiquer ci-dessus en employant cette méthode la déclaration ce fait ainsi : "spr_banner_x", bon je pense vraiment que sa viens de la ... soit je garde l'ancienne idée et il faut que j'arrive à déclarer "mesh_kingdom_banner_g" soit il faut que je trouve le moyen de changer les variables des spr et mesh pour disposer des bannières désirer !
 
Je ne sais pas si cela peut t'aider , mais il y a ce script qui refille les banniere au roi (mais je ne me souvien pus si les roi ont la meme banniere que les factions ..... :oops: :oops:)

  (try_for_range, ":cur_faction", npc_kingdoms_begin, npc_kingdoms_end),
        (faction_get_slot, ":cur_faction_king", ":cur_faction", slot_faction_leader),
        (faction_get_slot, ":cur_faction_banner", ":cur_faction", slot_faction_banner),
        (val_sub, ":cur_faction_banner", banner_meshes_begin),
        (val_add, ":cur_faction_banner", banner_scene_props_begin),

        (troop_set_slot, ":cur_faction_king", slot_troop_banner_scene_prop, ":cur_faction_banner"),
      (try_end),

donc essai peut etre de rajouter les lignes soulignees a ton script , ca ne coute rien d'essayer.
 
Hurleur 说:
Je ne sais pas si cela peut t'aider , mais il y a ce script qui refille les banniere au roi (mais je ne me souvien pus si les roi ont la meme banniere que les factions ..... :oops: :oops:)

  (try_for_range, ":cur_faction", npc_kingdoms_begin, npc_kingdoms_end),
        (faction_get_slot, ":cur_faction_king", ":cur_faction", slot_faction_leader),
        (faction_get_slot, ":cur_faction_banner", ":cur_faction", slot_faction_banner),
        (val_sub, ":cur_faction_banner", banner_meshes_begin),
        (val_add, ":cur_faction_banner", banner_scene_props_begin),

        (troop_set_slot, ":cur_faction_king", slot_troop_banner_scene_prop, ":cur_faction_banner"),
      (try_end),

donc essai peut etre de rajouter les lignes soulignees a ton script , ca ne coute rien d'essayer.

Non les roi n'ont pas la même bannière d'ou les problème rencontrer !

Merci ... merci et encore merci cela fonctionne à merveille aucune erreur et tous le monde a la même bannière.

Le code final est là : http://forums.taleworlds.com/index.php/topic,233323.0.html
 
Bon mon mod continue bien je n'est plus d'erreur sur tous ce qui a été citer, de plus tous fonctionne à merveille.

Pour l'heure je modifie les menus pour la création d'une nouvelle partie de la manière suivante :

Fichier "module_game_menus.py"
插入代码块:
### Calradia+ mnu_start_game_0
("start_game_0",menu_text_color(0xFF000000)|mnf_disable_all_keys,"Calradia menu test.","none",[],
	[
		("continue",[],"Continue...",[(jump_to_menu, "mnu_calradia_1"),]),
		("go_back",[],"Go back",[(change_screen_quit),]),
	]
),
### Calradia-

### Calradia+ mnu_calradia_1
("calradia_1",menu_text_color(0xFF000000)|mnf_disable_all_keys,"Choix de votre genre.", "none",[],
    [
		("start_male",[],"Male",[(troop_set_type,"trp_player", 0),(assign,"$character_gender",tf_male),(jump_to_menu,"mnu_calradia_2"),]),
		("start_female",[],"Female",[(troop_set_type, "trp_player", 1),(assign, "$character_gender", tf_female),(jump_to_menu, "mnu_calradia_2"),]),
		("go_back",[],"Go back",[(jump_to_menu,"mnu_start_game_0"),]),
	]
),
### Calradia-

### Calradia+ mnu_calradia_2
("calradia_2",menu_text_color(0xFF000000)|mnf_disable_all_keys,"Definition de vos competences", "none",[],
    [
		("continue",[],"Continue...",
			[
				(troop_raise_attribute, "trp_player",ca_strength,9),
				(troop_raise_attribute, "trp_player",ca_agility,7),
				(troop_raise_attribute, "trp_player",ca_intelligence,6),
				(troop_raise_attribute, "trp_player",ca_charisma,7),

				(troop_raise_proficiency, "trp_player",wpt_one_handed_weapon,15),
				(troop_raise_proficiency, "trp_player",wpt_two_handed_weapon,15),
				(troop_raise_proficiency, "trp_player",wpt_polearm,15),
				(troop_raise_proficiency, "trp_player",wpt_archery,15),
				(troop_raise_proficiency, "trp_player",wpt_crossbow,15),
				(troop_raise_proficiency, "trp_player",wpt_throwing,15),

				(troop_raise_skill, "trp_player","skl_ironflesh",1),
				(troop_raise_skill, "trp_player","skl_power_strike",1),
				(troop_raise_skill, "trp_player","skl_power_throw",1),
				(troop_raise_skill, "trp_player","skl_power_draw",1),
				(troop_raise_skill, "trp_player","skl_weapon_master",1),
				(troop_raise_skill, "trp_player","skl_shield",1),
				(troop_raise_skill, "trp_player","skl_athletics",1),
				(troop_raise_skill, "trp_player","skl_riding",1),
				(troop_raise_skill, "trp_player","skl_horse_archery",1),
				(troop_raise_skill, "trp_player","skl_looting",1),
				(troop_raise_skill, "trp_player","skl_tactics",1),
				(troop_raise_skill, "trp_player","skl_tracking",1),
				(troop_raise_skill, "trp_player","skl_trainer",1),
				(troop_raise_skill, "trp_player","skl_pathfinding",1),
				(troop_raise_skill, "trp_player","skl_spotting",1),
				(troop_raise_skill, "trp_player","skl_inventory_management",1),
				(troop_raise_skill, "trp_player","skl_wound_treatment",1),
				(troop_raise_skill, "trp_player","skl_surgery",1),
				(troop_raise_skill, "trp_player","skl_first_aid",1),
				(troop_raise_skill, "trp_player","skl_engineer",1),
				(troop_raise_skill, "trp_player","skl_persuasion",1),
				(troop_raise_skill, "trp_player","skl_prisoner_management",1),
				(troop_raise_skill, "trp_player","skl_leadership",1),
				(troop_raise_skill, "trp_player","skl_trade",1),
				
				(troop_add_gold, "trp_player", 20000),
				(troop_set_slot, "trp_player", slot_troop_renown, 150),

				(jump_to_menu, "mnu_calradia_3"),
			]
		),
		("go_back",[],"Go back",[(jump_to_menu,"mnu_calradia_1"),]),
	]
),
### Calradia-

### Calradia+ mnu_calradia_3
("calradia_3",mnf_disable_all_keys,"Calradia mod test","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"),
				(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"),
				(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"),
				(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"),
				(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"),
				(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"),
				(party_relocate_near_party, "p_main_party", "$g_starting_town", 2),
				(change_screen_return),
			]
		),
	   
		("town_7",[(eq, "$current_startup_quest_phase", 0),],"Join the Calradian Empire at Warcheg",
			[
				(assign, "$current_town", "p_town_12"),
				(assign, "$g_starting_town", "$current_town"),
				(party_relocate_near_party, "p_main_party", "$g_starting_town", 2),
				(change_screen_return),
			]
		),

		("tutorial_cheat",[(eq,1,0)],"{!}CHEAT!",
			[
				(change_screen_return),
				(assign, "$cheat_mode", 1),
				(set_show_messages, 0),
				(add_xp_to_troop, 15000, "trp_player"),
				(troop_raise_skill, "trp_player", skl_leadership, 7),
				(troop_raise_skill, "trp_player", skl_prisoner_management, 5),
				(troop_raise_skill, "trp_player", skl_inventory_management, 10),
				(party_add_members, "p_main_party", "trp_swadian_knight", 10),
				(party_add_members, "p_main_party", "trp_vaegir_knight", 10),
				(party_add_members, "p_main_party", "trp_vaegir_archer", 10),
				(party_add_members, "p_main_party", "trp_swadian_sharpshooter", 10),
				(troop_add_item, "trp_player","itm_scale_armor",0),
				(troop_add_item, "trp_player","itm_full_helm",0),

				(troop_add_item, "trp_player","itm_hafted_blade_b",0),
				(troop_add_item, "trp_player","itm_hafted_blade_a",0),
				(troop_add_item, "trp_player","itm_morningstar",0),
				(troop_add_item, "trp_player","itm_tutorial_spear",0),
				(troop_add_item, "trp_player","itm_tutorial_staff",0),
				(troop_add_item, "trp_player","itm_tutorial_staff_no_attack",0),
				(troop_add_item, "trp_player","itm_arena_lance",0),
				(troop_add_item, "trp_player","itm_practice_staff",0),
				(troop_add_item, "trp_player","itm_practice_lance",0),
				(troop_add_item, "trp_player","itm_practice_javelin",0),
				(troop_add_item, "trp_player","itm_scythe",0),
				(troop_add_item, "trp_player","itm_pitch_fork",0),
				(troop_add_item, "trp_player","itm_military_fork",0),
				(troop_add_item, "trp_player","itm_battle_fork",0),
				(troop_add_item, "trp_player","itm_boar_spear",0),
				(troop_add_item, "trp_player","itm_jousting_lance",0),
				(troop_add_item, "trp_player","itm_double_sided_lance",0),
				(troop_add_item, "trp_player","itm_glaive",0),
				(troop_add_item, "trp_player","itm_poleaxe",0),
				(troop_add_item, "trp_player","itm_polehammer",0),
				(troop_add_item, "trp_player","itm_staff",0),
				(troop_add_item, "trp_player","itm_quarter_staff",0),
				(troop_add_item, "trp_player","itm_iron_staff",0),
				(troop_add_item, "trp_player","itm_shortened_spear",0),
				(troop_add_item, "trp_player","itm_spear",0),
				(troop_add_item, "trp_player","itm_war_spear",0),
				(troop_add_item, "trp_player","itm_military_scythe",0),
				(troop_add_item, "trp_player","itm_light_lance",0),
				(troop_add_item, "trp_player","itm_lance",0),
				(troop_add_item, "trp_player","itm_heavy_lance",0),
				(troop_add_item, "trp_player","itm_great_lance",0),
				(troop_add_item, "trp_player","itm_pike",0),
				(troop_add_item, "trp_player","itm_ashwood_pike",0),
				(troop_add_item, "trp_player","itm_awlpike",0),
				(troop_add_item, "trp_player","itm_throwing_spears",0),
				(troop_add_item, "trp_player","itm_javelin",0),
				(troop_add_item, "trp_player","itm_jarid",0),

				(troop_add_item, "trp_player","itm_long_axe_b",0),

				(set_show_messages, 1),

				(try_for_range, ":cur_place", scenes_begin, scenes_end),
					(scene_set_slot, ":cur_place", slot_scene_visited, 1),
				(try_end),

				(call_script, "script_get_player_party_morale_values"),
				(party_set_morale, "p_main_party", reg0),
			]
		),
	]
),
### Calradia-

Il n'y as pas d'erreur sauf un bug gênant, le menu se déroule bien tous se passe à merveille et fonctionne sans souci sauf que arriver au menu "mnu_choose_skills" suivit du menu de création du personnage, le menu revient au départ une seconde fois et seulement après la partie commence.

Je bloque depuis hier dessus car je ne trouve pas ou "mnu_choose_skills" renvoi, enfin si mais je ne sais pas comment le modifier ou le contourner :
插入代码块:
(
    "choose_skill",mnf_disable_all_keys,
    "{s13}",
    "none",
    [(assign,"$current_string_reg",10),
	 (assign, ":difficulty", 0),

...........

(try_begin),
             (eq, "$background_type", cb_noble),
             (jump_to_menu, "mnu_auto_return"),
#normal_banner_begin
             (start_presentation, "prsnt_banner_selection"),
#custom_banner_begin
#             (start_presentation, "prsnt_custom_banner"),
           (else_try),
             (change_screen_return, 0),
           (try_end),
           (set_show_messages, 1),
        ]),
      ("go_back_dot",[],"Go back.",[
        (jump_to_menu,"mnu_start_character_4"),
        ]),
    ]
  ),

Je pense que cela viens de cette ligne : "(change_screen_return, 0)," mais je ne suis pas sur de moi.

Ah moins qu'il faut que je personnalise également ce menu en modifiant l'ordre de mes menu, en indiquant le "mnu_choose_skills" lors de la sélection de la région puis de la sélection terminer le script comme je l'ai déjà fait dans le menu : "mnu_calradia_3".
 
shadyre 说:
Il n'y as pas d'erreur sauf un bug gênant, le menu se déroule bien tous se passe à merveille et fonctionne sans souci sauf que arriver au menu "mnu_choose_skills" suivit du menu de création du personnage, le menu revient au départ une seconde fois et seulement après la partie commence.
Il revient au départ mais ou ?
Il se pourrait que le retour soit automatiquement l'un des menus originels. Donc si c'est pas l'un de ceux que tu as créé c'est peu être ça.
 
Alors je m'explique mieux avec ce schéma :

mnu_start_game_0 > mnu_calradia_1 > mnu_calradia_2 > mnu_calradia_3 > "et le problème commence là" mnu_choose_skills > menu de personnalisation du personnage skin etc > et sa revient ici : mnu_calradia_1
 
后退
顶部 底部