Script pour éviter la mort

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 !