Ton script doit faire se relever un personnage et l'envoyer dans un endroit repéré par un point de passage dont le tag est: "WP_RESPAWN_BON". D'après ce que je lis, c'est ce que j'ai compris.
Tu as tout bon MAIS, nulle part tu ne fais aller ton personnage à cet endroit.
#include "nw_i0_plot"
void main()
{
object oRespawner = GetLastRespawnButtonPresser();
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oRespawner);
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oRespawner)), oRespawner);
RemoveEffects(oRespawner);
// Ci dessus, on ressucite le PJ en en lui rendant tous ses points de vie
// et en lui otant les effets nefastes qui l'affectent
//
// ----------------------------------------------------------------
//ci dessous, on ne fait rien.
string sDestTag = "WP_RESPAWN_BON";
string sArea = GetTag(GetArea(oRespawner));
if (sArea == "MODULE")
{
sDestTag = "WP_RESPAWN_BON";
}
}
On va donc se séparer de la partie inutile, et on va essayer de faire ce qu'il faut en l'expliquant:
// Comment trouver mon point de passage ?
object oPointPassage = GetWaypointByTag("WP_RESPAWN_BON");
// Comment envoyer mon personnage à ce même point de passage ?
AssignCommand(oRespawner, ActionJumpToObject(oPointPassage, TRUE))
Par conséquent, en recollant les bouts:
// Lorsque le personnage presse le bouton Respawn
// La séquence est:
// Resurrection, restauration de tous les points de vie
// puis saut au point de passage "WP_RESPAWN_BON"
#include "nw_i0_plot"
void main()
{
object oRespawner = GetLastRespawnButtonPresser();
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oRespawner);
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oRespawner)), oRespawner);
RemoveEffects(oRespawner);
// Ci dessus, on ressucite le PJ en en lui rendant tous ses points de vie
// et en lui otant les effets nefastes qui l'affectent
//
// ----------------------------------------------------------------
// ci dessous, le personnage "saute" au point de passage
// Comment trouver mon point de passage ?
object oPointPassage = GetWaypointByTag("WP_RESPAWN_BON");
// Comment envoyer mon personnage à ce même point de passage ?
AssignCommand(oRespawner, ActionJumpToObject(oPointPassage, TRUE));
}
Quelles sont les clefs de cette méthode ?
1) une bonne analyse de ce qu'on veut faire (ce que tu as fait)
2) se poser les bonnes questions (pas fait)
3) trouver les fonctions à même de faire ce qu'on veut faire, sinon, le créer. (ça demande de la pratique, courage)