Dwie postacie i var int 3943 13

O temacie

Autor Asepl

Zaczęty 26.06.2012 roku

Wyświetleń 3943

Odpowiedzi 13

Asepl

Asepl

Użytkownicy
posty11
  • Użytkownicy

Asepl

Dwie postacie i var int
2012-06-26, 13:08(Ostatnia zmiana: 2012-06-26, 13:09)
Hej.

Jestem nowy w skrypceniu, i od dwóch dni próbuję oskrypcić poprawnie dwie postacie...
Problem polega na tym, że nie wiem do końca jak działają funkcje var int.

Zerknijcie proszę na dwa poniższe skrypty:

Franko:
Spoiler
//*********************************************************************
// Info EXIT
//*********************************************************************
INSTANCE DIA_BDT_1_Franko_EXIT   (C_INFO)
{
npc         = BDT_1_Franko;
nr          = 999;
condition   = DIA_BDT_1_Franko_EXIT_Condition;
information = DIA_BDT_1_Franko_EXIT_Info;
permanent   = TRUE;
description = DIALOG_ENDE;
};

FUNC INT DIA_BDT_1_Franko_EXIT_Condition()
{
return TRUE;
};

FUNC VOID DIA_BDT_1_Franko_EXIT_Info()
{
AI_StopProcessInfos (self);
};
//*********************************************************************
// Witaj
//*********************************************************************
INSTANCE DIA_BDT_1_Franko_Witaj  (C_INFO)
{
npc         = BDT_1_Franko;
nr          = 1;
condition   = DIA_BDT_1_Franko_Witaj_Condition;
information = DIA_BDT_1_Franko_Witaj_Info;
permanent   = TRUE;
description = Witaj.;
};

FUNC INT DIA_BDT_1_Franko_Witaj_Condition()
{
return TRUE;
};

FUNC VOID DIA_BDT_1_Franko_Witaj_Info()
{
AI_Output (other, self ,DIA_BDT_1_Franko_Witaj_15_00); //Witaj.
AI_Output (self, other,DIA_BDT_1_Franko_Witaj_01_01); //Czy my kurwa jesteśmy na per TY?!
AI_Output (other, self,DIA_BDT_1_Franko_Witaj_15_02); //Eee... Chyba nie.
AI_Output (self, other,DIA_BDT_1_Franko_Witaj_01_03); //To na co się gapisz? Spierdalaj.
};

//*********************************************************************
// Mięso
//*********************************************************************
INSTANCE DIA_BDT_1_Franko_Mieso  (C_INFO)
{
npc         = BDT_1_Franko;
nr          = 2;
condition   = DIA_BDT_1_Franko_Mieso_Condition;
information = DIA_BDT_1_Franko_Mieso_Info;
permanent   = FALSE;
description = Jest coś do zrobienia?;
};

FUNC INT DIA_BDT_1_Franko_Mieso_Condition()
{
return TRUE;
};

FUNC VOID DIA_BDT_1_Franko_Mieso_Info()
{
AI_Output (other,self ,DIA_BDT_1_Franko_Mieso_15_00); //Hej, czy jest coś do zrobienia?
AI_Output (self ,other,DIA_BDT_1_Franko_Mieso_01_01); //Hmm...
AI_PlayAni (self, T_SEARCH);
AI_Output (self ,other,DIA_BDT_1_Franko_Mieso_15_02); //Może faktycznie mam dla Ciebie zadanie, leszczu.
AI_Output (self ,other,DIA_BDT_1_Franko_Mieso_01_03); //Pokaż, że jesteś czegoś wart, i przynieś mi pięć świeżo upolowanych kawałków mięsa.

Info_ClearChoices (DIA_BDT_1_Franko_Mieso);
Info_AddChoice (DIA_BDT_1_Franko_Mieso,Uznaj to mięso za Twoje.,DIA_BDT_1_Franko_Mieso_Okej);
Info_AddChoice (DIA_BDT_1_Franko_Mieso,Chyba Cie pies wydymał, nie zamierzam się poniżać.,DIA_BDT_1_Franko_Mieso_Nie);
};

