• Please note that we've updated the Mount & Blade II: Bannerlord save file system which requires you to take certain steps in order for your save files to be compatible with e1.7.1 and any later updates. You can find the instructions here.

WB [Modding] Petites questions simples .

Users who are viewing this thread

bOuYA_k-hlO

Sergeant Knight at Arms
WB
Dans la manière ou sont faites les quêtes je ne vois pas comment ça ne poserai pas de conflit.
Pour savoir si une quetes est active on utilise :
(check_quest_active, "qst_questy_quest"),
Ce qui implique aucune instanciation de quête, c'est la quête elle même qui est active (celle qui est dans module_quests), et à chaque fois qu'une nouvelle quête du même type est accepté les slots sont mis a jour avec les nouvelles valeurs.
Et dans tout ce que j'ai vu il y a aussi une condition pour que une quête ne soit pas active avant de pouvoir en accepter une autre du même type.
Après peut être que dans brytenwalda il y a un autre système de quêtes, ou tout simplement plusieurs quêtes similaires qui ont un nom différent dans module_quests. Ou peut être tout simplement que je me trompe :grin:
 

bisthebis25

Knight
Si j'étais eux, effectivement j'aurais créé plusieurs quetes identiques.

Sinon, est-ce que tu sais comment sont gérées les "cinématiques" (comme les mariages). Dans le mission_template ? Aussi, comment peut-on fixer, sur une scène précise, la caméra à une position (et rotation) prédéfinie, indépendante de la position du joueur ?
 

bOuYA_k-hlO

Sergeant Knight at Arms
WB
Oui les cinématiques sont gérés dans le mission_template.
Pour celle du mariage, c'est wedding.

Et pour définir une position à la caméra, il faut utiliser

Code:
(mission_cam_set_mode, 1, 0, 0),
(...),
(mission_cam_set_position, pos1),
Étant donné que les positions comprennent la rotation, il faut aussi assigner la bonne rotation à la caméra.

Après pour la déplacer plus lentement, il faut utiliser mission_cam_animate_to_position
 

bOuYA_k-hlO

Sergeant Knight at Arms
WB
Non, il n'est pas possible de modifier les stats d'un agent sans modifier la troupe correspondante, à part pour ces quelques opérations (qui ne modifient pas vraiment les stats) :

Code:
(agent_set_hit_points, <agent_id>, <value>,[absolute]),

(agent_set_damage_modifier, <agent_id>, <value>),
(agent_set_accuracy_modifier, <agent_id>, <value>),
(agent_set_speed_modifier, <agent_id>, <value>),
(agent_set_reload_speed_modifier, <agent_id>, <value>),
(agent_set_use_speed_modifier, <agent_id>, <value>),
Les cinq dernières opérations nécessitent la version 1.153 du jeu, et les définitions de ces opération dans le header_operations.
 

bisthebis25

Knight
Attention, aujourd'hui j'ai pleins de questions  :mrgreen:

1) Pour le pathfinding en campagne, l'IA est assez intelligente ? Si on suppose qu'une armée IA veut aller de A vers B (sur mon schéma), que le vert clair c'est une plaine et que le vert foncé est une foret, elle ira plus vite par un chemin rouge et l'empruntera, juste ?
Si je veux que l'armée passe par la foret, y a-t-il une autre solution que de l'envoyer à "party inconnue" puis depuis le centre de al foret, l'envoyer vers B ?

warband.png

1 bis) Où définit-on le modificateur de vitesse du au terrain ?

1 ter) Ou calcule-t-on la vitesse d'une party ?


2) M**** je sais plus
 

bOuYA_k-hlO

Sergeant Knight at Arms
WB
bisthebis25 said:
Attention, aujourd'hui j'ai pleins de questions  :mrgreen:

1) Pour le pathfinding en campagne, l'IA est assez intelligente ? Si on suppose qu'une armée IA veut aller de A vers B (sur mon schéma), que le vert clair c'est une plaine et que le vert foncé est une foret, elle ira plus vite par un chemin rouge et l'empruntera, juste ?
Je ne pense pas, les routes sont empruntés en priorités par les ia, mais en ce qui concerne les forets et plaines, je pense que au mieux elles éviterons de passer dedans si elle aurait du passer en bordure de la foret, mais pour une traversé contourner la foret serait souvent plus long que passer à travers.

bisthebis25 said:
1 bis) Où définit-on le modificateur de vitesse du au terrain ?

1 ter) Ou calcule-t-on la vitesse d'une party ?
Ces deux la sont faites (ou peuvent l'être) dans le script game_get_party_speed_multiplier.
Pour la première avec cette opération : (party_get_current_terrain, <destination>, <party_id>),
 

bisthebis25

Knight
Je ne pense pas, les routes sont empruntés en priorités par les ia, mais en ce qui concerne les forets et plaines, je pense que au mieux elles éviterons de passer dedans si elle aurait du passer en bordure de la foret, mais pour une traversé contourner la foret serait souvent plus long que passer à travers.
Sur TLD j'ai déjà vu des parties éviter la foret, ils ont peut-etre changé les valeurs. Mais si le chemin rouge est réellement plus court, l'ia l'utilisera ?

Sinon, je viens de me rappeler ma deuxième question :smile:
Est-il possible de donner un ordre à un agent ou un groupe d'agents indépendamment de sa division ? Je me demandais, par exemple, comment on fait pour que les troupes suivent la tour de siège. (D'ailleurs, ça se passe comment niveau AI_mesh ?)
J'ai déjà essayé de comprendre les scripts de motomataru et Cab'drin (formations et cie) mais je me susi découragé devant la longueur du truc.
 

bOuYA_k-hlO

Sergeant Knight at Arms
WB
Et bien alors c’est peut être possible que les ia évitent les forets, et donc dans ce cas la, oui, si le chemin est plus court (en temps je suppose) l'ia l'utilisera.

Et au niveau des controles indépendants, pour les sieges, cette opération est utilisé :
(agent_set_scripted_destination, <agent_id>, <position>, [auto_set_z_to_ground_level]),
Par contre si cette opération est utilisée, il faut penser à utiliser
(agent_clear_scripted_mode, <agent_id>), pour laisser l'agent faire ce qu'il veut (après avoir exécuté une action par exemple)

Et niveau AI mesh, si il est bien fait sur la scène il n'y a pas de problème (si par contre il n'y a pas de moyen pour aller jusqu'a la destination ça peut être plus embêtant).
 

bisthebis25

Knight
D'ac :smile:
Tant qu'on y est, où sont calculées les batailles auto (celle om le joueur dit "attaquer sans moi", je viens de trouver que c'est "script_game_event_simulate_battle" pour celles entre deux IAs)

EDIT : aussi, où sont gérés les types secodnaires des armées (javelots utilisables en melée etc) ? J'essaye de supprimer la facette melée d'un objet
 

bOuYA_k-hlO

Sergeant Knight at Arms
WB
Les batailles auto sont calculés dans plusieurs endroit (malheureusement, car ça devient un problème lorsqu'il faut modifier cette partie) :
Dans order_attack_2 pour ce qui semble être les combats sans alliés
Dans join_order_attack pour les combats avec des alliés
Dans castle_attack_walls_simulate pour les attaques de château sans alliés
Dans castle_attack_walls_with_allies_simulate pour les attaques de château avec des alliés
Et dans siege_join_defense pour les défenses de château (qui sont forcement avec des alliés)


Et pour ce qui est des types secondaires des armes, par exemple pour le javelot :
Code:
["javelin",         "Javelins", [("javelin",0),("javelins_quiver_new", ixmesh_carry)], itp_type_thrown |itp_merchandise|itp_primary|itp_next_item_as_melee ,itcf_throw_javelin|itcf_carry_quiver_back|itcf_show_holster_when_drawn, 
 300, weight(5)|difficulty(1)|spd_rtng(91) | shoot_speed(36) | thrust_damage(34 ,  pierce)|max_ammo(5)|weapon_length(76),imodbits_thrown ],
["javelin_melee",         "Javelin", [("javelin",0)], itp_type_polearm|itp_primary|itp_wooden_parry , itc_staff, 
 300, weight(1)|difficulty(1)|spd_rtng(95) |swing_damage(10, blunt)| thrust_damage(16,  pierce)|weapon_length(76),imodbits_polearm ],
Il suffit de retirer l'arme qui correspond à l'arme de mêlée et de supprimer itp_next_item_as_melee dans celui à distance.
 

bisthebis25

Knight
Est-il possible de donner/enlever un objet en plus à un agent ?
Si je veux que certaines troupes aient des arcs seulement en siège, que me conseilles-tu comme méthode ?
 

bOuYA_k-hlO

Sergeant Knight at Arms
WB
Pour ajouter un objet a un agent il faut utiliser cette opération :
Code:
(agent_equip_item, <agent_id>, <item_id>, [weapon_slot_no]),
En faisant bien attention que l'agent ai un slot libre (c'est a dire qu'il n'ai pas déjà 4 objets équipés).

