La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 19:14:33


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Indur Aubemort
Acolyte
Inscrit le: 01 Nov 2003
Messages: 26
Localisation: Marseille
Répondre en citant
Posté le : 24/12/2003 15:29:58 Sujet du message : Coffre persistant

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Adresse AIM MSN Messenger Ignorer l'utilisateur
 
gachyama
Acolyte
Inscrit le: 27 Jan 2003
Messages: 37
Localisation: nice
Répondre en citant
Posté le : 24/12/2003 21:53:00 Sujet du message :

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);



}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


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++;
}
}
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Adresse AIM MSN Messenger Ignorer l'utilisateur
 
Indur Aubemort
Acolyte
Inscrit le: 01 Nov 2003
Messages: 26
Localisation: Marseille
Répondre en citant
Posté le : 24/12/2003 23:39:52 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Adresse AIM MSN Messenger Ignorer l'utilisateur
 
gachyama
Acolyte
Inscrit le: 27 Jan 2003
Messages: 37
Localisation: nice
Répondre en citant
Posté le : 24/12/2003 23:57:46 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Adresse AIM MSN Messenger Ignorer l'utilisateur
 
Indur Aubemort
Acolyte
Inscrit le: 01 Nov 2003
Messages: 26
Localisation: Marseille
Répondre en citant
Posté le : 25/12/2003 00:03:56 Sujet du message :

*as rien compris*Chuis désolé...mais j'ai pas piger là. Sad
_________________
PsY|
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Adresse AIM MSN Messenger Ignorer l'utilisateur
 
xelone
Acolyte
Inscrit le: 21 Aoû 2003
Messages: 39
Répondre en citant
Posté le : 25/12/2003 10:56:12 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Indur Aubemort
Acolyte
Inscrit le: 01 Nov 2003
Messages: 26
Localisation: Marseille
Répondre en citant
Posté le : 25/12/2003 19:01:58 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Adresse AIM MSN Messenger Ignorer l'utilisateur
 
Metallah
Novice
Inscrit le: 10 Aoû 2003
Messages: 10
Répondre en citant
Posté le : 29/12/2003 15:17:04 Sujet du message :

Shocked 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 Embarassed

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 Razz , 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 Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Feyjna
Novice
Inscrit le: 09 Mai 2005
Messages: 5
Répondre en citant
Posté le : 08/07/2005 13:55:29 Sujet du message :

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 Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
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


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 40.611ms