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 12:35:11


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
BlackMagik
Acolyte
Inscrit le: 02 Jan 2005
Messages: 22
Répondre en citant
Posté le : 12/01/2005 00:53:16 Sujet du message : script sur ondying, bug ou pas ?

Yop tout le monde, j'ai poster sur le forum pour un probleme d'argent pour ce script, et j'ai encore un autre probleme avec ce ***** script !! le script est placé sur le OnDying de mon module, et verifie si celui qui tue votre perso est un PJ ou pas, et si s'en est un, il drop vos objets equipés ainsi que votre argent.
Mais le script marche un peu comme il veut, des fois il marche, et des fois non, allez savoir pourquoi Embarassed

Voila le démon :

NWScript :

void main()
{
object oTueur = GetLastAttacker();
object oJoueur = GetLastPlayerDying();
location lLoc = GetLocation (oJoueur);
int iGold = GetGold (oJoueur);
string sObjetDroit = GetTag (GetItemInSlot (INVENTORY_SLOT_RIGHTHAND, oJoueur));
string sObjetGauche = GetTag (GetItemInSlot (INVENTORY_SLOT_LEFTHAND, oJoueur));
if (GetIsPC(oTueur))
    {
    TakeGoldFromCreature(iGold, oJoueur, TRUE);
    DestroyObject (GetItemInSlot (INVENTORY_SLOT_RIGHTHAND, oJoueur));
    DestroyObject (GetItemInSlot (INVENTORY_SLOT_LEFTHAND, oJoueur));
    CreateObject (OBJECT_TYPE_ITEM, sObjetDroit, lLoc, FALSE);
    CreateObject (OBJECT_TYPE_ITEM, sObjetGauche, lLoc, FALSE);
    SetItemStackSize(CreateObject(OBJECT_TYPE_ITEM, "nw_it_gold001", lLoc), iGold);
    }
}
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.


Merci ^^
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Brendan the Fleshless
Novice
Inscrit le: 25 Aoû 2004
Messages: 16
Répondre en citant
Posté le : 12/01/2005 08:21:14 Sujet du message :

Salut ! Ca fait un moment que je ne me suis pas penché sur les scripts, mais je crois que tu crées des objets à partir d'un tag, alors qu'il faudrait le faire à partir du resref !
Cela peut parfois fonctionner puisque certains objets ont le meme tag et resref (si ce n'est en majuscule...).
Pourquoi n'essayes-tu pas de faire lacher les objets du joueur, avec un ActionPutDownItem, par exemple ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Athanagorn
Acolyte
Inscrit le: 12 Déc 2004
Messages: 38
Répondre en citant
Posté le : 12/01/2005 09:52:48 Sujet du message :

Il est possible aussi que le script OnPlayerDying ne soit pas appelé. Voici ce qu'on peux trouver dans les remaques à ce propos dans le lexicon:

Citation :
This will not fire when a PC is instantly put at -10 or less hit points, for example EffectDeath, or a massive amount of damage at once.
En effet, un joueur est "Dying" seulemnt s'il a entre 0 et -10 points de vie. Au dessous, il est "Dead", et c'est le OnPlayerDeath qui est appelé.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BlackMagik
Acolyte
Inscrit le: 02 Jan 2005
Messages: 22
Répondre en citant
Posté le : 12/01/2005 12:52:02 Sujet du message :

Pour l'histoire des ResRef, si je met GetResRef ça ne fonctionne pas du tout ^^, alors j'ai mis GetTag.
Ensuite pour le OnDying, je te remercie pour la precision Athanagorn je n'etait pas au courant de ceci. C'est donc peut etre pour ça que mon script ne s'executé pas. Je vais donc le metre sur le ondeath. Merci encore des conseils Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Khaly
Voyageur
Inscrit le: 28 Aoû 2003
Messages: 3
Répondre en citant
Posté le : 12/01/2005 21:49:19 Sujet du message : Re: script sur ondying, bug ou pas ?

Je ne saurai trop te conceiller d'utiliser un placeable "tombe" ce serai plus simple et propre,
ne serait-ce que pour le ramassage (choix des objets empilés) ou un eventuel script de nettoyage.

Ci dessous un petit script qui transfère TOUT l'équipement et l'or du PJ sur sa tombe (ResRef = _plc_tombe)
qui devra être créer en palette et être : interactive, destructible et avoir un inventaire.

Il est à mettre dans le OnPlayerDeath du module ...

NWScript :

void main()
{
    object oPC = GetLastPlayerDied();

    // Si le tueur est un Joueur
    if( GetIsPC( GetLastKiller() ) )
    {
        object oItem;
        location lPC = GetLocation( oPC );

       
        object oTombe = CreateObject( OBJECT_TYPE_PLACEABLE, "_plc_tombe", lPC );

        // === On commence par les objets equipes ===
        int iSlot;
        // Les slots d'equipement sont des constantes de 0 a 13
        for( iSlot = 0; iSlot < 14; iSlot++ )
        {
            oItem = GetItemInSlot( iSlot, oPC );
            // Si il y a un objet dans ce slot et qu'il est perdable
            if( GetIsObjectValid( oItem ) && GetDroppableFlag( oItem ) )
            {
                // La tombe prends l'objet
                AssignCommand( oTombe, ActionTakeItem( oItem, oPC ) );
            }
        }

        // === On continue avec les objets en inventaire ===
        oItem = GetFirstItemInInventory( oPC );
        // tant que l'on a des objets ...
        while ( GetIsObjectValid( oItem ) )
        {
            // Si l'objet est perdable
            if( GetDroppableFlag( oItem ) )
            {
                // La tombe prends l'objet
                AssignCommand( oTombe, ActionTakeItem( oItem, oPC ) );
            }
            // on passe au suivant
            oItem = GetNextItemInInventory( oPC );
        }

        // === On fini avec l'or ===
        AssignCommand( oTombe, TakeGoldFromCreature( GetGold( oPC ), oPC ) );
    }

    // On envoi l'ecran de mort et plus si afinitees...
    DelayCommand( 3.0f, PopUpGUIPanel( oPC, GUI_PANEL_PLAYER_DEATH ) );
}
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é Visiter le site web du posteur Ignorer l'utilisateur
 
BlackMagik
Acolyte
Inscrit le: 02 Jan 2005
Messages: 22
Répondre en citant
Posté le : 14/01/2005 12:24:38 Sujet du message :

Merci beaucoup, ça va me servir tout ça Very Happy
 
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 39.905ms