Après, si tu veux que certains agent n'aient que des arcs, et que la troupe dont provient l'agent est utilisé ailleurs et doit posséder d'autres armes.
Il faut que tu enlèves toutes les autres armes de cet agent, et si il n'a pas déjà d'arc, lui en rajouter un :
Code:
(assign, ":has_ranged", 0),
# Boucle sur les 4 slots des armes
(try_for_range, ":item_slot", ek_item_0, ek_head),
  # On retrouve l'item correspondant au slot
  (agent_get_item_slot, ":item", ":agent_no", ":item_slot"),
  (try_begin),
    # Les armes de jet sont inclues, si ce n'est pas voulu, changer le début de la boucle par [i]"itm_hunting_bow"[/i]
    (is_between, ":item", ranged_weapons_begin, ranged_weapons_end),
    # On ne verifie pas si on possede les munitions, elles sont normalement bien distribuée si équipés par la troupe
    (assign, ":has_ranged", 1),
  (else_try),
    # Ici une constante n'existant pas dans native est utilisé, il faut soit la créer soit utiliser [i]"itm_arrows", "itm_pilgrim_disguise"[/i]
    (neg|is_between, ":item", ammunitions_begin, ammunitions_end),
    # Puis on le retire si ce n'est ni une arme a distance, ni les munitions
    (agent_unequip_item, ":agent_no", ":item"),
  (try_end),

  (try_begin),
    (eq, ":has_ranged", 0),
    # On equipe une arme qui n'as pas de restriction pour éviter que celle ci ne soit pas ajouté si la troupe n'as pas la restriction
    (agent_equip_item, ":agent_no", "itm_hunting_bow"),
    # Ne pas oublier les munitions
    (agent_equip_item, ":agent_no", "itm_arrows"),
  (try_end),
  
(try_end),

Le meilleur c'est de mettre ça sur un trigger ti_on_agent_spawn et peut être ne pas le faire sur tout les agents (a moins que tu veuille un combat a distance uniquement :mrgreen:.

Par contre si cette unité qui ne doit pas avoir d'arc n'est pas utilisé ailleurs, tu peux juste enlever toutes les autres armes de son inventaire.
 
