JeuxOnLineForumsPlusConnectés : 796 (sites) | 1461 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Modifier les descriptions des sorts RSS
   
Répondre
Partager Outils Rechercher
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
Pour ce qui est des sorts, personelement, j'en ai crée qui n'ont rien a voir avec DD... Le but n'etant vraisemblablement pas que je vous mette tel quel les sorts de NwNRo (surtout que vous n'utilisez pas la caracteristique "Attaque Magique"...)

Mais je peux peut etre vous eviter des ecueils que j'ai dut contourner (surtout avec les GetFirstObjectInArea qui ont besoin d'un Delay pour que tout fonctionne correctement) ou bien comment créer des parchemins de sorts avec les icones idoines (car si on doit avoir unBadStrRef, on peut quand meme avoir des sorts avec des icones bien specifiques ^^).

Pour les composantes, zunder, perso, j'utilise un SendMessageToObject qui indique que le sort ne peut pas fonctionner sans tel ou tel objet (et le parchemin en fait mention aussi). Du coup, le mage qui le lance le sait des le premier lancer...
(ou il le sait par le parchemin s'il l'a appris de la.)

Pour les Sorciers, c'est plus embetants...
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
Moi je veux bien que tu m'explique comment barrer pour éviter les écueils

Surtout pour cette histoire de GetFirstObjectInArea, là tu me fais peur (parce que perso m'en sert pour un truc qui marche pas pour l'instant alors si ca pouvait m'éviter de passer mon week end à criser )

Et tant que j'y suis, puisque tu parle de parchemins, comment qu'est ce que je pourrais faire pour pas qu'ils ait un moche carré blanc (très moche) si je leur met pas d'effet autre que "lancer sort : pouvoir unique" ?
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Citation:
suite aux explications de sire pompom
on copie le/les dialog(F).tlk dans le repertoire dup et on les renomme de la meme maniere que le fichier tlk modifié (dup) que l'on aura mis? j'ai bon ?
Non pas tout à fait...

Bon j'ai écris ce truc hier, très tard, de retour d'un soirée arrosée. Je me suis retenu de le poster pour pouvoir le lire avec les idées claires (je ne suis pas sûr que ça décrive très bien mon état du jour...). Voilà ce que celà donne :

dialog.tlk et dialogF.tlk faut pas y toucher, mon programme s'en charge ( il les sauvegarde dans le répertoire \Dup effectivement, c'est peut-être mon readme incompréhensible et trop détaillé qui a semé la confusion là)


imaginons que nous voulions créer un hack tout simple, un seul sort, le nom , "Kill Everyone In the Module", la description, "Kills everyone in the module".

Les étapes:

*****ETAPE 1 créer le .tlk contenant les entrées ajoutées:
Je conseille l'éditeur de The Other pour ça, un peu lent, il y a un petit bug technique qui ne se voit pas, mais il semble sans conséquence, dans l'ensemble c'est le meilleur éditeur parmi ceux qui existent je pense).
Les entrées:
0: Kill Everyone In the Module
1: Kills everyone in the module

On sauvegarde sous le nom spelldup.tlk

*****ETAPE 2 créer le .dup
le fichier .dup , n'est ni plus ni moins qu'un hackpack contenant tout les 2da ou autre ayant des références au tlk maison

On rajoute le sort dans spells.2da
C'est pour les colonnes Name et description que l'on va faire usage des références relatives:
"!" dit au programme qu'il s'agit d'une entrée de spellsdup.tlk et non de dialog.tlk

Name: "!0"

Description: "!1"

Mettons le nouveau spells.2da dans un hackpak que nous appellerons spelldup.hak (grâce à nwhack.exe)

Renommons spelldup.hak en spelldup.dup, parce que .

