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 14:58:35
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Darkavanger Grand Chevalier Messages: 114 |
Salut à tous !
Voilà, je me met doucement à l'éditeur de Nwn 2 (A ce propos, est ce qu'il y a du monde sur le jeu ? La communauté Française est elle active ?) et j'essaye de faire un script permettant le spawn de monstre relativement aléatoire. Mais y a un léger problème, lorsque je lance le module de test, plantage de Nwn 2. Script disponible un peu plus bas Le "vrai" problème se situe à la ligne : 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. Si cette ligne est en commentaire tout se passe relativement bien, les mobs sont crées, mais au même endroit (logique, l'endroit ne change pas...), mais si elle est dé commenter, là ça plante complet... Est ce que quelqu'un aurait une idée du pourquoi du comment ? Bonne soirée à tous ! PS : Les lignes de Create... commentés le sont uniquement pour le test ! Dernière édition par Darkavanger le 07/12/2007 18:16:46; édité 4 fois
|
Revenir en haut | |
Argyl Grand Sage du Conseil Messages: 704 |
Le problème ne viendrait-il pas de ta définition de oObjet ?
|
Revenir en haut | |
Darkavanger Grand Chevalier Messages: 114 |
Ben je ne pense pas, la première fois que je défini oObjet, je demande de regarder le 1° objet dans l'Area, ensuite au cour du script, je vérifie s'il s'agit d'un WP, si oui je fais mon bazar, sinon je passe à l'objet suivant dans la zone, et je change la localisation de l'objet.
Le problème est que si je ne change pas la localisation de l'objet, tout marche bien (à part que les mobs sont crées tous au même endroit), mais si je la change, ça plante le jeu. |
Revenir en haut | |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
Euh à première vue, sans regarder le script en détail on voit que tu défini sRace et sLvl sur le FirstObject, si le premier objet n'est pas un waypoint il y a un problème, d'une part car tu ne remet pas à jour ces deux variables dans la boucle tu les laisses à leur valeurs initiales, d'autre par par la définition du iLocWP qui se trouve en fin de boucle, après la redifinition de l'objet, et si jamais il n'y a pas de NextObject tu prend la Location de quel objet ??
Donc une première solution serait déjà de remettre ça dans l'ordre ^^, il te suffit juste de déclarer tes 3 variables qui doivent se rafraichir dans la boucle au debut (sRace, sLvl, iLocWP) et tu les rafraichient en entrée de ton if pour le cas waypoint. Après si le problème persiste il faudra voir =p _________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | |
Darkavanger Grand Chevalier Messages: 114 |
Effectivement le problème venait de là ! Merci à toi Ivellios !
Nouvelle version du script : Script disponible un peu plus bas Maintenant, un nouveau problème se pose lors des tests IG, lorsque je fais le test, au lieu de me retrouver avec 1 nain à chaque WP (nouvelle version du script), je me retrouve avec tout un tas de nain (c'est pas que j'aime pas les nains hein...) comme sur ce screen : Ce que je ne comprend pas, c'est pourquoi il y en a autant, je ne les crée pas dans une boucle, donc il ne devrait en spawner qu'un, lors du case correspondant. Quelqu'un aurait t'il une idée ? Dernière édition par Darkavanger le 07/12/2007 17:52:49; édité 1 fois
|
Revenir en haut | |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
Tu ne test pas si la créature entrante est un PC (avec GetIsPC), donc du coup ton script se declenche à chaque fois qu'un "objet" entre, donc tes nains que tu créé déclenche aussi cette event et ainsi de suite (pour ça que tu en a plein ^^).
_________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | |
Darkavanger Grand Chevalier Messages: 114 |
Effectivement c'était bien ça...
Donc, pour ceux que ça intéresse, voici le script dans sa version définitive, le nombre de spawn est 1, mais il est facilement modifiable, en copiant/collant autant de fois que nécessaire la ligne CreateObject. NWScript :
object oPC = GetEnteringObject (); object oModule = GetModule(); object oObjet = GetFirstObjectInArea (OBJECT_SELF); int iRandom; int iType = GetObjectType(oObjet); string sActive = GetLocalString (oModule, "onenter_active"); void main () { if ((sActive == "oui") && GetIsPC (oPC)) { while (oObjet != OBJECT_INVALID) { if (iType == OBJECT_TYPE_WAYPOINT) { string sRace = GetStringLeft(GetTag(oObjet), 4); string sLvl = GetStringRight (GetTag (oObjet), 5); location iLocWP = GetLocation (oObjet); iRandom = Random (3); switch (iRandom) { case 0 : { CreateObject (OBJECT_TYPE_CREATURE, sRace+"guerrier"+sLvl, iLocWP, FALSE); break; } case 1 : { CreateObject (OBJECT_TYPE_CREATURE, sRace+"archer"+sLvl, iLocWP, FALSE); break; } case 2 : { CreateObject (OBJECT_TYPE_CREATURE, sRace+"mage"+sLvl, iLocWP, FALSE); break; } case 3 : { CreateObject (OBJECT_TYPE_CREATURE, sRace+"pretre"+sLvl, iLocWP, FALSE); break; } } } oObjet = GetNextObjectInArea (OBJECT_SELF); } } } Un grand merci à toi Ivellios pour ta précieuse aide ! Si quelqu'un a une idée pour l'optimiser n'hésitez pas Merci ! Bonne soirée à tous ! Edit : Bon ben bizare, ça a très bien marché avec les mobs que j'avais fait pour le test, mais là je viens d'en essayer de nouveaux, et ça marche plus ^^. Donc, c'est plus résolu finalement Re-Edit : C'est re-résolu, en fait, conflit avec un tag, si le tag est différent sur resref ça marche, sinon, ça ne marche pas ! Le truc c'est que je vois pas pourquoi, les CreateObject sont sensés prendre en paramétré le resref et non le tag non ? Dernière édition par Darkavanger le 07/12/2007 18:15:18; édité 1 fois
|
Revenir en haut | |
Darkavanger Grand Chevalier Messages: 114 |
Edit :'(
Citation : Edit : Bon ben bizare, ça a très bien marché avec les mobs que j'avais fait pour le test, mais là je viens d'en essayer de nouveaux, et ça marche plus ^^. Donc, c'est plus résolu finalement Citation : Re-Edit : C'est re-résolu, en fait, conflit avec un tag, si le tag est différent sur resref ça marche, sinon, ça ne marche pas ! Le truc c'est que je vois pas pourquoi, les CreateObject sont sensés prendre en paramétré le resref et non le tag non ? Désolé du dérangement :s Merci ! |
Revenir en haut | |
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