[G1] Wyrzuca podczas ładowania świata 2303 8

O temacie

Autor WateR

Zaczęty 28.04.2015 roku

Wyświetleń 2303

Odpowiedzi 8

WateR

WateR

Użytkownicy
Pułkownik IV Rzeszy
posty28
Propsy3
ProfesjaSkrypter
  • Użytkownicy
  • Pułkownik IV Rzeszy
Witam, ostatnio stworzyłem pewnego tick tocka. Zrobiłem triggera w spacerze, funkcję i wpis do Startup.d Wszystko się ładnie ładuje, nie wyrzuca gdy parsuje skrypty. Gdy wchodzę w nową grę i czekam, gdy się załaduje, po prostu wyskakuje "Gothic 1 przestał działać". Wie ktoś może o co chodzi ? Gdy usunąłem "Wld_SendTrigger" ze startupa, wszystko załadowało się normalnie (oczywiście funkcji nie miało co wywołać, więc nie działała [logiczne]).
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Jakiś skrypt funkcji tick tocka?
Mógłbyś go od razu wklepać.

WateR

WateR

Użytkownicy
Pułkownik IV Rzeszy
posty28
Propsy3
ProfesjaSkrypter
  • Użytkownicy
  • Pułkownik IV Rzeszy
Nie wiedziałem, że będzie potrzebny (bo jak mówiłem: nie wyrzuca podczas parsowania). Ale proszę (regeneracja):
func void REGENERACJA ()
{
if (hero.attribute[ATR_HITPOINTS] > 0)
{
if (level_regeneracji == 1)
{
hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + HP_lvl_1;
};
if (level_regeneracji == 2)
{
hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + HP_lvl_2;
};
if (level_regeneracji == 3)
{
hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + HP_lvl_3;
};
if (level_regeneracji == 4)
{
hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + HP_lvl_4;
};
if (hero.attribute[ATR_HITPOINTS] > hero.attribute[ATR_HITPOINTS_MAX])
{
hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS_MAX];
};
};
};
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Spróbuj tak:
func void REGENERACJA ()
{
    if (!Hlp_IsValidNpc (hero)) { return; }; // tutaj sprawdzam, czy npc jest w grze

    if (hero.attribute[ATR_HITPOINTS] > 0)
    {
        if (level_regeneracji == 1)
        {
        hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + HP_lvl_1;
        };
        if (level_regeneracji == 2)
        {
        hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + HP_lvl_2;
        };
        if (level_regeneracji == 3)
        {
        hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + HP_lvl_3;
        };
        if (level_regeneracji == 4)
        {
        hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + HP_lvl_4;
        };
        if (hero.attribute[ATR_HITPOINTS] > hero.attribute[ATR_HITPOINTS_MAX])
        {
        hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS_MAX];
        };
    };
};

WateR

WateR

Użytkownicy
Pułkownik IV Rzeszy
posty28
Propsy3
ProfesjaSkrypter
  • Użytkownicy
  • Pułkownik IV Rzeszy
Niestety - nadal nic. Cały czas "Gothic 1 przestał działać". Chociaż nie wiem, jak warunek Hlp_IsValidNpc mógłby pomóc. Sama funkcja zapewne działa, lecz wyrzuca tego pechowego Gothica przez świat.
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
To dwie rzeczy.
1. Pokaż, jak zrobiłeś tick tocka w spacerze.
2. Log z zSpy.

WateR

WateR

Użytkownicy
Pułkownik IV Rzeszy
posty28
Propsy3
ProfesjaSkrypter
  • Użytkownicy
  • Pułkownik IV Rzeszy
1. http://i.imgur.com/5JcKdeM.png
2. Problemu nie znaleziono żadnego, ale jest tam takie coś: http://i.imgur.com/HS2Ukaa.png
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
fireDelaySec to czas, co ile się wywołuje tick tock, u Ciebie jest 0, zmień.

WateR

WateR

Użytkownicy
Pułkownik IV Rzeszy
posty28
Propsy3
ProfesjaSkrypter
  • Użytkownicy
  • Pułkownik IV Rzeszy
Teraz wszystko działa jak powinno (pomieszałem fireDelaySec z retriggerWaitSec :pokerface:). Dzięki Ci bardzo  :lol:
Do zamknięcia.
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry