respaw monsters

Répondre
Partager Rechercher
Bonjour a tous et a toute l'equipe

Voila je recherche un script pour le respaw des monstres s'il vous plait

j'aimerais qu'il se regenèrent tout les 10 minutes

J'ai recherché sur le forum et point je n'ai trouvé

pourriez me transmettre le link

Amicalement

Eltannus

un vieux mage qui ne sait plus ou il a rangé ses binocles
si tu veux un resultat simple, utilise les encounters ^^

Sinon, tu met :

Code PHP:

void main()
{
string sResRef=GetResRef(OBJECT_SELF);
location lLoc GetLocation(OBJECT_SELF);
DelayCommand(600.0,CreateObject(OBJECT_TYPE_CREATURE,sResRef,lLoc));

La declaration des string et loc est obligatoire avant le DelayCommand, pour eviter que OBJECT_SELF ne rammene rien 10mn plus tard...


PS : ca ne fonctionne qu'avec les monstres customs...
Si tu veux les monstres standart, va te falloir un script a chaque fois pour chaque monstres... passe donc par les encounters... ^^
Bon j'ai posté il y a de cela un bout de temps pour savoir comment récupérer le Blueprint d'un monstre... POur respawn, justement, à cause d'une polémique sur le carnage des grosbills sur les persistants... J'ai ma réponse. C'était ResRef.
merci a tous
merci pour les infos à tous

Je vais me charger de tout ces monstres....

Eltannus ....un monstre de travail....non!
....un monstre de gentillesse... non
.... un monstre tout court....vouiii j'avoue
Citation :
De plus, ça peut pô compiler. Le CreateObject ne peut être placé dans une fonction DelayCommand, AssignCommand ou ActionDoCommand
Ca, c'est vrai ^^;

On va dire que j'ai fait un script vite fait pour montrer l'orientation a prendre... On va dire ... allez, soyez sympa, quoi... :/
crions le haut et fort!
J'ose le dire Merci de la direction à prendre

Eltannus

Tiens j'ai été adoubé chevalier!
Un mage borgne, myope et tout rabougris :chevalier!...On aura vraiment tout vu!
vous z'auriez pas vu ma jambe de bois...
Citation :
Provient du message de Zunder
Heu j'vais ptet passer pour un boulet, mais c'est quoi l'avantage sur le fait de créer une rencontre qui se refait au bout de 10 minutes ?

sais po...

Moi, onj me pose une question, je donne un outil pour y repondre (et parfois la reponse, mais ca aide moins...)

Apres, l'interet, je le laisse au designer du mod ^^
eM, on s'en fout qu'il ait le temps de récupérer le tag, etc..
Ce que je dis c'est que DelayCommand() vérifie quand même si le caller est valide et là il ne l'est plus, donc pas de respawn.

Par contre avec un AssignCommand(GetModule(), DelayCommand() ) ça marche très bien.

(si j'ai dit une connerie désolé, mais y a un moment où on avait fait pas mal de test, et on avait abouti à cette conclusion )
et .. vous avez une idée du pourquoi ? parce que moi j'en vois pas c un truc du genre qui vient de comme qu'c'est codé qu'on y comprend rien ou il y a un sens profond caché ?
Non, c'est plus simple que ca :
prenons un VoidCreateObject(string resref) qui est dans notre JOL_generic.nss

Si tu fais
Code PHP:

void main()
{
DelayCommand(600.0,VoidCreateObject(GetResRef(OBJECT_SELF)));

Ca ne fonctionnera pas, car le DelayCommand va demander un calcul du string sResRef dans 10 minutes, et effectivement, l'objet n'existera plus, donc le create va se planter. (Si tu fais sur une loc definie, tu aura un blaireau, si tu recalcule la loc, tu aura soit un monstre invisible, soit un monstre Hors-map...)

PAR CONTRE (et c'est la ou c'est bon ^^)
Si tu fais
Code PHP:

void main()
{
string sResRef GetResRef(OBJECT_SELF);
DelayCommand(600.0,VoidCreateObject(sResRef));

Alors cela va fonctionner, car le DelayCommand va lancer un Create avec un resref que tu aura defini lors de l'execution du script, donc a un moment ou la cible est valide...

Enfin, chez moi, ca marche ^^;
Perso j'ai des chauves souris qui créent des vampires à leur mort et je n'ai pas de problème. Mais évidemment c'est de l'instantané.
J'ai bien eu un ou deux problème pour mes PNJ qui se respawnaient 5 minutes plus tard mais le problème se résout facilement : il suffit de stocker la variable ResRef (comme l'a fait eMRaistlin...).
__________________
Ange http://sylvaniefilm.free.fr/uploads/smilley.gif
L'a raison Em, vaut mieux parfois faire dix lignes de déclarations plutôt que d'être québlo avec une ligne de commande qui fait tout en un. Au moins comme ça, on est sûr de ce qu'on avance vu qu'une fois la déclarations faites, ça risque pô de bouger.

/\
||
Comment rendre plus compliquée une explication aussi claire que celle de Raistlin

Vous êtes sûr de ce que vous avancez ?
Il doit alors s'agir d'un changement dans les dernière versions puisque avant cela, le DelayCommand() vérifiait bien la validité de son appelant au moment de son exécution. Et donc ce script ne marchait pas, ResRef avant ou non (de toute façon c'est encore plus évident avec le resref).

Donc est-ce que vous lisez ce que j'écris ou est-ce que je suis en train de devenir fou
Bon j'ai bien vérifié : il faut faire un AssignCommand(GetModule(), ....) sur le DelayCommand(600.0f, VCrObj(....)), sinon ça ne marchera pas !!

Sinon, bien sûr qu'il faut faire le GetResRef() avant que le corps ne disparaisse !!

(Ah, ceci n'est valable que si le monstre est bien destructible, c'est à dire si son corps disparaît bien au bout d'un certain temps, sinon le script marche très bien.)
Euh, justement, je pense que GetResRef est pas representatif, car longtemps, on a pas vraiment saisi comment il fonctionnait

(merci Tyn', au passage ^^)

Si tu fais ce test avec un monstre issue des blueprint standart, tu n'obtiendra aucun resultat... si tu fait exactement ce test avec un monstres custom, ca devrait marcher ^^
Mmmm, je dois mal m'exprimer...

Je ne parle pas du GetResRef() !! Je parle d'une erreur dans le script, qui essaie de faire exécuter une fonction retardée par un objet qui ne sera plus valide au moment de son exécution, et je t'assure que ton script ne devrait pas marcher (sauf si tu laisse les corps !).
Citation :
Mmmm, je dois mal m'exprimer...
Non, mais tu post quand je poste, resultat, j'avais pas vu ton 2eme post


Citation :
Bon j'ai bien vérifié : il faut faire un AssignCommand(GetModule(), ....) sur le DelayCommand(600.0f, VCrObj(....)), sinon ça ne marchera pas !!
Je ne saurai exprimer a quel point je suis dubitatif...

Bon, bein... euh... vais tester aussi, tiens
(perso, je respawn pas apres 10mn, donc, je sais pas )
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés