La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 23/11/2024 21:27:01
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
BlackMagik Acolyte Messages: 22 |
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 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); } } Merci ^^ |
Revenir en haut | |
Brendan the Fleshless Novice Messages: 16 |
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 | |
Athanagorn Acolyte Messages: 38 |
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 | |
BlackMagik Acolyte Messages: 22 |
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 |
Revenir en haut | |
Khaly Voyageur Messages: 3 |
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 ) ); } |
Revenir en haut | |
BlackMagik Acolyte Messages: 22 |
Merci beaucoup, ça va me servir tout ça
|
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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