Page 1 sur 2

[TUTORIEL] Créer un NPC rapidement

Posté : ven. 09 juin 2006, 08:54
par xena
Vous voulez faire un PNJ minute comme on fait les gâteaux avec de la pâte toute prête? Pas de problème voici la notice :

Les outils
Et oui on fait pas d'omelettes sans casser des oeufs et on fait pas de PNJ sans outils

[INDENT]Weidu l'indispensable pour implanter votre PNJ dans le jeu. Pour être plus précise c’est une sorte de lecteur qui en lisant votre fichier .TP2, expliqué plus bas, transformera vos fichier écrit en langue Weidu soit des fichier .d et .baf en fichiers de type 001100 .dlg et .bcs.[/INDENT][INDENT]Near infinity, pour visualiser de manière lisible les fichiers du jeu voir en modifier.[/INDENT][INDENT]Shadow Keeper, éditeur de sauvegardes, pour chercher différentes variables ou pour modifier des créatures. [/INDENT][INDENT]ConTEXT LA référence pour faire du codage, on peut aussi prendre le bloc note mais il parai que ça pose des problèmes. Non ce n’est pas ce qui fait le programme mais c’est ce qui permet de les écrire et de se repère via les n° de ligne et de colonne. [/INDENT][INDENT]DLTC ou IEEP (infinity engine editor pro) pour la création de sorts, d'objets...mais je ne m’entend sur leur utilisation dans ce tutorial.[/INDENT]Le fichier dialogue .D

Qu'est ce que c'est?

Et bien comme son nom l'indique c'est le fichier dialogue de votre personnage.

Fabrication

Lancer ConTEXT ou un éditeur de texte.

A noter que lorsque vous sauvegardez votre texte dialogue il faut mettre comme extension .d
Vous pouvez mettre un bout de phrase commençant par // pour vous rappeler ce à quoi ça correspond, tout ce qui est suivit de ce signe,
dans une même ligne ne sera pas lu par le programme. J'en ferai autant de ce tuto.

Commencez en écrivant

BEGIN L#NPC // C'est le nom de votre nouveau bloc de dialogue vous pouvez mettre ce que vous voulez mais pas d'espace ni d'accent
// L# est le préfixe permettant de préciser "à quel personnage appartient" le dialogue, il vaut mieux prendre un préfixe n'ayant jamais été utilisé pour éviter les conflits
IF ~NumTimesTalkedTo(0)~ THEN BEGIN Rencontre // IF ~~ sont les conditions à remplir pour que le dialogue s'enclenche
// NumTimesTalkedTo(0) qui est entre les ~~ est la condition à remplir, vous pouvez en mettre plusieurs, celui-ci indique que vous n'avez jamais parlez à ce perso
// THEN BEGIN est le "sous-nom de votre bloc là encore mettez ce que voulez mais pas d'espace ni d'accents
SAY ~Bonjour ! Je suis le nouveau NPC.~ // SAY indique que votre NPC parle; les ~~ indiquent le commencement de sa/ses phrases et sa/leur fin/s
IF ~Gender("Player1","FEMALE")~ THEN REPLY ~T'es beau gosse tu sais!~ GOTO suite //IF est encore là pour les conditions
//Gender("Player1","FEMALE") c'est une condition permettant à votre perso principal de répondre ce qui suit uniquement si votre PJ est une femme
//THEN REPLY indique ce que vous aurez comme possibilités pour répondre
//GOTO suite GOTO indique quel bloc va suivre votre réponse là encore mettez ce que vous voulez mais pas d'accents ni d'espaces
//excusez la pauvreté de la réplique j'ai pas trouvé mieux
IF ~~ THEN REPLY ~Boujour.~ GOTO Suite
// bon bah je ré explique pas c'est pareil que ce qui à au-dessus mais y'a pas de conditions
END // cela indique la fin du bloc, attention c'est très important
// note : il ne faut pas confondre END fin du bloc, et EXIT fin du dialogue

IF ~~ THEN BEGIN suite // cela indique que si vous avez donnez une réplique ayant GOTO suite ce bloc commencera
SAY ~Je peux me joindre à toi?~ //
IF ~~ THEN REPLY ~Bien sur!~ DO ~SetGlobal("NPCJoined","LOCALS",1)// DO indique au programme qu'il doit faire quelque chose au niveau des variables
// les ~~ indique les variables à changer
// SetGlobal veut dire mettre global, ("NPCJoined",[...] c'est le nom de la variable
// [...] ,"LOCALS",1) signifie que cette variable est une locale est quelle doit être mise à 1 (locale est une variable propre à CE NPC)
// en gros cette variable indique que votre perso est dans l'équipe
JoinParty()~ EXIT //JoinParty c'est l'action de votre NPC "vous rejoindre" ce n'est pas le tout d'avoir la variable il faut aussi l'action
// EXIT indique que ce dialogue est terminé
IF ~~ THEN REPLY ~Je ne suis pas l'ANPE.~ GOTO ANPE
END // même si vous avez mis EXIT il faut mettre END pour indiquer que le bloc est fini
IF ~~ THEN BEGIN ANPE
SAY ~Bon, comme tu veux, je vais faire le poireau ici.~
IF ~~ THEN EXIT *//Si votre dialogue se termine par une réplique de votre NPJ il ne suffit pas de mettre seulement EXIT
END
BEGIN L#NPCP //si vous respectez les règles de l'art vous mettrez un P à la fin qui indique que ce dialogue est celui du renvoie
IF ~Global("NPCJoined","LOCALS",1)~ THEN BEGIN dehors // Global("NPCJoined","LOCALS",1) indique que le NPC doit être dans votre équipe
// il faut noter que les variables utilisées dans ce tuto sont celles disons "conventionnelles" mais vous pouvez mettre ce que vous voulez du moment que vous l'utilisez de la bonne façon
SAY ~Vous ne voulez plus de moi?.~
IF ~~ THEN REPLY ~Heu...non je voulais virer Anomen, reste.~ DO ~JoinParty()~ EXIT //il faut remettre JoinParty() car quand vous reformez votre groupe le NPC sort de l'équipe il faut donc lui dire de revenir
IF ~~ THEN REPLY ~Oui je pensais pas que tu serais aussi nul.~ DO ~SetGlobal("NPCJoined","LOCALS",0)~ EXIT // SetGlobal("NPCJoined","LOCALS",0) indique au niveau des variables que votre NPC n'est plus dans l'équipe
// si plus haut vous aviez mis autre chose que NPCJoined il fallait remettre celle que vous aviez choisie
END
IF ~Global("NPCJoined","LOCALS",0)~ THEN BEGIN Rejoin
SAY ~Tu veux que je revienne?~
IF ~~ THEN REPLY ~Oui mais dépêches-toi.~ DO ~SetGlobal("NPCJoined","LOCALS",1) //il faut redire aux variables du NPC qu'il est dans l'équipe
JoinParty()~ EXIT // et il faut lui dire de rentrer dans l"équipe
IF ~~ THEN REPLY ~Non reste ici.~ EXIT //bah là y'a besoin de rien faire
END

:!: Notes importantes : par convention est uniquement par convention vous pouvez tout changer si vous voulez :

xxxxP est le fichier dialogue de renvoie
xxxxJ est le fichier pour les dialogues du perso avec le NPC et ses interventions dans les dialogues
Bxxxx est le fichier pour les dialogues entre les perso que vous avez enrôlez, vous n'êtes pas inclus dans ces dialogues sauf cas rare


Les fichiers scripts

Définition :

En gros ça indique le pourquoi, le comment et le quand pour déclencher tel ou tel action ou dialogue.

Voici comment faire pour que votre NPC parle dès qu'il voit votre PJ
Nommez le comme vous voulez mais moins de 8 ou 7 caractères, il faut que son extension soit .baf
Notez aussi que se sera dans ce fichier qu'il faudra mettre les scripts de romance ou de dialogue :
IF
See([PC])
NumTimesTalkedTo(0)
THEN
RESPONSE #100
Dialogue(Nearest([PC]))
END // Traduisez si voit le PJ alors dialogue au plus près de votre équipe
Quand au script de création du personnage :
Tout d'abord il vous faudra les coordonnées du lieu où vous voulez faire apparaître votre perso. Pour cela baladez-vous dans baldur's gate et une fois que
vous avez trouvez l'endroit idéal pressez x cela affichera les coordonnées du lieu et le nom de l'area. Non il n'est pas nécessaire d'avoir fait la bidouille dans le fichier baldur ini c'est un raccourcit du jeu changeable via les options

Voici le script à écrire:
IF
Global("TheNPCExists","AR0700",0) //cette variable indique que le votre créature, perso n'est pas crée.
//AR0700 correspond à la promenade
THEN
RESPONSE #100
SetGlobal("TheNPCExists","AR0700",1)//votre perso est "crée" au niveau des variables.
CreateCreature("TheNPC",[3266.0996],1) // Tada CreateCreature va créer votre NPC.
//[3266.0996],1 alors entre les crochets ce sont les coordonnées du lieu précis où votre perso va apparaître le premier étant la valeur x et l'autre z
// le 1 qui se ballade tout seul est la direction vers laquelle sera tournée votre NPC les valeur vont de 0 à 12 (il me semble)
END
Et voilà! Attention ce script ne marchera que si vous n'êtes pas allé, dans votre partie, dans la zone où sera crée votre NPC sinon le script de zone aura déjà été enclenché.
Pour le nom du fichier mettez le nom que vous voulez mais en extention .baf


Le fichier CRE.


Qu'est ce que c'est :

C'est un fichier créature, donc votre personnage. Ca peut aussi être un monstre ou un lapin...

Création

Lancez une partie, créez votre peso principal comme si c'était votre PNJ. Inutile de rédiger le bio elle ne sera pas conservée.
Modifiez-le avec SK.
Une fois que vous êtes content du fichier CHR exportez-le en cre c'est dans la barre de tâche de SK.
Allumez Near infinity
Ici nous nommerons notre fichier cre L#TheNPC, il faut aussi qu'il soit inférieur à 7 ou 8 caractères

Là ça se complique un tout petit peu allez dans override et trouvez votre fichier cre
Allez dans edit.
Dans la première colonne cherchez flag et enlevez toutes les croix.
AnimationID peut vous permettre de mettre une skin d'elfe au lieu d'une skin d'humain par exemple
Vous avez un peu plus bas smallportrait et largeportrait cliquer droit et choisissez edit as string, mettez ensuite le nom de vos fichiers portraits sans l'extension.
Un peu plus bas vous avez tout les sons, si vous n'avez pas de son mettez comme référence -1 partout.
Encore plus bas vous avez sex, le sexe de votre perso vous l'aurez deviné
Et légèrement plus bas override sript, choisissez edit as string et mettez le nom du fichier dans lequel est codé l'arrivé de votre NPC
Dans ennemy-ally mettez NEUTRAL - 128
Et dans Death variable mettez ce que vous voulez mais cette ne variable ne doit pas déjà être présente dans le jeu car cette variable identifie votre créature dans le jeu.
Et puis pour finir le dialog ben éditez en string et mettez le nom de votre fichier dialogue, le tout premier où votre NPC se présente.
A noter que pour la cohérence il faudrait supprimer les innates spells correspondants aux pouvoir dû à Bhall.


Le fichier d'installation

Premièrement
Votre programme weidu mettez-le en dehors de votre dossier et appelez-le comme vous voulez
Ouvrez un fichier texte sauvegardez-le avec l'extension .tp2 attention le nom de ce fichier doit être le même que celui du programme weidu
Backup

Il faut impérativement créer un dossier Backup, il ne faut rien y mettre mais y faut le faire!
Et oui en gros c'est l'historique des installations et désinstallations du mod si vous voulez que cela se fasse proprement il faut ce dossier

Contenu

Là ça se corse un peu
BACKUP ~lenomdevotredossier\backup~
AUTHOR ~Xena~ //mettez votre petit nom
BEGIN ~The NPC~ //ce que vous voulez

REQUIRE_FILE ~Data/25Dialog.bif~ ~You do not appear to have TOB installed.~ //vous n'êtes pas obligé de mettre ça c'est juste pour vérifier que TOB est installé s'il ne l'est pas l'installation s'arrêterai mais si vous faite un mod pour BG 2 seul ne le mettez pas

COPY ~nomdudossier\nomdusousdossier\lenomdevotreimageL.bmp~ ~Override\lenomdevotreimageL.bmp~ //ça c'est pour le grand portrait
COPY ~nomdudossier\nomdusousdossier\lenomdevotreimageS.bmp~ ~Override\lenomdevotreimageS.bmp~ //votre deuxième image
COPY ~Trriviahn\cre\L#TheNPC.cre~ ~Override\L#TheNPC.cre~
SAY NAME1 ~NPC~ //ce sont les noms de votre perso
SAY NAME2 ~NPC~
SAY BIO ~?~ // là c'est pour la bio du perso


COMPILE ~lenomdudossier\lenomdusousdossier\lenomdufichierbaf.baf~

COMPILE ~lenomdudossier\lenomdusousdossier\lenomdufichierdialogue.d~

EXTEND_bottom~Ar0700.bcs~ ~lenomdudossier\lenomdusousdossier\Ar0700.baf~ //c'est pour ajouter votre script à la zone et créé votre perso
// Vous pouvez aussi mettre EXTEND-top c'est pareil

//Pour ce qui suit c'est pour lier les différents fichiers dialogues entre eux
APPEND~pdialog.2da~
~TheNPC TheNPCP TheNPCJ TheNPCD TheNPC25P TheNPC25J TheNPC25D TheNPC25~
UNLESS~TheNPC~ // UNLESS sauf si TheNPC n'est pas présent

APPEND~interdia.2Da~
~TheNPC TheNPCB TheNPCB25~
UNLESS~TheNPC~
//d'après Isaya y'a un truc qui cloche ici mais je ne sais pas ce que c'est.
Tada appréciez votre travail!
:cadeau::425:

Posté : ven. 09 juin 2006, 18:19
par Isaya
C'est très gentil de publier le fruit de tes expériences pour que d'autres en profitent. :up: Tu donnes beaucoup de précisions pour de parfaits débutants, ce que ne faisaient pas forcément les autres tutorials.

Néanmoins je voudrais faire quelques remarques, dans un premier temps d'ordre général :
- des vieux em... comme moi préfèrent lire du français intégral et non un mélange de français, anglais et SMS staïle ! :p En plus c'est aussi inscrit dans les règles du forum, donc ça ne fait pas de mal de le respecter ;
- dans le même genre, une petite relecture et vérification d'ortographe s'impose. Je peux te proposer mon assistance, si tu veux bien. Actuellement ça donne des trucs sympa comme "écriant" au lieu de "écrivant" ;
- le choix des couleurs des titres ne facilite pas la lisibilité ;

J'ai aussi quelques corrections plus "importantes" :
- le nom du fichier D n'est pas limité en taille. C'est le fichier DLG généré à partir du fichier D qui doit respecter la règle des 8 caractères maximum (et même plutôt 7 si tu veux utiliser les suffixes habituels, 'J', 'B' et 'P', lesquels ne sont d'ailleurs pas obligatoires bien que conseillés). La limitation à 8 caractères s'impose donc pour le nom employé dans les commandes BEGIN (quand elle n'apparaît pas dans un IF), APPEND, ... (voir la doc WeiDU, plus précisément la description du format du fichier D, dès qu'il est question d'un "filename" ou "entryFilename") ;
- tu pourrais justement préciser cette règle au moment du bloc BEGIN, en indiquant notamment que les deux premiers caractères du nom de fichier sont couramment utilisés en tant que préfixe exclusif à ton personnage afin d'éviter des conflits de nom avec d'autres mods. La forme X# a été popularisée par le créateur du premier tutorial mais il y a d'autres possibilités (d'ailleurs beaucoup de lettres sont déjà utilisées par d'autres). Il existe d'ailleurs un forum qui recense les préfixes déjà réservés ;
- en pratique, tous les fichiers utilisés par le jeu doivent se limiter à 8 caractères plus 3 d'extension. Ceux, comme les fichiers D ou BAF qui doivent être compilés pour être transformés en un fichier du jeu (DLG ou BCS dans ces cas) ont la plupart du temps moins de contrainte ;
- une commande END ferme le bloc ouvert par le IF. EXIT indique une rupture de la conversation dans le jeu ;
- de la même façon que pour le nom des fichiers, il est important de faire attention à l'unicité des noms de variables, surtout pour celles qui ne sont pas "LOCALS" (propre alors à un personnage) mais "ARxxx" (propre à la zone ARxxx) ou "GLOBAL" (globale à tout le jeu). L'utilisation du même préfixe que pour les fichiers est une solution efficace ;
- l'usage de la variable "NPCJoined" dépend de tes scripts affectés au personnage. Elle permet de savoir s'il a effectivement rejoint le groupe mais son nom pourrait être n'importe quoi.
- le fichier xxxP.DLG contient habituellement les répliques de sortie du groupe mais aussi ceux pour le réintégrer ;
- le fichier xxxJ.DLG (J pour joined probablement) contient généralement les répliques du personnage quand il est dans le groupe (dialogue avec le personnage principal, intervention avec un personnage extérieur au groupe, notamment) ;
- le fichier xxxB.DLG (B pour banter, bavardage) contient les échanges avec les autres personnages du groupe (hors personnage principal, sauf s'il est appelé à intervenir, comme dans les querelles de romance) ;
- un fichier BAF peut avoir un nom de longueur supérieure à 8 caractères s'il est prévu pour être ajouté dans un script existant (par EXTEND_TOP ou EXTEND_BOTTOM). Ceux qui sont utilisés avec COMPILE dans le fichier TP2 doivent effectivement se limiter à 8 caractères ;
- il y a généralement au moins deux scripts par personnage : un pour le personnage hors du groupe, l'autre pour le personnage une fois dans le groupe. Ca permet de rendre chacun des deux plus "simple". La version hors du groupe gère la plupart du temps les techniques de combat du personnage si on l'attaque, en plus de la gestion du dialogue initial. Le script du personnage dans le groupe gère effectivement tout ce qui fait le "semblant de vie" du personnage : gestion du timer pour rappeler une quête non effectuée, timer de romance, gestion des conflits, ... Le dialogue de rupture ou d'embauche gère alors la substitution entre les scripts ;
- l'appui sur X pour avoir la position implique, il me semble, d'avoir activé les touches dans la console (dans le fichier baldur.ini) ;
- le nom du fichier BAF pour l'ajout dans la zone est libre (pas besoin de l'appeler ARxxx, pourquoi pas "AjoutPNJenARxxx" si tu veux être explicite). Tu indiques son nom dans la commande EXTEND_BOTTOM du fichier TP2 ;
- contrairement à ce que tu écris, la gestion de l'apparition du personnage par un bout de script ajouté à une zone permet justement de ne pas avoir à se préoccuper d'être déjà allé dans la zone. La seule contrainte est, il me semble, que ça ne marche que la prochaine fois que tu entres dans la zone (autrement dit, tu dois d'abord sortir puis revenir si tu reprends une sauvegarde à l'intérieur de la zone). C'est le gros avantage de cette méthode rendue possible par WeiDU (la méthode généralement utilisée avant l'apparition de WeiDU imposait la contrainte dont tu parles) ;
- le nom du script à indiquer dans le fichier CRE est "Celui pour faire parler votre NPC", tel que tu l'appelles. Ta description ("dans lequel est codé l'arrivée ...") laisse penser qu'il s'agit de l'autre ;
- la "death variable" est limitée à 32 caractères. Elle doit être unique dans tout le jeu (là encore un préfixe exclusif est bien utile). Elle ne sert pas qu'à indiquer que le personnage est mort (elle apparaît alors en variable SPRITEISDEAD_xxx) mais aussi dans les scripts (d'ailleurs dans DLTCEP, elle s'appelle "script name") d'autres personnages ou zones lorsqu'ils doivent agir sur le PNJ ;
- pour le nom du fichier dialogue, tu peux peut-être indiquer que c'est celui utilisé dans le BEGIN qui précède le dialogue d'introduction du PNJ (souvent sans suffixe) ;
- le répertoire Backup sert à WeiDU à sauvegarder les fichiers déjà existants dans le jeu avant de les modifier pour ton mod. Exemple : le script de la zone dans laquelle tu fais apparaître le personnage. C'est ce qui permet de désinstaller proprement le mod. Tu n'es pas obligée de l'appeler "Backup" si tu indiques le nom dans la commande BACKUP (mais ce n'est pas conseillé) ;
- le test concernant le fichier spécifique à ToB est un moyen courant de vérifier si ToB est installé. Si ton mod n'a pas de contenu pour ToB ou n'exploite pas de capacité introduite par ToB (des images ou des commandes de script, par exemple), il vaut mieux ne pas ajouter cette contrainte. Ainsi un joueur qui n'a pas ToB pourra jouer à ton mod. Tu peux aussi utiliser ce test pour installer séparément (dans un composant) une partie spécifique à ToB. Le composant ne sera alors pas proposé à un joueur n'ayant pas ToB ;
- ton fichier CRE à un préfixe différent (T#) de celui du fichier dialogue (L#). Ce n'est pas bien. Il vaut mieux se limiter à un préfixe unique ;
- le fichier pdialog.2DA permet au jeu de commuter le dialogue quand le personnage rejoint ou quitte le groupe. Si tu fais un mod pour SoA seulement, les 3 derniers mots de la ligne sont à retirer. Les mods qui reconnaissent la présence de ToB pour installer en composant la partie ToB ont généralement une forme un peu plus complexe de cette partie pour gérer les deux cas. Par exemple, dans Tashia, ça donne :
APPEND ~pdialog.2da~
~TASHIA TASHIAP TASHIAJ TASHIAD~
UNLESS ~TASHIA~
UNLESS ~25POST~

APPEND ~pdialog.2da~
~TASHIA TASHIAP TASHIAJ TASHIAD TASHI25P TASHI25J TASHI25D tash25~
UNLESS ~TASHIA~
IF ~25POST~

APPEND ~interdia.2da~
~TASHIA BTASHIA~
UNLESS ~TASHIA~
UNLESS ~25FILE~

APPEND ~interdia.2da~
~TASHIA BTASHIA BTASHI25~
UNLESS ~TASHIA~
IF ~25FILE~
Les UNLESS et IF vérifient la présence d'un texte particulier (25POST ou 25FILE selon le fichier 2DA) à l'intérieur du fichier pour reconnaître si ToB est installé.

Vis à vis des problèmes de quote, une alternative serait que tu crées ton tutorial en html et que tu indiques un lien (si tu as la possibilité de l'héberger sur un site perso). Tu bénéficierais d'outils bien plus performant pour écrire ou corriger ton texte.

Toutes mes félicitations pour ce travail ! Ne sois pas effrayée par le nombre de remarques, la plupart sont des compléments d'information (non, je ne cherchais pas à écrire un message aussi long que le tien ^^ ).

Posté : ven. 09 juin 2006, 21:15
par Akadis
J'ai relevé quelques coquilles :p :
Lancez une partie, créez votre perso principal comme si c'était votre PNJ.
Si tu utilises le perso principal tu vas te retrouver avec 2 personnages qui ont les pouvoirs de Bhaal et les enlever avec Near Infinity n’est pas l'idéal. Le plus simple est de créer une partie multijoueur et créer ton futur PNJ en personnage secondaire puis de l'exporter.
SetGlobal("NPCJoined","LOCALS",n)
Il faut utiliser cette variable en GLOBAL. C'est le cas, entre autres, pour Anomen, Jan, Aerie mais aussi Solaufein.
J'ai aussi releve 62 fautes de frappe et/oi d'orthographe notamment sur moin au lieu de moins et charactère au lieu de caractères.

Si je n'ai que ça à dire c'est que le reste est bien ^^ voir trés bien :rigoler:

Posté : ven. 09 juin 2006, 23:02
par Isaya
En réponse à Deecy, je préciserai qu'il est préférable de supprimer le flag indiquant que le personnage est exportable (si je ne m'abuse, c'est ce qui différencie pour le jeu un personnage créé par le joueur d'un PNJ recrutable, ce qui influe notamment sur la façon dont le jeu récupère le nom du personnage).

Par ailleurs, la variable NPCJoined peut parfaitement être locale au personnage, dès lors qu'aucun script d'un autre personnage ou d'une zone ne s'en sert. Le tutorial de PPG, dont sont issus la plupart des évolutions, est conçu ainsi. La variable n'est pas indispensable. Certains personnages n'en ont pas du tout (Imoen, Jaheira, ...). La variable locale "KickedOut" est souvent utilisée pour un objectif similaire.

Posté : sam. 10 juin 2006, 07:59
par Shinook
Comme je te l'ai déjà dit, je trouve que c'est une bonne idée ce tuto, que n'ai-je eu cette idée plus tôt ^^ . J'ai peut-être quelques éléments supplémentaires issus de mon expérience personnelle.

Cela concerne la réalisation du fichier .cre du PNJ, très important. Comme tu le suggères, il peut être bien dans un premier temps de réaliser le personnage en créant une nouvelle partie, car cela permet d'avoir un PNJ qui ne soit ni trop fort, ni pas assez, il sera adapté au niveau du PJ ( au moins pour le début du jeu, mais après, ce n'est pas difficile d'augmenter un peu sa puissance ). On a donc déjà une bonne base, et on est sûr de ne rien oublier pour personnage. Ca peut permettre aussi de faire plusieurs essais pour le PNJ, lorsqu'on a pas d'idée bien précise, ou que l'on connaît mal les mécanismes du jeu quant à la création de PNJ. Ensuite, sauvegardez le personnage ( avant de lancer uen partie ) en cliquant sur "Exporter", donnez-lui un nom, et c'est tout pour le moment.

A partir de là, je sors du jeu, et je lance le logiciel que je considère comme indispensable pour créer un PNJ, Cremaker ( disponible ici, n'oubliez pas de télécharger aussi les DLL ). Dans un premier temps, il faut aller chercher le fichier ( sauvegardé alors en .chr ), dans les dossiers du jeu, le dossier "characters" ( situé dans le répertoire principal de BG2 ), et l'ouvrir à partir de Cremaker. Ensuite, ouvrez une seconde fois l'éditeur ( toujours cremaker ^^ ), et faites "File\New", pour avoir une fiche de PNJ vierge. A ce moment, il ne reste plus qu'à recopier les données du .chr dans le .cre que vous venez de créer, en y appliquant d'autres modifications si vous le souhaitez, et en supprimant ce qui concerne l'essence de Bhaal ( dans "Innate Spell", que l'on peut traduire par "sorts innés", supprimés le(s) sort(s), mais vous pouvez d'ailleurs en mettre d'autres pour votre PNJ... ).

En tout cas, c'est parfois ainsi que je procède, ou alors, avec l'expérience, je lance directement dans la réalisation du .cre...

Posté : dim. 11 juin 2006, 07:16
par xena
Eeeeeeeeettttttt ben!

Quand je disais que vous pouviez vous lacher et me dire tout ce qu'il faut changer je penais pas qu'y en aurai aussi long...lol

Mais vaut mieux beaucoups que rien, j'aimerais bien que vous fassiez des posts aussi long pour mes NPCs au moinS j'aurai de quoi faire (et j'ai mis moins avec un s je sais pas pourquoi mais je veux toujours l'écrire sans)

Bon allors je vais éplucher tout ça sur mon brouillon et dès que j'aurrai fini je rééditerai mon message.

Et oui, mea culpa, mea maxima culpa je fais de très très grosses fautes et surtout de très bêtes fautes, et là on se dit : houla, si jamais elle finit un jour son mod je vous dit pas le nombre de faute qui y aurra dedans", mais ne vous inquiètez pas j'ai piqué tout les bleds que j'ai trouvé et j'ai commencé mes révisions, j'éspère que ça se verra...bon c'est ma vie on s'en fout...

Et pis pendant que j'y suit je fait une demande : pour éviter la prise de tête aux débutants qui veulent bien faire alors qu'on à des "vétérans" qui savent tout faire et qui apparament (alors celui-la y'a grosse faute dedans mais comment l'écrire?)
on pas peur de faire de longs messages comme Isaya qui en a fait un aussi long que moin, et ben y pourrai peut-être aussi faire des tutos ce qui permetrait peut-être d'augmenter le nombre de moddeur français qui est malheureusement bas comparé aux anglais et aux américains (non non j'ai rien contre eux mais c'est l'esprit de compétiton)

Enfin moi je dis ça vous voyez bien...

Bon sur ce je vais éplucher tout ça et pis comme ce message la est bien long je le relis pas comme ça vous pourrez encore me dire "hou!!! Elle a fait plein de fautes!! hou!!!"
lol

Mais non je le prend pas mal je rigole.

Merci et bisous à tout le monde :k: :k:

Posté : dim. 11 juin 2006, 21:53
par La Voix 2 la Sagesse
Et bien moi, je tenais simplement à te remercier car ça faisait un moment que j'essayais de me créer mon propre petit mod, et grâce à toi, je vais ENFIN pouvoir commencer à me faire mes NPC enrôlables! :hein:

C'est vrai que c'était pas simple d'utilisation; avant je galérais: je ne savais pas comment faire exactement, ni quel utilitaire prendre. Je tatonnais, et j'ai fini par abandonner.
Et depuis que je suis tombé sur ce sujet, je me suis exclamé: "Ouah, fichtre :hein: ! C'est si simple que ça?! Dès que j'ai fini mes partiels, je me recolle à mon petit projet!"...

bref merci :k: :k: !


PS:
Originally posted by xena<div class='quotetop'>QUOTE(xena)</div>
apparament (alors celui-la y'a grosse faute dedans mais comment l'écrire?)[/b]
C'est apparemment ^^

xena

comme ça vous pourrez encore me dire "hou!!! Elle a fait plein de fautes!! hou!!!"
hou!!! Elle a fait plein de fautes!! hou!!! :p ;)

Posté : lun. 12 juin 2006, 07:57
par xena
Bon ça me rassure y'a pas que de la casse avec ce tuto, faut noter que moi-même je suis qu'une débutante, d'ailleut Isaye me l'ai démontré en faisant un post aussi long que moi pour me corriger, (je suis d'ailleur en train d'y éplucher donc ne prennez pas mon tuto sans les notes d'Isaya.

Merci pour la petite note! ;) ;)

