La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 20/05/2024 13:16:06


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
P.Patoche
Chevalier
Inscrit le: 14 Avr 2006
Messages: 70
Localisation: France 77
Répondre en citant
Posté le : 13/08/2006 07:35:12 Sujet du message : Retirer 2 items bien spécifiques

Bonjour a toutes et a tous, voilà je cherche un moyen de retirer 2 items bien spécifiques ( item qui on étés retirer du module) sur les joueurs quand il se connecte, j'ai chercher ici mais je n'es rien trouver à part tout leur supprimer ce qui n'est pas le but rechercher, et une 3° item qui se trouve aussi dans l'inventaire des joueurs mais je voudrais qu'il leur en reste une seule et pas plusieurs, si une personne dévouer peux m'aider, je lui dirais un grand merci.

Patoche.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
edisnotdead
Grand Chevalier
Inscrit le: 19 Fév 2005
Messages: 132
Répondre en citant
Posté le : 13/08/2006 08:23:21 Sujet du message :

regarde a ce lien la fonction est faite pour ca
http://www.deepblack.be/forum/viewtopic.php?t=668
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
P.Patoche
Chevalier
Inscrit le: 14 Avr 2006
Messages: 70
Localisation: France 77
Répondre en citant
Posté le : 13/08/2006 09:19:15 Sujet du message :

Merci pour ta réponce, mais apres essais, le script me pose un brobleme, j'ai pris des items au azard dans le jeu et voici le résulta.
NWScript :
//:Confused///////////////////////// ////////////////////
//:: Created By: edisnotdead
//:Confused///////////////////////// ////////////////////
void banitem(string tagitemban,string resrefitemchange)
{
object oPC = GetModuleItemAcquiredBy();
object oItem = GetModuleItemAcquired();

if (GetTag(oItem) == tagitemban)
{
if(GetIsObjectValid(oItem))
{
DestroyObject(oItem);
CreateItemOnObject(resrefitemchange, oPC);
}
}
}
//exemple toujours dans le onactiveitem
void main()
{
banitem("X0_IT_MBELT002","ceinturedeslio");

banitem("nw_it_mbelt014","RIEN");
banitem("nw_it_mbelt013","RIEN");
banitem("nw_it_mbelt012","RIEN");
banitem("nw_it_mbelt016","RIEN");
banitem("nw_it_mbelt017","RIEN");

//ect......
}
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.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 13/08/2006 10:19:14 Sujet du message :

Tiens voila :

NWScript :
void main()
{
object oPC = GetEnteringObject();
object oItem = GetFirstItemInInventory();
while(GetIsObjectValid(oItem))
{
string sTag = GetTag(oItem);
if(sTag == "TAG_DE_TON_OBJET")
{
DestroyObject(oItem);
}
oItem = GetNextItemInInventory();
}
CreateItemOnObject("ref_de_ton_objet", oPC,1);
}
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.


Ici on regarde le joueur entrant (zone, ou mod), on regarde tous ses items, on détruit les items de tag "TAG_DE_TON_OBJET", et ensuite, on crée un item unique de ref "ref_de_ton_obet".

Voila Smile
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
P.Patoche
Chevalier
Inscrit le: 14 Avr 2006
Messages: 70
Localisation: France 77
Répondre en citant
Posté le : 13/08/2006 10:39:32 Sujet du message :

Humm ok merci , donc si j'ai bien compris 2~3 petites chose ici, si je fais sa, sa doit marcher?

NWScript :
void main()
{
object oPC = GetEnteringObject();
object oItem = GetFirstItemInInventory();
while(GetIsObjectValid(oItem))
{
string sTag = GetTag(oItem);
if(sTag == "TAG_DE_TON_OBJET_1"||
  sTag == "TAG_DE_TON_OBJET_2"||
  sTag == "TAG_DE_TON_OBJET_3")
{
DestroyObject(oItem);
}
oItem = GetNextItemInInventory();
}
CreateItemOnObject("ref_de_ton_objet", oPC,1);
}
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.


Edit; bas non sa marche pas, sa crée bien l'item voulu, mais sa retire rien (les tag sont bon j'ai vérifier)et l'item est recrée a chaque fois que l'ont ce reconnecte.

Je me suis peut-être mal exprimer sur ce que je cherche, donc je recommence,
Je supprime définitivement ;(Ref "ITEM_" pour exemple)
ITEM_1, ITEM_2, ITEM_3, ITEM_4, ITEM_5

Ensuite, ci je possède une seul ITEM_6 je fais rien, mais si je possède plusieurs ITEM_6 je retire le superflu pour en laisser qu'une seul.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 13/08/2006 12:23:09 Sujet du message :

Hmm est ce que ton objet est enlevable? Ou est a quel niveau commence t-on dans ton serv (pour regler le problème des plusieurs fois)

NWScript :
void main()
{
object oPC = GetEnteringObject();
object oItem = GetFirstItemInInventory(oPC);
while(GetIsObjectValid(oItem))
{
string sTag = GetTag(oItem);
if(sTag == "TAG_DE_TON_OBJET_1"||
sTag == "TAG_DE_TON_OBJET_2"||
sTag == "TAG_DE_TON_OBJET_3")
{
DestroyObject(oItem);
}
oItem = GetNextItemInInventory(oPC);
}
CreateItemOnObject("ref_de_ton_objet", oPC,1);
}
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.


Celui marche. La simple et bonne raison que les autres scripts ne marcher pas, c'est a cause de cette foutu fonction GetNextItemInInventory (first aussi). J'oublie tout le temps de mettre le OBJECT Confused

Voila essaye avec ça, et si tu me dis qu'il faut supprimer tous les items commencant par le ref "item_" tu mets ça :

NWScript :

void main()
{
object oPC = GetEnteringObject();
object oItem = GetFirstItemInInventory(oPC);
string sItem, sString;
while(GetIsObjectValid(oItem))
{
sItem = GetResRef(oItem);
sString = GetStringLeft(sItem, 5);
if(sString == "item_")
{
DestroyObject(oItem);
}
oItem = GetNextItemInInventory(oPC);
}
CreateItemOnObject("ref_de_ton_objet", oPC,1);
}
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.

_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
P.Patoche
Chevalier
Inscrit le: 14 Avr 2006
Messages: 70
Localisation: France 77
Répondre en citant
Posté le : 13/08/2006 12:46:02 Sujet du message :

merci, mais non j'avais juste pris "item_" pour exemple les Tag son tous differant et oui elles sont dropable ces items.

Patoche.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 13/08/2006 13:57:46 Sujet du message :

Le seul moyen alors de mettre en route se truc qu'une fois, c'est avec une Sauvegarde, enfin un GetCampaignInt. Tu peux pas donner 10 xp à tes personnages xD? Razz

tiens :

NWScript :
void main()
{
object oPC = GetEnteringObject();
object oItem = GetFirstItemInInventory(oPC);
while(GetIsObjectValid(oItem)&&GetCampaignInt("module", "retire", oPC)==0)
{
string sTag = GetTag(oItem);
if(sTag == "TAG_DE_TON_OBJET_1"||
sTag == "TAG_DE_TON_OBJET_2"||
sTag == "TAG_DE_TON_OBJET_3")
{
DestroyObject(oItem);
}
oItem = GetNextItemInInventory(oPC);
}
CreateItemOnObject("ref_de_ton_objet", oPC,1);
SetCampaignInt("module", "retire", 1, oPC);
}
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.

_________________
[http]
 
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 33.414ms