La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 22/09/2024 22:25:26


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
kahl
Novice
Inscrit le: 25 Jan 2003
Messages: 13
Répondre en citant
Posté le : 07/08/2003 15:49:12 Sujet du message : Besoin d'aide avec un script OnEnter

Bonjour à tous !

Je suis à la recherche d'un script qui me permettrait de faire ceci :

- lorsque le joueur entre dans une zone (area), une créature apparait.

Jusqu'ici, je n'ai pas de problème (j'arrive à créer le script avec l'éditeur de script de Lilac Soul). La ou ca se complique, par contre, c'est ici :

- le programme doit choisir au hasard (random) l'une des créatures suivantes : 1 orc OU 1 goblin OU 1 kobold OU (et c'est ici que ca se corse!) 1 orc + 1 loup (les deux apparaitront ensemble, simultanément).

Si quelqu'un connait une façon de faire ce script, veuillez me l'indiquer ÉTAPE PAR ÉTAPE SVP (comme je suis complètement nul en scripting !!).

Merci à tous !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Faelar
Héros
Inscrit le: 08 Juil 2003
Messages: 253
Localisation: Amiens
Répondre en citant
Posté le : 07/08/2003 15:54:58 Sujet du message :

Je suis pas bon en scripting mais je crois qu'avec la commande switch... Je peux t'expliquer le principe tu vas tirer un nombre aléatoire (ici de 1 à 4). Après selon le résultat tu auras tel ou tel monstre. Attends que quelqu'un d'autre réponde car je sais pas exactement ce qu'il faut mettre...
_________________
"Le temps c'est comme l'argent, on en a jamais assez..."
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Numéro ICQ Ignorer l'utilisateur
 
Albator003
Invité


Répondre en citant
Posté le : 07/08/2003 19:57:21 Sujet du message :

j'ai un peu de temps devant moi alors je peux te proposer cette chose qui devrai se compiler et qui devrai marcher j'ai pas fais le test...
Code :
///////////////////////////
/// Spawn de NPC par un ///
/// Random              ///
///////////////////////////

///script a mettre sur le OnEnter d'une area ou trigger
void main()
{

object oPC = GetEnteringObject();

if (!GetIsPC(oPC)) return;

if (d100()>=0 && d100() <25)
 {
object oTarget;
object oSpawn;
location lTarget;
oTarget = GetWaypointByTag("tag de ton wp pour le spawn de ton 1er NPC");

lTarget = GetLocation(oTarget);

oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "RESREF de ton 1er NPC", lTarget); //attention le RESREF pas le TAG !!
}
if (d100()>=25 && d100()<50)
 {
object oTarget1;
object oSpawn1;
location lTarget1;
oTarget1 = GetWaypointByTag("tag de ton wp pour le spawn de ton 2nd NPC");

lTarget1 = GetLocation(oTarget1);

oSpawn1 = CreateObject(OBJECT_TYPE_CREATURE, "RESREF de ton 2nd NPC", lTarget1);
}
if (d100()>=50 && d100()<75)
{
object oTarget2;
object oSpawn2;
location lTarget2;
oTarget2 = GetWaypointByTag("tag de ton wp pour le spawn de ton 3eme NPC");

lTarget2 = GetLocation(oTarget2);

oSpawn2 = CreateObject(OBJECT_TYPE_CREATURE, "RESREF de ton 3eme NPC", lTarget2);
}
if (d100()>=75 && d100() <=100)
{

object oTarget3;
object oSpawn3;
location lTarget3;
oTarget3 = GetWaypointByTag("tag de ton wp pour le spawn de ton 4eme NPC");

lTarget3 = GetLocation(oTarget3);

oSpawn3 = CreateObject(OBJECT_TYPE_CREATURE, "RESREF de ton 4eme NPC", lTarget3);
}
}


voila Cool
 
Revenir en haut
 
Faelar
Héros
Inscrit le: 08 Juil 2003
Messages: 253
Localisation: Amiens
Répondre en citant
Posté le : 07/08/2003 20:12:20 Sujet du message :

Tu utilise 1d100 ? pourquoi pas 1d4 ? Enfin ça change pas grand chose...
_________________
"Le temps c'est comme l'argent, on en a jamais assez..."
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Numéro ICQ Ignorer l'utilisateur
 
Albator003
Invité