Posté : lun. 12 juin 2006, 21:44
par Isaya
Je commence par une réponse à ta suggestion d'écrire moi-même un tutorial : n'ayant jamais écrit le moindre PNJ, je me vois bien mal placé pour écrire un tutorial sur le sujet qui apporte quelque chose par rapport à ce qui existait avant ton initiative (certes plutôt en anglais, puisque la traduction est hélas indisponible). Ma participation aux mods pour l'Infinity Engine concerne surtout la traduction, des petits patchs et la maintenance d'un mod existant. J'ai bien écrit un tutorial qui couvre différents aspects de la traduction des mods et qui intéresse donc surtout une autre catégorie de personnes (bien qu'il puisse y avoir des informations parfois intéressantes sur le moteur de jeu).

La forme est souvent aussi importante que le fond et mon message est nettement déficient de ce point de vue. En réalité, je n'ai corrigé que quelques affirmations erronées (notamment sur les noms de fichiers), lesquelles sont mineures et ne remettent aucunement en cause l'essentiel. Pour le reste je voulais surtout donner quelques indications de bonnes pratiques et expliquer certains points sur lesquels tu émettais des doutes. Je dois avouer que j'aurais dû consacrer du temps à remettre tout en forme une fois terminé car j'ai écrit mes commentaires au fur et à mesure de ma lecture. Si certaines des premières remarques étaient effectivement "importantes", ce n'est plus le cas ensuite et j'aurais clairement dû les séparer.
En ce jour de bac de philo, je dois reconnaître que mon plan était inexistant et que mon argumentation est donc nulle. :notme2:

Je renouvelle ma proposition de relecture. Un support autre qu'un sujet de forum serait plus pratique pour cela, pourquoi pas html. Il y a des éditeurs gratuits ayant des possibilités de correction d'orthographe, toujours bon à prendre. Et le problème des "quotes" serait aisé à corriger. Si tu veux un exemple (très imparfait), je peux te proposer le tutorial que j'ai écrit.
Par ailleurs, plutôt que de laisser en brut tous mes commentaires, je pourrais préparer un document d'introduction qui reprendrait la plupart de mes commentaires qui ne sont pas particulièrement liés à la création d'un mod de PNJ. De sorte que tu n'aurais pas à t'embêter à reprendre ce que j'ai écrit sans rapport direct avec ton tuto.

Posté : mar. 13 juin 2006, 07:41
par xena
Creer un bout de site était une de mes possibilité, pour présenter mon projet un peu mieu, montrer mon tuto, faire une page bien propre pour les portrait made in moi-même (oui du franglais mais c'est pour cliché).

J'avais déjà prticipé à la création d'un site (pitié ne me demandez pas lequel) mais je dois avouer que j'ai tout oublié depuis. :timide: Si mes souvirs sont bons il faut faire des tableau ou un truc du genre.....bon j'ai téléchargé Izispot qui permetrait (c'est du conditonel pour l'instant avec tout ce que j'ai à faire mod, tuto et site je sait plus où par où commencer enfin c'est ma vie on s'en fout) je verrais bien ultérieurement pour y mettre mon tuto si un jour je fais un site.

Ensuite je ne critiquais pas les infos que tu m'as donné faut juste que je prenne mon courage à deux mains pour le corrigé c'est tout.

Quans à ma remarque pour les tuto c'était un cri du coeur adressé à tout le monde, tout ceux qui savent un peu bisouiller peuvent faire un tuto par définiton puisque même moi j'y suit arrivé. C'est pas les sujets qui manque j'ai pas dis qu'il fallais faire le même que le mien ça servirait à rien, mais je sais pas, heu éxpliquer comment faire les scripts de dialogues où de romance avec extension .baf, ça si vous voulez le faire vous gênez pas perso je peux pas le faire mon propre script ne marche pas.... :timide: la honte.....


Voilà c'est tout je parlais de personne en particulier, je parlais haut et fort mais je voulais forcer personne je t'ai pris pour exemple à cause de la taille de ton message c'est tout. (ça n'a rien de personnel)

Donc en éspérant que je me suis bien éxprimer de façon claire, (pour une fois ça serait bien) mes salutatons distinguées.....
Mais je préfère quand même dire gros bisous!! :k: :k:

Posté : mar. 13 juin 2006, 13:56
par xena
voilà j'ai modifié mon tuto si vous trouvez encore quequechose à redire....

Posté : sam. 11 nov. 2006, 12:52
par Maledarion
Bonjour! Je suis nouveau sur le forum et je suis un grand fan de la série Baldur's Gate et Ice Wind Dale depuis plusieurs années. Je me suis mis en tête récemment de créer mon propre mod (je n'ai aucune compétence en codage) ce qui m'amène ici. En effet, je souhaite créer un PNJ recrutable. Donc je suis à la lettre le tutorial de Xena cependant je me heurte à plusieurs problèmes...

1°) Dans l'étape 3 du tutorial, les fichier scripts, il est dit de créer un fichier d'extension .baf . Je souhaiterais savoir si il suffit juste d'ouvrir une fenêtre bloc note et de sauvegarder et rajouter .baf à la fin du nom ou bien si il faut un logiciel spécifique pour créer des documents .baf .

2°) J'ai télécharger Near Infinity. Cependant, lorsque je le dézip, je me retrouve avec une multitude de fichier .CLASS mais aucun fichier .exe ou .install. Je ne sais donc pas comment lancer ce logiciel! Ce qui est problématique car l'étape 4 du tutorial, le fichier CRE, requiert l'utilisation de Near Infinity.

Je m'excuse à l'avance pour mes questions de newbie en la matière :timide: .

N.B.: félicitation à ce tutorial de Xena, qui est une aide précieuse au néophyte que je suis!

Posté : sam. 11 nov. 2006, 13:51
par xena
Originally posted by Maledarion@samedi 11 novembre 2006 à 13:52
Bonjour! Je suis nouveau sur le forum et je suis un grand fan de la série Baldur's Gate et Ice Wind Dale depuis plusieurs années. Je me suis mis en tête récemment de créer mon propre mod (je n'ai aucune compétence en codage) ce qui m'amène ici. En effet, je souhaite créer un PNJ recrutable. Donc je suis à la lettre le tutorial de Xena cependant je me heurte à plusieurs problèmes...

1°) Dans l'étape 3 du tutorial, les fichier scripts, il est dit de créer un fichier d'extension .baf . Je souhaiterais savoir si il suffit juste d'ouvrir une fenêtre bloc note et de sauvegarder et rajouter .baf à la fin du nom ou bien si il faut un logiciel spécifique pour créer des documents .baf .

2°) J'ai télécharger Near Infinity. Cependant, lorsque je le dézip, je me retrouve avec une multitude de fichier .CLASS mais aucun fichier .exe ou .install. Je ne sais donc pas comment lancer ce logiciel! Ce qui est problématique car l'étape 4 du tutorial, le fichier CRE, requiert l'utilisation de Near Infinity.
[snapback]265624[/snapback]
  1. Il te suffis d'enregistrer ton fichier avec ton éditeur de texte, bloc note, context, enfin ce que tu as, soit quand tu l'enregistre soit plus tard tu rajoute .bar à la fin, c'est tout, il te suffis de faire de même avec toute les autres extensions faisable via les éditeurs de textes.
  2. Je ne sais pas où tu as télécharger near infinity mais selon l'endroit tu dois télécharger plusieurs applications. Ca fait super longtemps que je l'ai télécharger je ne sais plus ou moi je l'ai pris, mais ici tu devrais pouvoir le télécharger. Tu dois prendre les deux téléchargements puis les dezipper dans le dossier BG 1 ou 2 selon ton jeu t'as pas le même nom. Tu devrais y trouver une icône nommée tout bêtement near infinity, elle te permet de lancer le logiciel, il n'y à pas vraiment d'installation à faire si ce n'est mettre java à jour si besoin sinon near infinity ne marchera pas.
Je m'excuse à l'avance pour mes questions de newbie en la matière :timide: .

Tout ceux qui font du codage passe un moment ou un autre par là, mais la prochaine fois mets plutôt tes questions dans la section "les problèmes techniques", c'est la partie du forum consacrée à tout les problèmes en tout genre concernant le codage.
N.B.: félicitation à ce tutorial de Xena, qui est une aide précieuse au néophyte que je suis!

Merci ça fait toujours plaisir, peut être qu'un jour vous aurez un tuto pour la création de dialogue en général mais tout mes brouillons de tuto manque incroyablement de clarté. Faudra être patient(e).

Posté : dim. 12 nov. 2006, 23:58
par Isaya
Un fichier .jar est une "archive java" (Java ARchive). Pour pouvoir exécuter le programme que cela constitue, il faut impérativement installer le Java Runtime Environment (JRE) dont tu trouveras le lien sur le site indiqué par Xena. Celui-ci devrait associer les fichiers .jar à lui-même, ce qui fera qu'un double-click lancera automatiquement l'exécution du programme.

Il ne faut surtout pas chercher à désarchiver un fichier .jar avec un programme comme WinZip ! Si le fait de double-cliquer sur le fichier .jar ouvre ton programme de désarchivage, il te faut installer ou réinstaller le Java Runtime.

Pour Near Infinity et le Java Runtime, il faut faire attention car il faut télécharger le "bon" Java Runtime selon la version de Near Infinity :
- La version 1.32 (non beta) de Near Infinity fonctionne bien avec le JRE 1.4.2.
- La version 1.33 beta (accessible depuis la page de téléchargement du site de Near Infinity) fonctionne exclusivement avec le JRE 1.5.0. Malgré le nom "beta", cette version fonctionne très bien, en tout cas pour moi.

Posté : dim. 15 juil. 2007, 17:56
par Keita Aguma
Désolé Xena mais le tutorial est un peu confus pour moi... :..:
En fait c'est à peu près clair mais c'est pour l'histoire d'extension de fichier dans Near Infinity, je m'explique :
A noter que lorque vous sauvegardez votre texte dialogue il faut mettre comme extension .d
Pour le nom du fichier mettez le nom que vous voulez mais en extention .baf
Jusqu'ici tout va bien... :up: Dans conTEXT, je rajoute un .d et .baf à mes fichiers
Et lègeremment plus bas override sript, choisissez edit as string et mettez le nom du fichier dans lequel est codé l'arrivé de votre NPC
Et puis pour finir le dialog ben editez en sting et mettez le nom de votre fichier dialogue, le tout premier où votre NPC se présente
Là ça va pas :bye: , impossible de mettre le fichier puisque dans la liste proposée, les fichiers portent l'extension .bcs ou .dlg, et je n'ai pas mieux compris sur le reste du forum. Isaya a parlé de compilation mais je n'ai pas la moindre idée de ce que ça peut être...
1/ Et puis d'abord, à quoi sert weidu si on peut écrire tous les dialogues avec conTEXT ?
2/ Que veut dire "editer en string" ?(ensemble, évitons les blagues faciles)

ps : c'est vrai que les fautes d'aurtaugraffe freinent la comprehension, surtout quand ".baf" devient ".bar" et que "string" devient "sring" :mad: mais bon si je le fais remarquer , c'est que j'ai compris !

Posté : lun. 16 juil. 2007, 08:31
par xena
Originally posted by Keita Aguma
ps : c'est vrai que les fautes d'aurtaugraffe freinent la comprehension, surtout quand ".baf" devient ".bar" et que "string" devient "sring"  :mad:   mais bon si je le fais remarquer , c'est que j'ai compris !
Après des heures à écrire ce machin pour me faire dire que c'est toujours pas clair et qu'en plus les fautes c'est une horreur franchement j'aurai mieu fait de m'abstenir... :..:
Je répète que j'ai un legé soucis c'est que mes doigts vont moins vite que mon cerveau du coup des fois vous aves des mots qui sont un remix de deux :notme:
Je ferais bien la correction des fautes mais comme je connais ce que j'ai tapé par cœur maintenant j'ai du mal à m'arrêter pour lire les fautes :gign: , si un jour j'ai du courage c'est promis je relirais mais pour l'instant contentez-vous de ça et arrêtez de me gonfler pour les fautes ou je supprime les fautes et le tuto avec (ça sera plus rapide :eye: ) et je vous épingle sur les sites de tuto de weidu :diable: , je suis diabolique ? Oui ça pourrait me plaire :fleur:
Fin de la minute délire

