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 18:12:57


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Claythest
Ecuyer
Inscrit le: 26 Oct 2003
Messages: 61
Répondre en citant
Posté le : 21/01/2004 16:31:00 Sujet du message : CreateObject avec délai

Bonjour tout le monde ! Wink
Est-ce qu'il est possible dans le même script d'effectuer plusieurs CreateObject mais avec délai d'attente entre 2 ?
Le DelayCommand ne va pas car j'ai besoin de récupérer l'objet créé pour faire des actions avec. En gros je voudrais écrire un truc du genre :
NWScript :

DelayCommand(1.0,oMonObjet= CreateObject(...............));
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.

Comment faire ?
Merci d'avance ! Wink
 
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 : 21/01/2004 16:38:07 Sujet du message :

Peux-tu décrire plus généralement ton besoin ? Il existe plusieurs réponses possibles à ta question et je ne suis pas sûr qu'elles conviennent toutes. Car même si on parvient à séparer la création d'objet ainsi, il faudra sans doute ruser pour exécuter le reste de tes commandes. Tant qu'on ne sait pas ce que tu veux faire, les propositions peuvent être inutilisables. Donc n'hésite pas à décrire plus en avant la situation que tu veux gérer.
_________________
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
 
Claythest
Ecuyer
Inscrit le: 26 Oct 2003
Messages: 61
Répondre en citant
Posté le : 21/01/2004 16:46:28 Sujet du message :