FUNC VOID DIA_BDT_1_Franko_Mieso_Okej ()
{
AI_Output (self, other,DIA_BDT_1_Franko_Mieso_Okej_15_00); //Haha! Podoba mi się takie nastawienie! Czekam.

Log_SetTopicStatus (TOPIC_Mieso, LOG_RUNNING);
B_LogEntry (TOPIC_Mieso, Franko chce, abym zdobył dla niego pięć kawałków surowego mięsa.);
AI_StopProcessInfos (self);
};

FUNC VOID DIA_BDT_1_Franko_Mieso_Nie ()
{
AI_Output (self, other,DIA_BDT_1_Franko_Mieso_Nie_15_00); //Co powiedziałeś?!  Zdychaj gnido!
B_attack (self, other, AR_NONE, 0);
AI_StopProcessInfos (self);
};

//*********************************************************************
// Koniec zadania - mieso
//*********************************************************************
INSTANCE DIA_BDT_1_Franko_Koniecmieso  (C_INFO)
{
npc         = BDT_1_Franko;
nr          = 2;
condition   = DIA_BDT_1_Franko_Koniecmieso_Condition;
information = DIA_BDT_1_Franko_Koniecmieso_Info;
permanent   = TRUE;
description = Mam Twoje mięso.;
};

FUNC INT DIA_BDT_1_Franko_Koniecmieso_Condition()
{
if ((npc_knowsinfo (other,DIA_BDT_1_Franko_Mieso)) && ((npc_hasitems (other, itfomuttonraw) >= 5)))
{
return TRUE;
};
};

FUNC VOID DIA_BDT_1_Franko_Koniecmieso_Info()
{
AI_Output (other, self,DIA_BDT_1_Franko_Koniecmieso_15_00); //Mam Twoje mięso.
AI_Output (self, other,DIA_BDT_1_Franko_Koniecmieso_01_01); //Dawaj mi je.
B_giveinvitems (other, self, itfomuttonraw, 5);
B_UseItem (self, itfomuttonraw);
AI_Output (self, other,DIA_BDT_1_Franko_Koniecmieso_01_02); //Mmm... mmm.. Pychotka... Mmm.
AI_Output (other, self,DIA_BDT_1_Franko_Koniecmieso_15_03); //Ekhm...
AI_Output (self, other,DIA_BDT_1_Franko_Koniecmieso_01_04); //Co?!
B_UseItem (self, itfomuttonraw);
AI_Output (other, self,DIA_BDT_1_Franko_Koniecmieso_15_05); //Mogę liczyć na jakąś... Nagrodę?
AI_Output (self, other,DIA_BDT_1_Franko_Koniecmieso_01_06); //Chyba oszalałeś! Won ode mnie, sępie!

B_LogEntry (TOPIC_Mieso, Ten frajer nie dał mi nic w zamian... Co za porażka.);
Log_SetTopicStatus (TOPIC_Mieso, LOG_SUCCESS);
B_GivePlayerXP (XP_Franko_Mieso);
Npc_ExchangeRoutine (self,Mieso);
AI_StopProcessInfos (self);
Koniec_Mieso = TRUE;
};

Bolo:
Spoiler
//*********************************************************************
// Info EXIT
//*********************************************************************
INSTANCE DIA_BDT_4_Bolo_EXIT   (C_INFO)
{
npc         = BDT_4_Bolo;
nr          = 999;
condition   = DIA_BDT_4_Bolo_EXIT_Condition;
information = DIA_BDT_4_Bolo_EXIT_Info;
permanent   = TRUE;
description = DIALOG_ENDE;
};

FUNC INT DIA_BDT_4_Bolo_EXIT_Condition()
{
return TRUE;
};

FUNC VOID DIA_BDT_4_Bolo_EXIT_Info()
{
AI_StopProcessInfos (self);
};

//*********************************************************************
// Witaj
//*********************************************************************
INSTANCE DIA_BDT_4_Bolo_Witaj  (C_INFO)
{
npc         = BDT_4_Bolo;
nr          = 1;
condition   = DIA_BDT_4_Bolo_Witaj_Condition;
information = DIA_BDT_4_Bolo_Witaj_Info;
permanent   = TRUE;
description = Czy Ty czasem sypiasz?;
};

