X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Explication sur l'export_descr_ancillaries (EDA)

    L'export_descr_ancillaries (l'EDA)


    I. Présentation


    Donc, pour ce tutoriel, on va avoir une première approche de ce qu'est le scripting. C'est pour moi le plus simple des fichiers de scripts, car il est assez clair, et n'a pas le système de niveau de traits de l'EDCT.

    Tout d'abord qu'est ce que c'est qu'un ancillary. C'est dans la vanilla ce qui compose la suite de personnage (le barde, le magicien, le moine, l'écuyer ...). Cependant dans de nombreux mods ce système permet aussi de donner des objets aux personnages. C'est un peu plus pratique qu'un trait, car il est possible de vérifier qu'un objet est unique dans le monde, ce qui n'est pas le cas du trait. Qui plus est les ancillaries ont une jolie image.

    Le fichier se décompose en deux parties. la première partie est l'implémentation des ancillaries dans le jeu, la seconde contient les scripts permettant d'obtenir ces ancillaries.
    a) Matériel nécessaire

    Comme il s'agit d'un fichier texte, il vous faudra télécharger Notepad++
    Je vous conseille aussi de télécharger les docudémons. C'est un peu la bible du scripteur, leur utilisation est globalement assez explicite. Vous pouvez les télécharger ici.

    II. Ajout d'un ancillary

    a) L'entrée d'un ancillary dans l'EDA

    Code:
    Ancillary ring_barahir
    	Type ring
    	Transferable  1 
    	Image Zbrarahir.tga
    	ExcludedAncillaries nenya, narya, vilya
    	Description ring_barahir_desc
    	EffectsDescription ring_barahir_effects_desc
    	Effect LocalPopularity  1
    	Effect Health  1 
    	Effect Farming  1
    	Effect Unrest  -1
    	Effect Construction  1
    1) Ancillary ring_barahir

    Obligatoire
    Il s'agit de la ligne définissant le nom interne de l'ancillary. Il vous sera surtout utile pour les codes. je vous conseille donc de définir un nom aussi explicite que possible, pour vous y retrouver dans les codes. Notepad++ possède une auto-complétion, c'est fait pour ça.
    2) Type ring

    Obligatoire
    Il s'agit du type de l'ancillary. En soit ça n'a pas grand intérêt, sauf que le test pour tester la présence d'un ancillary n'existe pas pour un personnage, mais on peut tester s'il a un type particulier d'ancillary (La logique de Medieval II Total War est je sais parfois bien surprenante...).
    3) Transferable 1

    Obligatoire
    Indique si l'ancillary en question peux être transférer d'un personnage à l'autre. 1 veux dire oui, 0 non.
    4) Image Zbrarahir.tga

    Obligatoire
    Indique le nom de l'image de l'ancillary. Vous aurez plus d'information par la suite.
    5) ExcludedAncillaries nenya, narya, vilya

    Optionnel
    Ceci indique si l'ancillary en question est incompatible avec les ancillaries donnés après la commande. C'est assez pratique, et évite de rajouter trop de conditions.

    6) Description ring_barahir_desc

    Obligatoire
    Indique le nom de la description de l'ancillary dans les fichiers textes. Plus d'informations sur les textes liés aux ancillaries après.


    7) EffectsDescription ring_barahir_effects_desc

    Obligatoire
    Indique le nom de la description des effets de l'ancillary dans les fichiers textes. Plus d'informations sur les textes liés aux ancillaries après.
    8) Effect LocalPopularity 1

    Obligatoire
    On a ici les effets liés à l'ancillary en question. c'est la partie la plus importante en soit, puisque ça indique ce que fait l'ancillary en question.
    b) L'image de l'ancillary

    Il s'agit d'une image au format .tga, et qu'il faut placer dans le dossier data/ui/ancillaries

    Remarque : Tout les noms de codes (acd interne) ne peuvent contenir que des minuscules, des majuscules et des tirets bas (_).

    c) Les textes liés à l'ancillary

    Il se trouve dans le fichier text/export_ancillaries.txt.
    Il y a 3 entrées :
    La première, avec entre {} le nom de code de l'ancillary : il s'agit du nom visible de l'ancillary
    La seconde, avec entre {} le nom de code de la description : contient la description de l'ancillary tel que vous la voyez
    La troisième, avec entre {} le nom de code de la description des effets, contient la liste des effets de l'ancillary

    Au final ça donne ça :
    Code:
    {ring_barahir}
    Ring of Barahir
    {ring_barahir_desc}
    This proud ring was made by the Ñoldor of Valinor.
    {ring_barahir_effects_desc}
    +1 to happiness (improves public order), +1 to public health, +1 Farming, -1 Unrest, 1% discount on construction
    d) Les effets possibles de l'ancillary

    L'ordre est un peu en vrac, j'ai regardé un fichier EDA en trouvant les effets au fur et à mesure
    • HitPoints : Rajoute un certain nombre de point de vie au général portant l'objet, c'est à dire de coup qu'il peut prendre avant de mourir
    • TroopMorale : Affecte le moral des troupes
    • LocalPopularity : Change la popularité du général dans la ville où il se trouve, améliorant ainsi l'ordre public
    • Attack : Modifie l'attaque du général portant cet objet
    • Authority : Augmente l'autorité du général portant cet objet, c'est principalement utile pour les histoires de succession.
    • Chivalry : Améliore le "trait" chevaleresque du général
    • PersonalSecurity : Renforce la sécurité du général le portant, c'est à dire le pourcentage de chance d'échapper à un assassinat.
    • LineOfSight : Améliore la distance que le général peut voir sur la carte
    • Command : Améliore le commandement du général
    • Defence : Améliore le commandement du général en défense
    • Squalor : Modifie le taux de pauvreté dans la ville en question
    • Management : Change la capicité du général à s'occuper des affaires de la ville, modifiant donc le revenu
    • Ambush : Modifie la valeur de commandement du général lors des embuscades
    • BattleSurgery : Change la probabilité d'être blessé gravement plutôt que tué lors d'un combat, ainsi que la vitesse de récupération de ses blessures
    • Loyalty : Modifie la loyauté du général
    • MovementPoints : Change le nombre de points de mouvement dont le général dispose pour ses troupes
    • InfantryCommand : Améliore son niveau de commandement sur les troupes d'infanterie
    • Attack : Améliore le commandement en attaque
    • Subterfuge : Améliore (ou diminue) le subterfuge (pour les assassins et espions)
    • Trading : Modifie les revenus provenant du commerce dans la ville où il se trouve
    • TaxCollection: Modifie les revenus provenant des taxes dans la ville où il se trouve
    • Piety : Modifie la piété du général
    • Fertility : Modifie la fertilité du général (la chance d'avoir des enfants
    • Construction : Diminue le cout des constructions
    • BribeResistance : Affecte la résistance aux tentatives de corruption
    • Assassination : Améliore les assassins les chance de réussite pour les assassinats
    • Farming : Améliore les revenus provenant de l'agriculture
    • Mine :Pareil pour les mines
    • Finance : Améliore le revenu global de la ville
    • Unrest : Augmente l'agitation dans la ville
    • Law : Augmente la loi (ou justice) dans la ville
    • TrainingUnits : Augmente l'expérience des unités entrainées lorsqu'il est gouverneur
    • Sabotage : Augmente les chances de réussir un sabotage
    • Charm : Augmente le charme (pour les princesses)
    • Influence : Augmente l'influence des diplomates
    • CavalryCommand : Augmente la valeur de commandement pour la cavalerie
    • ArtilleryCommand : Pareil pour l'artillerie
    • Looting : Augmente le butin reçu lors des pillages
    • SiegeAttack : Augmente le commandement lorsque l'on est attaquant d'un siège
    • NavalCommand : Augmente la valeur de commandement des amiraux
    • Violence : Rend le général plus violent


    III. Les triggers


    Les triggers se trouvent à la fin de l'EDA. Les triggers doivent se trouver après la liste des ancillaries, sinon ça bug.
    a) Analyse d'une entrée de trigger dans l'EDA

    Code:
    Trigger relative_lenwe2
    	WhenToTest CharacterComesOfAge	
    	Condition CharFactionType mongols
    					  and IsGeneral
    					  and Trait house_lenwe >= 1
    					  and FatherAnc relative_lenwe
    					  
    	AcquireAncillary relative_lenwe chance 100
    1) Trigger relative_lenwe2

    Indique que l'on commence un trigger. relative_lenwe2 est le nom du trigger. Il est donc unique, et vu qu'il n'est utilisé qu'une seule fois, le nom peut être aussi explicite que possible (ce qui est conseille). Comme pour le nom de l'ancillary, pas d'autres caractères que majuscule, minuscule, chiffres et underscore (_).
    2) WhenToTest CharacterComesOfAge

    Indique à quel moment le trigger est testé (la fin d'un tour, le moment ou un personnage devient adulte, la mort du roi ou du père ...). La liste des conditions se trouve dans le docudemons_events.
    3) Condition CharFactionType mongols

    La liste des conditions pour que le trigger se déclenche. Ça correspondrais en gros à un if/si. La liste des conditions possibles se trouve dans le docudemons_condition?
    4) AcquireAncillary relative_lenwe chance 100

    Indique l'effet du trigger, qui est la possibilité d'acquérir un objet particulier si les conditions sont vérifiées. L'objet ici est relative_lenwe.

    La partie chance 100 indique la probabilité que l'objet soit obtenu lorsque les conditions sont réalisées.
    Dernière modification par Arandir Tur-Anion, 14-11-2014, 23h48.

  • #2
    Sympa ! Quand tu dis que des objets peuvent être transférables, tu veux aussi dire qu'il peuvent être donnés par voie diplomatique par exemple ?

    Commentaire


    • #3
      Non, ça veut dire que tu peux les échanger entre 2 de tes généraux s'ils sont dans la même armée

      Commentaire


      • #4
        A priori je viens de finir. Si vous avez des questions, trouvez que le tutoriel est parfois un peu obscur, n'hésitez pas.

        Commentaire

        Chargement...
        X