Bonjour tout le monde!
Existe-t-il un script pour que, quand la vie d’un NPC tombe à zéro, au lieu de mourir, il rejoigne la “common” faction? Voire même déclencher une conversation. Typiquement, pour mettre fin à un combat de façon pacifique.
Merci d’avance!
For the non-french speakers amongst you (via google translate)
Hello everyone!
Is there a script so that when the life of an NPC drops to zero, instead of dying, it joins the “common” faction? Even initiate a conversation. Typically, to end a fight peacefully.
Thank you in advance!
TR
1 Like
Voilà un script tiré de Al Andalus (script taken from Al Andalus).
A placer dans script déclenché par les dégats du NPC (to put in NPC OnDamage).
Le NPC est taggé immortel, le script teste le nombre de PV restant, à moins de 15 le combat est arrêté avec changement de faction et une conversation démarre. Le NPC redevient mortel au cas où la conversation se termine en un 2ème combat.
// Teryel hit
// If HP low, ends fight, rests everybody, makes Teryel mortal, starts convo
#include "ginc_companion"
void main()
{
object oTeryel = OBJECT_SELF;
if (!GetImmortal(oTeryel)) // second fight, call default script and return
{
ExecuteScript("nw_c2_default6", oTeryel);
return;
}
if (GetCurrentHitPoints(oTeryel) > 15) return;
object oPC = GetFirstPC();
AssignCommand(oPC, ClearAllActions(TRUE));
AssignCommand(oTeryel, ClearAllActions());
ChangeToStandardFaction(oTeryel, STANDARD_FACTION_DEFENDER); // put Teryel non hostile
ForceRest(oTeryel);
ForceRestParty(oPC);
SetImmortal(oTeryel, FALSE);
SendMessageToPC(GetFirstPC(FALSE), "Combat arrêté / Combat stopped.");
AssignCommand(oPC, ActionJumpToObject(oTeryel));
DelayCommand(0.2f, AssignCommand(oPC, ActionStartConversation(oTeryel, "cv_tc_teryel")));
}
2 Likes
Merci beaucoup !