FUNC INT DIA_BDT_4_Bolo_Witaj_Condition()
{
if (Pobij_Franko == FALSE)
{
return TRUE;
};
};

FUNC VOID DIA_BDT_4_Bolo_Witaj_Info()
{
AI_Output (other, self ,DIA_BDT_4_Bolo_Witaj_15_00); //Czy Ty czasem sypiasz?
AI_Output (self, other,DIA_BDT_4_Bolo_Witaj_01_01); //Chłopie, a kto inny będzie pilnował tych obiboków, jak nie ja?
AI_Output (other, self,DIA_BDT_4_Bolo_Witaj_15_02); //W sumie... Sam nie wiem.
AI_Output (self, other,DIA_BDT_4_Bolo_Witaj_01_03); //No właśnie.
AI_StopProcessInfos (self);
};

//*********************************************************************
// Franko-gnida
//*********************************************************************
INSTANCE DIA_BDT_4_Bolo_Franko  (C_INFO)
{
npc         = BDT_4_Bolo;
nr          = 2;
condition   = DIA_BDT_4_Bolo_Franko_Condition;
information = DIA_BDT_4_Bolo_Franko_Info;
permanent   = TRUE;
Important = TRUE;
};

FUNC INT DIA_BDT_4_Bolo_Franko_Condition()
{
if (DIA_BDT_4_Bolo_Franko == TRUE)
{
return TRUE;
};
};

FUNC VOID DIA_BDT_4_Bolo_Franko_Info()
{
AI_Output (self, other,DIA_BDT_4_Bolo_Franko_01_00); //Hej, Ty!
AI_Output (other, self,DIA_BDT_4_Bolo_Franko_15_01); //Tak?
AI_Output (self, other,DIA_BDT_4_Bolo_Franko_01_02); //Czy to prawda, że ten ciurmok Franko opitolił Cię z pięciu kawałków mięsa?

Info_ClearChoices (DIA_BDT_4_Bolo_Franko);
Info_AddChoice (DIA_BDT_4_Bolo_Franko,Niestety tak,DIA_BDT_4_Bolo_Franko_Pobij);
Info_AddChoice (DIA_BDT_4_Bolo_Franko,Skąd to przypuszczenie? Oczywiście, że nie,DIA_BDT_4_Bolo_Franko_Oszczedz);

};

FUNC VOID DIA_BDT_4_Bolo_Franko_Pobij ()
{
AI_OutPut (self, other,DIA_BDT_4_Bolo_Franko_Pobij_01_00); //Wiedziałem! Po prostu wiedziałem! Ten frajer cały czas zmuszałby innych do pracy za niego! Zapłaci mi za to!
AI_Stopprocessinfos (self);
B_Attack (self, BDT_1_Franko, AR_NONE, 0);
Pobij_Franko = TRUE;
};

FUNC VOID DIA_BDT_4_Bolo_Franko_Oszczedz ()
{
AI_OutPut (self, other,DIA_BDT_4_Bolo_Franko_Oszczedz_01_00); //No... Tym razem mu się upiekło.
Ai_Stopprocessinfos (self);
};

//*********************************************************************
// Franko Pobity
//*********************************************************************
INSTANCE DIA_BDT_4_Bolo_Franko_Przegral  (C_INFO)
{
npc         = BDT_4_Bolo;
nr          = 1;
condition   = DIA_BDT_4_Bolo_Przegral_Condition;
information = DIA_BDT_4_Bolo_Przegral_Info;
permanent   = TRUE;
description = Niezly jestes;
};

FUNC INT DIA_BDT_4_Bolo_Przegral_Condition()
{
if (Pobij_Franko == FALSE) && (npc_knowsinfo (other, DIA_BDT_4_Bolo_Franko))
{
return TRUE;
};
};

FUNC VOID DIA_BDT_4_Bolo_Przegral_Info()
{
AI_Output (other, self ,DIA_BDT_4_Bolo_Witaj_15_00); //Niezly jestes. Nie sądzisz, że trochę za ostro go potraktowałeś?
AI_Output (self, other,DIA_BDT_4_Bolo_Witaj_01_01); //Ktoś tutaj musi trzymać wszystko w garści, bo inaczej wilki by nas pożarły.
AI_StopProcessInfos (self);
};


