Interaction GetStringByStrRef et fichier dialog.tlk

Répondre
Partager Rechercher
Quelqu'un pourrait il m'expliquer (enfin je dirais nous expliquer, je ne pense pas être le seul interessé , comment marche le fichier dialog.tlk, et comment peut on importer une chaine avec GetStringByStrRef (ma question consiste surtout à savoir a quoi correspond l'argument nStrRef)

Merci de votre aide
Ben le fichier Dialog.tlk fonctionne par entrées (tu le sais peut-être déjà), et chaque entrée contient une chaîne de caractères et a un numéro d'ID (La StrRef très probablement).

Tu peux explorer le fichier Dialog.tlk avec Zoligato NwN Viewer (il y a sûrement d'autres outils comme celui de Bioware ou d'autres créés pour l'Infinity Engine mais le Zoligato est bien)

D'ailleurs un certain Kroll (miriandel ?) avait dit qu'il était possible de stocker des informations dans le dialog.tlk grâce à cette fonction mais je vois pas trop comment vu que c'est un Get()

Voilà
Je crois que ce que Miri voulait dire par là c'était que le dialog.tlk était une entrée pour NWN, de la même façon que le log était une sortie, et que si NWN lâchait le dialog.tlk de temps en temps et consultait bien le fichier d'origine lorsqu'on faisait un GetStringByStrRef(), on pouvait se servir du couple log/dialog.tlk pour établir un dialogue entre NWN et un logiciel extérieur.

Il était en tout cas certain (et je le rejoins sur ce point), qu'une manipulation avisée du dialog.tlk aurait permis une automatisation du PWUM, mais ceci se passait en des temps très ancien, avant l'apparition du PUMA ou du NWNX, enfin ces petites merveilles qui nous rendent la permanence plus facile !
C'est faisable, je crois, vu que c'est exploite (me demandez pas comment... )

Toutefois, l'exploitation du dialog.tlk me gene dans le sens ou elle empeche la mise a jour facile de NwN, et empeche l'emploi plug n' play d'un module ou d'un hak...
Oui, j'attends impatiemment le jour où l'on pourra mettre le dialog.tlk dans un hakpack, vu que c'est grâce à lui que sont gérés les tokens standard. Je pourrai alors me pencher de plus près sur la personnalisation poussée du système de tokens dans les dialogues, peut-être via un exécutable indépendant.
Enfin, on verra...
Code PHP:

2DA V2.0

    Token               ActionCode      
Default     StrRef1     StrRef2     StrRef3     StrRef4     Category
1   Alignment           11              5180        265         266         264         
-1          0
2   alignment           12              5180        4959        4960        4955        
-1          0
3   Boy
/Girl            1               -1          4860        4861        -1          -1          0
4   boy
/girl            1               -1          4862        4863        -1          -1          0
5   Brother
/Sister      1               -1          4864        4865        -1          -1          0
6   brother
/sister      1               -1          4866        4867        -1          -1          0
7   
Class               8               5172        -1          -1          -1          -1          0
8   
class               9               5173        -1          -1          -1          -1          0
9   Day
/Night           18              -1          4962        4961        4961        4961        1
10  day
/night           18              -1          4964        4963        4963        4963        1
11  Deity               0               5180        
-1          -1          -1          -1          0
12  FirstName           3               5180        
-1          -1          -1          -1          0
13  FullName            2               5180        
-1          -1          -1          -1          0
14  GameMonth           17              
-1          -1          -1          -1          -1          1
15  GameTime            16              
-1          -1          -1          -1          -1          1
16  GameYear            15              
-1          -1          -1          -1          -1          1
17  Good
/Evil           14              5180        265         264         266         -1          0
18  good
/evil           14              5180        4959        4955        4960        -1          0
19  He
/She              1               -1          4869        4870        -1          -1          0
20  he
/she              1               -1          4871        4872        -1          -1          0
21  Him
/Her             1               -1          4873        4874        -1          -1          0
22  him
/her             1               -1          4875        4876        -1          -1          0
23  His
/Her             1               -1          4877        4874        -1          -1          0
24  his
/her             1               -1          4878        4876        -1          -1          0
25  His
/Hers            1               -1          4877        4879        -1          -1          0
26  his
/hers            1               -1          4878        4880        -1          -1          0
27  Lad
/Lass            1               -1          4881        4882        -1          -1          0
28  lad
/lass            1               -1          4883        4884        -1          -1          0
29  LastName            4               5180        
-1          -1          -1          -1          0
30  Lawful
/Chaotic      13              5180        268         264         267         -1          0
31  lawful
/chaotic      13              5180        4954        4955        4956        -1          0
32  Law
/Chaos           13              5180        4943        264         4944        -1          0
33  law
/chaos           13              5180        4957        4955        4958        -1          0
34  Level               10              5177        
-1          -1          -1          -1          1
35  Lord
/Lady           1               -1          4885        4886        -1          -1          0
36  lord
/lady           1               -1          4887        4888        -1          -1          0
37  Male
/Female         1               -1          156         157         -1          -1          0
38  male
/female         1               -1          4924        4925        -1          -1          0
39  Man
/Woman           1               -1          4926        4927        -1          -1          0
40  man
/woman           1               -1          4928        4929        -1          -1          0
41  Master
/Mistress     1               -1          4930        4931        -1          -1          0
42  master
/mistress     1               -1          4932        4933        -1          -1          0
43  Mister
/Missus       1               -1          4934        4935        -1          -1          0
44  mister
/missus       1               -1          4936        4937        -1          -1          0
45  PlayerName          23              5180        
-1          -1          -1          -1          1
46  QuarterDay          18              
-1          4962        4966        4967        4968        1
47  quarterday          18              
-1          4964        4970        4971        4972        1
48  Race                5               5175        
-1          -1          -1          -1          1
49  race                6               5176        
-1          -1          -1          -1          1
50  Sir
/Madam           1               -1          4939        4940        -1          -1          0
51  sir
/madam           1               -1          4941        4942        -1          -1          0
52  StartAction         19              
-1          -1          -1          -1          -1          1
53  StartCheck          20              
-1          -1          -1          -1          -1          1
54  StartHighlight      21              
-1          -1          -1          -1          -1          1
55  
/Start              22              -1          -1          -1          -1          -1          1
56  Subrace             7               5175        
-1          -1          -1          -1          1 
Je suis pas sur qu'il y ai besoin de dialog.tlk, mais je sais pas ce que tu veux
Citation :
Toutefois, l'exploitation du dialog.tlk me gene dans le sens ou elle empeche la mise a jour facile de NwN, et empeche l'emploi plug n' play d'un module ou d'un hak...
Euh.... dois je en déduire que le dialog.tlk marche au niveau client O_o..... Un peu étrange ???

bon ben Ormus merci, tout doit être basé sur ce numero d'id, je vais orienter mes recherches la dessus

Citation :
Je crois que ce que Miri voulait dire par là c'était que le dialog.tlk était une entrée pour NWN, de la même façon que le log était une sortie, et que si NWN lâchait le dialog.tlk de temps en temps et consultait bien le fichier d'origine lorsqu'on faisait un GetStringByStrRef(), on pouvait se servir du couple log/dialog.tlk pour établir un dialogue entre NWN et un logiciel extérieur.
Gnarf Gnarf, a ton avis où je voulais en venir avec le dialog.tlk ? :bouffon:
Oui, le dialog.tlk doit fonctionner au niveau client, presque sûr !

@ eMRaistlin > regarde, il y a des trucs qui s'appellent StrRef, je vois pas ce dont il pourrait s'agir à part du dialog.tlk. D'autant plus que lorsqu'on change de dialog.tlk, on change de tokens, donc...
L'idée c'est d'ajouter des tokens standard à mettre dans un dialogue, et non d'utiliser des customs tokens tout moche ! Même si avec ma bibliothèque, les customs tokens gagnent une vraie flexibilité, ce n'est pas l'idéal point de vue compréhension : une phrase du type "Bonjour mon ami<CUSTOM666> <FullName>" est moins compréhensible qu'une phrase "Bonjour mon ami</e> <FullName>", non ?
ben j'ai vraiment du mal a comprendre comment ca marche si ca marche au niveau client O_o

les scripts sont tous effectués au niveau serveur. Donc la commande GetStringByStrRef va chercher dans le dialog.tlk du client ? mais quel client ?
Je n'ai jamais essayé personnelement, mais je ne voit pas trop comment ca peux fonctionner au niveau client un truc comme ca...
Hum non, je me suis mal fait comprendre : les scripts utilisent toujours le dialog.tlk du serveur, mais le dialog.tlk permet en fait une localisation plus facile, et beaucoup de texte passe en fait par le dialog.tlk : au niveau client, cela évite de télécharger tous les textes qui se trouvent dans le module, puisqu'une bonne part est déjà répertorié dans le dialog et localisé en plus !

Mais les scripts utilisent évidemment le dialog.tlk du serveur, il faut faire la différence entre les emplois automatiques du dialog.tlk (par exemple il serait curieux que les textes des menus côté client soit téléchargé à partir du dialog du serveur ) et les emplois dans les scripts.
ahhhhh ok la je comprend mieux

pour un custom dialog.tlk, je sais pas a quel point t'y tient, mais y'a toujours moyen de lancer ton module avec un .exe a part qui modifie le fichier juste avant de lancer le module et qui le restaure en quittant. C'est comme ca que je comptais faire pour 4eage (enfin en un peu plus complexe )
oui, il y a un StrRef, comme dans tout les 2da... mais ne pas le renseigner ne veut pas dire ne pas l'utiliser...

C'est juste une correspondance vers une liste de description/noms afin que ca s'affiche bien dans les editeurs/ingame.


@azrael : oui, si tu donne ton dialog.tlk a un joueur, il verra par example le nom des sorts que tu as cree, au lieu de voir un BadStrRef. (enfin, si tu as modifie ton tlk avant, bien sur ^^)
Citation :
oui, il y a un StrRef, comme dans tout les 2da... mais ne pas le renseigner ne veut pas dire ne pas l'utiliser...
Hum, je ne comprend pas bien ce que tu veux dire, c'est quoi cette triple négation...

De toute façon j'ai vérifié, les strref renvoient bien à des lignes valides dans le dialog.tlk, et représentent bien les valeurs possibles pour le token.
Seul blanc actuellement : que représente l'ActionCode ?
Je vois bien qu'il doit s'agir de fonctions, renvoyant soit un nombre, soit une string (lorsque les strref 1 à 4 valent -1). Mais je ne voit pas bien où ces fonctions se trouvent, je crains qu'elles ne soient pas du tout accessible et nous serions alors limité aux actioncode déjà présents. Cela nous permettrait déjà d'avoir une infinité de tokens basés sur le sexe, puisque l'actioncode 1 renvoie visiblement la strref 1 si le PJ est masculin et la strref2 si le PJ est féminin.
Ceci dans la perspective d'un dialog.tlk autorisé dans les hakpack (@ Azrael > non je ne peux pas utiliser la solution que tu me propose puisque l'intérêt est justement de pouvoir diffuser des modules comprenant ce dialog.tlk modifié, pour ce faire, il vaut mieux que la procédure soit la plus simple possible, même si on peut envisager ta solution dans une communauté bien établie).
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés