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 16:40:40


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
nunch
Grand Sage du Conseil
Inscrit le: 23 Mai 2003
Messages: 966
Localisation: Dans la gueule du Lyon
Répondre en citant
Posté le : 23/05/2003 19:03:34 Sujet du message : Problème avec la fonction ActionGiveItem

Hello,

J'ai un probleme avec le script suivant:

Code :
object oPlayer = GetLastPlayerDied();
    object oSoul = OBJECT_INVALID;

    // Assigne l'ame au PJ
    oSoul = GetObjectByTag("it_AmePJ",0);
    if(oSoul != OBJECT_INVALID)
    {
        PrintString("Essaye d'assigner la gemme d'ame");
        ActionGiveItem(oSoul,oPlayer);
        PrintString("Gemme d'ame assignee");
    }
    else
        PrintString("Gemme d'ame non trouvee");



Voilà, le script fait planter le jeu sur la commande "ActionGiveItem" (j'ai vérifié avec les traces dans le fichier de logs) lorsque le joueur meurt et je ne comprends pas pourquoi.

Toute aide est la bienvenue pour m'aider à élucider ce mystère !!

[Edite] Pense de mettre les balises sur les codes. Merci. Tyrion. Sinon Bienvenu sur ce forum ! Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Tyrion
Ecuyer
Inscrit le: 23 Fév 2003
Messages: 43
Répondre en citant
Posté le : 23/05/2003 19:24:39 Sujet du message :

Essayer avec la fonction CreateItemOnObject() comme ceci (pense de mettre le resref a l'endroit ou je te l'es indiqué.

Code :
object oPlayer = GetLastPlayerDied();
    object oSoul = OBJECT_INVALID;

    // Assigne l'ame au PJ
    oSoul = GetObjectByTag("it_AmePJ",0);
    if(oSoul != OBJECT_INVALID)
    {
        PrintString("Essaye d'assigner la gemme d'ame");
        CreateItemOnObject("resref de ton oSoul",oPlayer);
        PrintString("Gemme d'ame assignee");
    }
    else
        PrintString("Gemme d'ame non trouvee");

_________________
Ce n'est pas parce que les choses sont difficiles que l'on ose pas les faire.
C'est parce que l'on ose pas les faire qu'elles sont difficile.
Dernière édition par Tyrion le 23/05/2003 21:02:29; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
nunch
Grand Sage du Conseil
Inscrit le: 23 Mai 2003
Messages: 966
Localisation: Dans la gueule du Lyon
Répondre en citant
Posté le : 23/05/2003 19:47:08 Sujet du message :

Merci Tyrion, ça fonctionne ! Very Happy
Je penserai à mettre les balises la prochaine fois, promis !

D'ailleurs j'ai vu sur le forum du site de bioware qu'il y a une sacré liste de fonctions buggées et ActionGiveItem() en fait partie. Sad
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Tyrion
Ecuyer
Inscrit le: 23 Fév 2003
Messages: 43
Répondre en citant
Posté le : 23/05/2003 20:03:03 Sujet du message :

Ben disons que le GiveItem sa marche bien pour donner un Item present dans un inventaire de PNJ (script pour dialogue) alors que le CreateItem ben c'est un genre de passe partout Smile

Content d'avoir pu te rendre service Smile
_________________
Ce n'est pas parce que les choses sont difficiles que l'on ose pas les faire.
C'est parce que l'on ose pas les faire qu'elles sont difficile.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
Meliok
Novice
Inscrit le: 30 Juin 2003
Messages: 12
Répondre en citant
Posté le : 08/07/2003 22:54:24 Sujet du message :

QQun pourrait me dire si il y a encore une erreur sur ActionGiveItem ?

je fais ca :

Code :

void main()
{
   object oPC = GetPCSpeaker();
   object oInnKeeper = GetObjectByTag("BIW_INNKEEPER");
   int amountOfGold = GetGold(oPC);
   if ( amountOfGold >= 50 )
   {
     object oKey1 = GetObjectByTag("BIW_ROOM_KEY1");

     if( oKey1 == OBJECT_INVALID )
       SendMessageToPC(oPC, "Objet invalide");
     else
     {
       SendMessageToPC(oPC, GetTag(oKey1));
       SendMessageToPC(oPC, GetTag(GetItemPossessor(oKey1)));
     }
     TakeGoldFromCreature(50,oPC,FALSE);

     ActionGiveItem(oKey1,oPC);
     SetLocalInt(oInnKeeper,"BIW_KEY1_AVAILABLE",FALSE);
   }

}


ca ne produit pas d'erreur , mais le tenancier de l'auberge (oInnKeeper) ne donne pas la clef a oPC...
Une idée sur le pourquoi du comment ?

Merci
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Meliok
Novice
Inscrit le: 30 Juin 2003
Messages: 12
Répondre en citant
Posté le : 09/07/2003 10:36:41 Sujet du message :

Bon, j'ai trouvé une parade qui fonctionne, je ne sais pas trop pourquoi, mais elle fonctionne :

Code :

void main()
{
   object oPC = GetPCSpeaker();
   object oInnKeeper = GetObjectByTag("BIW_INNKEEPER");
   int amountOfGold = GetGold(oPC);
   if ( amountOfGold >= 50 )
   {
     object oKey1 = GetObjectByTag("BIW_ROOM_KEY1");

     TakeGoldFromCreature(50,oPC,FALSE);

     DelayCommand(0.5,ActionGiveItem(oKey1,oPC));
     SetLocalInt(oInnKeeper,"BIW_KEY1_AVAILABLE",FALSE);
   }

}
 
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 29.597ms