Cały pierwszy skrypt działa.

Skrypt Bola natomiast działa tylko częsciowo.
Mogę wyjść... Wyświetla się także pierwsze pytanie.

Tzn. Czy Ty czasem sypiasz. Po kliknięciu w/w opcji, wyświetlają się pierwsze dwie linijki z działu
Franko Pobity i dwie końcowe z Witaj.

Totalny miszung, a ja już nie ogarniam :[
Choć jestem pewien, że źle używam var int'ów.

Dodam, że dodałem var int'y do story_globals.
 

Maciejk

Maciejk

Użytkownicy
posty123
Propsy111
  • Użytkownicy

Maciejk

Dwie postacie i var int
#1 2012-06-26, 13:46(Ostatnia zmiana: 2012-06-26, 13:55)
Jedna rzecz, zmień pernamenty na False, chyba, że chcesz w nieskończoność się go pytać czy "Czasem sypia". Nie ma to raczej nic wspólnego z twoim błędem, ja polecałbym usunięcie plików ou.bin i ou.csl i powtórnym reparsowaniem skryptów w spacerze. (mi pomagało w podobnych sprawach z dialogami)

W ogóle ten dialog Bola nie trzyma się kupy, ale to już inna sprawa.

EDIT: W tych pernamentach może tkwić problem, jeżeli się mylę, niech moi koledzy skrypterzy mnie poprawią, bo masz

Cytuj
INSTANCE DIA_BDT_4_Bolo_Franko  (C_INFO)
{
        npc         = BDT_4_Bolo;
        nr          = 2;
        condition   = DIA_BDT_4_Bolo_Franko_Condition;
        information = DIA_BDT_4_Bolo_Franko_Info;
        permanent   = TRUE;
        Important = TRUE;

Tutaj zmień na False.
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.

Bogdan Zwei

Dwie postacie i var int
#2 2012-06-26, 13:54(Ostatnia zmiana: 2012-06-26, 13:56)
FUNC VOID DIA_BDT_4_Bolo_Franko_Pobij ()
{
        AI_OutPut (self, other,"DIA_BDT_4_Bolo_Franko_Pobij_01_00"); //Wiedziałem! Po prostu wiedziałem! Ten frajer cały czas zmuszałby innych do pracy za niego! Zapłaci mi za to!
        AI_Stopprocessinfos (self);
        B_Attack (self, BDT_1_Franko, AR_NONE, 0);
        Pobij_Franko = TRUE;
};

       if (Pobij_Franko == FALSE) && (npc_knowsinfo (other, DIA_BDT_4_Bolo_Franko))
        {
                return TRUE;
        };

Może dlatego, że jest inaczej zapisane? Dajesz, że Pobij_Franko jest na "prawdę", a w innym skrypcie znowu jest na "fałszu".

Masz napisane, że po jednym dialogu, jest na true, a w innym jeśli jest false. Wygląda to tak:

Przyczyna to twoja zmienna:

Przyczyna jest prawdą.

Zaś w następnym:

Jeśli przyczyna jest FAŁSZEM.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Maciejk

Maciejk

Użytkownicy
posty123
Propsy111
  • Użytkownicy

Maciejk

Dwie postacie i var int
#3 2012-06-26, 13:55(Ostatnia zmiana: 2012-06-26, 13:59)
@Polaking

To jest warunek ziom. Jeżeli Bolo powie kwestie "Wiedziałem! Po prostu wiedziałem! Ten frajer cały czas zmuszałby innych do pracy za niego! Zapłaci mi za to!" To nie będzie kwestii z "Czy ty czasem śpisz".

A przepraszam cię Polaking, masz racje fakt. Nie zauważyłem, że tu jest jeszcze jeden warunek.
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Popatrz na twoje "Pobij_Franko" w obu funkcjach. Oby dwie są na FALSE, a w jednym z dialogów się zmienia na TRUE, a dalej masz napisane, że jeśli jest na FALSE.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Asepl

Asepl

Użytkownicy
posty11
  • Użytkownicy

Asepl

Dwie postacie i var int
#5 2012-06-26, 14:00(Ostatnia zmiana: 2012-06-26, 14:00)
Pomyśle nad tym..
Co do Maciejk, dzięki ;) ale to chyba jeszcze nie wszystko naprawia.
 

Maciejk

Maciejk

Użytkownicy
posty123
Propsy111
  • Użytkownicy

Maciejk

Dwie postacie i var int
#6 2012-06-26, 14:02(Ostatnia zmiana: 2012-06-26, 14:04)
Dałeś permament na 0? I jaki efekt? Powiedz, dalej będziemy kombinować, bo nie wiem jaka jest obecnie sytuacja. :)
 

