Witam, postanowiłem zrobić sobie w gothicu czasowe premie do statystyk. Niestety napotkałem problem, mianowicie premia zostaje dodana ale po upływie czasu nie zostaje odjęta. Prosiłbym o pomoc kogoś zorientowanego w temacie.
Skrypt napoju wywołujący zmienne aktywujące funkcje:
Spoiler
INSTANCE ItFo_Potion_DEF_01(C_Item)
{
name = NAME_Trank;
mainflag = ITEM_KAT_POTIONS;
flags = ITEM_MULTI;
value = Value_ManaEssenz;
visual = "ItFo_Potion_Mana_01.3ds";
material = MAT_GLAS;
on_state[0] = UseDEFPotion;
scemeName = "POTIONFAST";
description = "Esencja wzmacniająca obronę";
TEXT[1] = NAME_Bonus_Mana; COUNT[1] = Mana_Essenz;
TEXT[5] = NAME_Value; COUNT[5] = Value_ManaEssenz;
};
FUNC VOID UseDEFPotion()
{
if(DEFPREMIA == 4) && (zegardef == 3)
{
defdis = defdis +10;
DEFPREMIA = 1;
zegardef = 1;
};
};
defdis = defdis +10; // To odpowiada za pojawienie się ikonki ktróa pokazuje aktywne wzmocnienie
DEFPREMIA = 1; // To jest status zmiennej atywującej/dezaktywującej wzmocnienie
zegardef = 1; // To jest status zmiennej aktywującej liczenie czasu
Tutaj skrypt funkcji która w założniu miała sprawdzać status zmiennej i w zależności od niego przyznawać/odbierać bonus
Spoiler
func void premiestatystyk()
{
if(DEFPREMIA == 1) && (zegardef == 1)
{
self.protection [PROT_EDGE] += 15;
self.protection [PROT_BLUNT] += 15;
DEFPREMIA = 2;
zegardef = 2;
}
else if(DEFPREMIA == 2) && (zegardef ==3)
{
DEFPREMIA = 3;
}
else if(DEFPREMIA == 3)
{
self.protection [PROT_EDGE] -= 15;
self.protection [PROT_BLUNT] -= 15;
DEFPREMIA = 4;
defdis = 0;
};
};
A tutaj funkcja która miała liczyć czas (dodawanie wartości "+1" aż do osiągniecia 60)
func void defzegarf()
{
if(zegardef ==2)
{
liczzegardef = liczzegardef +1;
if (liczzegardef == 60)
{
zegardef =3;
liczzegardef = 0;
DEFPREMIA = 0;
};
};
};
Początkowe wartości zmiennych zainicjowane w startupie z wartościami DEFPREMIA = 4 oraz zegardef = 3
Funkcje wywoływane co 1 sekundę za pomocą frame function