Najpierw zrobiłem tak:
func void armor_zuzycie ()
{
var c_item zbroja;
zbroja = Npc_GetEquippedArmor(hero);
print ("trafiono bohatera");
//odejmowanie
if (Hlp_GetInstanceID(hero) != Hlp_GetInstanceID(other))
{
Print ("SYTUACJA 1!!");
};
if (!C_BodyStateContains(hero, BS_PARADE))
{
Print ("SYTUACJA 2!!");
if (zbroja.protection [PROT_EDGE] > 1)
{
zbroja.protection [PROT_EDGE] = zbroja.protection [PROT_EDGE] - 1;
hero.protection [PROT_EDGE] = hero.protection [PROT_EDGE] - 1;
};
if (zbroja.protection [PROT_BLUNT] > 1)
{
zbroja.protection [PROT_BLUNT] = zbroja.protection [PROT_BLUNT] - 1;
hero.protection [PROT_BLUNT] = hero.protection [PROT_BLUNT] - 1;
};
if (zbroja.protection [PROT_POINT] > 1)
{
zbroja.protection [PROT_POINT] = zbroja.protection [PROT_POINT] - 1;
hero.protection [PROT_POINT] = hero.protection [PROT_POINT] - 1;
};
if (zbroja.protection [PROT_FIRE] > 1)
{
zbroja.protection [PROT_FIRE] = zbroja.protection [PROT_FIRE] - 1;
hero.protection [PROT_FIRE] = hero.protection [PROT_FIRE] - 1;
};
if (zbroja.protection [PROT_MAGIC] > 1)
{
zbroja.protection [PROT_MAGIC] = zbroja.protection [PROT_MAGIC] - 1;
hero.protection [PROT_MAGIC] = hero.protection [PROT_MAGIC] - 1;
};
};
PrintScreen (ConcatStrings ("Zużycie pancerza: ", IntToString(zbroja.protection [PROT_EDGE])),2,91,"Font_Old_10_White_Hi.TGA",3);
//opis
zbroja.text[0]="Zużycie:";
//zbroja.protection [PROT_EDGE] -= 1;
//hero.protection [PROT_EDGE] -= 1;
zbroja.count[0]=zbroja.protection [PROT_EDGE];
if (zbroja.protection [PROT_EDGE] == 1) || (zbroja.protection [PROT_BLUNT] == 1)
{
AI_UnequipArmor (hero);
Print ("Zbroja zniszczona!");
};
};
Wyświetliły się oba napisy. To znaczy, że warunki są spełnione.
Potem przerobiłem na:
if (!C_BodyStateContains(hero, BS_PARADE)) && (Hlp_GetInstanceID(hero) != Hlp_GetInstanceID(other))
{
Zużycie dalej się odejmuje przy blokowaniu.