Polaking, co to jest? Uwaga, cytuję na wypadek gdybyś kasował:
var C_ITEM ready;
ready = Npc_GetReadiedWeapon(hero);
if (Npc_IsInState(hero, ZS_MagicFreeze))
&& (Npc_HasItems(hero, ItMw_Zabojca) == TRUE && Hlp_IsItem(ready, ItMw_Zabojca) == TRUE)
|| (Npc_IsInState(hero, ZS_MagicFreeze))
&& (Npc_HasItems(hero, ItMw_DasLegendereSchwiertOfAddanos) == TRUE && Hlp_IsItem(ready, ItMw_DasLegendereSchwiertOfAddanos) == TRUE)
|| (Npc_IsInState(hero, ZS_MagicFreeze))
&& (Npc_HasItems(hero, ItMw_1h_GoldSword_01) == TRUE && Hlp_IsItem(ready, ItMw_1h_GoldSword_01) == TRUE)
|| (Npc_IsInState(hero, ZS_MagicFreeze))
&& (Npc_HasItems(hero, ItMw_Exkalibur) == TRUE && Hlp_IsItem(ready, ItMw_Exkalibur) == TRUE)
{
B_StopMagicFreeze();
return LOOP_END;
};
Proponowałbym raczej:
func int ZS_MagicFreeze()
{
if (Hlp_IsItem(Npc_GetReadiedWeapon(self), twojzamrazajacymiecz)) { return 1; };
Jednak tak jak napisałem wcześniej, takie rozwiązanie spowoduje że trzymający tą broń w ogóle stanie się odporny na zamrażanie.
//edit: nie zauważyłem twojej edycji, kod pod spodem wydaje się być normalniejszy. Nadal jednak nie trzyma się do końca kupy.
Żeby nie być gołosłownym krytykantem, spróbuję wyjaśnić dlaczego:
if (Npc_IsInState(hero, ZS_MagicFreeze)) //po co to sprawdzasz, skoro warunek znajduje się właśnie wewnątrz ZS_MagicFreeze ?
&& (Npc_HasItems(hero, ItMw_Exkalibur) == TRUE //po co w ogóle to sprawdzasz? W warunkach nigdy nie używa się "== TRUE", jest to domyślne
&& Hlp_IsItem(ready, ItMw_Exkalibur) == TRUE) //niepotrzebnie stworzyłeś specjalną zmienną, można było po prostu wpisać tu funkcję. Dodatkowo, jak wyżej - w warunkach nigdy nie używa się "== TRUE", jest to domyślne
{
B_StopMagicFreeze(); // po co?
return LOOP_END; // OK
};
var C_ITEM ready;
ready = Npc_GetReadiedWeapon(hero); //Dlaczego sprawdzasz broń jaką ma wyciągnięty bohater? Przecież przez to gdyby bohater miał ją wyciągniętą, to wtedy zamrażanie nie działałoby też na npc'ów. I na odwrót, gdyby NPC próbował z niej korzystać, to zamrażałoby wszystkich łącznie z nim. Trzeba sprawdzać "self" (npc'a który jest w danym stanie)