La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 22/09/2024 00:27:45


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 16/10/2005 17:32:57 Sujet du message : [Résolu] Objet impossible à déséquiper

Bonjour à tous,

j'aimerai faire en sorte qu'un objet (cape par exemple) ne puisse être enlever de l'INVENTORY_SLOT_CLOAK .

J'ai trouvé un script, je l'ai modifié mais ça ne fonctionne toujours pas.

Voici le script dans le UnAquireItem :

NWScript :

// A PLACER Dans le UnAcquireItem
void main()
{
object oTest = GetModuleItemLost();
object oPossesseur = GetModuleItemLostBy();

if (GetTag(oTest) == "Capemaudite")
    {
    DestroyObject(oTest);
    object oNew = CreateItemOnObject("capemaudite",oPossesseur);
    if (GetItemInSlot(INVENTORY_SLOT_CLOAK,oPossesseur) != OBJECT_INVALID)
        {
        object oCape = GetItemInSlot(INVENTORY_SLOT_CLOAK,oPossesseur);
        AssignCommand(oPossesseur, ActionUnequipItem(oCape));
        }
  AssignCommand(oPossesseur, ActionEquipItem(oNew,INVENTORY_SLOT_CLOAK));
  ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_SOUND_BURST),oPossesseur);
  SendMessageToPC(oPossesseur, "Vous ne pouvez retirer cet anneau sans subir la colere de votre Dieu...");
  ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(20, DAMAGE_TYPE_DIVINE), oPossesseur);
  }

// pour d'eventuels autres objets...
// else if (GetTag(oTest) == "????")
//    { }
}
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.


Quelqu'un a une idée ?
Dernière édition par Djezebel le 17/10/2005 16:39:28; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 16/10/2005 18:51:09 Sujet du message :

Ton script est pour les item indroppable et non "inenlevable".
Si tu veux qu'il reste fixe dans un emplacement utilise plutôt l'event UnEquipItem (ou le switch correspondant dans le TagBase).
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 16/10/2005 19:13:32 Sujet du message :

Ca ne change rien : le personnage peut l'équiper, le mettre dans son sac ou le mettre par terre.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 16/10/2005 19:38:27 Sujet du message :

Eureka ! (comme dirait Archimède)

J'ai réussi à faire ce que je voulais !
Forcément, si je ne mets pas le bon Tag de l'objet aussi, ça ne marchera pas.

Et voici le script :

NWScript :
// A PLACER Dans le UnEquipeItem
void main()
{
object oTest = GetPCItemLastUnequipped();
object oPossesseur = GetPCItemLastUnequippedBy();

if (GetTag(oTest) == "i_capemaudite")
    {
    if (GetItemInSlot(INVENTORY_SLOT_CLOAK,oPossesseur) != OBJECT_INVALID)
        {
        DelayCommand(0.1, AssignCommand(oPossesseur, ActionEquipItem(oTest,INVENTORY_SLOT_CLOAK)));
        SendMessageToPC(oPossesseur, "");
        }
  }

// pour d'eventuels autres objets...
// else if (GetTag(oTest) == "????")
//    { }
}
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
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 17/10/2005 10:11:48 Sujet du message :

Ca ne marchera pas dans tout les cas je pense enleve le test:
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.

_________________
La mort n'est rien seul le fait de mourir est terrible
Henry Fielding 1745

Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2.
 
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 34.099ms