Login: Pass:
Mythyzyn
Modérateur


Inscrit le: 22 Mai 2005
Messages: 416
Localisation: Lyncya
Message Posté le: 22/07/2006 9:17 Sujet du message: NWN_FF sur NWN²
Bonjour à tous,

Je voulais savoir si quelqu'un avait des informations quand à la compatibilité de nwn_ff sur nwn2.

Merci beaucoup Wink
_________________


Dernière édition par Mythyzyn le 12/04/2007 12:37; édité 1 fois
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
MrXXS
Administrateur


Inscrit le: 11 Juin 2005
Messages: 488
Message Posté le: 22/07/2006 9:36 Sujet du message:

Je dirai sans trop de risque de me tromper qu'ils ne seront certainement pas compatibles tels quel mais qu'il ne sera peut être pas bien difficile de développer un outil similaire (Le créateur de NwnX2 a l'intention de créer NwnX4)
_________________



Dernière édition par MrXXS le 22/07/2006 15:12; édité 1 fois
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Antilia
Administrateur


Inscrit le: 21 Juin 2005
Messages: 492
Message Posté le: 22/07/2006 10:04 Sujet du message:
Faut il que papillon ne fasse pas lui même les fonctionnalitées de NWN_FF.

Enfin là il semble s'atteler à une pure fonctionnalité: La possibilité de faire une requète dans une réponse de requète.

Ex: (bon je connais plus les termes exactes des fonctions...)
Mysql_Query(Ma_Requette_1);
While(Mysql_Fetch())
{
Mysql_Query(Ma_Requette_2);
...
}

Avant la Ma_Requette_2 écrasait le résultat de la 1, ce qui fait qu'au second cycle du while le Mysql_Fetch prenait sur Ma_Requette_2 et pas Ma_Requette_1. Papillon a l'intention de corriger cela (il va rajouter à l'équivalent de Mysql_Fetch un int en paramètre permettant de connaitre la requète utilisée).
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Mythyzyn
Modérateur


Inscrit le: 22 Mai 2005
Messages: 416
Localisation: Lyncya
Message Posté le: 22/07/2006 11:37 Sujet du message:
Pour un programmeur professionel, ce genre de programme est dur à faire ?
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Antilia
Administrateur


Inscrit le: 21 Juin 2005
Messages: 492
Message Posté le: 22/07/2006 11:50 Sujet du message:
C'est de la bidouille de haut vol.
Si j'ai bien compris le fonctionnement de NWNX, ils analysent la mémoire (La RAM) utilisé par NWN afin de retrouver des séquences bien précises leurs permettant de savoir ce que c'est.
Mais bon analyser 30Meg de mémoire brute, c'est quand même assez violent, je présume qu'une fois que vous avez trouvé la séquence qu'il faut intercepter ca reste facile, mais le plus gros soucis est de savoir quel est cette séquence dans cet immense flux de données. Very Happy

Pour information NWNX permettait à la fin de changer le nom et la description des objets.

Les gars de chez Obsidian ont promis d'aider Papillion, donc à mon avis ils lui fourniront les séquences mémoire à intercepter et également comment est stocké la donnée elle même.

Bref si je me plante pas, ce qu'a fait papillion, est vraiment bourrin et ingénieux, je ne sais pas si beaucoup de personnes auraient osé le faire. Shocked
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Mythyzyn
Modérateur


Inscrit le: 22 Mai 2005
Messages: 416
Localisation: Lyncya
Message Posté le: 22/07/2006 12:32 Sujet du message:
En gros on aura un système disponible pour relier NWN à SQL.

Si c'est le cas tant mieux, c'est tout ce qu'il me faut Smile

Merci pour vos réponses. Wink
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Garrath



Inscrit le: 21 Oct 2005
Messages: 150
Message Posté le: 24/07/2006 10:53 Sujet du message:
En gros que cela soit NWNFF ou NWNX ca utilise exactement le meme system et d'ailleurs la meme dll. C'est un system de hook.
J'ai tres vaguement regarde le fonctionnement (de loin).
Je me demande meme dans quel mesure la version actuel ne fonctionnerait pas avec nwn2...

Enfin bref, sinon ce dont tu parles audessus c'est ni plus ni moins que les system de curseur.
Tu ouvres ta requete1
Tu boucles sur les donnees de la requete1 avec un fetch pour recuperer les donnees et a l'interieur de cette boucle tu fais une requete 2...

En Theorie, ca me parait pas insurmontable comme system a faire il suffit d'indexer les noms des zones des requetes et de renvoyer les resultats avec le meme type d'index.
En pratique... Si ils y arrivent c'est pas mal, par contre j'ai tres peur de bug sur ce genre de system, a moins qu'ils gerent correctement l'indexation de leur zone. Car deja aujourd'hui tu peux planter le system si tu as 2 requetes qui s'effectuent dans 2 fonctions differentes quasi en meme temps (en gros aujourd'hui tu peux recuperer le resultat de la requete 2 dans les 2 fonctions...).
Donc pour eviter le pb ils faut gerer une sorte de semaphore...
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
-MeteZ-



Inscrit le: 19 Nov 2005
Messages: 85
Localisation: Région Parisienne
Message Posté le: 4/08/2006 19:54 Sujet du message:
Je suis pas super callé en sql pour parlez de vos tableaux de données dynamiques mais question C je peux appuyer ce qu'à dit Garrath à savoir "Je me demande meme dans quel mesure la version actuel ne fonctionnerait pas avec nwn2... "
Puisque que les nwscripts ne changeront pas de fonctionnement.

Je pense que c'est une histoire d'allocation. Sur nwn1, relativement buggé, on pouvait exploiter un "oubli".
Bah de toute façon je me plonge pas dedans, on verra bien si il y aura un NWNx2 a NWN2 mais je l'espere de tout coeur.
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Mythyzyn
Modérateur


Inscrit le: 22 Mai 2005
Messages: 416
Localisation: Lyncya
Message Posté le: 12/08/2006 22:03 Sujet du message:
Oui moi aussi xD
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
yi



Inscrit le: 09 Juil 2005
Messages: 73
Message Posté le: 14/08/2006 8:00 Sujet du message:
Antilia
C'est de la bidouille de haut vol.
Si j'ai bien compris le fonctionnement de NWNX, ils analysent la mémoire (La RAM) utilisé par NWN afin de retrouver des séquences bien précises leurs permettant de savoir ce que c'est.
Mais bon analyser 30Meg de mémoire brute, c'est quand même assez violent, je présume qu'une fois que vous avez trouvé la séquence qu'il faut intercepter ca reste facile, mais le plus gros soucis est de savoir quel est cette séquence dans cet immense flux de données. Very Happy

Pour information NWNX permettait à la fin de changer le nom et la description des objets.

Les gars de chez Obsidian ont promis d'aider Papillion, donc à mon avis ils lui fourniront les séquences mémoire à intercepter et également comment est stocké la donnée elle même.

Bref si je me plante pas, ce qu'a fait papillion, est vraiment bourrin et ingénieux, je ne sais pas si beaucoup de personnes auraient osé le faire. Shocked


En fait, c'est beaucoup plus simple que cela (pas besoin d'analyser 30Mg de RAM)
Papillon utilise les fonctions de "hook" de debug de windows.
La version "initial" de NWNx ne prend que qq jours à faire.
La version "étendue" (sauvegarde des objets par exemple) est beaucoup plus compliqué.

a) Sans trop rentreer dans les détails, à l'inialisation de ton module, un scripts va mettre une variable à "...................... ....." (et une 2eme pour les résultats)
b) le hook se greffe alors et trouve automatiquement cette zone mémoire
c) lorsqu'un script fait une requete SQL, cette zone mémoire est modifiée... et là les fonctions de debug windows se lancent automatiquement (elles detectent la modification de la zone mémoire). Le hook arrete NWNServeur (sisi), fait le pont vers SQL, fait la requete, recupere le resultat et insere le resultat dans une zone mémoire.
e) le hook rend la main à NWN (qui n'a rien vu ^^), ce dernier lit ensuite la zone memoire (accede par les fonction GetLocalString...) qui contient le résultat

voilou
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
MrXXS
Administrateur


Inscrit le: 11 Juin 2005
Messages: 488
Message Posté le: 14/08/2006 9:41 Sujet du message:
Oui, ce que tu expliques concerne les liaisons avec les bdd externes, mais comme le dit Antilia, il existe aussi des plugins NwnX qui permettent de changer les descriptions et certains paramètres des objets (Le coût en PO si je ne trompes pas). Ca, c'est beaucoup plus dur puisqu'il faut trouver la bonne zone à modifier.
_________________
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Antilia
Administrateur


Inscrit le: 21 Juin 2005
Messages: 492
Message Posté le: 14/08/2006 10:26 Sujet du message:
Merci pour ces détails yi, c'est vraiment intéressant de regarder un peu la bitouille de ce Papillon, c'est con quand on regarde, mais fallait y penser. Smile

Pour les objets, cette fonctionnalité n'est présente que sur la version Windows de nwnX, je n'ai donc jamais pu l'essayer. J'avais tout de même lu sur le forum de Papillion(1) à l'occasion de la 1.67 que chaque propriété des items avait un offset bien définit dans la mémoire, semblerait que cela leurs suffise.
Je vais un peu vite en besogne car je n'ai pas fouillé ce forum entièrement et je n'ai pas mis le nez dans le code non plus, mais je trouve cela amusant. Very Happy

1: http://www.nwnx.org/phpBB2/viewtopic.php?t=453
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
yi



Inscrit le: 09 Juil 2005
Messages: 73
Message Posté le: 14/08/2006 19:37 Sujet du message:
En effet, je n'ai décris le principe que de la version initiale
Il y a ensuite de nombreux plug-in qui necessite de "parser" et "comprendre" la mémoire de NWN... mais ils ne sont pas indispensable pour pouvoir avoir une persistance sur un module

Pour les modifications de caracteristiques d'Item, il semblerait que NWN2 integrera une fonction permettant de modifier la description d'un objet... couplée avec le SetName cela permettra deja de faire de nombreuses choses
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Mythyzyn
Modérateur


Inscrit le: 22 Mai 2005
Messages: 416
Localisation: Lyncya
Message Posté le: 15/08/2006 11:12 Sujet du message:
Excellente toutes ses infos !!!

Donc un tel système serait possible.

L'idéal pour moi serait d'avoir juste une liaison NWN <> SQl car NWN_FF marche très bien mais comporte pas mal de choses que je n'utilise pas. Et ce qu'il fait au niveau de la sauvegarde des HPs etc . . . je pense pouvoir le refaire moi même ayant suffisement travailler avec ce cher NWN_FF.

Enfin tout ça me rassure car mon module est basé sur la possibilité de liaison SQL pour une persistance maximal et bien d'autres surprises Wink

En faite pour NWN_FF, un scritpeur avait développé une include qui permettait d'utiliser des fontions de ce type :

void SetPCStringSql ( object oPC, string sColonne, string sValeur )

En gros on pouvait faire ce qu'on voulait de la bdd sql depuis nwn1

Si c'est possible pour le 2, je suis content xD et je vous promet un super module Wink
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
yi



Inscrit le: 09 Juil 2005
Messages: 73
Message Posté le: 15/08/2006 12:08 Sujet du message:
il n'y a aucune raison pour que cela ne soit pas possible pour le 2 Wink
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   

Page 1 sur 2
Sauter vers:  

 

Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum

Traduction par : phpBB-fr.com
Powered by phpBB © 2001, 2007 phpBB Group