Baldur's Gate et Dragon Age | La Couronne de Cuivre
 

Précédent   Baldur's Gate et Dragon Age | La Couronne de Cuivre > La Forge de GrondMarteau > La Forge des Apprentis > Problèmes Techniques

Problèmes Techniques
Un problème technique lors de la création d'un mod? Exposez votre probleme et les membres vous aideront de leur mieux.

Réponse
 
Outils de la discussion Noter la discussion
Vieux 26/09/2004, 00h06   #1
Sous Nain
Invités
 
Messages: n/a
Par défaut

J'aimerais pouvoir utiliser des textes dans mes scripts avec des commandes comme DisplayString, Shout...
Bien sûr ( ) ce sont des textes et des scripts que je rajoute, et il faut que cela soit fait avec WeiDU.

La question est donc : comment faire ?

Dans le même ordre d'idées j'aimerais pouvoir afficher une description détaillée des scripts que j'ajoute, comme c'est fait dans le mod Solaufein... mais je ne comprends pas comment il fait.

Enfin un truc tout bête j'aimerais savoir comment fonctionne exactement la fonction compile de WeiDU qui permet entre autre de compiler des scripts, afin de pouvoir faire compiler puis copier dans le dossier /scripts par un fichier .tp2.

Merci ! :notme2:

PS : Désolé si tout ça a déjà été demandé, j'ai fait plusieurs recherches mais j'ai l'impression que ça n'a pas très bien marché : je n'ai eu aucun résultat avec le mot "script" -_o


  Réponse avec citation
Vieux 26/09/2004, 00h48   #2
Mathrim Cauthon
Invités
 
Messages: n/a
Par défaut

Pour la première question, je dirais qu'il faut créer le fichier BAF du script, en laissant le DisplayString en toute lettre. Puis, dans le fichier TP2 de ton mod, tu te contentes d'écrire la ligne :
COMPILE ~MonMod\MonScript.BAF~ (en adaptant selon l'arborescence de ton mod).
Le nouveau script sera automatiquement compilé, les lignes de textes du DisplayString seront ajoutées au dialog.tlk, et le script compilé sera copié dans le répertoire override

Pour Solaufein, je n'ai malheureusement pas le mod sous la main, donc je pourrais difficilement te l'expliquer.
  Réponse avec citation
Vieux 26/09/2004, 15h41   #3
Sous Nain
Invités
 
Messages: n/a
Par défaut

J'ai essayé ce que tu me dit mais j'ai du me planter quelque part car ça ne marche pas -_o

Voici le code :
dans le tp2 :
Code:
COMPILE ~SpellArmor/sa-cont.baf~
COPY ~override/sa-cont.bcs~ * * * ~scripts/sa-cont.bs~
 *//REPLACE ~999001~ @220
dans le script :
Code:
IF
 *HotKey(V)
THEN
 *RESPONSE #100
 * *SetGlobal("sacont", "LOCALS", 0)
 * *SetGlobal("sachco", "LOCALS", 0)
 * *DisplayString("blablabla")
 * *//Shout(999001)
 * *PlaySound("CAS_P07")
END
Et lorsque j'appuis sur V, j'entends le son, mais rien ne s'écrit.
J'ai donc essayé une autre méthode (en fait celle utilisé dans solaufein pour mettre la description du script que j'ai finis par comprendre), c'est à dire de mettre un n° de chaîne abérant que je puisse retrouver pour le remplacer par la suite par le bon. Sauf que le n° de chaine doit changer au moment de la compilation (peut-être en hexa ?), donc ça marche pas. En tout cas j'ai laissé en commentaire ce que j'avais utilisé pour cette deuxième méthode.

Par contre ça marche très bien pour la description du script avec le code qui suit :

Code:
APPEND ~scrpdesc.2DA~ * * * * * * ~SA-CONT 999011 999012~

