
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.







La date/heure actuelle est 02/05/2025 14:59:17
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
KIMOUNET Héros ![]() Messages: 256 Localisation: Au pays des reves |
Voila dans mon module persistant il y aura des objets uniques ce qui permettera en théorie des bataille entre differents camps, mais un des objets changera le monde qui versera sois vers le bien ou le mal.
Cest pour cela que j'ai besoin de savoir en temps réels si possible qui possede cette objet. j'aimerais donc savoir si cela est possible et bien sur comment ? _________________ Le savoir est comme un tresor il se partage |
Revenir en haut | ![]() ![]() ![]() |
lendraste Grand Maître Chanteur du Conseil ![]() Messages: 1403 Localisation: Quelque part ailleurs |
KIMOUNET a écrit : Voila dans mon module persistant il y aura des objets uniques ce qui permettera en théorie des bataille entre differents camps, mais un des objets changera le monde qui versera sois vers le bien ou le mal.
Oui, cela est possible. Soit dit en passant, il y a peu de chose qui ne soit pas possible dans NWN sauf quand on sort des sentiers battus.
Cest pour cela que j'ai besoin de savoir en temps réels si possible qui possede cette objet. j'aimerais donc savoir si cela est possible et bien sur comment ? Pour le temps réel, il te faudra sans doute placer le script sur le OnHeartBeat du module (donc risque de consommer du temps si le script est très lourd car il s'exécutera toutes les 6 secondes). Voici une proposition qui devrait ne pas trop impacter le serveur : Code : void main() { object oTheItem=GetObjectByTag("TAG_DE_L_OBJET_UNIQUE"); //récupère une référence à l'objet if (GetIsObjectValid(oTheItem)) // on ne continue que si l'objet existe bel et bien, sinon il y a un problème { object oPossessor=GetItemPossessor(oTheItem); //Récupère le propriétaire de l'objet if (GetIsObjectValid(oPossessor)) //On vérifie que l'objet a un propriétaire { //Mettre ici les actions nécessaires correspondant à celui qui possède présentement l'objet oPossessor /* NdA : j'ai hésité à faire une version plus évoluée dans laquelle on détecte si l'objet change de main. Ca serait peut-être plus judicieux que de vérifier sans arrêt dans quelle main il est car j'ai dans l'idée que ton univers ne change que si l'objet change de main. Si c'est cela, clarifie ton problème car cette présente solution n'est pas la plus adaptée*/ } else { //Mettre ici les actions nécessaires au cas ou l'objet n'aurait pas de propriétaire } } else { //Mettre ici les actions nécessaires au cas ou l'objet n'existerait pas } } Je me permet une remarque à laquelle tu n'as peut-être pas songé. Dans un monde persistant ou semi-persistant, l'existence et l'importance d'un objet unique comme celui que tu créés doit aussi tenir compte de sa potentielle "absence", car le possesseur de l'objet peut parfaitement se déconnecter, ce qui implique que l'objet disparait du monde et ne peut plus changer de main. _________________ Lendraste de Loreval Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel. La cité des mensonges - 1 |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
KIMOUNET Héros ![]() Messages: 256 Localisation: Au pays des reves |
D'abords merci pour ta réponds
Et pour ta remarque intélligente. mais j'ais songé en faite c'est l'objet de la quete principale. et tant que l'objet n'ais pas dans la main d'un PNJ le monde ne change pas. Par contre si la quete est résolue le monde changera et l'objet se teleportera dans un autre endroit _________________ Le savoir est comme un tresor il se partage |
Revenir en haut | ![]() ![]() ![]() |
Wololo Légende vivante Messages: 385 |
humm ..
si je peux me permettre une solution basée sur le script de Lendraste et exploitant la Base de Données officielle ne peut elle pas être envisagée ? tu te crées un objet qui te permet de retrouver le possesseur de l'objet : si l'objet est sur le module, tu affiches le proprio .. si l'objet n'y est pas, tu vas chercher le nom du proprio dans la base de données .. ca suppose que sur le OnClientLeave, tu vérifies si le joueur partant a l'objet .. si oui, tu mets son nom dans la base .. Cette approche (assez similaire à celle de Lendraste) ne vaut que si tu ne veux pas afficher tout le temps qui a l'objet ... mais je vois peu de cas de figure où il le faudrait ...(un PNJ criant sans cesse le nom du porteur de l'objet ?) _________________ vive les dumps et les livres ! Sanctuaire des Scripts |
Revenir en haut | ![]() ![]() ![]() |
KIMOUNET Héros ![]() Messages: 256 Localisation: Au pays des reves |
Je vais peut etre poser une question idiote comment on accede à cette fameuse base de données officielle
_________________ Le savoir est comme un tresor il se partage |
Revenir en haut | ![]() ![]() ![]() |
Wololo Légende vivante Messages: 385 |
|
Revenir en haut | ![]() ![]() ![]() |
KIMOUNET Héros ![]() Messages: 256 Localisation: Au pays des reves |
Merci
_________________ Le savoir est comme un tresor il se partage |
Revenir en haut | ![]() ![]() ![]() |


Page 1 sur 1 ¤
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