La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 20:17:32


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Saelis
Grand Maître Chanteur du Conseil
Inscrit le: 04 Oct 2002
Messages: 7047
Localisation: Lille
Répondre en citant
Posté le : 23/10/2003 23:14:59 Sujet du message : Problème CreateObject

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 Sad
_________________
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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Baldurien
L'homme qui chutait sur le macadam
Inscrit le: 12 Sep 2002
Messages: 14066
Localisation: Quadran Alpha
Répondre en citant
Posté le : 23/10/2003 23:29:36 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Saelis
Grand Maître Chanteur du Conseil
Inscrit le: 04 Oct 2002
Messages: 7047
Localisation: Lille
Répondre en citant
Posté le : 23/10/2003 23:31:58 Sujet du message :


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 Surprised )

(et cette fois ci c'est pas une faute de frappe dans le nom Embarassed )

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... Confused

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Cassin
Papa-poule(t) & poissard intemporel
Inscrit le: 16 Sep 2002
Messages: 7471
Localisation: 6 bis rue de la Couveuse, Poulailler 39b
Répondre en citant
Posté le : 24/10/2003 07:45:48 Sujet du message :

(j'ai édité tes posts pour remplacer les balises [ nwscript ] qui ne marchent pas encore par des balises [ code ] Wink )


Dans la version de NwN que j'ai au bureau Embarassed, 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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Saelis
Grand Maître Chanteur du Conseil
Inscrit le: 04 Oct 2002
Messages: 7047
Localisation: Lille
Répondre en citant
Posté le : 24/10/2003 08:17:06 Sujet du message :

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 Very Happy
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 Very Happy


EDIT: Pour les balises j'avais laissé les balises NWScript en me disant qu'un jour ça serait corrigé par Bal Wink
_________________
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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Cassin
Papa-poule(t) & poissard intemporel
Inscrit le: 16 Sep 2002
Messages: 7471
Localisation: 6 bis rue de la Couveuse, Poulailler 39b
Répondre en citant
Posté le : 24/10/2003 09:24:02 Sujet du message :

Ah oui OK, donc la fonction a bien été modifiée entre temps... Wink

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Saelis
Grand Maître Chanteur du Conseil
Inscrit le: 04 Oct 2002
Messages: 7047
Localisation: Lille
Répondre en citant
Posté le : 24/10/2003 09:30:29 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
nunch
Grand Sage du Conseil
Inscrit le: 23 Mai 2003
Messages: 966
Localisation: Dans la gueule du Lyon
Répondre en citant
Posté le : 24/10/2003 09:39:06 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Cassin
Papa-poule(t) & poissard intemporel
Inscrit le: 16 Sep 2002
Messages: 7471
Localisation: 6 bis rue de la Couveuse, Poulailler 39b
Répondre en citant
Posté le : 24/10/2003 09:39:36 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Saelis
Grand Maître Chanteur du Conseil
Inscrit le: 04 Oct 2002
Messages: 7047
Localisation: Lille
Répondre en citant
Posté le : 24/10/2003 10:30:12 Sujet du message :

Bon ben je ne vois pas alors Confused

Sinon j'ai un autre pbm... dès la ligne suivante Very Happy

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... Confused
_________________
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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Cassin
Papa-poule(t) & poissard intemporel
Inscrit le: 16 Sep 2002
Messages: 7471
Localisation: 6 bis rue de la Couveuse, Poulailler 39b
Répondre en citant
Posté le : 24/10/2003 10:50:56 Sujet du message :

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 Wink

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éé Wink

(enfin bon, c'est à tester, je fais de tête, il se peut (fortement Very Happy) que ça ne marche pas Wink )


EDIT : petit oubli dans le script Embarassed
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 Very Happy, 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 Wink )
_________________
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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
nunch
Grand Sage du Conseil
Inscrit le: 23 Mai 2003
Messages: 966
Localisation: Dans la gueule du Lyon
Répondre en citant
Posté le : 24/10/2003 11:17:12 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Cassin
Papa-poule(t) & poissard intemporel
Inscrit le: 16 Sep 2002
Messages: 7471
Localisation: 6 bis rue de la Couveuse, Poulailler 39b
Répondre en citant
Posté le : 24/10/2003 12:06:33 Sujet du message :


nunch a écrit :
Le GetObjectByTag() je le mettrais après CreateObject() ...
Ca me semble plus logique, puisqu'avant il n'existe pas.
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éé Wink



nunch a écrit :
En fait même
Code :
object oBaevelaar = CreateObject(OBJECT_TYPE_CREATURE, "mummy001", lPositionMomie , FALSE);

me semblait juste.
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 Wink
_________________
Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ?

http://cassin1306.spaces.live.com
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Saelis
Grand Maître Chanteur du Conseil
Inscrit le: 04 Oct 2002
Messages: 7047
Localisation: Lille
Répondre en citant
Posté le : 24/10/2003 12:12:30 Sujet du message :

Dans ce cas je ne vois pas trop l'utilité de la variable de retour du CreateObject Surprised

Mais bon...
(je crois que je n'ai pas fini d'être étonné par les nwscripts Very Happy )

Je vais essayer le GetObjectByTag (même si là encore je ne comprend pas qu'il fonctionne sur un objet non encore créé... Confused )

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Cassin
Papa-poule(t) & poissard intemporel
Inscrit le: 16 Sep 2002
Messages: 7471
Localisation: 6 bis rue de la Couveuse, Poulailler 39b
Répondre en citant
Posté le : 24/10/2003 12:17:58 Sujet du message :

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 Very Happy)

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 Wink


Bon, je vais tester en live, je reviens Very Happy


EDIT : bon OK j'ai dis une connerie Embarassed, on ne peux pas en effet définir un objet pas encore créé Very Happy
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 Wink), 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é Laughing)

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Saelis
Grand Maître Chanteur du Conseil
Inscrit le: 04 Oct 2002
Messages: 7047
Localisation: Lille
Répondre en citant
Posté le : 24/10/2003 23:12:17 Sujet du message :

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 Confused
_________________
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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 25/10/2003 10:28:08 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Cassin
Papa-poule(t) & poissard intemporel
Inscrit le: 16 Sep 2002
Messages: 7471
Localisation: 6 bis rue de la Couveuse, Poulailler 39b
Répondre en citant
Posté le : 26/10/2003 00:19:42 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Saelis
Grand Maître Chanteur du Conseil
Inscrit le: 04 Oct 2002
Messages: 7047
Localisation: Lille
Répondre en citant
Posté le : 26/10/2003 20:24:36 Sujet du message :

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 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 53.057ms