Asepl

Asepl

Użytkownicy
posty11
  • Użytkownicy

Asepl

Dwie postacie i var int
#7 2012-06-26, 14:04(Ostatnia zmiana: 2012-06-26, 14:05)
FUNC INT DIA_BDT_4_Bolo_Witaj_Condition()
{
        if (Pobij_Franko == FALSE)
        {
                return TRUE;
        };
};

FUNC INT DIA_BDT_4_Bolo_Franko_Condition()
{
        if (DIA_BDT_4_Bolo_Franko == TRUE)
        {
                return TRUE;
        };
};


FUNC VOID DIA_BDT_4_Bolo_Franko_Pobij ()
{
        AI_OutPut (self, other,"DIA_BDT_4_Bolo_Franko_Pobij_01_00"); //Wiedziałem! Po prostu wiedziałem! Ten frajer cały czas zmuszałby innych do pracy za niego! Zapłaci mi za to!
        AI_Stopprocessinfos (self);
        B_Attack (self, BDT_1_Franko, AR_NONE, 0);
        Pobij_Franko = TRUE;
};

FUNC INT DIA_BDT_4_Bolo_Przegral_Condition()
{
        if (Pobij_Franko == FALSE) && (npc_knowsinfo (other, DIA_BDT_4_Bolo_Franko))
        {
                return TRUE;
        };
};

To wszystkie miejsca, gdzie użyłem var int'a Pobij_Franko.

Ustawiam go na TRUE tylko raz, pozostałe to ==, czyli, jeśli się nie mylę:

SPRAWDŹ, czy Pobij_Franko jest równe FALSE


Już kompiluję :P
 

Maciejk

Maciejk

Użytkownicy
posty123
Propsy111
  • Użytkownicy

Maciejk

Dwie postacie i var int
#8 2012-06-26, 14:12(Ostatnia zmiana: 2012-06-26, 14:12)
Cytuj
//*********************************************************************
//      Info EXIT
//*********************************************************************
INSTANCE DIA_BDT_4_Bolo_EXIT   (C_INFO)
{
        npc         = BDT_4_Bolo;
        nr          = 999;
        condition   = DIA_BDT_4_Bolo_EXIT_Condition;
        information = DIA_BDT_4_Bolo_EXIT_Info;
        permanent   = TRUE;
        description = DIALOG_ENDE;
};

FUNC INT DIA_BDT_4_Bolo_EXIT_Condition()
{
        return TRUE;
};

FUNC VOID DIA_BDT_4_Bolo_EXIT_Info()
{
        AI_StopProcessInfos (self);
};

//*********************************************************************
//      Witaj
//*********************************************************************
INSTANCE DIA_BDT_4_Bolo_Witaj  (C_INFO)
{
        npc         = BDT_4_Bolo;
        nr          = 1;
        condition   = DIA_BDT_4_Bolo_Witaj_Condition;
        information = DIA_BDT_4_Bolo_Witaj_Info;
        permanent   = False;
        description = "Czy Ty czasem sypiasz?";
};

FUNC INT DIA_BDT_4_Bolo_Witaj_Condition()
{
        if (Pobij_Franko == FALSE)
        {
                return TRUE;
        };
};

FUNC VOID DIA_BDT_4_Bolo_Witaj_Info()
{
        AI_Output (other, self ,"DIA_BDT_4_Bolo_Witaj_15_00"); //Czy Ty czasem sypiasz?
        AI_Output (self, other,"DIA_BDT_4_Bolo_Witaj_01_01"); //Chłopie, a kto inny będzie pilnował tych obiboków, jak nie ja?
        AI_Output (other, self,"DIA_BDT_4_Bolo_Witaj_15_02"); //W sumie... Sam nie wiem.
        AI_Output (self, other,"DIA_BDT_4_Bolo_Witaj_01_03"); //No właśnie.
        AI_StopProcessInfos (self);
};

//*********************************************************************
//      Franko-gnida
//*********************************************************************
INSTANCE DIA_BDT_4_Bolo_Franko  (C_INFO)
{
        npc         = BDT_4_Bolo;
        nr          = 2;
        condition   = DIA_BDT_4_Bolo_Franko_Condition;
        information = DIA_BDT_4_Bolo_Franko_Info;
        permanent   = False;
        Important = TRUE;
};

FUNC INT DIA_BDT_4_Bolo_Franko_Condition()
{
        if (DIA_BDT_4_Bolo_Witaj == TRUE)
        {
                return TRUE;
        };
};

FUNC VOID DIA_BDT_4_Bolo_Franko_Info()
{
        AI_Output (self, other,"DIA_BDT_4_Bolo_Franko_01_00"); //Hej, Ty!
        AI_Output (other, self,"DIA_BDT_4_Bolo_Franko_15_01"); //Tak?
        AI_Output (self, other,"DIA_BDT_4_Bolo_Franko_01_02"); //Czy to prawda, że ten ciurmok Franko opitolił Cię z pięciu kawałków mięsa?
       
                Info_ClearChoices (DIA_BDT_4_Bolo_Franko);
                Info_AddChoice (DIA_BDT_4_Bolo_Franko,"Niestety tak",DIA_BDT_4_Bolo_Franko_Pobij);
                Info_AddChoice (DIA_BDT_4_Bolo_Franko,"Skąd to przypuszczenie? Oczywiście, że nie",DIA_BDT_4_Bolo_Franko_Oszczedz);
       
};

FUNC VOID DIA_BDT_4_Bolo_Franko_Pobij ()
{
        AI_OutPut (self, other,"DIA_BDT_4_Bolo_Franko_Pobij_01_00"); //Wiedziałem! Po prostu wiedziałem! Ten frajer cały czas zmuszałby innych do pracy za niego! Zapłaci mi za to!
        AI_Stopprocessinfos (self);
        B_Attack (self, BDT_1_Franko, AR_NONE, 0);
        Pobij_Franko = TRUE;
};

FUNC VOID DIA_BDT_4_Bolo_Franko_Oszczedz ()
{
        AI_OutPut (self, other,"DIA_BDT_4_Bolo_Franko_Oszczedz_01_00"); //No... Tym razem mu się upiekło.
        Ai_Stopprocessinfos (self);
};

//*********************************************************************
//      Franko Pobity
//*********************************************************************
INSTANCE DIA_BDT_4_Bolo_Franko_Przegral  (C_INFO)
{
        npc         = BDT_4_Bolo;
        nr          = 1;
        condition   = DIA_BDT_4_Bolo_Przegral_Condition;
        information = DIA_BDT_4_Bolo_Przegral_Info;
        permanent   = TRUE;
        description = "Niezly jestes";
};

FUNC INT DIA_BDT_4_Bolo_Przegral_Condition()
{
        if (Pobij_Franko == FALSE) && (npc_knowsinfo (other, DIA_BDT_4_Bolo_Franko))
        {
                return TRUE;
        };
};

FUNC VOID DIA_BDT_4_Bolo_Przegral_Info()
{
        AI_Output (other, self ,"DIA_BDT_4_Bolo_Witaj_15_00"); //Niezly jestes. Nie sądzisz, że trochę za ostro go potraktowałeś?
        AI_Output (self, other,"DIA_BDT_4_Bolo_Witaj_01_01"); //Ktoś tutaj musi trzymać wszystko w garści, bo inaczej wilki by nas pożarły.
        AI_StopProcessInfos (self);
};

Gotowy skrypt, miałeś tam taki kwiatek, że warunkiem rozpoczęcia dialogu o Franku było... zakończenie dialogu o Franku. Poprawione.
 

Asepl

Asepl

Użytkownicy
posty11
  • Użytkownicy

Asepl

Dwie postacie i var int
#9 2012-06-26, 14:23(Ostatnia zmiana: 2012-06-26, 14:36)
Wiesz, dzięki, ale właśnie znalazłem ten błąd.
Bynajmniej, musiałem to zamienić na innego var'a... Porażka :P

Zaraz napiszę czy działa.

"Poprawiony skrypt":

Spoiler
//*********************************************************************
// Info EXIT
//*********************************************************************
INSTANCE DIA_BDT_4_Bolo_EXIT   (C_INFO)
{
npc         = BDT_4_Bolo;
nr          = 999;
condition   = DIA_BDT_4_Bolo_EXIT_Condition;
information = DIA_BDT_4_Bolo_EXIT_Info;
permanent   = TRUE;
description = DIALOG_ENDE;
};

FUNC INT DIA_BDT_4_Bolo_EXIT_Condition()
{
return TRUE;
};

FUNC VOID DIA_BDT_4_Bolo_EXIT_Info()
{
AI_StopProcessInfos (self);
};

//*********************************************************************
// Witaj
//*********************************************************************
INSTANCE DIA_BDT_4_Bolo_Witaj  (C_INFO)
{
npc         = BDT_4_Bolo;
nr          = 1;
condition   = DIA_BDT_4_Bolo_Witaj_Condition;
information = DIA_BDT_4_Bolo_Witaj_Info;
permanent   = TRUE;
description = "Czy Ty czasem sypiasz?";
};

FUNC INT DIA_BDT_4_Bolo_Witaj_Condition()
{
if (Pobij_Franko == FALSE) && (Koniec_Mieso == FALSE)
{
return TRUE;
};
};

FUNC VOID DIA_BDT_4_Bolo_Witaj_Info()
{
AI_Output (other, self ,"DIA_BDT_4_Bolo_Witaj_15_00"); //Czy Ty czasem sypiasz?
AI_Output (self, other,"DIA_BDT_4_Bolo_Witaj_01_01"); //Chłopie, a kto inny będzie pilnował tych obiboków, jak nie ja?
AI_Output (other, self,"DIA_BDT_4_Bolo_Witaj_15_02"); //W sumie... Sam nie wiem.
AI_Output (self, other,"DIA_BDT_4_Bolo_Witaj_01_03"); //No właśnie.
AI_StopProcessInfos (self);
};

//*********************************************************************
// Franko-gnida
//*********************************************************************
INSTANCE DIA_BDT_4_Bolo_Franko  (C_INFO)
{
npc         = BDT_4_Bolo;
nr          = 2;
condition   = DIA_BDT_4_Bolo_Franko_Condition;
information = DIA_BDT_4_Bolo_Franko_Info;
permanent   = FALSE;
Important = TRUE;
};

FUNC INT DIA_BDT_4_Bolo_Franko_Condition()
{
if (Koniec_Mieso == TRUE)
{
return TRUE;
};
};

FUNC VOID DIA_BDT_4_Bolo_Franko_Info()
{
AI_Output (self, other,"DIA_BDT_4_Bolo_Franko_01_00"); //Hej, Ty!
AI_Output (other, self,"DIA_BDT_4_Bolo_Franko_15_01"); //Tak?
AI_Output (self, other,"DIA_BDT_4_Bolo_Franko_01_02"); //Czy to prawda, że ten ciurmok Franko opitolił Cię z pięciu kawałków mięsa?

Info_ClearChoices (DIA_BDT_4_Bolo_Franko);
Info_AddChoice (DIA_BDT_4_Bolo_Franko,"Niestety tak",DIA_BDT_4_Bolo_Franko_Pobij);
Info_AddChoice (DIA_BDT_4_Bolo_Franko,"Skąd to przypuszczenie? Oczywiście, że nie",DIA_BDT_4_Bolo_Franko_Oszczedz);

};