Salut, (pas extra l'effet rougeoyant^^)

Je travaille depuis peu à customiser un mod (je suis parti de Native expansion), en utilisant l'éditeur Morghs Editor (très bien à mon goût pour les fichiers troops, items_kind1, party_templates).
J'ai cependant 3 petites questions dont j'ai cherché la réponse loonnngtemps...

1) Y a-t-il un éditeur des fichiers txt qui permette, entre autre, de fixer l'argent que possèdent les marchands ? l'aide de TheMageLord http://forums.taleworlds.com/index.php/topic,46290.msg1247972.html#msg1247972 l'explique pour la Native 1.0, du coup, pour NE, le texte n'est pas le même... il doit cependant s'agir de ce passage :
0.000000 0.000000 24.000000  0  127 2133 2 1224979098644774912 0 2133 2 1224979098644774913 100 6 3 1224979098644774914 360287970189640039 360287970189640055 110 1 1224979098644774914 2105 2 1224979098644774912 1 3 0 2106 2 1224979098644774913 1224979098644774912 2170 3 1224979098644774915 1369094286720630791 360287970189639680 2105 2 1224979098644774913 1224979098644774915 2133 2 72057594037927943 1224979098644774913 4 0 32 2 144115188075855983 0 31 2 144115188075856758 0 4 0 520 3 1224979098644774916 144115188075855983 71 110 1 144115188075855983 110 1 1224979098644774916 2133 2 144115188075855982 144115188075855983 3 0 2133 2 144115188075855983 0 3 0 6 3 1224979098644774917 360287970189640039 360287970189640055 500 3 1224979098644774917 81 0 4 0 540 3 1224979098644774917 5 1 500 3 1224979098644774917 80 1 3 0 520 3 1224979098644774918 1224979098644774917 2 4 0 31 2 1224979098644774918 11 520 3 1224979098644774919 1224979098644774917 84 2322 2 31 1224979098644774917 520 3 1224979098644774920 360287970189639680 7 2133 2 72057594037927940 1224979098644774920 2133 2 72057594037927941 1224979098644774919 32 2 1224979098644774920 1224979098644774919 500 3 1224979098644774917 77 0 500 3 1224979098644774917 69 0 500 3 1224979098644774917 2 0 3 0 4 0 560 3 1224979098644774917 150 5 540 3 1224979098644774917 151 1 520 3 1224979098644774916 1224979098644774917 144 540 3 1224979098644774916 145 0 500 3 1224979098644774916 145 1 2322 2 3 1224979098644774917 2322 2 4 1224979098644774916 4 0 31 2 144115188075856163 1 1106 1 216172782113786408 3 0 3 0 4 0 110 1 1224979098644774917 1 2 936748722493063618 1224979098644774917 2133 2 1224979098644774921 72057594037927936 4 0 2147483678 2 1224979098644774921 20 2136 3 1224979098644774922 0 100 2105 2 1224979098644774921 1224979098644774922 2147483678 2 1224979098644774921 20 2133 2 144115188075855984 1224979098644774917 3 0 520 3 1224979098644774923 1224979098644774917 77 2107 2 1224979098644774923 90 2108 2 1224979098644774923 1224979098644774913 500 3 1224979098644774917 77 1224979098644774923 520 3 1224979098644774923 1224979098644774917 69 2107 2 1224979098644774923 90 2108 2 1224979098644774923 1224979098644774913 500 3 1224979098644774917 69 1224979098644774923 4 0 1073742384 3 1224979098644774917 72 1 31 2 144115188075856758 1 520 3 1224979098644774924 1224979098644774917 71 110 1 1224979098644774924 1 4 936748722493063620 1224979098644774917 1224979098644774924 72 3 0 4 0 1073742384 3 1224979098644774917 74 1 31 2 144115188075856758 1 520 3 1224979098644774924 1224979098644774917 73 110 1 1224979098644774924 1 4 936748722493063620 1224979098644774917 1224979098644774924 74 3 0 4 0 1073742384 3 1224979098644774917 76 1 31 2 144115188075856758 1 520 3 1224979098644774924 1224979098644774917 75 110 1 1224979098644774924 520 3 1224979098644774923 1224979098644774917 77 2107 2 1224979098644774923 9 2108 2 1224979098644774923 10 500 3 1224979098644774917 77 1224979098644774923 3 0 4 0 31 2 144115188075856758 0 31 2 144115188075855982 0 31 2 144115188075856026 0 31 2 144115188075855983 0 540 3 1224979098644774917 72 0 520 3 1224979098644774916 1224979098644774917 71 110 1 1224979098644774916 2133 2 144115188075855983 1224979098644774917 3 0 4 0 31 2 144115188075855985 0 540 3 1224979098644774917 145 1 2133 2 144115188075855985 1224979098644774917 3 0 5 0 2147483758 1 1224979098644774917 31 2 1224979098644774918 5 520 3 1224979098644774925 1224979098644774917 150 4 0 32 2 1224979098644774925 0 2106 2 1224979098644774925 1 500 3 1224979098644774917 150 1224979098644774925 5 0 560 3 1224979098644774917 151 1 3221226012 3 1224979098644774917 151 8 101 1 648518346341351424 2133 2 144115188075855986 1224979098644774917 3 0 3 0 3 0
comment trouver les quelques nombres qui m'intéressent là-dedans^^ ? :roll:

2) Comment démarrer une nouvelle partie en donnant 1000 de renommée à mon perso dès le départ ?ça rend le jeu beaucoup plus intéressant pour des joueurs vétérans qui veulent directement une partie intéressante ! (on a tous fait les débuts de jeu des dizaines de fois...)

