Siemka,
pewnie co niektórzy już rzygają na sam widok problemu z Unknown Identifier, bo to niby oczywiste, ale...
To mój skrypt:
func void InitArmourCritChanceReduction(var C_NPC hero, var C_NPC oth)
{
if (Npc_IsInState (hero, ZS_Attack))
&& (Hlp_GetInstanceID(oth) == slf.aivar[AIV_LASTTARGET])
{
print("Wykryło hero is in zs attack state oraz oth last target");
var c_item armor; armor = Npc_GetEquippedArmor (oth);
if (Hlp_IsItem (armor, ITAR_DJG_L))
{
print("wykryło zbroje i obniżyło talent");
B_AddFightSkill (hero, NPC_TALENT_1H, - 10);
};
};
};
I dostaje podczas parsowania błąd Unknown Identifier : AIVAR
1) Po pierwsze, nie wiem co to dokładnie jest to slf.aivar i inne aivary, ale z racji, że jest tego dość dużo w wielu plikach, to jak do jasnej cholery może mi wywalać błąd, że nie czegoś takiego nie zna. Pierwszy IF z mojej funkcji, czyli to:
if (Npc_IsInState (hero, ZS_Attack))
&& (Hlp_GetInstanceID(oth) == slf.aivar[AIV_LASTTARGET])
w całości skopiowałem z pliku (B_Attack) i tam kilkukrotnie się pojawia ten aivar i wszystko działa jak należy, a jak dodam tę swoją funkcję to się zaczynają problemy - totalnie tego nie rozumiem
2) Druga sprawa, choć mniej paląca, jest taka, że nie wiem czy wgl dobrze się zabieram za to, co chcę zrobić. Mianowicie chcę zrobić coś takiego,
żeby szansa na trafienie krytyczne bohatera (a w końcowym zamyśle również wszystkich NPC)
malała w zależności od tego jaki pancerz nosi przeciwnik. Załóżmy, że mamy 100% hitchance. Gdy przeciwnik ma na sobie jakąś słabszą zbroję, to ona obniża nasz hitchance o powiedzmy 20, a jak ma jakąś mocniejszą - to powiedzmy o 70%, itp.
Zamysł mojego skryptu jest taki i tak go rozumiem (nie wiem czy dobrze):
JEŚLI hero wykonuje atak
i oth to jest nasz target
do tego JEŚLI
oth ma na sobie lekką zbroję ŁS (przykładowa zbroja)
TO
nasz hitchance obniża się o 10 (przykładowa wartość)
To jest oczywiście uproszczony skrypt, chciałem zobaczyć czy to wgl działa... no a przez tego nieszczęsnego AIVARA nie działa
No i tu pytanie do tęgich głów tego forum: czy to ma szansę działać
oczywiście wiem, że trzeba do tego dorobić jeszcze przywracanie z powrotem po ataku swojego dawnego Hitchance - na chwilę obecną nie mam innego pomysłu niż jakiś timer.
Generalnie chodzi o to, żeby Hitchance zmieniał się dynamicznie w zależności od tego, którego przeciwnika akurat trafiamy i jaką on ma na sobie zbroje.
Wszelkie pomysły mile widziane i przede wszystkim o co chodzi z tym, że nie znajduje aivara, bo tego najbardziej nie rozumiem.