FUNC VOID DIA_BDT_4_Bolo_Franko_Pobij ()
{
AI_OutPut (self, other,"DIA_BDT_4_Bolo_Franko_Pobij_01_00"); //Wiedziałem! Po prostu wiedziałem! Ten frajer cały czas zmuszałby innych do pracy za niego! Zapłaci mi za to!
AI_Stopprocessinfos (self);
B_Attack (self, BDT_1_Franko, AR_NONE, 0);
Pobij_Franko = TRUE;
};

FUNC VOID DIA_BDT_4_Bolo_Franko_Oszczedz ()
{
AI_OutPut (self, other,"DIA_BDT_4_Bolo_Franko_Oszczedz_01_00"); //No... Tym razem mu się upiekło.
Ai_Stopprocessinfos (self);
};

//*********************************************************************
// Franko Pobity
//*********************************************************************
INSTANCE DIA_BDT_4_Bolo_Franko_Przegral  (C_INFO)
{
npc         = BDT_4_Bolo;
nr          = 1;
condition   = DIA_BDT_4_Bolo_Przegral_Condition;
information = DIA_BDT_4_Bolo_Przegral_Info;
permanent   = TRUE;
description = "Niezly jestes";
};

FUNC INT DIA_BDT_4_Bolo_Przegral_Condition()
{
if (Pobij_Franko == FALSE) && (npc_knowsinfo (other, DIA_BDT_4_Bolo_Franko)) && (Koniec_Mieso == TRUE)
{
return TRUE;
};
};

FUNC VOID DIA_BDT_4_Bolo_Przegral_Info()
{
AI_Output (other, self ,"DIA_BDT_4_Bolo_Witaj_15_00"); //Niezly jestes. Nie sądzisz, że trochę za ostro go potraktowałeś?
AI_Output (self, other,"DIA_BDT_4_Bolo_Witaj_01_01"); //Ktoś tutaj musi trzymać wszystko w garści, bo inaczej wilki by nas pożarły.
AI_StopProcessInfos (self);
};

Teraz nie działają już tylko dialogi z Witaj i Franko Pobity. Tzn, jest tak jak przedtem.


W dodatku działa skrypt Franko-Gnida, ale po zaznaczeniu opcji "Niestety Tak" Bolo robi to co powinien, z wyjątkiem wyświetlenia tekstu o_o
 

Maciejk

Maciejk

Użytkownicy
posty123
Propsy111
  • Użytkownicy

Maciejk

Dwie postacie i var int
#10 2012-06-26, 14:51(Ostatnia zmiana: 2012-06-26, 14:59)
FUNC INT DIA_BDT_4_Bolo_Franko_Condition()
{
        if (Koniec_Mieso == TRUE)
        {
                return TRUE;
        };
};

FUNC VOID DIA_BDT_4_Bolo_Franko_Info()


EDIT: Dobra wiem już po co ten warunek. Ale nadał zostawiłeś permanenty. (po prostu nie słuchasz co ktoś do ciebie mówi)
 

Asepl

Asepl

Użytkownicy
posty11
  • Użytkownicy

Asepl

Dwie postacie i var int
#11 2012-06-26, 15:29(Ostatnia zmiana: 2012-06-26, 15:56)
Aj, sory. Popatrzyłem do góry. Dzięki.

Już wszystko działa  :lol:
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Nie wnikam w konkretny skrypt, ale tak dla formalności: "var int" to nie "funkcja" tylko "nowa zmienna liczbowa o nazwie...".
Zmienna to po prostu wartość do zapamiętania przez grę. Na początku kiedy ją tworzysz, jest pusta (liczbowa jest traktowana jakby miała wartość 0), a potem możesz zmienić jej zawartość na inną. "True" oznacza zawsze liczbę "1", a "False" liczbę "0". Jeśli liczbę (a właściwie zmienną liczbową lub funkcję liczbową) umieścisz w warunku ("if"), to będzie on spełniony jeśli będzie ona większa od 0.

Lehona

Lehona

Użytkownicy
posty196
Propsy190
  • Użytkownicy
A condition in Gothic is satisfied if it is not equal to zero, so even -1 will execute the if-block. This maps to the behaviour of the !-operator (!(-1) == true) and jnz (jump not zero) in Assembly.
 
Unless specified otherwise, my posts are always about Gothic 2 Night of the Raven.


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