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 15:10:21
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 |
Le Blaireau Chevalier Messages: 71 |
Bonjour! Je cherche une façon de faire en sorte que... lorsque qu'un joueur entre par une certaine porte, toute les pierres de rappel de son inventaire lui soient retirées. Est-ce possible ? Merci d'avance..
|
Revenir en haut | |
Darkavanger Grand Chevalier Messages: 114 |
Heu par une porte, je ne vois pas trop, vaut mieu attendre les as du script, mais je peux te donner un moyen détourné.
Si ta porte entre dans une nouvelle zone, alors, tu vas dans les propriétés de la zone, et dans le OnEnter, tu mets le script de suppression. Sinon, tu utilises un déclencheur générique, situé juste derrière la porte. Maintenant, peut être tu veux le script qui va avec ? Là j'ai pas trop le temps, je ne suis pas chez moi, mais j'essayerai de te faire ça pour ce soir. A + |
Revenir en haut | |
Le Blaireau Chevalier Messages: 71 |
un déclencheur générique ...
Humm... ca pourrait etres bien... mais je fait comment ? |
Revenir en haut | |
Elandil2 Chevalier Messages: 97 Localisation: sur mon ordi loir-et-cher |
Dans le OnEnter soit de la zone, soit du déclencheur :
NWScript : void main() { string sTag = "***";// remplacer par le tag de la pierre de rappel object oPC = GetPCSpeaker(); object oNPC = OBJECT_SELF; object oObj = GetItemPossessedBy(oPC,sTag); object oObject = GetFirstItemInInventory(oPC); while(GetTag(oObject)==sTag) { DestroyObject(oObject,0.1); oObject = GetNextItemInInventory(oPC); } } _________________ Rejoignez nous sur notre forum Aelor, module en construction Vive Gimli |
Revenir en haut | |
Darkavanger Grand Chevalier Messages: 114 |
Arf, pris de vitesse...
Bon je met quand même mon script, me dit qu'il serivra peut être ... NWScript :
void main() { object oPC = GetEnteringObject(); object oItem = GetFirstItemInInventory(oPC); int iNum = 0; while (GetIsObjectValid(oItem)) { string sItem = GetTag(oItem); if (sItem == "tag_pierre_rappel" && iNum < 500) { DestroyObject(oItem); iNum ++; } oItem = GetNextItemInInventory(oPC); } } Vilà, désolé de ne pas avoir été plus rapide, à mettre dans le OnEnter d'un déclencheur. A + Edit : Elandil2, je pense que ton script ne va pas convenir, dans un dialogue il pourrai, 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. cette fonction renvoi au dernier PJ ayant parlé au PnJ. |
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Oui ^^
Il faudrait donc le remplacer par : 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. (je pense que tu as deja trouve dans le script de Darkavanger, donc c'est juste histoire de poster ^^) _________________ Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort |
Revenir en haut | |
Elandil2 Chevalier Messages: 97 Localisation: sur mon ordi loir-et-cher |
Oups, erreur d'habitude ... dsl
_________________ Rejoignez nous sur notre forum Aelor, module en construction Vive Gimli |
Revenir en haut | |
Le Blaireau Chevalier Messages: 71 |
Non, y a rien qui se passe....
Dernière édition par Le Blaireau le 29/01/2006 03:43:42; édité 1 fois
|
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
NWScript :
void main() { object oPC = GetEnteringObject(); if (!GetIsPC(oPC)) return; object oItem = GetFirstItemInInventory(oPC); string sTag; while (GetIsObjectValid(oItem)) { sTag = GetTag(oItem); if (sTag == "TAG1" || sTag == "TAG2" || sTag == "TAG3" || sTag == "TAG4") { SetPlotFlag(oItem,FALSE); //je sais jamais si c'est necessaire ou bien DestroyObject(oItem); } oItem = GetNextItemInInventory(oPC); } } Ca devrait marcher comme ça (enfin si tu remplace les tags ) |
Revenir en haut | |
Le Blaireau Chevalier Messages: 71 |
non y a rien qui ce passe...
|
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Tu l'as mis où le script ?
|
Revenir en haut | |
Darkavanger Grand Chevalier Messages: 114 |
bizzare, en testant mon script, et en mettant à la pierre de rappel, le tag "tag", il faut donc modifier:
NWScript :
if (sItem == "tag_pierre_rappel" && iNum < 500) par NWScript :
if (sItem == "tag" && iNum < 500) En faisant ces modifications, ça marche au poil, screen à l'appui: Tu l'as mis où ce script ? Tu as bien modifié le tag de la pierre ? |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
>Darkavanger : Pourquoi le iNum ??
|
Revenir en haut | |
Darkavanger Grand Chevalier Messages: 114 |
Au cas où le joueur est plusieurs pierre de rappel sur lui, elles seront toutes détruites.
|
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Oki. (Mais c'est pas la peine dans ton script, il fait de toute façon tout l'inventaire, donc chaque fois que le tag == "Tag" l'objet est détruit, enfin ce qui compte c'est que ça marche hein ? )
|
Revenir en haut | |
Darkavanger Grand Chevalier Messages: 114 |
Tu as tout à fait raison
|
Revenir en haut | |
Le Blaireau Chevalier Messages: 71 |
Impect... ca fonctionne parfaitement.... Merci mille-fois
|
Revenir en haut | |
Ailesnoires Grand Chevalier Messages: 110 Localisation: Vendée |
Mais non, il faut laisser le iNum, c'est pour sortir de la boucle
|
Revenir en haut | |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
Ailesnoires a écrit : Mais non, il faut laisser le iNum, c'est pour sortir de la boucle Faux, il utilise un test avec oItem != OBJECT_INVALID, il parcour tout l'inventaire jusqu'à arriver à la fin ce qui la fini...._________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
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