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 18:39:30


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
ansquer
Héros
Inscrit le: 11 Déc 2005
Messages: 264
Localisation: MorBihan
Répondre en citant
Posté le : 19/06/2006 12:56:26 Sujet du message : Enlever un objet

oui, ça peut parraitre simple comme ça mais attendez un peu Very Happy

(on est sur un serveur multi-joueur)
" Un PJ attrape un chien par sa laisse (sous forme de dialogue). Un script lui donne alors l'objet "oCorde" (cela est la preuve que le PJ tient le chien et va le suivre par un autre script (suivre le "GetLastSpeak" s'il a la "oCorde" en fin de dialogue) ... "

Mon problème est que lorsque le chien vient à mourir (bouffé par un orque par exemple) il faudrait faire disparaitre la "oCorde" de l'inventaire du PJ ... donc un script à mettre sur le On-Death du chien... mais ... comment "marquer" le PJ ???

merci
_________________
L'année de l'île Tome 1 Un roman ecxeptionnel !
Urban Rivals ! Mettez " ansker " en pseudo de votre parrain svp
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Starkanas
Grand Chevalier
Inscrit le: 14 Mai 2004
Messages: 110
Répondre en citant
Posté le : 19/06/2006 15:58:58 Sujet du message :

Dans le script qui donne l'objet au maître du chien, tu sauvegardes en variable le joueur à même le chien. En utilisant SetLocalObject().

