Warunek 3539 12

O temacie

Autor Michals

Zaczęty 11.07.2013 roku

Wyświetleń 3539

Odpowiedzi 12

Michals

Michals

Użytkownicy
posty10
  • Użytkownicy
Cześć, mam jeden problem, a mianowicie nie wiem jak zrobić opcje dialogową, że gdy zostaniemy pobici przez npc, ten zagada do nas. Mam już dialog, że npc do nas zagada, gdy go pobijemy, próbowałem użyć do tego "else", ale podczas odpalania gothica wyskakuje mi błąd, że nie ma ';" w linijce, w której to else jest.
Mam zrobione coś takiego.
FUNC INT DIA_NONE_555_Braves_test_Condition()
{
if (self.aivar[AIV_DefeatedByPlayer] == TRUE)
{
return TRUE;
};
 };
FUNC VOID DIA_NONE_555_Braves_test_Info()
{
AI_Output (self, other, "DIA_NONE_555_Braves_test_01_00"); //Stary, niezły jesteś!


AI_StopProcessInfos (self);
};
if (self.aivar[AIV_DefeatedByPlayer] == TRUE)Wpisanie tutaj FALSE też nic nie daje bo postać zagaduje do nas, nawet jak ją pierwszy raz widzimy.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
False by oznaczało że go NIE pobiliśmy, wiec nic dziwnego że zagaduje kiedy pierwszy raz widzimy.

Nie ma gotowej zmiennej która by mówiła że npc pokonał postać gracza, musiałbyś sam taką stworzyć i odpowiednio ją ustawiać. Najprościej byłoby w ZS_Uncoscious dodać warunek że jeśli self to player a other to ten twój npc, to żeby ustawiało ja na true. Potem w funkcji condition twojego dialogu jedynie zwracasz tą zmienną.

MrSzymon345

MrSzymon345

Użytkownicy
posty127
Propsy16
Profesjabrak
  • Użytkownicy
Mysle ze w skryptach znajdzie sie taki warunek.Moze w dialogach Scattego.Poszukam i napisze.
 

MrSzymon345

MrSzymon345

Użytkownicy
posty127
Propsy16
Profesjabrak
  • Użytkownicy
W jedynce w dialogu ze Scattym po walce z Kirgo jest taki warunek:
if (Kirgo.aivar[AIV_HASDEFEATEDSC]==TRUE)
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Heh, czyli jednak taka zmienna istnieje w aivarach, przynajmniej zakładając że SC to odpowiednik skrótu PC.
Tego conditiona możesz napisać prościej, taki warunek jaki dajesz nie ma za bardzo sensu:
FUNC INT DIA_NONE_555_Braves_test_Condition()
{
    return self.aivar[AIV_HASDEFEATEDSC];
};

MrSzymon345

MrSzymon345

Użytkownicy
posty127
Propsy16
Profesjabrak
  • Użytkownicy
Powinno dzialac jesli nie bedzie to cos jeszcze pomysle.
 

Michals

Michals

Użytkownicy
posty10
  • Użytkownicy
Jeśli jestem na tyle ogarnięty, że dobrze to wklejam czyli:
FUNC INT DIA_NONE_555_Braves_test_Condition()
{
    return self.aivar[AIV_HASDEFEATEDSC];
};
FUNC VOID DIA_NONE_555_Braves_test_Info()
{
AI_Output (self, other, "DIA_NONE_555_Braves_test_01_00"); //Stary, niezły jesteś!


AI_StopProcessInfos (self);
};

to nie działa :/
 

MrSzymon345

MrSzymon345

Użytkownicy
posty127
Propsy16
Profesjabrak
  • Użytkownicy
A sprobuj zrobic zwykly warunek.
 


Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Lepiej niech napisze co znaczy "nie działa". Czego oczekuje od skryptu, a jak działa teraz.

MrSzymon345

MrSzymon345

Użytkownicy
posty127
Propsy16
Profesjabrak
  • Użytkownicy
Bedzie self bo w skrypcie bylo: Kirgo.aivar[AIV itd.
 

Michals

Michals

Użytkownicy
posty10
  • Użytkownicy
No, mogłem bardziej rozwinąć wypowiedź. Nie działa czyli gdy chce to przetestować wywala mi błąd o nieznanej komendzie. Jestem prawie w 80% pewien, że to się da jakoś zrobić, gdy patrzałem na dialog Roda, jest w nim opcja walki z nim i opcja dialogowa wskazująca na to, że już z nim walczyliśmy, mówił chyba coś takiego: "znowu chcesz oberwać?". Jednak za cholerę nie mogę tego rozpracować.
 

MrSzymon345

MrSzymon345

Użytkownicy
posty127
Propsy16
Profesjabrak
  • Użytkownicy
Jest wiele orginalnych skryptow w gothicu.Dialogi z najemnikami na farmie Onara gdzie kilku cie wyzwie na pojedynek,gosc w Khorinis gdzie z nim walczyles itd.
 


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