Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > [aide respawn]Besoin d'aide pour un pb de respawn
[aide respawn]Besoin d'aide pour un pb de respawn
Par shadoh le 15/10/2002 à 23:22:22 (#2342682)
Je me permet de soliciter votre aide pour un probleme de respawn de monstres. J'ai deja réalisé une 40 aine de zones pour mon module et il ne me reste plus qu'a régler quelques details avant de pouvoir finaliser le module. Mon probleme c est qu avec le script que je vous ai copié plus bas, les monstres qui sont tués une premiere fois ne respawn qu"une fois. Si je les retue une seconde fois, ils ne respawneront plus. Je ne sais pas trop quoi faire alors j'espere que vous pourrez m'aider afin de résoudre mon probleme. Merci d'avance :).
SCRIPT UTILISE : (en l'occurence pour le respawn d'un loup)
#include "NW_I0_GENERIC"
void VoidCreateObject(string sTemplate, location lLoc, int bUseAppearAnimation=TRUE);
void main()
{
location lLoca = GetLocation(GetObjectByTag ("wploup1"));
float fSeconds = 60.0; //temps en secondes pour le respawn
string sTemplate = "nw_wolf";
if(GetSpawnInCondition(NW_FLAG_DEATH_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(1007));
}
{
SetIsDestroyable(FALSE);
AssignCommand(OBJECT_SELF, DelayCommand(fSeconds, VoidCreateObject(sTemplate,lLoca, TRUE)));
}
}
void VoidCreateObject(string sTemplate, location lLoca, int bUseAppearAnimation=TRUE)
{
CreateObject(OBJECT_TYPE_CREATURE, sTemplate,lLoca,TRUE);
SetIsDestroyable(TRUE);
}
Par Tyn' le 15/10/2002 à 23:51:20 (#2342810)
C'est mieux et beaucoup plus simple que tout ce qu'on pourrait faire en scripts :)
Par shadoh le 16/10/2002 à 0:26:58 (#2342981)
Donc mon pb c est que ce script de respawn ne fasse pas respawn le mob qu une seule fois.
Par miriandel le 16/10/2002 à 0:53:32 (#2343079)
Provient du message de shadoh
Merci du conseil :) mais j utilise deja ce type de declancheurs pour faire spawner des mobs. Le PB c est que pour les mobs de quete, il est obligatoir que celui ci soit visible avant que le PJ ne passe sur un déclancheur. Et évidement, il faut qu apres qu un PJ ai tué le mob de quete en question celui ci respawn quelques minutes apres afin qu un autre PJ puisse accomplir la quete en question lui aussi :).
Donc mon pb c est que ce script de respawn ne fasse pas respawn le mob qu une seule fois.
La solution à ton problème est fort simple.
Si tu veux qu'un spawn soit visible d'emblée, avant que quiconque passe sur le déclencheur, tu places ton déclencheur à l'endroit d'arrivée des PJs dans la zone, et tu clic-droit sur le polygone créé et demande "add spawnpoint". Tu peux ensuite déplacer ce spawnpoint aussi loin que tu le veux dans la zone.
Tu peux même en créer plusieurs pour les spawns continus.
Le plygone de spawn peut même couvrir la zone entière. Ce qui donne parfois de jolis bugs, recommandé pour la bonne humeur !
Ce qui répond à ta seconde question.
Tu peux spécifier dans l'écran de configuration d'une rencontre que le spawn doit être "continuous" et dans l'onglet "advanced" préciser le nombre de fois qu'il doit respawner, jusqu'à l'infini, avec un intervalle en secondea à ta discrétion.
Par Tyn' le 16/10/2002 à 0:55:47 (#2343092)
Sur OnDeath du boss :void main()
Et sur le OnUserDefined de ta zone :
{
SignalEvent(GetArea(OBJECT_SELF),EventUserDefined(2000));
}void SpawnCreature(string sResRef, location lLocation, int bUseAppearAnimation=TRUE);
void main()
{
int nEvent = GetUserDefinedEventNumber();
switch(nEvent)
{
case 2000:
//Le boss a ete tue
float fRespawnTime = 60.0f;
location lLocation = GetLocation(GetObjectByTag ("wploup1"));
string sResRef = "nw_wolf";
DelayCommand(fRespawnTime,SpawnCreature(sResRef,lLocation));
break;
}
}
void SpawnCreature(string sResRef, location lLocation, int bUseAppearAnimation=TRUE)
{
object oCreature = CreateObject(OBJECT_TYPE_CREATURE,sResRef,lLocation,bUseAppearAnimation);
SetIsDestroyable(TRUE);
}
Par shadoh le 16/10/2002 à 0:59:25 (#2343105)
PS : merci pour vos propositions à tout ceux qui ont posté :)
EDIT : Tyn' à posté pendant que je tappais ma réponse
:D (je l'en remerci d'ailleur).
Par shadoh le 16/10/2002 à 1:34:04 (#2343216)
Une petite chose encore. Je me demande si il est possible de faire spawn un groupe de créature d'une classe spécifiée (morts vivants par exemple) qui s'adapteraient automatiquement au niveau du joueur qui est passé sur le declancheur de spawn.
En tout cas, merci encore pour votre aide.
Par miriandel le 16/10/2002 à 10:01:46 (#2344028)
Dans la liste de tes créatures doivent se trouver les déclinaisons en diverses puissances, et le jeu sémectionnera un échantillon en arpport avec la force du groupe.
JOL Archives 1.0.1
@ JOL / JeuxOnLine