JeuxOnLineForumsPlusConnectés : 778 (sites) | 1384 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Une idée de programme pour le problème des tlk RSS
   
Répondre
Partager Outils Rechercher
Avatar de 'Az
'Az [P.H.]
Alpha & Oméga
 
Avatar de 'Az
 
Citation:
Voilà je peux me tromper complètement mais je ne pense pas que, même dans le pire des cas, les opérations avant le lancement d'un module prendrait plus de dix secondes (sauf bien sûr sur un 486) .
j'avoue ne pas trop avoir suivis le système dans ses profondeurs (pasque je suis flemmard, pas parsque tu n'explique pas bien), donc je te donne ce qui peut tendre le truc a ramer, et tu voix si ca peux poser problème dans le contexte :

au niveau des ressources cpu, aucun problèmes, une telle opération peut se faire en bien moins de 10s par un 486 (sauf si c'est vraiment très mal codé, mais je ne pense pas que la qualité du coding soit ton problème )
Par contre, c'est au niveau de la vitesse des disques que ca peux poser problème
Un disque standard met quand même un certain temp pour copier des données. Si ca ne se vera pas pour de tout petits fichiers, des copies de fichiers de plus de 100mo peuvent se montrer longue, trop longues.
Je le redis, je n'ai pas suivis le système, j'ai juste vu marqué "hakpak", or certains hakpak peuvent être vraiment très gros dézzipés, si le but de l'opération consiste à agir sur ces hakpak, prend garde.

Mais je n'ai pas l'impression que ce soit le but de l'opération, donc pas de problème ct juste une petite mise en garde (que tu avais peut être/surement déjà en tête )
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Merci Azraël, le gros fichier serait bien dialog.tlk, les hakpacks contiendraient juste des 2da, donc 2MO serait déjà pas mal.
Pourquoi est que je parlais de restaurer dialog.tlk pour les modules "normaux" au fait? C'est inutile...
Lien direct vers le message - Vieux
Avatar de 'Az
'Az [P.H.]
Alpha & Oméga
 
Avatar de 'Az
 
Citation:
) Soit le module choisit est le même que celui qui a été lancé la dernière fois (ou équivalent : ie pas besoin de tlk modifié) , auquel cas le programme lance NWN sans rien faire.
euh.... j'ai toujours pas cherché a comprendre le système mais ca ne risque pas de pauser de problèmes lors du patching de nwn si le système est configuré pour un module utilisant un dialog.tlk autre que celui de base ?
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Non, parce que les 2da sont recréés suite au patch. Je te fais un résumé rapide, j'espère plus clair que ce que je raconte au-dessus:
Pour savoir que NWN a été patché il suffit de lire le.ini au lancement du programme, et de comparer avec l'info que l'on avait préalablement enregistrée.
Après le patch, quand le joueur veut lancer un module, on remet les chaînes "custom" à la fin du nouveau dialog.tlk.
On a, dans un fichier hak renommé en dup, les 2da avec des références relatives au chaînes rajoutées: !0 pour la première chaîne custom , !4 pour la cinquième... On remplace !0 par <0 + Nbre d'entrées dans le dialog.tlk après le patch> et !4 par <4 + Nbre d'entrées dans le dialog.tlk après le patch> . On met ce hak dans le dossier \hak du joueur (en écrasant la version précédemment créée si nécessaire) . Et comme le module référence ce hak on est bon jusqu'au prochain patch avec ce hak: toutes les références au chaînes "custom" sont correctes.

EDIT: en tout cas j'aurais apris un truc sur la programmation WIN32: il vaut mieux faire l'interface après avoir terminé la partie procédurale :bouffon: . Une question technique pour Azraël ou quelqu'un d'autre, je charge la clef de registre indiquant la racine de l'installation de NWN, mais je ne sais pas du tout comment gérer les erreurs au cas ou cette clé n'existe pas (je suppose qu'il faudrait que je laisse choisir le dossier à l'utilisateur, ça c'est bon, mais c'est chopper l'erreur elle même que je ne sais pas trop comment faire). Vous n'auriez pas une addresse à me conseiller? Dans le même ordre d'idée, pour les erreurs fatales (pour l'instant echec de malloc ou de MapView c'est tout ce que je vois) je ne sais pas trop comment faire, pour l'instant je pop une boite de message puis exit(0). Vaut-il mieux que je ferme les fenêtres avant?
Lien direct vers le message - Vieux
Avatar de 'Az
'Az [P.H.]
Alpha & Oméga
 
Avatar de 'Az
 
bien... désolé je peux pas trop t'aider la dessus, j'y connais rien en prog sous WIN32/64 (j'ai un bouquin qui m'attend sur ma table de nuit, mais pour ca fo que je trouve le temp de lire le soir ^_^)
En fait, je ne suis même pas sur de savoir tapper un code en C en entier, je connais (très bien) les bases de la programmation, mais pas du tout les fonctions (bon, c'est ce qu'il y a de plus facile a apprendre )

Pour un lien... bien... tu peux demander à dieu, c'est le genre de truc qu'il connais très bien ^_^

EDIT :

bon, aller, je t'aide ^^
http://telecharger.01net.com/windows...ches/2760.html
http://www.cppfrance.com/article.aspx?Val=1301
http://perso-iti.enst-bretagne.fr/~b...utorialCPP.pdf

et la page de recherche
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Merci pour les adresses Azraël, elles sont plus orientées C++, mais intéressantes. Pour le registre, j'ai trouvé, c'est tout simple en fait, mais la documentation de WIN32 API est quelque fois un peu déroutante (je trouve tout de même que renvoyer ERROR_SUCCESS en cas de réussite c'est un peu n'importe quoi ). Pour le exit j'ai rien trouvé de mieux, en théorie les mallocs devrait marcher de toute façon ...
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Je pensais juste vous donner quelques nouvelles, après beaucoup d'hésitation j'ai choisi l'option II.1.c (à savoir construire dialog.tlk au lancement de NWN, à partir d'une sauvegarde de l'original et du fichier d'ajout). La mauvaise nouvelle c'est que je ne suis pas arrivé; la bonne, c'est que j'ai écrit la fonction d'addition des tlks et que c'est extrêmement rapide. Moins d'une seconde pour ajouter dialog.tlk à lui-même et obtenir un fichier de 14+ MO. Donc tout ceci m'a l'air faisable.
EDIT: Sur un céléron 1.7 et un disque dur IBM 20GO dont je ne me souviens plus des caractéristiques, mais qui a 3/4 ans.
Lien direct vers le message - Vieux
Avatar de 'Az
'Az [P.H.]
Alpha & Oméga
 