3) Peut-on modifier la façon dont l'ordinateur résout les combats NPC contre NPC ? (càd sans que JE sois sur le terrain), par exemple si je veux donner plus d'importance à la cavalerie dans les combats en plaine... Il n'est pas normal que, lorsque je regarde un seigneur swadien combattre contre un seigneur sarranide, le deuxième gagne toujours, alors que si je joins la bataille seul et en touriste, les cavaliers swadiens ne fassent qu'un bouchée de l'armée adverse !
EDIT : augmenter les niveaux des cavaliers, peut-être ?

Tout conseil ou tuyau serait le bienvenu ! Merci d'avance pour vos réponses !
 

bOuYA_k-hlO

Sergeant Knight at Arms
WB
1. Théoriquement pour pouvoir éditer les fichiers textes il faut aussi avoir le module_system pour ce mod, pour pouvoir comparer les valeurs, et trouver ce qu'il faut modifier. Mais la je ne suis pas sur que tu soit sur le bon morceau, a moins que les valeurs qu'ils ont mis pour les marchands ne soit pas des valeurs arrondies.

2. Avec les fichiers textes c'est d'un horriblitude ... surtout sur un mod qui ne partage pas ses sources...

Avec un peu de chance ce endroit n'a pas trop changé ...
mno_begin_adventuring  0  Become_an_adventurer_and_ride_to_your_destiny.  335 1107 1 0 4 0 31 2 144115188075856162 0 1520 3 360287970189639680 0 1 1520 3 360287970189639680 3 1 5 0 1520 3 360287970189639680 1 1 1520 3 360287970189639680 2 1 3 0 1520 3 360287970189639680 0 1 1520 3 360287970189639680 1 1 1520 3 360287970189639680 3 1 1521 3 360287970189639680 1369094286720630785 1 1521 3 360287970189639680 1369094286720630808 1 4 0 31 2 144115188075856171 1 31 2 144115188075856162 0 1520 3 360287970189639680 2 1 1520 3 360287970189639680 3 2 1521 3 360287970189639680 27 1 1521 3 360287970189639680 35 1 1521 3 360287970189639680 24 1 1521 3 360287970189639680 15 1 1521 3 360287970189639680 1 1 1522 3 360287970189639680 0 10 1522 3 360287970189639680 1 10 1522 3 360287970189639680 2 10 1530 3 360287970189639680 288230376151712251 5 500 3 360287970189639680 7 100 1 2 936748722493063446 3 1528 2 360287970189639680 100 5 0 31 2 144115188075856171 1 31 2 144115188075856162 1 1520 3 360287970189639680 2 2 1520 3 360287970189639680 3 1 1521 3 360287970189639680 11 1 1521 3 360287970189639680 24 2 1521 3 360287970189639680 9 1 1521 3 360287970189639680 1 1 1522 3 360287970189639680 0 20 500 3 360287970189639680 7 50 1530 3 360287970189639680 288230376151712251 5 1528 2 360287970189639680 100 5 0 31 2 144115188075856171 2 1520 3 360287970189639680 2 2 1520 3
(...)

Si le menu de personnalisation du personnage n'est pas trop changé ... il faut que tu retrouve ce qui est en rouge dans menus.txt ... et une fois en jeu il faudra que tu sélectionne le choix du noble.