COPY_EXISTING ~scrpdesc.2da~ ~override/scrpdesc.2da~
 *REPLACE ~999011~ @200
 *REPLACE ~999012~ @201
Une idée ?

  Réponse avec citation
Vieux 26/09/2004, 19h33   #4
Isaya, Adepte de Grondmarteau
Loup Vampirique
 
Date d'inscription: juillet 2003
Localisation: Plaisir
Messages: 1 820
Envoyer un message via MSN à Isaya
Par défaut

Je pense que tu as mal interprêté l'utilisation de Shout(). Voici un extrait de IESDP le concernant:
Citation:
106 Shout(I:ID*SHOUTIDS)
Is used to shout something from Shoutids. If you dont have TOB, there is no SHOUTIDS. However, you can use any number you want for the shout ID. Note that, if a character is magically silenced, he cannot shout. It is used in conjuction with Heard(O:Object*,I:ID*), a trigger.

IF
* StateCheck(Myself,STATE_POISONED)
THEN
* * RESPONSE #100
* * * Shout(4010)
END

IF
* Heard([GOODCUTOFF],4010)
* HaveSpell(CLERIC_SLOW_POISON)
THEN
* * RESPONSE #100
* * * Spell(LastHeardBy(),CLERIC_SLOW_POISON)
END
Autrement dit, la valeur utilisée dans Shout est un nombre, mais il ne désigne pas du tout un texte. Donc il ne faut pas utiliser REPLACE car (1) ça ne sert à rien (2) ça pourrait même planter le script.
Shout() s'utilise en conjonction avec Heard() pour déclencher des réactions de la part d'autres personnages. Il s'agit d'un mécanisme utilisé pour provoquer des réactions de groupe (devenir hostile, fuir en cas de combat, ...).
Isaya est déconnecté   Réponse avec citation
Vieux 27/09/2004, 18h06   #5
Sous Nain
Invités
 
Messages: n/a
Par défaut

En gros c'est plutot ce qui régis les communications inter-AI (entre gros guillemets )
Bon ça me dit pas comment je dois faire mais au moins je sais que ça pas la peine de cherche là

Il ne reste plus qu'à m'y remettre
  Réponse avec citation
Vieux 27/09/2004, 21h19   #6
Isaya, Adepte de Grondmarteau
Loup Vampirique
 
Date d'inscription: juillet 2003
Localisation: Plaisir
Messages: 1 820
Envoyer un message via MSN à Isaya
Par défaut

