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 19:48:03
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 |
Saelis Grand Maître Chanteur du Conseil Messages: 7047 Localisation: Lille |
Voila mon pbm:
Je veux créer dynamiquement une momie bien particulière. J'ai tout d'abord fait mes tests avec une momie standard et ca marchait. J'ai ensuite voulu créer une momie personnalisée unique s'appelant Baevelaar et j'ai voulu adapter mon code pour faire apparaître cette momie et là plus rien ne se passe. Note: Je n'ai pour l'instant rien modifié aux carac de la momie. C'est une copie bête et méchante de la momie standard. Elle a comme Tag NW_BAEVELAAR et comme ResRef mummy001 J'ai donc essayé le code suivant: Code : oBaevelaar = CreateObject(OBJECT_TYPE_CREATURE, "NW_BAEVELAAR", lPositionMomie , FALSE, "NW_BAEVELAAR_1") Puis suite à une recherche, j'ai lu qu'il fallait prendre de ResRef. J'ai donc utilisé ce code: Code : oBaevelaar = CreateObject(OBJECT_TYPE_CREATURE, "mummy001", lPositionMomie , FALSE, "NW_BAEVELAAR_1") Mais dans les 2 cas, rien ne se passe _________________ Now that we've fattened the cow and set out to plow unknown enemies - "Wow!" Shouts the startled crowd "Oh no did you see what I did see?" - The ravaged cabbage drifts on dark red skies - And it looks so nice Vainqueur BB1, BB3, BB5 et BB6 |
Revenir en haut | |
Baldurien L'homme qui chutait sur le macadam Messages: 14066 Localisation: Quadran Alpha |
oui, il faut utiliser le BluePrint ResRef, et sinon y a même pas un Badger qui apparaît ?
_________________ #nwnights-fr @ irc.darkmyst.org TitanQuest-FR |
Revenir en haut | |
Saelis Grand Maître Chanteur du Conseil Messages: 7047 Localisation: Lille |
Baldurien a écrit : oui, il faut utiliser le BluePrint ResRef, et sinon y a même pas un Badger qui apparaît ? Non, rien ne se passe. Alors que si j'essaye de faire apparaître une momie standard ça marche (même avec le tag )
(et cette fois ci c'est pas une faute de frappe dans le nom ) Il n'y a pas besoin qu'une instance de la momie existe qqpart tout de même? EDIT: Après re-vérification, le code suivant fonctionne: Code : oBaevelaar = CreateObject(OBJECT_TYPE_CREATURE, "NW_MUMMY", lPositionMomie , FALSE, "NW_BAEVELAAR_1"); Mais fait bien entendu apparaître une momie standard... EDIT 2: OK trouvé, c'est le fait de donner le dernier argument. Ne me demandez pas pourquoi mais ça, ça marche: Code : oBaevelaar = CreateObject(OBJECT_TYPE_CREATURE, "mummy001", lPositionMomie , FALSE); J'avoue ne pas avoir tout compris dans l'histoire mais bon... _________________ Now that we've fattened the cow and set out to plow unknown enemies - "Wow!" Shouts the startled crowd "Oh no did you see what I did see?" - The ravaged cabbage drifts on dark red skies - And it looks so nice Vainqueur BB1, BB3, BB5 et BB6 |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
(j'ai édité tes posts pour remplacer les balises [ nwscript ] qui ne marchent pas encore par des balises [ code ] )
Dans la version de NwN que j'ai au bureau , l'éditeur me donne ça pour la fonction CreateObject : Code : CreateObject(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE)
Il n'y a pas le dernier paramètre qui faisait planter ton script . Bon, maintenant cette version est en 1.29, peut-être que la fonction a été modifiée depuis mais je n'ai jamais vu ce paramètre jusque là... _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
Saelis Grand Maître Chanteur du Conseil Messages: 7047 Localisation: Lille |
Ben je suis en 1.32 et j'ai le proto suivant:
Code : object CreateObject(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE, string sNewTag="")
J'en avais conclu initialement que le 2e paramètre correspondait +/- à la classe de l'objet à créer et le dernier au nom de l'instance mais c'est pas ça du tout à voir Le plus drôle est que ce dernier paramètre ne gêne pas dans le cas de la momie standard mais uniquement dans le cas de la momie modifiée... Mais la nuit portant conseil, je me suis demandé si ça n'était pas une histoire d'intitulé tronqué on qqchose dans le genre. Enfin bref... ça marche c'est le principal EDIT: Pour les balises j'avais laissé les balises NWScript en me disant qu'un jour ça serait corrigé par Bal _________________ Now that we've fattened the cow and set out to plow unknown enemies - "Wow!" Shouts the startled crowd "Oh no did you see what I did see?" - The ravaged cabbage drifts on dark red skies - And it looks so nice Vainqueur BB1, BB3, BB5 et BB6 |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Ah oui OK, donc la fonction a bien été modifiée entre temps...
D'après ce que j'en comprend, le dernier paramètre sert à donner un nouveau tag à l'objet créé, mais en effet je ne vois pas non plus pourquoi ça marche avec une momie et pas avec l'autre... _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
Saelis Grand Maître Chanteur du Conseil Messages: 7047 Localisation: Lille |
il n'y a pas une histoire de longueur max pour les tags?
Comme le tag que je passais en dernier argument commençait exactement pareil que le tag de base il y avait sans doute conflit si c'était tronqué à N caractères. Je testerai avec un tag qui n'a rien à voir si j'ai le temps _________________ Now that we've fattened the cow and set out to plow unknown enemies - "Wow!" Shouts the startled crowd "Oh no did you see what I did see?" - The ravaged cabbage drifts on dark red skies - And it looks so nice Vainqueur BB1, BB3, BB5 et BB6 |
Revenir en haut | |
nunch Grand Sage du Conseil Messages: 966 Localisation: Dans la gueule du Lyon |
Autant que je sache, pas de limite particulière pour les tags.
Par contre les resrefs et noms de scripts sont limités à 16 caractères. |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Pour les ResRef ou noms de scripts, il y a une limite à 16 caractères, mais pour les tags je ne pense pas (ou alors elle est plus longue), j'ai déjà fait des tags à rallonge, ça passe, donc...
_________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
Saelis Grand Maître Chanteur du Conseil Messages: 7047 Localisation: Lille |
Bon ben je ne vois pas alors
Sinon j'ai un autre pbm... dès la ligne suivante voici mon code: Code : // Apparition de la momie oBaevelaar = CreateObject(OBJECT_TYPE_CREATURE, "mummy001", lPositionMomie , FALSE); // Texte sur la momie AssignCommand(oBaevelaar, ActionSpeakString("bla bla bla")); Et bien la 2e instruction ne fait absolument rien. Pas de texte... _________________ Now that we've fattened the cow and set out to plow unknown enemies - "Wow!" Shouts the startled crowd "Oh no did you see what I did see?" - The ravaged cabbage drifts on dark red skies - And it looks so nice Vainqueur BB1, BB3, BB5 et BB6 |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Je crois que tu devrais sortir ton CreateObject de ta définition de oBaevelaar.
En fait quand tu définis un "oKekchose", chaque fois qu'il rencontrera le oKekchose dans ton script il le remplacera par ce qu'il y a après le =. Là, comme je le comprend, il essaie de faire dire une phrase à une fonction de création d'objet Essaie plutôt quelque chose comme ça : Code : object oBaevelaar = GetObjectByTag("NW_BAEVELAAR"); // Apparition de la momie CreateObject(OBJECT_TYPE_CREATURE, "mummy001", lPositionMomie , FALSE); // Texte sur la momie DelayCommand (2.0, AssignCommand(oBaevelaar, ActionSpeakString("bla bla bla"))); J'ai ajouté un DelayCommand sur le AssignCommand car sinon les deux instructions se lancent en même temps et le jeu ne trouve donc pas le oBaevalaar puisqu'il est en train d'être créé (enfin bon, c'est à tester, je fais de tête, il se peut (fortement ) que ça ne marche pas ) EDIT : petit oubli dans le script Sinon, tu as définit lPositionMomie aussi ? Par exemple si tu veux faire apparaître ta Momie à un endroit spécifique, pose un waypoint (de tag par exemple "lSpawnMomie") et ajoute à ton script en dessous de object oBaevelaar = blablabla une ligne Code : object oBaevelaar = GetObjectByTag("NW_BAEVELAAR); location lPositionMomie = GetLocation(GetObjectByTag("lSpawnMomie")); ... Pour décortiquer , GetLocation récupère la localisation de l'objet entre paranthèse, qui est donc l'objet ayant le tag lSpawnMomie. On peut en effet imbriquer les GetMachin les uns dans les autres, c'est très pratique ) _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com Dernière édition par Cassin le 24/10/2003 12:14:45; édité 1 fois
|
Revenir en haut | |
nunch Grand Sage du Conseil Messages: 966 Localisation: Dans la gueule du Lyon |
Le GetObjectByTag() je le mettrais après CreateObject() ...
Ca me semble plus logique, puisqu'avant il n'existe pas. En fait même Code : object oBaevelaar = CreateObject(OBJECT_TYPE_CREATURE, "mummy001", lPositionMomie , FALSE);
me semblait juste. Saelis, tu as essayé avec un DelayCommand() ?? |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
nunch a écrit : Le GetObjectByTag() je le mettrais après CreateObject() ...
Oui en effet, mais ça ne pose pas de problème. Je définis toujours mes variables en début de script et ça passe, même quand l'objet n'est pas encore créé
Ca me semble plus logique, puisqu'avant il n'existe pas. nunch a écrit : En fait même
Oui, mais dans ce cas il ne faut pas réutiliser oBaevelaar ensuite pour utiliser la créature crée... Enfin je pense, c'est comme ça que je le vois Code : object oBaevelaar = CreateObject(OBJECT_TYPE_CREATURE, "mummy001", lPositionMomie , FALSE);
me semblait juste. _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
Saelis Grand Maître Chanteur du Conseil Messages: 7047 Localisation: Lille |
Dans ce cas je ne vois pas trop l'utilité de la variable de retour du CreateObject
Mais bon... (je crois que je n'ai pas fini d'être étonné par les nwscripts ) Je vais essayer le GetObjectByTag (même si là encore je ne comprend pas qu'il fonctionne sur un objet non encore créé... ) Merci à vous deux! _________________ Now that we've fattened the cow and set out to plow unknown enemies - "Wow!" Shouts the startled crowd "Oh no did you see what I did see?" - The ravaged cabbage drifts on dark red skies - And it looks so nice Vainqueur BB1, BB3, BB5 et BB6 |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Je suis en train de tester le script que j'ai donné tout à l'heure, attention j'ai oublié le guillemet de fin du GetObjectByTag (je viens de le corriger )
Comme je le pensais, le script ne se compile car il ne sait pas ce qu'est le lPositionMomie, il faut donc le définir comme je l'ai fait dans mon édit, là ça compile Bon, je vais tester en live, je reviens EDIT : bon OK j'ai dis une connerie , on ne peux pas en effet définir un objet pas encore créé Je me souviens maintenant, j'avais eu le même problème l'année dernière sur le BBMOD, lors de la cutscene de l'ouverture des Portes (si vous avez réussis à téléchargé le fichier posté par Konrad vous l'avez ), Baldurien (qui était créé en cours de script) ne voulait pas parler, j'ai contourné le problème en mettant "GetObjectByTag("baldurien")" à chaque fois au lieu de simplement mettre "oBal" (masqué ohé ohé ) Voilà donc le script qui fonctionne : Code : void main()
{ location lPositionMomie = GetLocation(GetObjectByTag("lSpawnMomie")); // Apparition de la momie CreateObject(OBJECT_TYPE_CREATURE, "mummy001", lPositionMomie , FALSE); // Texte sur la momie DelayCommand (5.0, AssignCommand(GetObjectByTag("NW_BAEVELAAR"), SpeakString("bla bla bla"))); } _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
Saelis Grand Maître Chanteur du Conseil Messages: 7047 Localisation: Lille |
Bon... rien de tout ça ne fonctionne.
Je pense savoir d'ou vient le pbm: Qd la momie apparaît, elle est agressive d'entrée. Résultat, le combat commence et l'évennement OnPerception se déclenche. Or cet évennement fait appel à un ClearAllActions qui doit réinitialiser mes actions ultérieures. Enfin je pense... Je ne sais pas comment contourner ce truc _________________ Now that we've fattened the cow and set out to plow unknown enemies - "Wow!" Shouts the startled crowd "Oh no did you see what I did see?" - The ravaged cabbage drifts on dark red skies - And it looks so nice Vainqueur BB1, BB3, BB5 et BB6 |
Revenir en haut | |
kiky.le.magnifique Homme très gay Messages: 907 Localisation: Camping de la nation martienne... |
Tu peut pas jouer avec un delaycommand sur ton ClearAllActions?
_________________ http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin! |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Ben comme je le disais j'ai testé le script et chez moi aussi la momie apparaît en Hostile, et elle dit la phrase quand même... (d'ailleurs dans le jeu on rencontre souvent des PNJ qui causent en plein combat)
_________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
Saelis Grand Maître Chanteur du Conseil Messages: 7047 Localisation: Lille |
J'avais pas vu l'édit qd j'ai posté mon dernier message. Autant pour moi...
_________________ Now that we've fattened the cow and set out to plow unknown enemies - "Wow!" Shouts the startled crowd "Oh no did you see what I did see?" - The ravaged cabbage drifts on dark red skies - And it looks so nice Vainqueur BB1, BB3, BB5 et BB6 |
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