Już nie musisz z niego korzystać, podałem ci przecież prostszą metodę. Ustaw jakiejś grupie NPC flags na 2, i w skrypcie broni która ma ich ranić, ustaw on_equip na funkcję która będzie zmieniała im flags na 0. A on_unequip na funkcję która z powrotem ustawi im na 2 (będą z powrotem nieśmiertelni).
Przykładowo:
Najpierw specjalny potwór
INSTANCE specjalny_wilk (Mst_Default_Wolf)
{
name = "Specjalny wilk";
flags = NPC_FLAG_IMMORTAL;
Set_Wolf_Visuals();
Npc_SetToFistMode(self);
};
Potem broń, zwyczajna ale zawierająca aktywatory funkcji
INSTANCE specjalny_miecz (C_Item)
{
name = "Specjalny miecz";
mainflag = ITEM_KAT_NF;
flags = ITEM_2HD_SWD;
material = MAT_METAL;
value = 1;
on_equip = Equip_specjalny_miecz;
on_unequip = UnEquip_specjalny_miecz;
damageTotal = 10;
damagetype = DAM_EDGE;
range = 150;
cond_atr[2] = ATR_STRENGTH;
cond_value[2] = 10;
visual = "ItMw_2H_Sword_01.3DS";
description = name;
TEXT[1] = "Tą bronią możesz zranić specjalne wilki";
TEXT[2] = NAME_Damage; COUNT[2] = damageTotal;
TEXT[3] = NAME_Str_needed; COUNT[3] = cond_value[2];
TEXT[4] = NAME_TwoHanded;
TEXT[5] = NAME_Value; COUNT[5] = value;
};
I funkcja która przy zdejmowaniu będzie uśmiertelniała, a przy ściąganiu unieśmiertelniała
func void Equip_specjalny_miecz()
{
specjalny_wilk.flags = 0;
};
func void UnEquip_specjalny_miecz()
{
specjalny_wilk.flags = NPC_FLAG_IMMORTAL;
};