Pour ce qui est de l'affichage d'un texte avec DisplayString() (si c'est là ton problème, car je ne comprends pas ce que tu veux dire), il doit s'agir encore d'une erreur d'utilisation. Dans un script, il faut toujours préciser au dessus de qui le texte doit s'afficher, par exemple la personne associée au script. Il faut alors utiliser la forme:
DisplayString(Myself,"texte à afficher")

Là encore, je t'invite à consulter la référence sur les commandes de script qui est présente sur le site IESDP :
Citation:
151 DisplayString(O:Object*,I:StrRef*)
Displays a dialog.tlk reference* number in the message window on the object specified. So if I wanted my character to display 'quaffs a potion' in the message window when he drinks a potion of extra healing, I would use:

IF
* * HasItem("potn52",())
* * HPPercentLT((),50)
THEN
* * RESPONSE #100
* * * * UseItem("potn52",())
* * * * DisplayString((),46150)
END

(Note this action is different than the DisplayStringHead(OBJECT,STRING) action which displays text over their head instead.
Comme indiqué, tu peux choisir entre DisplayString() et DisplayStringHead() selon l'endroit où tu souhaites que le texte s'affiche.
Isaya est déconnecté   Réponse avec citation
Vieux 28/09/2004, 17h48   #7
Sous Nain
Invités
 
Messages: n/a
Par défaut

Ok donc à priori la technique "je met 9999999 puis je remplace" devrait marcher... j'ai pas eu le temps d'essayer depuis mais j'essaye de voir ça.

Sinon pour ce que je veux c'est tout simplement faire afficher un texte dans la fenêtre d'état depuis un script.

Ouala...
  Réponse avec citation
Vieux 28/09/2004, 18h11   #8
Walar, Patricien de Melandis
Berserker Ogre
 
Avatar de Walar
 
Date d'inscription: avril 2003
Messages: 1 004
Par défaut

Voilà un exemple pour les scripts, je fais comme ça et ça fonctionne :

Dans le fichier .tp2 :

Citation:
COPY ~Mod\Scripts\script.bcs~ ~override\script.bcs~
* REPLACE ~777778~ @114
* REPLACE ~777779~ @115
Dans ce script associé au personnage (exemple) :

Citation:
IF
* Allegiance(Myself,ENEMY)
* !Detect(NearestEnemyOf(Myself))
* !Detect(Player1)
* !Range(Player1,20)
THEN
* RESPONSE #100
* * ForceSpell(Player1,WIZARD_DIMENSION_DOOR)
* * DisplayStringHead(Myself,777779)
END
Walar est déconnecté   Réponse avec citation
Vieux 30/09/2004, 11h56   #9
Sous Nain
Invités
 
Messages: n/a
Par défaut

Ok ça marche nickel, merci beaucoup

EDIT : en décortiquant le script de changement d'avatar je me rend compte que :
1) Pour utiliser une chaîne de caractère d'un fichier .tra dans un script il suffit de mettre @XXX où XXX est le n° dans le .tra.
2) Il est possible de faire appel à n'importequel sort depuis un script (outre ceux de Spell.ids) avec une des commandes SpellRES(S:RES*,O:Target) où S est la référence du fichier sort et O la cible.
  Réponse avec citation
Réponse

Liens sociaux

Tags
Aucune


Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Noter la discussion
Noter la discussion:

Règles de messages
Vous pouvez créer de nouvelles discussions
Vous pouvez envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are non
Navigation rapide

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
[BGT] Certains textes en anglais liviou2004 Baldur's Gate Reloaded : les mods TUTU et Baldur's Gate Trilogy 10 17/10/2006 13h41
[DSOTSC] Le patch ne traduit pas certains textes gautwp59 Le Festival de Nashkel : les modules BG1 3 02/08/2005 00h06
Les voleurs et l'utilisation d'objets Elvin La Taverne d'Amkethran (Baldur's Gate 2) 5 15/12/2003 09h36

Merci de soutenir La Couronne de Cuivre et le Wiki consacré à Baldur's Gate et aux RPG
Fuseau horaire GMT +2. Il est actuellement 07h12.

Les forums La Sirène Rougissante, La Couronne de Cuivre, ainsi que les sites associés Le Portail du Web et Le Monde de Baldur's Gate sont protégés par le Code de la propriété littéraire et artistique. Baldur's Gate I (1998), Tales of the Sword Coast (1999), Baldur's Gate II (2000) Shadows of Amn, et Throne of Bhaal (2001) sont ©BioWare, licenses et distribution ©ATARI. Dungeons & Dragons material est ©Wizards of the Coast. NeverWinter Nights est un produit ©Bioware, licenses et distribution ©ATARI. DRAGON AGE © 2002-2007 BioWare Corp. Dragon Age, the Dragon Age logo, BioWare Corp., and the BioWare logo are trademarks of BioWare Corp. in the United States, Canada and other countries. All other trademarks are the property of their respective owners. All rights reserved.
Conformément à l'article 34 de la loi 78-17 du 6 janvier 1978 dite loi "Informatiques et Libertés" vous disposez d'un droit d'accès, de modification, de rectification et de suppression de vos données personnelles (déclaration CNIL en cours mai 2007). Pour faire valoir ce droit contactez nous en cliquant ici et en utilisant le formulaire à votre disposition


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.2.0 Tous droits réservés.
Version française #17 par l'association vBulletin francophone

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184