*****ETAPE 3 Mettre les deux fichiers dans \NNW\Dup (le programme crée ce répertoire la première fois qu'il est lancé)

*****ETAPE 4 Changer la description anglaise du module dans lequel on veut utiliser ce sort.
On rajoute au début de cette dernière (sans espace avant le "[") "[ spelldup ]
Nous obtenons cette description par exemple:
[ spelldup ] Un module de test pour dup.exe .

Fermons le toolset.
Note les descriptions autres que la description anglaise seront ignorées par le programme.


*****ETAPE 5 Associer le hakpack que le programme génère à partir du .dup au module

Lancer le programme. Sélectionner le module dans la liste et appuyer sur "Lancer le Toolset".
Le module s'ouvre dans le Toolset.

Allons dans le panneau custom content (là ou l'on choisi les hakpacks), un nouveau .hak est disponible: spelldup.hak, sélectionnons le et ajoutons le au module.

Le nouveau sort apparaît dans le module, avec le bon nom et la bonne description .

c'est fini.

***** Coté joueur

Ensuite, il suffira à un joueur de mettre les fichiers spelldup.dup et spelldup.tlk dans \Dup (comme l'on ferait avec un hakpack) , le fichier .mod dans \modules, puis de passer par le programme pour lancer le module (en choisissant "Lancer NWN") et tout marchera dans le jeu, même après un patch de Bioware.

Le builder lui même utilisera ce programme pour modifier et tester le module: lancer le programme, choisir le module dans la liste, et appuyer sur "Lancer le toolset"

***** Modifier le "duppack"
on commence par ajouter de nouvelles entrées à spelldup.tlk si nécessaire.
On renomme spelldup.dup en spelldup.dup.hak, pour pouvoir l'ouvrir dans nwhak.exe.
On modifie les 2da ou autre de façon adéquate, éventuellement on ajoute de nouveaux fichiers.

On enlève le ".hak" à la fin, nous revoila avec un fichier dup, fini.
Plus besoin de toucher au module, comme pour un hackpack, l'association des fichiers est faite une fois pour toute.

Pour donner une idée, j'ai fais la conversion du pcpack de DLA , ça m'a pris à peine une demi heure, le plus long ayant été le copier coller des entrées ajoutées à dialog.tlk dans un nouveau fichier, et la création du module de test (essentiel pour que mon programme tourne).
Convertir racialtype.2da m'a pros environ une minute (ce n'est pas un exagération ).

Voilà. Si vous voulez je pourrais faire cette démo, ceci dit il y aurait plus à gagner à regarder la conversion du pcpackV1 que j'ai mis en téléchargement (merci à Halfelf et Papermonk au fait).

Je déconseille de modifier des entrées de dialog.tlk, tu devras le refaire après chaque patch Bioware après. Et surtout un joueur utilisant un tlk ainsi modifié et l'utilisant dans la campagne officielle verra les modifications. Il est plus propre à mon avis de rajouter les entrées modifiées à la fin de dialog.tlk, et de rediriger les descriptions des sorts sur ces entrées via un hackpack (ou un dup ) .
Lien direct vers le message - Vieux
Avatar de Nek
Nek
Alpha & Oméga
 
Avatar de Nek
 
Si je ne m'abuse l'icône d'un sort/parchemin peut être configurée dans le 2da. (Mais pas sur, je ne peux pas vérifier d'où je suis).
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
tout a fait, delphinea : tu fais un icone en 24*24*24 .tga, et tu le met dans le spell.2da, afin de ne pas avoir un carre blanc.

Quand au getFirstObjectInShape, le truc, c'est qu'il faut mettre des delayCommand sur toutes les actions que tu fais dans la "forme" que tu as choisi, afin de ne pas modifier l'ordonnancement des objets, sinon, tu risque soit le plantage, soit la boucle infinie... Donc, des que tu Cree, detruit ou tue, ou que tu deplace un object (VFX compris, puisque les effect sont des "objects", a priori), tu met un delayCommand dedans.

Pour l'explication plus scriptée, je te conseille de t'inspirer du nw_s0_fireball qui contient un Delay calculé par la distance, ce qui permet d'eviter l'ecueil du GetFirstInShape, tout en donnant un resolution plus en temps réel...
Lien direct vers le message - Vieux
Avatar de Zunzun
Zunzun
Alpha & Oméga
 
Avatar de Zunzun
 
Petite question stupide a propos des dup : on fait comment pour les modules online ou le joueur est pas sensé avoir le mod sur son disque ?
Lien direct vers le message - Vieux
Avatar de Solaufein
Solaufein
Alpha & Oméga
 
Avatar de Solaufein
 
Citation:
Provient du message de Zunder
Petite question stupide a propos des dup : on fait comment pour les modules online ou le joueur est pas sensé avoir le mod sur son disque ?
Heu... ma question va peut-être paraitre saugrenue mais... Qu'est ce que tu entends par "les dup" ?
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
Citation:
Provient du message de Solaufein
Heu... ma question va peut-être paraitre saugrenue mais... Qu'est ce que tu entends par "les dup" ?
C'est le format des fichiers generés par la machine infernale du Professeur PomPom pour permettre d'avoir des dialog.tlk associés a des modules.

Pour plus de details sur ce truc super interessant, lire le pavé ci dessus.(et vi... on a helas rien sans rien )
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Ok complettement stupide ma réponse donc je l'efface, je suis un peu dans le pâté. Il y a une solution relativement simple, mais pas du tout satisfaisante, franchement je ne vois pas comment faire mieux (en fait je vois *plus ou moins* ,mais je ne sais pas trop si j'en suis capable pour l'instant).

Je te donne la solution tout de suite: faire un module bidon avec juste une zone microset, qui reprend la même description, et probablement le même nom, même si cela n'a aucune importance, que l'original et le mettre avec le dup et le tlk. Le module fera 29k0 environ donc ce n'est pas un drame. Du coup le joueur aura le module dans sa liste, et pourra le lancer pour jouer à l'original. Le launcher du programme ne passe aucun paramettre à nwmain.exe donc ceci ne pose aucun problème, une fois connecté au serveur le joueur jouera au bon module.


Pour l'instant je n'ai pas vraiment de solution propre, pour être tout à fait honnête, mon programme était plutôt dirigé vers les modules SP ou les MP entre amis étant donné que Revinor a fait un truc qui marche très bien pour les modules persistants, sur un principe assez différent. Tu me dira que même pour les MPs entre amis il n'y a aucune raison que tout le monde ai le module.
Je ne vais pas m'embarquer dans une solution bidouille du type distribuer un fichier supplémentaire plus simple qu'un .mod, par exemple fichier texte, car à terme ce serait contre productif.
Idéalement il faudrait faire un véritable launcher: on se connecte au serveur et celui ci renvoie la description du module. Je pense que c'est possible grace au protocole Gamespy, car la description du module s'affiche dans les "chambres" mais je ne sais pas comment faire (les protocoles internet c'est pas trop mon truc) . Il faut aussi que la description renvoyée soit systématiquement la description anglaise, là aussi je pense que c'est possible, m'enfin on sait jamais. Dès que j'aurais un peu plus de temps j'essaierai d'implémenter cela.
Lien direct vers le message - Vieux
Avatar de Zunzun
Zunzun
Alpha & Oméga
 
Avatar de Zunzun
 
Ma question c'est : si le joueur n'a pas le module sur son disque, mais s'il possède pouet.tlk et pouet.dup, est-il quand meme possible que le jeu utilise le tlk et le dup ? A ce que j'ai compris de tes explications ca m'a pas l'air trop possible, mais je reconnais n'avoir pas tout compris quant au fonctionnement du machin
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Pardon Zunder j'ai édité au dessus...
Lien direct vers le message - Vieux
Avatar de Zunzun
Zunzun
Alpha & Oméga
 
Avatar de Zunzun
 
Sinon j'ai une autre ptite idée : si pour se connecter au serveur on utilise un launcher, ca doit etre possible de rajouter dans le launcher qq ptites lignes qui effectuent automatiquement la bidouille non ? En gros, que ca bidouille automatiquement avec pouet.dup et pouet.tlk par exemple
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Je ne te suis pas trop là...
Le problème c'est qu'il faut aller chercher le nom des couples dup/tlk à traiter quelque part, cette liste change pour chaque module. pour l'instant c'est dans la description du module que cela se passe. Si le joueur n'a pas le module sur son disque, deux possibilité: aller chercher l'info là ou le module se trouve, sur le serveur, ou bien dupliquer l'info sur le disque du joueur, via le module bidon, ou éventuellement un autre fichier mais on y gagnerait pas grand chose.

Tu veux dire faire entrer le nom des fichiers au joueur à la main dans le programme? c'est toujours une possibilité effectivement... Je ferais ça en dernier recours. C'est pas très compliqué, il faut juste que j'écrive la fonction adéquate pour traiter les noms, et que je rajoute un champ de texte à la GUI évidemment.

Pour l'histoire d'obtenir la description par le protocole internet, c'est possible, le script PHP de Papillon le fait, ceci dit je ne sais pas comment le faire en C... Je pense que l'API WIN32 le permet mais la doc n'est pas toujours très facile à manier, et malheureusement le bouquin que l'on m'a passé ne mentionne rien de tout cela...

Le problème c'est que le joueur devra connaître l'IP, ou une DNS, du serveur auquel il veut se connecter.
Lien direct vers le message - Vieux
Avatar de Zunzun
Zunzun
Alpha & Oméga
 
Avatar de Zunzun
 
En fait je pensais a un truc encore plus bête : un programme qui utilise toujours le meme couple dup/tlk et connecte directement au serveur en question, en gros un ptit launcher a mettre en telechargement sur le site web du module
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Pour ça il faudrait recompiler le programme pour chaque module... Par ailleurs le but du programme est de permettre aux joueurs de changer facilement de module, même si ils utilisent tous des tlks custom. Je crois pas que je vais tenter ça.
Je viens de faire un programme de test, j'arrive à obtenir la description, donc je devrais rajouter une option "direct connect" au programme d'ici quelques jours, je suis un peu occupé pour l'instant (et il y a des trucs à revoir dans le programme de test en question, en particulier que faire si le serveur ne répond pas et au bout de combien de temps).

Ce que je pourrais ajouter au programme par ailleurs: une option pour traiter les fichiers directement (par exemple en entrant les noms sous la même forme sue dans la description). Peut être rendre cette fonction utilisable par ligne de commande...
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Modifier les descriptions des sorts
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 17h49.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite