Page 1 sur 1
[SCRIPTS-DIALOGUES] Liste des didacticiels et sujets résolus
Posté : mar. 22 mars 2016, 21:26
par Freddy_Gwendo
DIDACTICIELS PUBLIÉS SUR LA COURONNE DE CUIVRE
Cette liste répertorie les didacticiels relatifs à la section
Scripts et Dialogues et reprend la liste générale des didacticiels initiée par Isaya.
N'oubliez pas que cette section héberge aussi des appels à l'aide et des demandes d'assistance. Vous y trouverez notamment un récapitulatif des sujets résolus dans le
message suivant.
Bonne navigation !
Liste des didacticiels sur la création de scripts
Liste des didacticiels sur la création de dialogues
Répertoire des questions ayant trouvé une réponse
Posté : mar. 22 mars 2016, 21:27
par Freddy_Gwendo
RÉCAPITULATIF DES PROBLÈMES RÉSOLUS
Cette liste répertorie toutes les questions de modding relatives au thème
Scripts et Dialogues ayant trouvé une réponse.
N'hésitez pas à consulter ces liens qui pourraient vous faire gagner du temps, et le temps en matière de modding, ça n'a pas de prix...
N'oubliez pas que cette section héberge aussi des questions n'ayant pas encore été résolues et/ou en cours de traitement. Par conséquent, l'absence de votre problématique dans cette liste ne signifie absolument pas qu'elle n'est pas traitée dans le forum.
Bonne navigation et... Bonne pêche !
Scripts
- Où trouver la liste des commandes de script ? et Où trouver une liste exhaustive des effets utilisés par DLTCEP ?
>> Vous trouverez la liste des « triggers » (conditions) ici, celle des « actions » (commandes) là et celle des « opcodes » (effets utilisés par le moteur du jeu) ici.
- Rôle des différents scripts d'un personnage.
Fonction et ordre de préséance des cinq scripts utilisables par une créature.
- Quels outils utiliser pour créer/éditer des scripts existants ? et Comment compiler un script avec WeiDU ?
WeiDU, WeiDU et... WeiDU !
- Divers problèmes rencontrés en créant un script pour IWD avec DLTCEP et Problème de compilation de script avec DLTCEP et WeiDU.
Comment régler les paramètres d'installation de WeiDU et comment écrire le fichier tp2 qui regroupe les commandes de compilation des fichiers du mod.
- Divers problèmes rencontrés en créant un script.
Pots-pourris de problèmes rencontrés lors de l'écriture et de la compilation d'un script.
- Quelle unité de temps utilisent les compteurs de temps ?
Il existe deux compteurs de temps dans IE : le TEMPS RÉEL passé à jouer (TREAL) et le TEMPS écoulé DANS le JEU (TINGAME) qui détermine les heures de la journée, les repos, etc. Leurs valeurs sont définies par les commandes SetGlobalTimer pour le temps de jeu ; et RealSetGlobalTimer pour le temps réel. Par convention, la durée d'un jour de jeu est fixée à 7 200, celle d'un round à 6 secondes.
- Comment avancer l'horloge de quelques heures ?
- Comment gérer un compteur de temps quelque soit la carte où on est ?
Avec un script général qui tourne en permanence. Mais évitez baldur.bcs qui peut ralentir considérablement le jeu.
- Peut-on utiliser des valeurs de variables alphanumériques ?
Et non ! Ces valeurs doivent être des valeurs numériques.
- Comment assigner un script à une carte existante du jeu qui n'en a pas?
À l'aide du setup.tp2 avec une procédure WeiDU définie dans le sujet.
- Quelle est la signification de la valeur MYAREA dans l'action SetGlobal ?
L'action SetGlobal permet de définir des variables globales (« GLOBAL ») utilisables dans toutes les cartes et par toutes les créatures du jeu, locales (« LOCALS ») – c'est à dire s'appliquant à une créature précise -, et de carte (« AREA ») utilisables dans une carte précise. Remplacer la valeur de la variable « AREA » (par exemple AR0700) par «MYAREA» revient à lui attribuer automatiquement le nom de la zone dans laquelle est lancé le script ; et permet de créer des scripts « génériques ».
- Comment éviter que le script d'une carte ne continue à tourner dans d'autres zones ?
Pour éviter que les scripts des cartes considérées comme des « master areas » (inscrites dans le fichier MASTAREA.2DA) continuer à tourner tant qu'on ne rentre pas dans une autre master area et déclenchent des actions dans d'autres cartes, il suffit parfois simplement de modifier les conditions de déclenchement de ces actions.
- Comment insérer une référence à un nouveau texte dans un script ?
En utilisant la commande DisplayStringHead(Myself,@nnn) avec @nnn référencé dans un fichier .TRA.
- Référence au DialogF.tlk dans un texte flottant.
Comment différencier les textes apparaissant au-dessus d'un personnage selon son sexe. Voir aussi DisplayStringHead : calculer la durée d'affichage du texte.
- Comment faire référence à une carte dans les scripts d'une autre carte ?
Ça n'est pas possible avec une variable de carte. Il faut passer par une variable globale.
- Comment placer un objet dans un conteneur pendant une partie ?
De l'usage de la commande CreateItem()...
- Comment faire apparaître un PNJ après un délai suivant un repos ?
Comment contourner la gestion du sommeil par le jeu en utilisant le script du personnage principal (DPLAYER3.bcs) et surtout pas baldur.bcs (le script général du jeu qui tourne en permanence).
- Comment faire apparaître des ennemis sous conditions ?
De l'utilisation de la commande CreateCreatureObject() dans un script.
- Comment créer une créature à 2 m au dessus et 1 m à droite d'un personnage ?
La commande CreateCreatureObjectOffset permet de positionner la créature créée à une position relative par rapport à une cible.
- Comment faire apparaître un PNJ sur un "obstacle" ?
Pour faire apparaître une créature une zone de la carte à laquelle on ne peut pas accéder normalement, il faut utiliser la commande CreateCreatureImpassable dans un script.
- Comment faire disparaître une créature par téléportation ?
Différence entre les sorts DRYAD_TELEPORT et WIZARD_DIMENSION_DOOR : le premier fait disparaître la créature après voir joué l'effet visuel de téléportation, pas le second.
- Comment supprimer toutes les créatures ennemies d'une carte la première fois qu'on y entre ?
En leur attribuant un script décrit dans la discussion.
- Comment remplacer une créature d'une carte par une autre ?
Deux scripts détaillent la procédure. Les fainéants peuvent directement patcher le fichier .ARE avec la fonction ALTER_AREA_ACTOR. .
- Comment ne plus pouvoir sortir d'une carte sous conditions ?
Il suffit de créer un travel trigger et de l'activer par script lorsque les conditions sont remplies. Pour ajouter un travel trigger dans une carte existante et éviter des problèmes d'incompatibilités avec d'autres mods, consulter ce sujet.
- Quel script affecter à une créature pour qu'elle initie un dialogue ?
Un exemple de script permettant à une créature de s'adresser au groupe.
- Problème de lancement d'une Cutscene et d'un dialogue d'un NPC parlant et Problème avec une cutscene qui ne se lance pas.
Attention à la nomenclature des variables utilisées !
- Cutscene : Comment faire apparaître des créatures par une porte dimensionnelle ?
Avec les actions CreateCreatureDoor() et CreateCreatureObjectDoor().
- Comment afficher un effet visuel pendant une cutscene ?
Utiliser la commande CreateVisualEffectObject() pour illustrer la transformation d'un chat en humain, par exemple.
- Comment insérer un texte déroulant à la fin de SoA ?
Comment insérer un texte lors de l'épilogue de ToB.
- Comment cumuler les pouvoirs de deux objets ?
Un exemple de script permettant de "fusionner" deux objets en un seul plus puissant lorsqu'on les porte.
- Comment redonner son statut de paladin à un paladin déchu ?
Codes pour supprimer et/ou rendre le statut de paladin par script. Ça fonctionne aussi pour les rôdeurs.
- Le trigger HitBy() ne reconnaît pas la variable FIRE.
Certains « triggers » et certaines « actions » ont été implantés dans l'extension ToB. Vouloir les utiliser dans BG2 SoA seul ne fonctionne pas dans le meilleur des cas ; mais peut aussi provoquer des CTD.
- Ajouter un objet dans un slot d'équipement d'un PNJ
Comment équiper en cours de jeu une créature d'une épée, d'un bouclier, d'une armure, d'un anneau...
- Comment combattre en jonglant avec les combinaisons arc et épée+bouclier ?.
Pour éviter qu'un personnage n'utilise ses armes de jets (et ses malus) alors qu'il est au contact, on peut l'équiper d'une arme de poing et d'un bouclier. Ce sujet permet d'équiper correctement le bouclier.
- Comment déposer au sol un objet tenu en main ?
En utilisant un sort lançant l'effet Spell Effect: Drop Weapons in Panic [264].
- Diverses questions pour gérer une créature supplémentaire dans le groupe.
Des astuces pour que ces créatures vous suivent de carte en carte et obéissent à vos ordres.
Dialogues
- Limite des valeurs entières utilisées par les fichiers .tra ?
- WeiDU : Problème de "Label..." pendant la compilation d'un dialogue et ERROR: Cannot resolve internal symbolic label.
Lors de la compilation d'un dialogue, ce message peut apparaître avant l'arrêt de WeiDU : il signifie que soit il manque un bloc dans le dialogue, soit vous l'avez mal orthographié.
- Problème de syntaxe dans un fichier .d et Problèmes divers de syntaxe empêchant la compilation d'un dialogue.
Si écrire un dialogue n'est pas si compliqué que ça, ne pas hésiter à vérifier la structure de chaque bloc avant de le compiler. Dans l'action, on a vite fait d'oublier le END à la fin d'un bloc IF ~~ THEN BEGIN !
- Erreurs pendant la compilation d'un dialogue.
De simples fautes de frappe ou l'emploi de caractères non compris par WeiDU (“MaVariable” à la place de "MaVariable" par exemple), voire des commandes mal orthographiées (LastTalkedBy à la place de LastTalkedToBy) peuvent provoquer l'arrêt de la compilation du dialogue.
- Résolution de problèmes divers intervenus lors de l'écriture d'un dialogue et Problèmes divers rencontrés lors de la création d'un dialogue de PNJ.
Pots-pourris de problèmes rencontrés lors de l'écriture et de la compilation de dialogues.
- Questions diverses sur l'organisation d'un dialogue.
Plusieurs questions sur la faisabilité d'un dialogue : utilisation de conditions, gestion de cinématiques, couplage avec un script...
- Comment utiliser des variables dans un dialogue ? et Comment lancer un dialogue avec la condition « J'ai l'objet "untel" » ?
Utilisation des « triggers » (conditions), des fonctions SetGlobal, et des « actions » pour créer des conditions de lancement de dialogues et générer des actions dépendant des réponses données.
- Comment différencier un dialogue selon la race et le sexe ?
Avec les triggers Gender() et Class().
- Quel script affecter à une créature pour qu'elle initie un dialogue ?
Un exemple de script permettant à une créature de s'adresser au groupe.
- Comment forcer un dialogue entre Charname et un PNJ avec le bouton Dialogue ?
Conseil d'Isaya : "Ce genre de textes vient forcément en complément des banters dont dispose le PNJ. Le principe fondamental pour que le personnage principal puisse forcer un échange avec un PNJ, c'est donc que le PNJ en question n'ait rien à dire au personnage principal à l'instant en question. Sinon c'est la réplique que le PNJ devait prononcer qui va se déclencher.
Puisque c'est en complément, il faut impérativement que ces dialogues soient installés APRÈS les banters, sinon ils risquent de prendre le pas sur les banters que pourrait avoir le PNJ avec le personnage principal."
- Dialogue et commande EXTERN.
Comment utiliser la fonction EXTERN dans la rédaction d'un dialogue (fichier .d).
- Comment utiliser les CHAIN... les BEGIN ?
Attention à l'ordre de création des dialogues et à bien référencer les blocs de dialogue.
- Comment mettre en œuvre un dialogue à 7 ? et Comment faire dialoguer des PNJ extérieurs au groupe ?
De l'usage de la commande CHAIN.
- Comment lancer un dialogue après un repos ?
Deux techniques pour initier un dialogue avec un PNJ après un repos.
- Identifier le personnage déclencheur du dialogue.
Utiliser le token <GABBER> dans un dialogue pour identifier le personnage qui initie le dialogue.
- Modifier un dialogue ajouté par un autre mod : commande STATE_WHICH_SAYS et Comment modifier des dialogues de personnages déjà existants ?
Plus une fonction maison permettant d'identifier le numéro d'une réponse et d'en insérer une nouvelle avant ou après.
- Problème avec la commande INTERJECT.
Attention à bien orthographier les noms des fichiers de dialogue que vous utilisez !
- Comment ajouter des interjections d'un nouveau PNJ dans un dialogue existant ?
Ou comment utiliser la commande I_C_T (abréviation de Interject_Copy_Trans) servant à créer des interjections (des interventions du PNJ à l'intérieur d'un dialogue existant. Avec en prime, un mail de JCompton (créateur de nombreux mods) expliquant son utilisation !
Voir aussi Ajouter une interjection à la fin d'un bloc d'un dialogue existant.
- Ajout d'interjection à un dialogue sans tenir compte de ses actions.
Comment utiliser la commande INTERJECT_COPY_TRANS2 pour éviter d'affecter les actions prévues dans le dialogue à votre PNJ.
- Comment débuter un dialogue par de la narration impersonnelle ?
Comment lancer un dialogue qui simule un effet de narration.
- Quelle commande utiliser pour obliger un personnage à partir définitivement ?
De l'usage du mot-clé EscapeArea() dans un script ou un dialogue. Ne pas oublier LeaveParty() lorsqu'un PNJ quitte le groupe.
- Dialogues entre PNJ.
- Mon second PNJ "n'a rien à vous dire". Pourquoi ?
Bien définir les variables de condition de déclenchement d'un dialogue pour éviter ce genre de message.
- BANTER : Variables de badinages.
Comment définir les variables qui permettent de lancer les dialogues entre PNJ.
- BANTERS : Comment donner la priorité à un lancement de dialogue ?
Il se peut qu'une interaction avec un PNJ ne se lance pas à cause d'un conflit de conditions : c'est un autre dialogue qui est initié car une condition prend le pas sur l'autre. Pour y remédier, il faut bien vérifier la valeur des variables utilisées et/ou utiliser le mot de commande « WEIGHT » qui modifie l'ordre d'évaluation des conditions de déclenchement d'un dialogue (puisque les nouveaux dialogues sont placés à la fin du fichier .d).
- Les Banters de mon PNJ ne se déclenchent pas, Je n'arrive pas à lancer les Banters de mon PNJ et Je n'arrive pas à déclencher un dialogue 3 jours après le recrutement d'un PNJ.
De l'utilisation du fichier INTERDIA.2DA et pdialog.2da pour renseigner un nouveau PNJ et ses interactions avec les autres membres du groupe. Avec en bonus, un petit topo général d'Isaya sur la bonne utilisation des banters.
- Comment donner des XP à un personnage dans un dialogue existant ?
Avec la commande AddXPObject, on peut donner des XP lorsque Imoen rejoint le groupe, par exemple.
Posté : mar. 22 mars 2016, 21:30
par Freddy_Gwendo
Message réservé pour une utilisation ultérieure.