La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 23/11/2024 21:52:49
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 |
Indur Aubemort Acolyte Messages: 26 Localisation: Marseille |
Bonjour à vous ,
Je voudrais faire un coffre qui résiste au reboot , mais exemple , je fais une chambre avec dedans un coffre , moi j'avait reussit mais mon problème c'est que tous le contenu des 4 coffres était le même comment faire des coffres juste persistant sur eux même? _________________ PsY| |
Revenir en haut | |
gachyama Acolyte Messages: 37 Localisation: nice |
J'ai retrouvé ton scripts sur un vieux bloc note qu'on m'avais filé
Alors 2 scripts: A mettre sur le OnClose du coffre NWScript :
//**************************** ** //coffre persistant // OnClose //**************************** ** void main() { DeleteCampaignVariable(GetModuleName() + GetTag(GetArea(OBJECT_SELF)) + "conteneursnbitem", GetTag(OBJECT_SELF)); DestroyCampaignDatabase(GetModuleName() + GetTag(GetArea(OBJECT_SELF)) + GetTag(OBJECT_SELF)); object oItem = GetFirstItemInInventory(); if (!GetIsObjectValid(oItem)) return; int iNbr = 0; int iNbItemMax = GetReflexSavingThrow(OBJECT_SELF); while(GetIsObjectValid(oItem) && ( iNbr < iNbItemMax ) ) { iNbr++; StoreCampaignObject(GetModuleName() + GetTag(GetArea(OBJECT_SELF)) + GetTag(OBJECT_SELF), IntToString(iNbr), oItem); DestroyObject(oItem); oItem = GetNextItemInInventory(); } while(GetIsObjectValid(oItem) && ( iNbr >= iNbItemMax )) { CopyObject(oItem, GetLocation(GetLastUsedBy()), GetLastUsedBy()); DestroyObject(oItem); string texte = "l'objet "+ GetName(oItem)+" Ne peut etre stocke : le contenant est plein."; FloatingTextStringOnCreature(texte, GetLastUsedBy(), FALSE); oItem = GetNextItemInInventory(); } SetCampaignInt(GetModuleName() + GetTag(GetArea(OBJECT_SELF)) + "conteneursnbitem", GetTag(OBJECT_SELF), iNbr); } Et celui la a mettre sur le OnOpen de ton coffre NWScript :
//**************************** ** //coffre persistant // OnOPen //**************************** ** void main() { object oItem = GetFirstItemInInventory(); int iNbr = 0; int itotalnbr = GetCampaignInt(GetModuleName() + GetTag(GetArea(OBJECT_SELF)) + "conteneursnbitem", GetTag(OBJECT_SELF)); while((!GetIsObjectValid(oItem)) && (iNbr <= itotalnbr)) { if (!GetIsObjectValid(oItem)) { RetrieveCampaignObject(GetModuleName() + GetTag(GetArea(OBJECT_SELF)) + GetTag(OBJECT_SELF), IntToString(iNbr), GetLocation(OBJECT_SELF), OBJECT_SELF); iNbr++; } } } Logiquement ce script marche bien je crois l'avoir testé n'importe quel item que tu mettras dans le coffre resteras meme apres un plantage ou reboot du server. Le contenu est sauvegardé a la fermeture du coffre. Voila j'espere t'avoir aidé. |
Revenir en haut | |
Indur Aubemort Acolyte Messages: 26 Localisation: Marseille |
Voilà j'ai essayer en partit solo et quand je met un objet et que je ferme le coffre il y'est escrit " *L'objet* ne peut etre stocke ,
"le contenant est pleint" _________________ PsY| |
Revenir en haut | |
gachyama Acolyte Messages: 37 Localisation: nice |
Il faut peut etre que tu regarde aussi au niveau jet.
Je m'explique j'avais lu sa quelque part il me semble ,un contenant stock des items en fonction d'un jet (je crois que c'est un jet de vigeur ou de reflexe.) Essaye d'augemnté sa pour voir si sa marche ,on c'est jamais si c'est pas sa alors la je c'est pas trop d'ou sa peut venir. |
Revenir en haut | |
Indur Aubemort Acolyte Messages: 26 Localisation: Marseille |
*as rien compris*Chuis désolé...mais j'ai pas piger là.
_________________ PsY| |
Revenir en haut | |
xelone Acolyte Messages: 39 |
si c'est simple, j'avais le meme probleme : quand tu ouvre les propriétés de ton coffres, dans l'onglet "base" (si je me souviens bien) tu as jet de vigueur, jet de ..., etc. et bien tu augmentes un de ces jets (je pense bien que c'est jet de vigueur) et pour le fait que tes 4 coffres aient le meme contenu, regarde si les tag sont les memes (si tu ne les a pas changé et utilisé le meme type de coffre c ça) car le script fonctionne sur les tags
donc il regarde le tag de ton coffre, le sauvegarde et quand on l'ouvre il place les objets dans le coffre ayant tel tag mais si il y a 4 coffres ayanr le meme tag, il va les mettre dans les 4. (espere avoir ete clair) |
Revenir en haut | |
Indur Aubemort Acolyte Messages: 26 Localisation: Marseille |
Oki voilà j'ai mis le tag du coffre "conteneursnbitem" j'ai mis le jet de vigueur a 50 , mais toujours le même méssage d'erreur
_________________ PsY| |
Revenir en haut | |
Metallah Novice Messages: 10 |
regarde la ligne :
Code : int iNbItemMax = GetReflexSavingThrow(OBJECT_SELF); le nombre max d'objet que peut contenir ton coffre est basé sur : ReflexSavingThrow, donc le jet de reflexe de ton contenant Sinon, remplace la fonction par un nombre et sa suffira si tu veux pas te prendre la tete : int iNbItemMax = 50; par exemple, ton contenant sera limité a 50 objets au max. Autre chose : "j'ai mis le tag du coffre "conteneursnbitem"" euh non, ne met pas ca , enfin evite, tu lui donne le nom de la variable qui contient le nombre d'item sauvegardés. donne leur un autre tag, enfin, ce n'est qu'un conseil, mais ca sera plus propre, et aussi, met un tag unique a chaque contenant qui sera persistant. Aller a+ et bon courage |
Revenir en haut | |
Feyjna Novice Messages: 5 |
Je remonte le sujet pour signaler un tit bug
En utilisant les scripts donnés plus haut tout fonctionne a merveille sauf que si je met un sac sans fonds avec des objets, lorsque je recharge une partie les objets du sac se retrouvent dans le coffre (hors du sac donc) mais aussi dans le sac...dedoublement d'objet en somme...peut on y remedier (en interdisant les sacs ou meme en detruisant les objets qui sont dedans je prefere a la limite que le dedoublement) merci d'avance |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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