Avatar de 'Az
 
Aie.... sur quoi a tu bloqué ? Dis tout à tonton azra ^_^
Pour moi, si t'as réussi à interagir avec les .tlk tu as déjà fait le plus dur, mais dis moi ce qui te bloque, je peux voir ce que je peux faire

PS : il y aurait moyen que tu publie une bibliothèque avec les fonction que tu as fait, genre "AddResRefToDialogFile" et "RemoveResRefToDialogFile" (je parle biblio et fonctions de C bien sur, pas de nwscripts). Bon, si t'as trop de modifs a faire pour la publier, pas grave, mais j'avoue que ca me ferais gagner pas mal de temp ^_^
Lien direct vers le message - Vieux
Avatar de Ormus
Ormus
Roi
 
Avatar de Ormus
 
Arf...regardez ça :
http://nwn.bioware.com/forums/viewto...10498&forum=48
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Oui c'est pas trop surprenant, c'est l'australien dont je parlais . Et tu remarqueras qu'il précise que c'est mon idée, sympa de sa part, étant donné que ce que j'avais écrit sur les forums Bio était encore moins compréhensible que ce que j'ai mis ici :bouffon:
Franchement je ne sais pas trop quoi faire, je comprendrais qu'il ne soit pas très content si j'arrive avec ma propre version du schmilblik après qu'il a passé du temps sur la sienne. D'un autre point de vue, quoique le coup de l'override soit très malin (c'est de lui ça), ça oblige aussi le joueur à gérer lui même les 2da. Et il y a aussi le problème des deux tlks qu'il ne prend pas en compte pour les versions "internationales". Je veux pas avoir l'air de vendre ma soupe, surtout que rien ne dit ce qu'elle vaudra à l'arrivée, mais mon truc devrait être plus automatisé.
Pour préciser mon embarra, au moment de mon post sur le forum Bio, je ne me voyais pas du tout apprendre WIN32 API, ce qui me semblais essentiel pour ce programme (manifestement Tangello vient de prouver que j'avais tord la dessus). Dans un second temps j'ai même souhaité bonne route à Tangello pensant que je ne le ferais pas... Et puis quelques jours après...
Voilà, voilà .
Sinon Azraël je ne bloque sur rien de particulier, je disais juste que je n'étais pas arrivé, il me reste du chemin. Programmer en même temps que tu apprends une partie du langage c'est un peu coton, se retrouver dans WIN32 API, ça prend du temps.
Lien direct vers le message - Vieux
Avatar de Jaha Effect
Jaha Effect
Alpha & Oméga
 
Avatar de Jaha Effect
 
Citation:
Provient du message de Sire Pom-pom
Je veux pas avoir l'air de vendre ma soupe.
Et tu n'en a pas besoin, nous sommes toujours derrière les gens motivés qui ont des bonnes idées, surtout si ils sont de JoL

Jaha Effect
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Finalement j'ai un petit problème, produire le hakpack à partir du "dup"( à savoir le hakpack avec les références relatives). En effet je ne peux pas connaître a priori (avant de parser le Dup) quelle sera la taille du Hackpak puisque écrire les références absolue la modifie, donc mapper le fichier ne semble pas approprié, en même temps il faut que je sois capable de modifier les offsets internes aux différents fichiers, et pour ça, faire simplement lecture du flux / écriture du fichier final simultanément n'est pas satisfaisant... Je pense que c'est pour cela que Tangello travail sur des 2da séparés. A vrai dire je pourrais copier son idée, ça me simplifierait considérablement la vie: extraire les 2da du Dup et les mettre directement dans l'override, mais ce sera en dernier recours. D'autant plus qu'après il faudrait que je gère l'override au changement de module, je le sens pas trop. J'ai peut-être une piste, mais si vous avez une idée je suis preneur.
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Une idée de programme pour le problème des tlk
   

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 15h02.
   

© 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