Donc quelque chose du genre:
NWScript :
SetLocalObject(oChien, "maitre", 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.

Il faudra évidement définir le oChien et le oPC.
Et dans le onDeath, tu récupère le joueur avec GetLocalObject(), donc:
NWScript :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.

_________________
LSDA 3ème Âge : Serveur RôlePlay basé sur les écrits de J.R.R.Tolkien ...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
ansquer
Héros
Inscrit le: 11 Déc 2005
Messages: 264
Localisation: MorBihan
Répondre en citant
Posté le : 19/06/2006 19:56:35 Sujet du message :

je ne sais pas si j'ai bien compris ... récapitulons ... entre temps mon chien est devenu une vache (style la vache et le prisonnier Very Happy)

en consequences du dialogue
: * vous prenez la corde qui pend à son cou*

NWScript :
void main()
{
    object oNPC = OBJECT_SELF ;
    object oItem = GetObjectByTag("corde001");
    // Detruire la corde
    DestroyObject(oItem);

   
    CreateItemOnObject("corde001", GetPCSpeaker(), 1);

    //donner la valeur maitre au PJ
    object oPC = GetPCSpeaker() ;
    SetLocalObject(oNPC, "maitre", 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.


et dans le On_death ... ben là je sèche ... comment détruire l'objet du PJ concerné

NWScript :
void main()
{
object oPC = GetLocalObject(OBJECT_SELF, "maitre");
object oItem = GetObjectByTag("corde001");
DestroyObject(oItem);
}
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.


c'est pas bon hein docteur ? Surprised
_________________
L'année de l'île Tome 1 Un roman ecxeptionnel !
Urban Rivals ! Mettez " ansker " en pseudo de votre parrain svp
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
ansquer
Héros
Inscrit le: 11 Déc 2005
Messages: 264
Localisation: MorBihan
Répondre en citant
Posté le : 19/06/2006 21:04:00 Sujet du message :

j'ai refait le script pour enlever la "corde001" lorsque le PJ attarpe la vache et pour que cet "corde001" passe dans l'inventaire du PJ ... mais ca ne marche pas ...

La corde ne disparait pas de l'invenatire de la vache et rien n'est créé dans celui du PJ ???
("corde001" est le TAG de l'objet)

NWScript :
void main()
{


    // Donner corde au PJ
    CreateItemOnObject("corde001", GetPCSpeaker(), 1);

    // Enlever la corde de l'inventaire de la vache
    object oNPC = OBJECT_SELF ;
    object oItemToTake;
    oItemToTake = GetItemPossessedBy(oNPC, "corde001");
    if(GetIsObjectValid(oItemToTake) != 0)
        ActionTakeItem(oItemToTake, oNPC);

    //donner la valeur maitre au PJ
    object oPC = GetPCSpeaker() ;
    SetLocalObject(oNPC, "maitre", 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.

_________________
L'année de l'île Tome 1 Un roman ecxeptionnel !
Urban Rivals ! Mettez " ansker " en pseudo de votre parrain svp
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Starkanas
Grand Chevalier
Inscrit le: 14 Mai 2004
Messages: 110
Répondre en citant
Posté le : 20/06/2006 11:04:29 Sujet du message :

Attention de ne pas confondre le tag (utilisé pour vérifier la présence d'un objet) et le resref (utilisé pour la création de l'objet).

NWScript :
void main()
{
    string sResrefCorde = "corde001"; // Le resref de la corde
    string sTagCorde = "corde001"; // Le tag de la corde
    object oPC = GetPCSpeaker();
    object oNPC = OBJECT_SELF;

    // Donner corde au PJ
    CreateItemOnObject(sResrefCorde, oPC, 1);

    // Enlever la corde de l'inventaire de la vache
    object oCorde = GetItemPossessedBy(oNPC, sTagCorde);
    DestroyObject(oCorde);

    //donner la valeur maitre au PJ
    SetLocalObject(oNPC, "maitre", 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.

NWScript :
void main()
{
  string sTagCorde = "corde001"; // Le tag de la corde
  object oPC = GetLocalObject(OBJECT_SELF, "maitre");
  object oItem = GetItemPossessedBy(oPC, sTagCorde);
  DestroyObject(oItem);
}
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.


Donc adapte le tag et le resref dans les scripts Wink
_________________
LSDA 3ème Âge : Serveur RôlePlay basé sur les écrits de J.R.R.Tolkien ...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
ansquer
Héros
Inscrit le: 11 Déc 2005
Messages: 264
Localisation: MorBihan
Répondre en citant
Posté le : 20/06/2006 19:07:05 Sujet du message :

Je crois que c'est mon gros problème pour les scripts cette histoire de Tag et de refresh ...


Merci StarKanas Wink

encore un script qui va me servir de base pour des tas d'autres Very Happy
_________________
L'année de l'île Tome 1 Un roman ecxeptionnel !
Urban Rivals ! Mettez " ansker " en pseudo de votre parrain svp
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur 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 : 20/06/2006 20:19:55 Sujet du message :

Le probleme des Tags et des Refs seraient résolu si tu lisais les petites informations sur les fonctions Smile tu sais double click sur la fonction, et ta tout d'indiquer en vert, en générale ils precisent si il faut le tag ou la ref Smile
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
ansquer
Héros
Inscrit le: 11 Déc 2005
Messages: 264
Localisation: MorBihan
Répondre en citant
Posté le : 21/06/2006 07:01:49 Sujet du message :

Rolling Eyes Et moi qui gueule sur mes élèves qui ne lisent pas bien les consignes des problèmes...

Non... en fait j'ai une excuse comme la plupart de mes scripts je les construis à partir d'autres scripts je 'nai pas l'occasion de voir les infos ... faudrait que je clique dessus et c'est que je ferai dès à présent Razz

merci
_________________
L'année de l'île Tome 1 Un roman ecxeptionnel !
Urban Rivals ! Mettez " ansker " en pseudo de votre parrain svp
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 21/06/2006 11:48:19 Sujet du message :

juste un truc.... comme c'est un serveur multi... pensez aux pbs de rebbot ou autre... la variable ne sera pas sauvegardée.... peut être penser à un script qui scann les inventaires des joueurs... enfin c'est juste comme ça^^...

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Starkanas
Grand Chevalier
Inscrit le: 14 Mai 2004
Messages: 110
Répondre en citant
Posté le : 21/06/2006 12:47:20 Sujet du message :

Tout dépend de comment il gère ses variables. Personnellement je stocke les variables persistantes sur un objet indroppable qui est sauvegardé en même temps que le personnage (puisqu'il est dans son inventaire).
_________________
LSDA 3ème Âge : Serveur RôlePlay basé sur les écrits de J.R.R.Tolkien ...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 21/06/2006 15:14:12 Sujet du message :

oui mais si tu créés une variable sur un objet dans le jeu, cette variable sera supprimée en cas de rebboot non? le seul moyen c'est de créer une variable directement à la création de l'objet, mais il faudra cependant rescanner les joueurs pour savoir qui possède la variable..??? moi je sais que c'est souvent comme ça que je procède, mais je n'utilise ça que pour des quêtes, donc sur des zones spécifiques pour savoir si un joueur en y entrant était ds la quête ou non et ou il en était... sinon faut scanner à l'entrée du serveur...

Viduc
_________________
 
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 43.535ms