Bon je ré explique : (encore :angry: )
  • Quand je parle des overide script des strings et tout ça c'est dans un fichier cre éditable via Near infinity, jusque là ça va ? Ne te pose pas encore la question de l'extension pour l'instant fait bêtement ce que je te dis.
  • Ensuite une question bien rigolote qui visiblement et la cause de tout tes maux : à quoi sert Weidu ? Ho malheureux si t'as pas compris ça tu risque pas d'aller bien loin alors laisse moi t'expliquer avec des extrêmes. Bon tu as vu comment écrire grosso modo un dialogue et un script bien :fleur: . Mais question comment tu crois que le jeu y sais que ton fichier est là ? Et tu crois que ton fichier il fonctionne avec des lettres ? Tss tss... Et là ça s'éclaircit ? Non :snif: ? Bon je continue : pour que ton mod marche il faut que tes fichiers sont répertorié dans des fichiers du jeu existants ou au moins dans ces "références". Qui plus es les fichiers que le jeu utilise sont sous forme de 00011100, et toi tu sais coder ça ?
    Donc : pour coder tu utilise le langage weidu avec des setglobal, do, then say...et pareil pour tes scripts ils sont en langage weidu.
    Bon weidu est une sorte de lecteur qui permet aussi de convertir les fichiers, en gros ton fichier .d en langage weidu il te le transforme en fichier .dlg. Bon et là ça va mieux ? Ca marche pareil pour .baf et .bcs.
    Mais ton petit exe Weidu y peut pas faire ça tout seul il lit pas directement un fichier .d et ce dis tiens si je le mettais là et comme ça...Non l'exe de Weidu lit un fichier .TP2, pour le faire c’est expliqué à la fin du tuto. Et c'est la qu'interviennent différentes commandes comme Compile qui transforme tes fichiers, extend_top qui ajoute à un fichier existant...
    Bon voilà pour Weidu et si t'as toujours pas compris ça je crois qu'il va te falloir de l'aide de "super codeur" et oui moi je crois n'être qu'un apprentie alors c'est tout dire...
  • Quand aux strings...comment expliquer ça...disons que tout les petit mots comme par exemple Bière noir dans les taverne où autre comme le nom des taverne (je prend ces exemples car c'est ce que je suis en train de coder), ou même les noms des PNJ ainsi que ce qui s'en réfère comme leur propre fichier de dialogue sont mis dans ce qu'on appelle des strings soit des références pour tel ou tel info. Selon ton jeu l'ordre où tu as installer tel ou tel mod pour un même mot le string de référence n'est pas le même mais ça c'est Weidu qui gère tout seul comme un grand.
Bon j'espère que c'est plus clair sinon je ne suis pas sûre de pouvoir faire mieux à moins que tu ne sois plus précis la prochaine fois.

Voilà !

Posté : dim. 22 juil. 2007, 21:47
par Keita Aguma
Merci beaucoup d'avoir pris le temps de me répondre. Ca commence à devenir assez clair, j'ai compris globalement le principe:346:: j'ai même réussi à créer un perso cet après midi, donc je reprends espoir (même si les dialogues étaient dans le désordre, mais bon on peut pas tout avoir :353 :) . Maintenant, je pense que le plus compliqué sera d'ecrire les dialogues, vu le nombre de variables à assimiler et à connaitre.

Tiens, pendant que j'y suis, j'avais lu qu'il y avait un endroit dans le répertoire du jeu qui listait toutes les conditions ( les trucs précédés de IF, genre ~NumTimesTalkedTo(0)~), mais où diantre est-il ?

Posté : ven. 27 juil. 2007, 19:55
par Isaya
Les éléments qui interviennent dans un IF sont généralement appelés "triggers" car ils permettent de "déclencher" (qui est grosso modo la traduction de "trig") des "actions". On trouve généralement ces "actions" dans les parties THEN des scripts (.baf) et dans les DO des dialogues (.d).

La bible pour ces trucs là est l'IESDP, dont tu trouveras un lien dans ce sujet. Il ne te reste plus qu'à consulter ceux qui concernent le jeu pour lequel tu veux faire un mod. :420:

Re : tuto NPC

Posté : dim. 09 déc. 2007, 09:56
par Armand
Excellent tutorial! J'ai finalement réussi à créer mon premier pnj (ça m'a pris une bonne partie de la nuit d'ailleurs). :taunt:

Re : tuto NPC

Posté : dim. 09 déc. 2007, 16:12
par xena
Merci ça fait toujours plaisir :ok: ! Si tu as des problèmes n'hésites pas à poster un message ou àenvoyer un mp :read: !

Re : tuto NPC

Posté : lun. 10 déc. 2007, 20:54
par Armand
Je crois que j'ai parlé trop vite mon mod s'installe bien mais dans le jeu il n'apparait pas. J'ai essayé de changer de zone pour voir mais j'ai le même résultat. Même en redémarant le jeu depuis le début ça fonctionne pas.
Je te montre comment je m'y suis pris. Pour info le dossier de mon mod s'appelle Armand et j'ai fait juste un pnj normal (pas recrutable) car pour commencer j'ai voulu faire au plus simple.
S!Armand.d :

BEGIN ~ChArmand~

IF ~NumTimesTalkedTo(0)~ THEN BEGIN Rencontre
SAY ~A qui ai-je l'honneur?~
IF ~~ THEN REPLY ~Je m'appelle Senia! Enchanté de faire votre connaissance~ GOTO Poli
IF ~~ THEN REPLY ~Je viens vous tuer infame créature!~ GOTO Malpoli
END

IF ~~ THEN BEGIN Poli
SAY ~Enchanté Senia! Je vais devoir vous laisser maintenant~
IF ~~ THEN REPLY ~Mais...~EXIT
END

IF ~~ THEN BEGIN Malpoli
SAY ~Tu vas tater de mes sorts enflure!~
IF ~~ THEN REPLY ~Viens y avorton!~EXIT
END


S!Armand.baf :

IF
See([PC])
NumTimesTalkedTo(0)
THEN
RESPONSE #100
Dialogue(Nearest([PC]))
END

IF
Global("ChArmandExists","AR0800",0)
THEN
RESPONSE #100
SetGlobal("ChArmandExists","AR0800",1)
CreateCreature("ChArmand",[1836.2164],1)
END


Setup-Armand.tp2 :

BACKUP ~Armand/backup~
AUTHOR ~Séraphin~

BEGIN ~S!Armand~

COPY ~Armand/CF28L.bmp~ ~override/CF28L.bmp~

COPY ~Armand/CF28S.bmp~ ~override/CF28S.bmp~

COPY ~Armand/€€ArmandDS.cre~ ~override/€€ArmandDS.cre~
SAY NAME1 ~Armand~
SAY NAME2 ~Armand~

COMPILE ~Armand/S!Armand.d~
COMPILE ~Armand/S!Armand.baf~

EXTEND_BOTTOM ~AR0800.bcs~ ~Armand/S!Armand.baf~
Voila si tu pouvais m'aider parce que j'ai beau tout retourner dans tous les sens, j'y arrive pas.

Re : tuto NPC

Posté : jeu. 13 déc. 2007, 13:34
par Vel Cheran
Merci pour le tuto, c'est vraiment super ;)
J'ai une question : quelle commande faut-il taper dans le CONtext pour afficher le nom du PJ ? Par exemple pour avoir comme possibilité de réponse "je m'appelle [nom du PJ]"...
2e question : quelle syntaxe faut-il utiliser pour mettre deux conditions après un IF ? faut-il écrire classiquement IF ~condition1 AND condition2~ ?

Re : tuto NPC

Posté : jeu. 13 déc. 2007, 13:58
par Akadis
Il faut mettre <CHARNAME> en reprenant ton exemple ça donne :
~je m'appelle <CHARNAME>~

Re : tuto NPC

Posté : jeu. 13 déc. 2007, 14:10
par Vel Cheran
Ok merci, c'est bien ce que je pensais ;)
Et sinon comment faut-il faire pour mettre deux conditions après un IF ? Utiliser un AND comme dans la plupart des langages informatiques ?
Je continue mes questions (oui je sais je suis relou :D ...), comment écrire la condition "intelligence du player1 doit être supérieure ou égale à 14" ?

Re : tuto NPC

Posté : jeu. 13 déc. 2007, 15:11
par Akadis
Je te propose de poser tes prochaines sur le sous forum prévus à cet effet : Problèmes Techniques pour ne pas polluer le tuto de Xena. ^^

Pour le ET logique il est implicite, c'est à dire que si tu met les 2 conditions (ou plus) à la suite il considère qu'il faut qu'elles soient toutes remplies. Pour l'intelligence minimale c'est CheckStatGT(Player1,13,INT).

Voilà un exemple qui résume tes 2 questions. Pour coder :
Si
Player1 a entre 14 et 20 en intelligence
alors...

Code : Tout sélectionner

IF
~CheckStatGT(Player1,13,INT)
CheckStatLT(Player1,21,INT)~ 
THEN ...
Non je ne me suis pas trompé c'est bien 13 et 21 (et pas 14 et 20) . En effet xxxxGT et xxxxLT signifient respectivement STRICTEMENT supérieur et STRICTEMENT inférieur.
J'ai mis xxxxGT et xxxxLT parce que ce genre de trigger existent pour pas mal de caractéristiques comme les points de vie (HPGT(...) HPLT(...)), les niveaux (LevelGT(...) LevelLT()) etc.

Il y a une doc qui est indispensable quand tu moddes c'est IESDP (Infinity Engine Structures Description Project) elle décrit (entre autres) tous les triggers et toutes les actions.
Pour ce qui est de la syntaxe je te conseille à la doc du Weidu. :read:

Mais n'hésite pas à poser des questions si tu as un doute, je t'ai juste donné les liens vers les docs pour que tu puisses avancer sans être obligé d'attendre une réponse sur le forum.

Re : tuto NPC

Posté : ven. 04 janv. 2008, 18:46
par turim
Je me suis lancé dans la création d'un PNJ pour tester le tuto mais j'ai un problème a ce niveau :
Lancez une partie, créez votre peso principal comme si c'était votre PNJ. Inutile de rédiger le bio elle ne sera pas conservée.
Modifiez-le avec SK.
Une fois que vous êtes content du fichier CHR exportez-le en cre c'est dans la barre de tâche de SK.

Tout va bien jusque la.

Ensuite il est marqué :
Allumez Near infinity
Ici nous nommerons notre fichier cre L#TheNPC, il faut aussi qu'il soit inférieur à 7 ou 8 caractères

Là ça se complique un tout petit peu allez dans override et trouvez votre fichier cre
Allez dans edit.

Je ne comprend pas comment on ouvre le fichier cre avec NI.

J'allume NI puis je fait quoi ??

Je cherche le fichier L#NPC avec NI ? Quel option ?

Désolé si ma question parait bête mais je bloque dessus.


EDIT : C'est bon j'ai trouvé ! Je n'avais pas dit au programme que le jeu était BG2 lol (boulet)

Re : tuto NPC

Posté : ven. 04 janv. 2008, 21:12
par turim
Dsl pour le double post mais me voila encore bloqué.

Je ne comprend pas les parties suivantes :
Premièrement
Votre programme weidu mettez-le en dehors de votre dossier et appelez-le comme vous voulez

Programme weidu ?? Pour l'instant j'ai créé 3 fichier.
L#NPC.cre
NPC.baf
NPC.d

Mettre en dehors de quel dossier ?
Ouvrez un fichier texte sauvegardez-le avec l'extension .tp2 attention le nom de ce fichier doit être le même que celui du programme weidu
Ok si je comprend l'idée de prog weidu.
Backup

Il faut impérativement créer un dossier Backup, il ne faut rien y mettre mais y faut le faire!

Et oui en gros c'est l'historique des installations et désinstallations du mod si vous voulez que cela se fasse proprement il faut ce dossier
Je le cré ou le dossier backup ?? Dans le dossier qui contient NPC.d et NPC.baf ? ce dossier doit être mis dans le jeu ??

Désolé mais je suis perdu sur la fin la.

Et enfin
BACKUP ~lenomdevotredossier\backup~
AUTHOR ~Xena~ //mettez votre petit nom

BEGIN ~The NPC~ //ce que vous voulez

REQUIRE_FILE ~Data/25Dialog.bif~ ~You do not appear to have TOB installed.~ //vous n'êtes pas obligé de mettre ça c'est juste pour vérifier que TOB est installé s'il ne l'est pas l'installation s'arrêterai mais si vous faite un mod pour BG 2 seul ne le mettez pas

COPY ~nomdudossier\nomdusousdossier\lenomdevotreimageL.bmp~ ~Override\lenomdevotreimageL.bmp~ //ça c'est pour le grand portrait
COPY ~nomdudossier\nomdusousdossier\lenomdevotreimageS.bmp~ ~Override\lenomdevotreimageS.bmp~ //votre deuxième image
COPY ~Trriviahn\cre\L#TheNPC.cre~ ~Override\L#TheNPC.cre~
SAY NAME1 ~NPC~ //ce sont les noms de votre perso
SAY NAME2 ~NPC~
SAY BIO ~?~ // là c'est pour la bio du perso


COMPILE ~lenomdudossier\lenomdusousdossier\lenomdufichierbaf.baf~

COMPILE ~lenomdudossier\lenomdusousdossier\lenomdufichierdialogue.d~

EXTEND_bottom~Ar0700.bcs~ ~lenomdudossier\lenomdusousdossier\Ar0700.baf~ //c'est pour ajouter votre script à la zone et créé votre perso
// Vous pouvez aussi mettre EXTEND-top c'est pareil

//Pour ce qui suit c'est pour lier les différents fichiers dialogues entre eux
APPEND~pdialog.2da~
~TheNPC TheNPCP TheNPCJ TheNPCD TheNPC25P TheNPC25J TheNPC25D TheNPC25~
UNLESS~TheNPC~ // UNLESS sauf si TheNPC n'est pas présent

APPEND~interdia.2Da~
~TheNPC TheNPCB TheNPCB25~
UNLESS~TheNPC~
//d'après Isaya y'a un truc qui cloche ici mais je ne sais pas ce que c'est.

Je l'écrit à quel endroit ??

Je ne comprend pas les ~lenomdudossier\lenomdusousdossier\lenomdufichierbaf.baf~
Je doit metre le nom de quel dossier ??

Re : tuto NPC

Posté : ven. 04 janv. 2008, 21:56
par Akadis
Supposons que tu es en train de faire le mod Turim NPC
et que tes trois fichiers s'appellent CreTurim.cre, BafTurim.baf, DTurim.d

Quand Xena dit
Premièrement
Votre programme weidu mettez-le en dehors de votre dossier et appelez-le comme vous voulez
Il est possible qu'on puisse donne le nom qu'on veuille mais tout les moddeurs suivent une norme : préfixer le nom par Setup-
Dans le cas de mon exemple ça donne :
  • Tu copiee le fichier Weidu.exe dans ton dossier d'installation de BG2 et tu le renommes Setup-Turim.exe
  • Toujours dans ton dossier d'installation de BG2, tu crées un dossier Turim dans lequel tu met tes 3 fichiers cre, baf et d.
  • Dans le dossier Turim tu crées le sous dossier backup.
  • Dans le dossier Turim tu crées un fichier texte que tu renommes Setup-Turim.tp2 et c'est dedans que tu met ta 2è citation.

Enfin toujours dans le cas de mon exemple
~lenomdudossier\lenomdusousdossier\lenomdufichierbaf.baf~
donne
~Turim\BafTurim.baf~

Il n'y pas de sous-dossier car je t'ai dit de mettre tes baf, cre et d directement dans Turim.

Je sais pas s j'ai été clair :whistle3:

Re : tuto NPC

Posté : sam. 05 janv. 2008, 19:03
par turim
Oui très clair, merci beaucoup.

Mais j'ai un autre problème. Une fois que j'ai fait les edit indiqué par xena dans NI (sons, string des fichier dialogues et de recrutement, etc) je ne peut plus ouvrir ma créature avec NI. Je visualise le fichier mais quand je clic dessus il ne se passe rien.
A noter que le fichier cre est toujours modifiable avec sk.

Re : tuto NPC

Posté : dim. 06 janv. 2008, 00:08
par Akadis
Etrange, je voudrais bien que tu m'envoie le fichier cre pour voir d'où viens le problème. Mais vu que tu n'acceptes ni les MPs, ni les mails je ne peux te faire parvenir mon adresse email pour que tu m'envoie ce fichier... Je peux pas la poster ici (à la vue de tous :$ ) , de toute façon c'est interdit ^^ .