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:50:23
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 |
Tiitou Ecuyer Messages: 51 Localisation: Dans mon C2 |
Salut,
aujourd'hui c'est un grand jour : je me lance dans les scripts . Je lis plein de trucs et quand je commence a comprendre j'essai un script (pour avoir un poubelle dans l'inventaire). Je met le script la où il faut (OnActivateItem du module) et....je peux pas compiler . J'ai ce message d'erreur qui apparait : 26/02/2005 22:50:06 : Erreur. 'activate_items' n'est pas compilé. activate_items.nss: ERREUR : DUPLICATE FUNCTION IMPLEMENTATION (main) Si quelqu'un pouvait me proposer un solution... Merci d'avance Tiitou |
Revenir en haut | |
Devilon Bersek Ecuyer Messages: 59 Localisation: Certainement dans une forge...sinon a Beaune |
a priori, tu dois avoir deux void main() dans ton script puisqu'il te dit qu'il est dupliqué....enfin je crois lol, le mieux serait que tu mette ton script ici afin que nous voyions l'erreur et la corriger, voilà
_________________ Rien n'est grave dans la vie...sauf de la perdre... Chroniques des Royaumes Perdus : [http] |
Revenir en haut | |
Tiitou Ecuyer Messages: 51 Localisation: Dans mon C2 |
Merci pour la réponse si prompte , j'ai enlevé le void main () et j'ai maintenant ce message :
26/02/2005 23:52:06 : Erreur. 'activate_items' n'est pas compilé. activate_items.nss(269): ERREUR : INVALID DECLARATION TYPE Note: mon accolade de fin est surlignée donc normalement l'erreur est là non ? (je vous le dis j'ai commencé aujourd'hui ) Voici le script original: NWScript :
void main() { object oPC; if (!GetIsPC(GetItemActivatedTarget()) || GetIsInCombat(GetItemActivator()) ){ SendMessageToPC(GetItemActivator(), "Vous ne pouvez pas utiliser cet objet maintenant !"); return;} object oTarget; oPC = GetItemActivator(); oTarget = oPC; AssignCommand(oTarget, ActionStartConversation(oPC, "nomdudial")); } PS: le void main () sert à quoi ? Voili, voilou... |
Revenir en haut | |
Devilon Bersek Ecuyer Messages: 59 Localisation: Certainement dans une forge...sinon a Beaune |
je viens d'essayer ton script et chez moi il compile tres bien, j'ai juste refait une mise en page, mais meme avant il compilait...je te le remets au clair
NWScript :
void main() { object oPC; if (!GetIsPC(GetItemActivatedTarget()) || GetIsInCombat(GetItemActivator())) { SendMessageToPC(GetItemActivator(), "Vous ne pouvez pas utiliser cet objet maintenant !"); return; } object oTarget; oPC = GetItemActivator(); oTarget = oPC; AssignCommand(oTarget, ActionStartConversation(oPC, "nomdudial")); } ma foi, reessaye en faisant un copier/coller de celui là, mais c'est le meme lol sinon, le void main(), si j'ai bien compris c'est ce qui t'autorise l'utilisation de tes fonctions....si je me plante, dites le moi _________________ Rien n'est grave dans la vie...sauf de la perdre... Chroniques des Royaumes Perdus : [http] |
Revenir en haut | |
Yeziliclick Seigneur Messages: 235 |
je n'ai jamais scripté sous nwn, mais a mon avis c'est comme dans tousd les langages, quand tu executes un script, en fait il appelle une seule fonction : la foncrion main (principal en anglais) et c'est cette fonction qui appelle toutes les autres (enfin si je me rappelle bien)
|
Revenir en haut | |
Tiitou Ecuyer Messages: 51 Localisation: Dans mon C2 |
Re,
j'ai essayé ton script et j'ai toujours la première erreur. J'ai ensuite retiré void main () et là j'ai la deuxième erreur^^ (les fonction c'est quoi ?) Tiitou |
Revenir en haut | |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
Le but voulue est de lancer un dialogue avec l'utilisateur ? A ce moment la tu t'est embrouiller un petit peu.
Explication (dsl si c'est pas claire) : Deja tu fait des declarations dans tous les sens, les declarations c'est quoi ? c'est sa 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. Ici tu defini l'objet oPC comme celui qui a utiliser l'objet et tu fait oTarget = oPC, c'est completement inutile il faut reutiliser ton oPC. NWScript :
oPC = GetItemActivator(); Ensuite 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.
Il suffira de mettre NWScript :
GetIsInCombat(oPC) si tu l'a bien declarer. Ensuite les fonctions que tu utilise pour les objet sont NWScript :
GetItemActivatedTarget() // Pour recuperer la cible de l'objet GetItemActivator() // Pour recuperer l'utilisateur de l'objet Mais si j'ai bien compris c'est une poubelle personnalisé, alors soit on met les item dedans et on l'active pour detruire (dans ce cas pas besoin de Target) sinon tu l'uilise sur un objet pour ensuite le detruire (mais sa je peux pas deviner). Dernier point il manque le test si l'objet est de tel ou tel tag, car la tout les objets utilisé auront le dialogue de lancé, donc il faut utiliser GetTag. Voilà j'ai corriger comme je pensai que tu le voulais NWScript :
void main() { object oPC; oPC = GetItemActivator(); sTag = GetTag(GetItemActivated()); if(sTag == "Tag_de_ta_poubelle") { if(GetIsPC(oPC) && GetIsInCombat(oPC)) { SendMessageToPC(oPC, "Vous ne pouvez pas utiliser cet objet maintenant !"); } else { AssignCommand(oPC, ActionStartConversation(oPC, "nomdudial")); } } } Voila pour les explications... Maissss de rien _________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | |
Tiitou Ecuyer Messages: 51 Localisation: Dans mon C2 |
Merci, je vais essayer ça tout de suite. Si j'ai bien compris, les fonction c'est des action et les déclarations c'est
déclarer tout les objets ou joueurs qui vont rentrer dans l'action ? Note: le script original c'était pour mettre des objets dans un contenant (la poubelle) puis de les détruires avec un livre et reçevoir une somme de PO. Tu as bien compris ça j'espère Dernière édition par Tiitou le 17/03/2005 09:27:40; édité 1 fois
|
Revenir en haut | |
Yeziliclick Seigneur Messages: 235 |
une fonction ce que c'est ? euh eh bien c'est un ensemble d'intructions qui fait que tu puisses faire des scripts. Quiand tu vois un nom suivi de parenthèse, c'est que tu appelles une fonction et ce qu'il y a entre parenthèses sont les arguments. Par exemple : GetItemActivator() est une fonction qui n'a pas (forcément) besoin d'arguments (ils sont peut-ete facultatifs).
GetIsInCombat() est une fonction qui peur prendre un argument, dans l'exemple ci-dessus, tu as GetIsInCombat(GetItemActivator()) : là l'argument est une fonction, mais ca peut ete de n'importe quel type, ca depend de comment sont implémentés les fonctions. Et encore la fonction GetItemActivator() renvoi qqchose de type object. tu le vois a la déclaration : object oPC; //tu déclares une variable de type object oPC = GetItemActivator() // a cette variable tu assignes la fonction GetItemActivator() Donc en fait l'argument de la fonction GetIsInCombat() est un object. Enfin je crois, mes souvenirs en programmation sont assez flous. Bref, une fonction est cequi te permet de faire tourner tes scripts A mon avis tout ceci est mieux epliqué dans les tutoriaux |
Revenir en haut | |
Tiitou Ecuyer Messages: 51 Localisation: Dans mon C2 |
Re-re, j'ai essayé ton script et j'ai toujours ce message:
27/02/2005 12:30:32 : Erreur. 'activate_items' n'est pas compilé. activate_items.nss: ERREUR : DUPLICATE FUNCTION IMPLEMENTATION (main) Je me demande si le problème ne viens pas de mes options qui sont mal configurées... |
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