3. Ça c'est possible uniquement en ayant les sources du mod. Après oui, tu peux changer le niveau des troupes, mais sache que dans native les combats ne prennent en compte que peu les niveau des troupes ... et changer le niveau implique aussi d'autres choses (une paye plus grande, en temps d'entrainement plus long).
 
bOuYA_k-hlO said:
2. Avec les fichiers textes c'est d'un horriblitude ... surtout sur un mod qui ne partage pas ses sources...

Avec un peu de chance ce endroit n'a pas trop changé ...
mno_begin_adventuring  0  Become_an_adventurer_and_ride_to_your_destiny.  335 1107 1 0 4 0 31 2 144115188075856162 0 1520 3 360287970189639680 0 1 1520 3 360287970189639680 3 1 5 0 1520 3 360287970189639680 1 1 1520 3 360287970189639680 2 1 3 0 1520 3 360287970189639680 0 1 1520 3 360287970189639680 1 1 1520 3 360287970189639680 3 1 1521 3 360287970189639680 1369094286720630785 1 1521 3 360287970189639680 1369094286720630808 1 4 0 31 2 144115188075856171 1 31 2 144115188075856162 0 1520 3 360287970189639680 2 1 1520 3 360287970189639680 3 2 1521 3 360287970189639680 27 1 1521 3 360287970189639680 35 1 1521 3 360287970189639680 24 1 1521 3 360287970189639680 15 1 1521 3 360287970189639680 1 1 1522 3 360287970189639680 0 10 1522 3 360287970189639680 1 10 1522 3 360287970189639680 2 10 1530 3 360287970189639680 288230376151712251 5 500 3 360287970189639680 7 100 1 2 936748722493063446 3 1528 2 360287970189639680 100 5 0 31 2 144115188075856171 1 31 2 144115188075856162 1 1520 3 360287970189639680 2 2 1520 3 360287970189639680 3 1 1521 3 360287970189639680 11 1 1521 3 360287970189639680 24 2 1521 3 360287970189639680 9 1 1521 3 360287970189639680 1 1 1522 3 360287970189639680 0 20 500 3 360287970189639680 7 50 1530 3 360287970189639680 288230376151712251 5 1528 2 360287970189639680 100 5 0 31 2 144115188075856171 2 1520 3 360287970189639680 2 2 1520 3
(...)

Si le menu de personnalisation du personnage n'est pas trop changé ... il faut que tu retrouve ce qui est en rouge dans menus.txt ... et une fois en jeu il faudra que tu sélectionne le choix du noble.

Ça me va ! Merci beaucoup ! Et si je comprends bien, c'est module system d'un mod qui te permet de savoir à quoi correspondent ces chiffres, et même, de créer les fichiers txt sans avoir à nager au milieu des marées de chiffres ?
(d'ailleurs, le "100" qui suit, j'ai vu que c'était l'argent de départ^^ mais c'est effectivement pas optimal d'y aller par "essais")...
je verrai si je me mets un jour à l'édition des mods avec les module system, le langage Python, etc., mais en attendant je trouve que Morghs Editor donne déjà un grand potentiel!
 

Alphα

Section Moderator
WBWF&SNW
Omg je suis l'auteur de cet énorme topic je vois que notre amis bouya hlo n'a pas eut de repis, j'en profite pour te passer un petit bonjour.

Je suis revenus car j'ai un petit problème, ces derniers jours je map pour un mod multi ( nordinvasion ) et j'ai des problemes pour mettre correctement les Ai mesh pour les bots.
J'ai un peut regarder sur le forum fr à ce sujet mais j'ai pas trouvé de quoi m'aider. Sa me parait long de les poser un par un, je suis sur de passer a côter de qqc . Tu n'aurais pas une video explicative ou autre stp?

Merci -_-

La map : http://forum.nordinv.com/index.php/topic,11534.0.html
 

bOuYA_k-hlO

Sergeant Knight at Arms
WB
Il y a un moyen de créer l'ia mesh automatiquement, mais l'ia mesh généré ne prendra pas en compte tout les objets placé (les ia tenterons de passer même si il y a une barrière au milieu, ou même un mur), il ne sera généré que a partir du sol lui même.
Mais vu la complexité de ta map et les chemins étroit qu'il faut que les bots utilisent, je ne te conseil pas d'utiliser cette option car les ia auront tendance a utiliser les montagnes pour aller tout en haut, et se bloqueront sur les objets (tu peux toujours corriger le tout manuellement, mais cette option est surtout utile pour des grandes maps avec suffisamment de plaine).

Donc oui, il est mieux de tout mettre manuellement (pas vraiment un par un, tu peux utiliser les extrusions sur plusieurs lignes en même temps pour eviter d'avoir des trous et pour avoir de jolis carrés :grin:). Même si c'est long et fastidieux. Si tu veux toujours savoir quelle est cette manière de générer l'ia mesh, c'est dans le mode édition (le même que celui pour le créer manuellement), il doit y avoir un bouton 'create ai mesh' (je ne connais pas la traduction en français). Mais cette option te détruira tout ce qui a été créé manuellement (en ia mesh, pas les objets), donc pense y a deux fois avant de le faire sur une map avec un ia mesh presque fini.
 
Top Bottom