Répondre en citant
Posté le : 07/08/2003 20:34:25 Sujet du message :

exact lol mais bon si il a 100 NPC il pourra le faire pour chaque lol Laughing
 
Revenir en haut
 
lendraste
Grand Maître Chanteur du Conseil
Inscrit le: 20 Fév 2003
Messages: 1403
Localisation: Quelque part ailleurs
Répondre en citant
Posté le : 07/08/2003 23:05:36 Sujet du message :


albator003 a écrit :
exact lol mais bon si il a 100 NPC il pourra le faire pour chaque lol Laughing
Excuses-moi de toujours venir casser les cabanes que tu montes (dans mon métier on appelle ça des usines à gaz d'ailleurs Mr. Green ), mais il y a beaucoup plus simple (ben oui, encore) et puis surtout, ta méthode ne va pas marcher. A chaque fois que tu écris "d100()" dans ton script, une nouvelle valeur aléatoire va être tirée. Ne serait-ce qu'à lire cette ligne "if (d100()>=0 && d100() <25)" le premier d100 peut être égal à 10 par exemple, mais lorsque tu vas tester d100()<25 il se peut que d100 soit égal à 30. A chaque fois que d100 apparait la fonction qui lui correspond est appelée et un nouveau numéro est généré. Je dis cela en dehors du fait qu'il manque des parenthèses pour que cela soit plus propre et moins ambigüe. Mais je ne m'éttendrais pas la dessus... Je n'ai pas non plus le temps de sortir la solution pour le moment... on verra demain Smile
_________________
Lendraste de Loreval
Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel.
La cité des mensonges - 1
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
lendraste
Grand Maître Chanteur du Conseil
Inscrit le: 20 Fév 2003
Messages: 1403
Localisation: Quelque part ailleurs
Répondre en citant
Posté le : 08/08/2003 08:04:29 Sujet du message :

Je voulais revenir sur l'idée d'utiliser le d4 ou le d100. Ce choix ne se fait nullement dans l'indifférence. En fait, tant que l'on souhaite conserver l'équi-probabilité des différentes apparitions possibles de monstres, le mieux est même d'utiliser Random. Je m'explique. Si on a le choix entre 4 apparitions (ce qui est le cas présentement) de fait de tirer un d100 nous oblige à tester des plages de valeur (de 25 notamment) alors qu'en tirant un d4 nous n'avons qu'une valeur unique à tester pour chaque possibilité. Autrement dit faire
Code :

  int nTirageD4 = d4();
  if (nTirageD4 == 1)
  {
    // ...
  }
  else if ...

et
Code :

  int nTirageD100 = d100();
  if ((nTirageD100>=1) && (nTirageD100<=25))
  {
    // ...
  }
  else if ...

c'est équivalent dans le résultat, mais pas dans l'écriture. Les informaticiens comme moi sont des fénéants (et dire qu'on m'a appris ça à l'école Mr. Green ) et nous detestons écrire 3 pages de code là où une seule ligne suffit. Il est évident que des comparaisons de simple égalité sont plus facile à écrire que des comparaisons d'intervalle. Je vais même aller plus loin dans le raisonnement, puisqu'on est pas obligé, dans le premier cas de figure (dans le second non plus, mais c'est nettement moins intéressant) d'utiliser une condition "if", il est préférable d'utiliser une condition "switch".

Voici ce que ça donnerait :
Code :

void main()
{
  int nRollD4=d4(); // Tirage d'un dé 4 et stockage dans la variable nRollD4
  string sResRef1; // Déclaration d'une chaine de caractère pour stocker le ResRef d'une créature.
  string sResRef2; // Déclaration d'une chaine de caractère pour stocker le ResRef d'une créature.
  location lSummonLoc = GetLocation(GetObjectByTag("WP_APPEAR")); // Détermination de la position d'apparition.
  switch (nRollD4) // Test des différents tirage possible du d4
  {
    case 1 : //Le dé à fait 1
    {
      sResRef1 = "nw_orca"; // Stockage du resref d'un orc
    }break;
    case 2 : //Le dé à fait 2
    {
      sResRef1 = "nw_goblina"; // Stockage du resref d'un gobelin
    }break;
    case 3 : //Le dé à fait 3
    {
      sResRef1 = "nw_kobold"; // Stockage du resref d'un kobold (celui-là il faut le retrouver, je ne l'ai pas avec moi)
    }break;
    case 4 : //Le dé à fait 4
    {
      sResRef1 = "nw_orca"; // Stockage du resref d'un orc
      sResRef2 = "nw_wolf"; // Stockage du resref d'un loup
    }break;
  }
  CreateObject(OBJECT_TYPE_CREATURE, sResRef1, lSummonLoc); // Création de la première créature à l'emplacement voulu
  if (sResRef2 != "") // Si la seconde ResRef n'est pas vide
  {
    CreateObject(OBJECT_TYPE_CREATURE, sResRef2, lSummonLoc); // Création de la seconde.
  }
}


Ce script sera à placer sur le OnEnter de la zone considérée.
Il ne reste qu'un détail à régler, créer un Waypoint (point de passage) ayant pour tag "WP_APPEAR" pour marquer l'emplacement où doivent apparaître la ou les créatures.
S'il y a plus de 4 apparitions possibles, il suffit de changer la méthode de tirage. Tant que les chances restent equi-probables pour chaque créature d'apparaître, alors il vaux mieux utiliser "Random(n)+1" ou "n" est le nombe maximum du tirage. Le "+1" est indispensable pour avoir un nombre variant entre 1 et n sinon la valeur résultante sera entre 0 et n-1 . Cela est pour le tirage. Pour traiter les nouveaux cas possible d'apparition, il suffit de copier un bloc "case" correspondant à chaque nouvelles valeurs. Par exemple, on voudrait créer 7 choix. Pas de bol, il n'existe pas de d7 (ni aucun dé multiple de 7 d'ailleurs Smile ). Voici ce que donnerait le script :
Code :

void main()
{
  int nRollDice=Random(7)+1; // Tirage d'un dé 7 et stockage dans la variable nRollDice
  string sResRef1; // Déclaration d'une chaine de caractère pour stocker le ResRef d'une créature.
  string sResRef2; // Déclaration d'une chaine de caractère pour stocker le ResRef d'une créature.
  location lSummonLoc = GetLocation(GetObjectByTag("WP_APPEAR")); // Détermination de la position d'apparition.
  switch (nRollDice) // Test des différents tirage possible du d7
  {
    case 1 : //Le dé à fait 1
    {
      sResRef1 = "nw_orca"; // Stockage du resref d'un orc
    }break;
    case 2 : //Le dé à fait 2
    {
      sResRef1 = "nw_goblina"; // Stockage du resref d'un gobelin
    }break;
    case 3 : //Le dé à fait 3
    {
      sResRef1 = "nw_kobold001"; // Stockage du resref d'un kobold (celui-là il faut le vérifier, je ne l'ai pas avec moi)
    }break;
    case 4 : //Le dé à fait 4
    {
      sResRef1 = "nw_orca"; // Stockage du resref d'un orc
      sResRef2 = "nw_wolf"; // Stockage du resref d'un loup
    }break;
    case 5 : //Le dé à fait 5
    {
      sResRef1 = "nw_orca"; // Stockage du resref d'un orc
      sResRef2 = "nw_goblina"; // Stockage du resref d'un gobelin
    }break;
    case 6 : //Le dé à fait 6
    {
      sResRef1 = "nw_wolf"; // Stockage du resref d'un loup
      sResRef2 = "nw_goblina"; // Stockage du resref d'un gobelin
    }break;
    case 7 : //Le dé à fait 7
    {
      sResRef1 = "nw_gnoll001"; // Stockage du resref d'un gnoll
    }break;
  }
  CreateObject(OBJECT_TYPE_CREATURE, sResRef1, lSummonLoc); // Création de la première créature à l'emplacement voulu
  if (sResRef2 != "") // Si la seconde ResRef n'est pas vide
  {
    CreateObject(OBJECT_TYPE_CREATURE, sResRef2, lSummonLoc); // Création de la seconde.
  }
}

Ce n'est jamais qu'une alternative. Faire varier le "dé" n'engendre pas de modifications de ce qui a déjà été fait, juste des ajouts simples ou des suppressions simple. En effet, comme le principe de création d'objet est le même quel que soit la créature, il est plus simple de ne l'appeler qu'une seule fois à la fin et de lui passer en paramètre des variables déterminée par le reste de la procédure.

Voilà, j'espère que ça répond à la question.
_________________
Lendraste de Loreval
Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel.
La cité des mensonges - 1
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
kahl
Novice
Inscrit le: 25 Jan 2003
Messages: 13
Répondre en citant
Posté le : 08/08/2003 16:58:04 Sujet du message : Merveilleux !!

Lendraste,

Mille mercis, jamais, dans toute la merveilleuse histoire de NeverWinter, quelqu'un n'a prit la peine de m'expliquer un script comme tu l'as fait ! Si tout le monde pouvait me répondre de cette façon, mon travail avancerait plus rapidement !!

Cela répond certainement à toutes mes questions car, en effet, je n'avais pas l'intention d'utiliser seulement 4 créatures, mais bien entre 20 et 30. J'essaie de développer une arène ou il est possible d'affronter une grande variété de créatures/gladiateurs, et j'avais besoin de ce script OnEnter (surtout pour les cas ou plus d'une seule créature est appelée : comme dans le cas de l'orc et du loup, qui ne sont, bien sûr, que des exemples).

Encore une fois merci, je me mets immédiatement au travail !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Faelar
Héros
Inscrit le: 08 Juil 2003
Messages: 253
Localisation: Amiens
Répondre en citant
Posté le : 08/08/2003 20:26:33 Sujet du message :

C'est vrai que c'est bien de prendre un peu de son temps pour partager son savoir avec les autres. Bravo à toi lendraste, et encore merci de nous donner autre chose qu'un simple copier coller.
_________________
"Le temps c'est comme l'argent, on en a jamais assez..."
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Numéro ICQ Ignorer l'utilisateur
 
kahl
Novice
Inscrit le: 25 Jan 2003
Messages: 13
Répondre en citant
Posté le : 08/08/2003 23:13:28 Sujet du message : hmmm...

Lendraste, petit problème...

Ton script compile bien (celui avec le D7), mais lorsque je l'insère dans le OnEnter de la zone, il m'est impossible d'y accéder. En fait, le jeu plante au "loading screen".

Si quelqu'un d'autre peut le tester ca serait sympa et ca me permettrait de savoir si le problème est de mon côté. J'ai le jeu NW en anglais, j'ignore si ca peut causer un problème.

PS : j'ai déjà rencontré ce problème avec un script pour henchman, et le scripteur m'avait recommandé de faire une petite modif dans son script. Par la suite, il fonctionnait. Dans ce dernier cas, je devais remplacer TRUE par FALSE, ou l'inverse, je ne me souviens plus très bien.

Merci à tous !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lendraste
Grand Maître Chanteur du Conseil
Inscrit le: 20 Fév 2003
Messages: 1403
Localisation: Quelque part ailleurs
Répondre en citant
Posté le : 11/08/2003 08:30:45 Sujet du message : Re: hmmm...


kahl a écrit :
Lendraste, petit problème...

Ton script compile bien (celui avec le D7), mais lorsque je l'insère dans le OnEnter de la zone, il m'est impossible d'y accéder. En fait, le jeu plante au "loading screen".

Si quelqu'un d'autre peut le tester ca serait sympa et ca me permettrait de savoir si le problème est de mon côté. J'ai le jeu NW en anglais, j'ignore si ca peut causer un problème.
Je n'ai pas NWN sous la main pour le tester. Je pense qu'il faudrait t'assurer qu'il n'y a pas d'éléments parasites (tu peux essayer de placer le script dans un module vide pour voir si ça fait la même chose. Si ce n'est pas le cas, ça signifie que quelque chose dans ton module d'implantation entre en conflit avec le script OnEnter) ou que les ResRef que j'ai mis dans le script sont les bonnes. De la même manière, il faut t'assurer de bien avoir placer correctement les éléments du script, le Waypoint/point de passage notamment, peut-être éviter de le mettre trop prêt d'un point d'arrivée ou éviter de le mettre dans une zone de décors sensibles (par exemple sur une pente de colline ou de rempart, car l'apparition de créature dans un envirronement provoque parfois des problème de "cliping", autrement dit des interactions non souhaitées entre les formes 3D qui composent les créatures et le décors). Ca peut planter le jeu parfois. Ca arrive aussi avec les Tilesets de la communauté qui ne sont pas toujours parfait de ce point de vue (je me souviens d'un Tileset qui faisait systématiquement planter mon client).


Citation :
PS : j'ai déjà rencontré ce problème avec un script pour henchman, et le scripteur m'avait recommandé de faire une petite modif dans son script. Par la suite, il fonctionnait. Dans ce dernier cas, je devais remplacer TRUE par FALSE, ou l'inverse, je ne me souviens plus très bien.
Hélas, dans le cas du script que je t'ai donné, je ne vois rien de si pernicieux. Essaye de prendre en considération ce que j'ai dit plus haut. Le test à faire en premier est de vérifier que le script fonctionne dans un module vierge. Après quoi on sait immédiatement à quoi s'en tenir sur le script lui-même. A l'occasion je vérifierai moi-même, mais si tu as le temps fais-le. S'il fonctionne seul dans un module, alors on s'intéressera au cas de son implantation dans ton module.
_________________
Lendraste de Loreval
Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel.
La cité des mensonges - 1
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
kahl
Novice
Inscrit le: 25 Jan 2003
Messages: 13
Répondre en citant
Posté le : 11/08/2003 17:17:54 Sujet du message : Résultats des tests

Lendraste,

J'ai suivi tes suggestions : dans un module vierge, j'ai placé le script dans un nouvel area (OnEnter), puis j'ai mis le Waypoint sur sol plat, loin du point d'arrivée du joueur. J'ai découvert que si le Waypoint porte (dans le script), un nom qui ne correspond pas à celui placé dans le jeu, NeverWinter ne plante pas. Par contre, dès que les deux portent le même nom (TAG), le jeu fige toujours au même endroit : loading screen.

Il en va de même pour les créatures. Si, dans le script, le resref de créatures qui n'ont pas encore été créées est placé, le jeu fonctionne. Bien entendu, aucune créature n'apparait, car elles n'ont pas encore été créées. Or, aussitôt que je crée ces créatures (avec le resref correspondant à celui du script, exemple : OrcLord001), alors le jeu fige à nouveau.

Comme il n'y a aucun obstacle (cliping), que le module est vierge et qu'aucun Custom Tileset n'est utilisé, j'en conclut que le "bug" est quelque part à l'intérieur du script. Mais comme ton script compile toujours bien, ce doit être quelque chose qui entre en conflit avec le resref des créatures ou le TAG du waypoint. Enfin je suppose.

J'ai aussi essayé autre chose : insérer le script dans le OnEnter d'un Trigger, et il a fonctionné. (J'ignore quel est le terme français de Trigger, mais c'est le bidule que l'on dessine au sol pour, disons, faire une transition entre deux zones). Malheureusement, ce n'est pas de cette façon que je désire construire le module et, en outre, le script n'a créé qu'une seule créature. C'est-à-dire que lorsque passait à nouveau sur le Trigger, aucune autre créature n'apparaissait.

Question : y'a-t-il un moyen de faire fonctionner ce script avec les TAGs des créatures plutôt que leurs resref ?

Aussi, j'ignore si je me suis bien fait comprendre, mais ce script OnEnter doit fonctionner chaque fois qu'un joueur entre dans la Zone. S'il entre 10 fois, 10 créatures random doivent être appelées à apparaître. Je le placerais dans une Zone d'arène ou, chaque fois qu'un PC entre, un gladiateur est appelé.

Quoiqu'il en soit, merci à toi Lendraste, j'espère que les petits tests que j'ai faits sont en mesure de te mettre sur une piste...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lendraste
Grand Maître Chanteur du Conseil
Inscrit le: 20 Fév 2003
Messages: 1403
Localisation: Quelque part ailleurs
Répondre en citant
Posté le : 11/08/2003 18:56:50 Sujet du message :

Autant pour moi, j'ai trouvé l'erreur.. pas une erreur de débutant mais presque Smile

Voici le code à mettre sur OnEnter. Il est sensiblement le même à l'exception d'un détail qui a son importance.
Code :

void main()
{
  object oEnter=GetEnteringObject(); // récupération d'une référence à l'objet entrant dans la zone
  if (GetIsPC(oEnter)) //Teste s'il s'agit d'un personnage-joueur
  {
    int nRollDice=Random(7)+1; // Tirage d'un dé 7 et stockage dans la variable nRollDice
    string sResRef1; // Déclaration d'une chaine de caractère pour stocker le ResRef d'une créature.
    string sResRef2; // Déclaration d'une chaine de caractère pour stocker le ResRef d'une créature.
    location lSummonLoc = GetLocation(GetObjectByTag("WP_APPEAR")); // Détermination de la position d'apparition.
    switch (nRollDice) // Test des différents tirage possible du d7
    {
      case 1 : //Le dé à fait 1
      {
        sResRef1 = "nw_orca"; // Stockage du resref d'un orc
      }break;
      case 2 : //Le dé à fait 2
      {
        sResRef1 = "nw_goblina"; // Stockage du resref d'un gobelin
      }break;
      case 3 : //Le dé à fait 3
      {
        sResRef1 = "nw_kobold001"; // Stockage du resref d'un kobold (celui-là il faut le vérifier, je ne l'ai pas avec moi)
      }break;
      case 4 : //Le dé à fait 4
      {
        sResRef1 = "nw_orca"; // Stockage du resref d'un orc
        sResRef2 = "nw_wolf"; // Stockage du resref d'un loup
      }break;
      case 5 : //Le dé à fait 5
      {
        sResRef1 = "nw_orca"; // Stockage du resref d'un orc
        sResRef2 = "nw_goblina"; // Stockage du resref d'un gobelin
      }break;
      case 6 : //Le dé à fait 6
      {
        sResRef1 = "nw_wolf"; // Stockage du resref d'un loup
        sResRef2 = "nw_goblina"; // Stockage du resref d'un gobelin
      }break;
      case 7 : //Le dé à fait 7
      {
        sResRef1 = "nw_gnoll001"; // Stockage du resref d'un gnoll
      }break;
    }
    CreateObject(OBJECT_TYPE_CREATURE, sResRef1, lSummonLoc); // Création de la première créature à l'emplacement voulu
    if (sResRef2 != "") // Si la seconde ResRef n'est pas vide
    {
      CreateObject(OBJECT_TYPE_CREATURE, sResRef2, lSummonLoc); // Création de la seconde.
    }
  }
}


Maintenant, expliquons. Nous avons tout deux été victime d'une boucle d'évènement. Le jeu n'était pas planté, mais bouclait indéfiniment (et pourtant il n'y a pas de boucle dans le script). Et la raison en est simple. Notre précédente version du OnEnter invoquait une créature à chaque fois que le OnEnter se déclenchait, mais il n'y a pas que les PJs qui déclenchent les évènements OnEnter. Le fait de créer une créature dans une zone provoque aussi un OnEnter. Donc, il est facile de deviner qu'à chaque créature créée le OnEnter s'exécutait à nouveau et pour en créer une autre et ainsi de suite. En plaçant le test que j'ai ajouté j'ai la garantie que seul le fait qu'un PJ entre dans la zone va déclencher la création d'une créature. Cette créature en apparaissant va bien provoquer le OnEnter, mais n'étant pas un PJ, cela ne créera pas de monstre supplémentaire, et surtout, cela ne bouclera pas.
Le nom d'un Trigger en français c'est Déclencheur. Je ne sais pas trop pourquoi un trigger ne provoquerait pas la même chose à moins d'être à usage unique, auquel cas il disparaît après son premier déclenchement.

Voilà, désolé de t'avoir fait perdre du temps Smile
_________________
Lendraste de Loreval
Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel.
La cité des mensonges - 1
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
kahl
Novice
Inscrit le: 25 Jan 2003
Messages: 13
Répondre en citant
Posté le : 12/08/2003 04:03:51 Sujet du message : C'est bien, mais...

Merci Lendraste,

Ton script fonctionne bien sauf pour un petit détail : il ne fait apparaître une créature qu'une seule fois. Lorsque j'entre dans la zone pour une première fois, une créature apparait. Lorsque j'y retourne après l'avoir quittée, aucune autre ne réapparait.

Comme j'ai déjà expliqué plus haut, j'utiliserai ce script pour une arène ou un gladiateur doit être appelé chaque fois que le joueur y fait son entrée.

Je dois donc faire appel à ton savoir une dernière fois !

Merci encore.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
kahl
Novice
Inscrit le: 25 Jan 2003
Messages: 13
Répondre en citant
Posté le : 12/08/2003 04:35:59 Sujet du message : MERVEILLEUX !!

Désolé Lendraste, mon erreur...

J'avais seulement mal nommé le Waypoint. En fait, la créature qui m'était apparut la première fois n'était que celle placée dans le module (j'avais fait plusieurs tests auparavant).

Tout fonctionne donc à merveille !

Mille mercis !!
 
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 43.657ms