Confused C'est vrai que c'est pas très clair...
Je m'explique :
Je voudrais faire sortir des gardes d'une porte, et ces gardes doivent aller à un certain endroit. Au point où j'en suis, je crée 10 gardes mais seuls quelques-uns arrivent à destination car les autres se bloquent entre eux (et de plus c'est pas très beau puisque tout d'un coup j'ai un paquet de 10 gardes qui apparaissent devant la porte). Je voudrais donner l'impression que ces gardes sortent de cette porte, les uns à la suite des autres. C'est pour ça que je voudrais en créer un, lui dire d'aller à telle destination, attendre un peu et recommencer avec le suivant. Et tout celà si possible dans le même script.

Comment je peux faire svp ?

(voilà j'espère avoir été plus clair).
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 21/01/2004 16:51:21 Sujet du message :

Hum... Hum...

Je crois avoir rencontré ce problème un certain nombre de fois et il est impossible de mettre un DelayCommand à un CreateObject... Ce n'est pas une action...

Mais il existe une solution... en trois étapes

Créer un script qui crée uniquement ton 1e objet "cr_objet1"
NWScript :
void main()
{
CreateObject(OBJECT_TYPE_CREATURE, "resref du 1e objet", location de destination, FALSE);
}
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.


Créer un script qui crée uniquement ton 2e objet "cr_objet2"
NWScript :
void main()
{
CreateObject(OBJECT_TYPE_CREATURE, "resref du 2e objet", location de destination, FALSE);
}
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.



Créer un script qui lance les deux créations avce un délai

NWScript :
void main()
{
ExecuteScript ("cr_objet1", OBJECT_SELF);
DelayCommand(2.0, ExecuteScript ("cr_objet2", OBJECT_SELF));
}
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.

_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Claythest
Ecuyer
Inscrit le: 26 Oct 2003
Messages: 61
Répondre en citant
Posté le : 21/01/2004 16:59:16 Sujet du message :

Ouai bien pensé mais je trouve ça un peu lourd : créer et lancer un script juste pour une petite fonction Confused .
Si quelqu'un a une autre solution je suis preneur Wink .

Mais bon si y en a pas ben tant pis je ferais comme tu dis.
Merci beaucoup pour ta réponse Smile .

Je sais pas il n'y a pas par exemple une fonction qui permet d'arreter momentanément l'exécution du script ? Surprised
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Claythest
Ecuyer
Inscrit le: 26 Oct 2003
Messages: 61
Répondre en citant
Posté le : 21/01/2004 17:05:13 Sujet du message :

arf Surprised ! Et non longbow, désolé mais ta réponse ne me convient pas puisque après avoir créé cet objet, j'ai besoin de lui dire où aller ! Et j'aurai besoin de lui passer un parametre pour la location de la destination parce qu'elle est variable... Crying or Very sad
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 21/01/2004 22:01:56 Sujet du message :

Hum.. Hum...

Pour ton problème de garde, si ils ont le même blueprint (ResRef)....

Hypothèse de travail:
1. Le Tag de ces gardes est "Gard", le blueprint (ResRef) = "gard")
2. Tu crée un script nommé "cr_gard"
NWScript :
void main()
{
location lLoc = GetLocation (GetObjectByTag("Tag de la porte"));
CreateObject(OBJECT_TYPE_CREATURE, "gard", lLoc , FALSE);
}
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.


3. Tu crée un Waypoint "POST_Gard" vers lequel ils se dirigeront automatiquement
4. Tu utilises un script de lancement pour la création de tes gardes à intervalle régulier
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.


Je pense que cela devrait permettre d'éviter la bousculade...
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur 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 : 21/01/2004 22:57:49 Sujet du message :

Selon moi, la solution ultime de toute sorte d'animation quelle qu'elle soit, c'est la queue d'action. Le DelayCommand est imprecis, voire incertain (Bioware ne le recommande pas). Après 2 ou 3 réglages, une queue d'action est le meilleur support de temporisation (j'avais fais différents sujets à ce propos, dont la proposition d'un usage de la "queue d'action infinie"... Un sujet qui s'est un peu perdu depuis). Pour engendrer l'animation souhaitée, voici le travail préparatoire que je te propose :
Dans un premier temps, tu vas créer une créature ayant l'apparence "null human" (invisible) et dénué du moindre script. Tu vas la rendre invulnérable ("plot" ou "objet de quête" coché) et en créer un exemplaire sur ton module dans une zone cachée (que l'on ne peut atteindre par aucun moyen). L'usage que nous allons en faire justifie cette préparation. Je te propose de l'appeler "interpretor" (blueprint resref) et de le taguer de même (mais en majuscule : convention d'écriture). Si on le met dans une zone cachée, le fait qu'il soit ou non visible n'a que peu d'importance, mais c'est pour un autre type d'utilisation que je le fais ainsi (de fait, tu lui donnes l'apparence que tu veux). N'oublie pas d'enlever tous les scripts par défaut à cette créature, son seul intérêt est d'exister.

Une fois ceci fait, passons à la réalisation proprement dite de ton idée. Considérons 10 points de passage (waypoint) conçus pour être l'endroit ou chacun des 10 gardes doit se rendre (respectivement). Donnons leur les tags suivant : WP_GUARD1, WP_GUARD2, etc... jusqu'à WP_GUARD10. Ajoutons un waypoint pour le point d'apparition des gardes, en l'occurrence sur le pas de la porte, et nommons son tag WP_DOORGUARD.

Voici mainetenant le script que je mettrai en place en supposant que tes gardes ont pour ResRef "guard".
NWScript :

void SpawnGuard(int nGuardNumber)
{
  location lSpawnLoc = GetLocation(GetObjectByTag("WP_DOORGUARD"));
  location lLocToGo = GetLocation(GetObjectByTag("WP_GUARD" + IntToString(nGuardNumber)));
  object oGuard=CreateObject(OBJECT_TYPE_CREATURE, "guard", lSpawnLoc);
  AssignCommand(oGuard, ClearAllActions()); // Vider sa queue d'action
  AssignCommand(oGuard, ActionForceMoveToLocation(lLocToGo, TRUE, 15.0));
}

void main()
{
  int nCount;
  float fRanTime;
  object oInterpretor = GetObjectByTag("INTERPRETOR");
  AssignCommand(oInterpretor, ClearAllActions()); // On vide sa queue d'action
  for (nCount=1; nCount<=10; nCount++)
  {
    AssignCommand(oInterpretor, ActionDoCommand(SpawnGuard(nCount)));
    fRanTime = 0.5 + IntToFloat(Random(30)) / 10.0;
    AssignCommand(oInterpretor, ActionWait(fRanTime)); // Ajouter cette attente dans la queue d'action de l'interpreteur
  }
}
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.


J'ai ajouté le hasard en ce qui concerne le temps entre chaque apparition. Cela devrait créer un mouvement un peu moins ordonné (donc plus réaliste). Toutefois, il est aisé de le fixer à une valeur constante, il suffit d'intervenir sur la ligne qui génère la valeur aléatoire. A noter que ce script va créer 20 actions dans la queue d'action de l'interpréteur (une alternance de Spawn de garde et de temps d'attente). Ce dernier peut servir ensuite pour d'autres animations du même genre. c'est sa queue d'action qui donne le rythme, même si les actions que nous lui faisons faire ne le concernent pas directement. Dans ce cadre précis de l'utilisation de la queue d'action, il ne faut jamais oublier cette magnifique fonction ActionDoCommand qui transforme n'importe quel appel de fonction NWScript en Action.

Attention à ne pas aller trop loin avec ce procédé, car la queue d'action est limitée à 75 actions. Donc, dans le cas présent, il faut s'arrêter à 37 gardes Mr. Green . Si on veux aller plus loin, il faut créer une queue d'action infinie et c'est un autre processus Wink .

Sous réserve qu'il n'y a pas d'erreur, car je n'ai hélas pas eu le temps de le tester.
_________________
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
 
aldech
Gagnant du Concours Gothic 3
Inscrit le: 25 Nov 2002
Messages: 61
Localisation: Le Havre
Répondre en citant
Posté le : 22/01/2004 11:27:58 Sujet du message :

Très intéressant comme sujet, j'ai testé ta solution Lendraste et apparemment il y a un problème.

Juste une petite erreur, je verrais plutôt cela pour la formule :

NWScript :

fRanTime = 5.0 + IntToFloat(Random(30)) / 10.0
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.


Mais là n'est pas le problème qui est que cela dépends des fois, le premier garde ou les deux premiers reste bloqué au waypoint de départ sans se déplacer vers leur waypoint d'arrivée.
Et la téléportation après un timeout de 15 secondes ne semble pas fonctionner non plus.

J'ai cherché mais je ne trouve pas pourquoi.
 
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 : 22/01/2004 12:51:36 Sujet du message :


aldech a écrit :
Très intéressant comme sujet, j'ai testé ta solution Lendraste et apparemment il y a un problème.

Juste une petite erreur, je verrais plutôt cela pour la formule :

NWScript :

fRanTime = 5.0 + IntToFloat(Random(30)) / 10.0
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.
En faisant cela tu créé une durée aléatoire entre 5 et 8 secondes. La division est prioritaire sur l'addition, c'est pour cela que j'ai placé ma constante 0.5 avant. J'aurai pu faire mon addition après ou mettre des parenthèses, mais c'était un peu inutile. Mr. Green


Citation :

Mais là n'est pas le problème qui est que cela dépends des fois, le premier garde ou les deux premiers reste bloqué au waypoint de départ sans se déplacer vers leur waypoint d'arrivée.
Et la téléportation après un timeout de 15 secondes ne semble pas fonctionner non plus.

J'ai cherché mais je ne trouve pas pourquoi.
Je pense savoir pourquoi. Le fait de tenter d'appliquer des actions à une créature tout juste créée peut foirer. Idéalement, il faudrait attendre un peu avant de lui faire avaler des actions dans sa queue d'action. Dans ce cas, deux solutions s'offrent à nous : réintroduire des DelayCommand pour différer les AssignCommand (un peu lourd, et ce qui ramène le problème de l'utilisation des DelayCommand), ou bien séparer clairement la création et le déplacement de la créature dans la queue d'action de notre "interpréteur". C'est-à-dire que nous aurions pour chaque garde la séquence suivante :
- Creation du garde
- Légère attente
- Donner des ordres au garde
- Attente avant le prochain
Cela réduit encore le nombre de garde pouvant être géré au maximum par la queue d'action de l'interpréteur.

Pour faire cela, il faut séparer la fonction SpawnGuard en deux. Je garde SpawnGuard et je créé MoveGuard sur le même principe. Voici une solution dérivée de la première. Dans cette solution, à la création du garde, nous allons lui créer un tag unique numéroté de façon à pouvoir le retrouver par un GetObjectByTag un peu plus tard. Il ne faut jamais perdre de vue que les actions de ce genre sont différées, elles doivent donc être autonomes et ne pas avoir besoin de connaître l'environnement qui les exécute pour s'exécuter sans problème :
NWScript :

void SpawnGuard(int nGuardNumber)
{
  location lSpawnLoc = GetLocation(GetObjectByTag("WP_DOORGUARD"));
  object oGuard=CreateObject(OBJECT_TYPE_CREATURE, "guard", lSpawnLoc, "GUARD" + IntToString(nGuardNumber));
}

void MoveGuard(int nGuardNumber)
{
  location lLocToGo = GetLocation(GetObjectByTag("WP_GUARD" + IntToString(nGuardNumber)));
  object oGuard = GetObjectByTag("GUARD" + IntToString(nGardNumber)); // On retrouve le garde
  AssignCommand(oGuard, ClearAllActions()); // Vider sa queue d'action
  AssignCommand(oGuard, ActionForceMoveToLocation(lLocToGo, TRUE, 15.0));
}

void main()
{
  int nCount;
  float fRanTime;
  object oInterpretor = GetObjectByTag("INTERPRETOR");
  AssignCommand(oInterpretor, ClearAllActions()); // On vide sa queue d'action
  for (nCount=1; nCount<=10; nCount++)
  {
    AssignCommand(oInterpretor, ActionDoCommand(SpawnGuard(nCount)));
    AssignCommand(oInterpretor, ActionWait(0.1));
    AssignCommand(oInterpretor, ActionDoCommand(MoveGuard(nCount)));
    fRanTime = 0.5 + IntToFloat(Random(30)) / 10.0;
    AssignCommand(oInterpretor, ActionWait(fRanTime)); // Ajouter cette attente dans la queue d'action de l'interpreteur
  }
}
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.


Pour s'assurer que cela marche bien, on peut augmenter les temps d'attente, puis les réduire progressivement. Le problème posé par la création d'objet est que ce n'est pas toujours instantanné car la dite création engendre elle-même l'exécution d'autres script (le OnEnter de la zone, le OnEnter d'un éventuel déclencheur dans lequel elle serait créée, le OnSpawn de la créature créée, pour ne citer qu'eux), c'est pour cela qu'avec des temps d'attente très réduit (ou innexistant comme dans la première version), les choses ne se passe pas forcément bien (il faut aussi tenir compte de la capacité de la machine).
Si cette solution ne marche pas, il faudra que je creuse 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
 
aldech
Gagnant du Concours Gothic 3
Inscrit le: 25 Nov 2002
Messages: 61
Localisation: Le Havre
Répondre en citant
Posté le : 22/01/2004 13:20:04 Sujet du message :

Dsl, j'avais pas pensé à l'ordre des opérations. Embarassed

Pour le reste, j'ai testé ta nouvelle solution et j'ai eu trois gardes de coincer au point de départ.

Par contre pour faire les tests, j'ai mis le script dans le OnSpawn de la créature "interpretor", est ce le bon endroit ?
 
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 : 22/01/2004 13:40:26 Sujet du message :


aldech a écrit :
Dsl, j'avais pas pensé à l'ordre des opérations. Embarassed

Pour le reste, j'ai testé ta nouvelle solution et j'ai eu trois gardes de coincer au point de départ.
Je testerais mon script, cela m'intrigue.


Citation :
Par contre pour faire les tests, j'ai mis le script dans le OnSpawn de la créature "interpretor", est ce le bon endroit ?
Pas forcément. Vu que je suggérais de créer "interpretor" avec l'éditeur, le OnSpawn est donc déclenché dès le démarrage du module... Il se passe tellement de chose (notamment plein d'autres OnSpawn de plein d'autres créatures et j'en passe) pendant un démarrage de module que ce n'est pas le moment idéal pour "charger la barque".

Moi je pensais que ce script pouvait être lancé à partir d'un dialogue comme "Action résultante" ou encore par l'activation d'un objet ou l'entrée dans un trigger. Bref, à un moment où il n'y a que ça à faire. Le meilleur moyen de le tester est encore d'utiliser la console pour le lancer indépendamment de tout évènement (dm_runscript).
_________________
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
 
aldech
Gagnant du Concours Gothic 3
Inscrit le: 25 Nov 2002
Messages: 61
Localisation: Le Havre
Répondre en citant
Posté le : 22/01/2004 18:41:44 Sujet du message :

J'ai essayé avec un trigger et dm_runscript, cela marche parfaitement !! Surprised Cool Smile
 
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 : 23/01/2004 08:11:00 Sujet du message :

Je ne sais pas si cela est purement en relation avec la puissance de la machine, mais chez moi, la première des solutions que j'ai proposé fonctionne au quart de poil. Comme elle est plus simple, je la conseille davantage que la seconde quand même nettement plus lourde et moins évidente à comprendre.
_________________
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
 
Claythest
Ecuyer
Inscrit le: 26 Oct 2003
Messages: 61
Répondre en citant
Posté le : 26/01/2004 16:31:23 Sujet du message :

Razz Ben merci à vous tous pour toutes vos réponses, je n'ai pas encore le temps de tester ces scripts (emploi du temps chargé... Crying or Very sad ), mais c'est prévu, dès que je reprends nwn, je vous donnerai mon avis (j'espère ce week-end... Confused ) !

Encore merci pour votre aide Wink !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Claythest
Ecuyer
Inscrit le: 26 Oct 2003
Messages: 61
Répondre en citant
Posté le : 14/02/2004 17:15:05 Sujet du message :

Je tiens tout d'abord à vous remercier tous pour vous etre penché sur ce sujet, mais bon finalement je vais m'y prendre autrement parce que sur ma machine c'est un peu lourd tout ca... Confused

Mais bon j'espere que ca aidera quelqu'un d'autre...

Voila donc merci à vous tous (maintenant au moins si l'envie me reprend je saurais comment faire ! Embarassed ) ! Wink
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
eldric
Novice
Inscrit le: 26 Oct 2003
Messages: 17
Répondre en citant
Posté le : 21/02/2004 01:03:51 Sujet du message :

j'arrive un peu tard mais pourquoi ne pas faire de la maniére suivante en rajoutant un sous programme en amont du programme principal :

NWScript :

void cree ()
{
location lLoc = GetLocation (GetObjectByTag("Tag de la porte"));
CreateObject(OBJECT_TYPE_CREATURE, "gard", lLoc , FALSE);
}

void main()
{
DelayCommand(2.0, cree());
DelayCommand(4.0, cree());
DelayCommand(6.0, cree());
DelayCommand(8.0, cree());
}
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.

_________________
Mieux vos régner en maitre en Enfer plutôt que servir au Paradis !!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Claythest
Ecuyer
Inscrit le: 26 Oct 2003
Messages: 61
Répondre en citant
Posté le : 28/02/2004 11:47:39 Sujet du message :

J'y avait pensé, mais le probleme c'est que après avoir créé le guarde, j'avais besoin de lui donner des ordres plus tard... Surprised Donc il me fallait récupérer tous les objets correspondants aux guardes créés...
Et avec cette méthode je ne peux pas Crying or Very sad . Mais sinon c'est vrai que c'est plus simple.

Merci pour ta réponse Wink


Au fait t'as vu Eldric, on s'est inscrit le même jour ! Very Happy Razz
 
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 84.327ms