Dialog 16927 95

O temacie

Autor

Zaczęty 15.01.2010 roku

Wyświetleń 16927

Odpowiedzi 95

WonderiuS
  • Gość

WonderiuS
Gość

Dialog
#20 2010-01-16, 12:00(Ostatnia zmiana: 2010-01-16, 12:09)
No dałem ten  średnik no i co? Znowu te same błędy.

Albo gdy reparsowałem skrypty w Gothic Starterze Mod, to pokazało mi błąd u Lumbermila w linii 97, FUNC. No to sprawdzam tą linię i jest FUNC. Więc nie wiem o co chodzi.
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja

Adanos
Administrator

Dialog
#21 2010-01-16, 12:12(Ostatnia zmiana: 2010-01-16, 12:12)
Cytuj
Albo gdy reparsowałem skrypty w Gothic Starterze Mod, to pokazało mi błąd u Lumbermila w linii 97, FUNC. No to sprawdzam tą linię i jest FUNC.
Przed func zapomniałeś };

WonderiuS
  • Gość
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja

Adanos
Administrator

Dialog
#23 2010-01-16, 12:24(Ostatnia zmiana: 2010-01-16, 12:24)
No to zdefiniuj tą zmienną CH1_KillRonald. Chyba w pliku Log_Constants.d.

WonderiuS
  • Gość

WonderiuS
Gość

Dialog
#24 2010-01-16, 12:28(Ostatnia zmiana: 2010-01-16, 12:28)
WTF? Może jest źle umieszczone w pliku Log_Constants.d ?

http://i50.tinypic.com/2f03wgx.png
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Przecież w Log_constants.d masz CH1_KillRoland, a w skrypcie CH1_KillRonald

WonderiuS
  • Gość
Ok, już wszystko na razie działa. Ale jak zrobić, żeby np. Skrzypek nas zatrzymywał przed wejściem do mojego obozu i żądał np. 10 bryłek rudy za przejście? Dopiero jak mu zapłacimy to nas przepuści. Mógłby ktoś podać skrypt dialogu?
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Dialog
#27 2010-01-16, 16:05(Ostatnia zmiana: 2010-01-16, 16:07)
Wydaje mi się że wystarczy ustawić w dialogu parametr "important" na 1.

I możesz być niemal pewien że nikt nie będzie skryptował za darmo czegoś dla ciebie i tak po prostu oddawał efekty swojej pracy.

WonderiuS
  • Gość
To mam skopiować skrypt GRD_215_Torwache? Po za  tym nie ma nigdzie na forum takiego tutka do Gothic I jak takie coś zrobić. Jeszcze pokazują mi się błędy jak włączam spacera:

http://i47.tinypic.com/8yt2eq.png

http://i48.tinypic.com/eueq7t.png

http://i49.tinypic.com/x5zixe.png

Nawet ściągnąłem wersję 1.51 i dalej to samo.
 

maciejG

maciejG

Użytkownicy
posty450
Propsy1
  • Użytkownicy
Człowieku... Jak nie masz cierpliwości do skryptów i nie potrafisz przeczytać błędu i przemyśleć jego przyczyny to nie zabieraj się za skrypty. Jeden błąd wynika z drugiego.

Jak Spacer woła "Please use 'SRC' file" to użyj pliku SRC, a nie DAT.
 
Spoiler

WonderiuS
  • Gość
Jakiego pliku src?
 

maciejG

maciejG

Użytkownicy
posty450
Propsy1
  • Użytkownicy
No chyba Gothic. src, co nie?
 
Spoiler

WonderiuS
  • Gość
Ok, już działa. Ale znowu mam teraz problem z dialogiem w linii 59:

// ************************************************************
// EXIT
// ************************************************************

INSTANCE DIA_Grd_8001_EXIT (C_INFO)
{
npc = Grd_8001_Skrzypek;
nr = 999;
condition = DIA_Grd_8001_EXIT_Condition;
information = DIA_Grd_8001_EXIT_Info;
permanent = 1;
description = DIALOG_ENDE;
};  

FUNC INT DIA_Grd_8001_EXIT_Condition()
{
return 1;
};

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

// ************************************************************
// Bin Schürfer
// ************************************************************

INSTANCE DIA_Grd_8001_Skrzypek (C_INFO)
{
npc = Grd_8001_Skrzypek;
nr = 1;
condition = DIA_Grd_8001_Skrzypek_Condition;
information = DIA_Grd_8001_Skrzypek_Info;
permanent = 1;
description = "Chcę wejść do obozu!";
};  

FUNC INT DIA_Grd_8001_Skrzypek_Condition()
{
if (self.aivar[AIV_PASSGATE] == FALSE)
&& (Npc_GetAttitude(self,hero) != ATT_FRIENDLY)
{
return TRUE;
};
};

FUNC VOID DIA_Grd_8001_Skrzypek_Info()
{
AI_Output (other, self,"DIA_Grd_8001_Skrzypek_15_00"); //Chcę wejść do obozu!
AI_Output (self, other,"DIA_Grd_8001_Skrzypek_15_01"); //Nie ma mowy!

};

// ************************************************************
// Bestechen
// ************************************************************

INSTANCE DIA_Grd_8001_Skrzypek (C_INFO)
{
npc = Grd_8001_Skrzypek;
nr = 1;
condition = DIA_Grd_8001_Skrzypek_Condition;
information = DIA_Grd_8001_Skrzypek_Info;
permanent = 1;
description = "Może ruda załatwi sprawę?";
};  

FUNC INT DIA_Grd_8001_Skrzypek_Condition()
{
if (self.aivar[AIV_PASSGATE] == FALSE)
&& (Npc_GetAttitude(self,hero) != ATT_FRIENDLY)
{
return 1;
};
};

FUNC VOID DIA_Grd_8001_Skrzypek_Info()
{
AI_Output (other, self,"DIA_Grd_8001_Skrzypek_15_00"); //Może ruda załatwi sprawę?
AI_Output (self, other,"DIA_Grd_8001_Skrzypek_06_01"); //Na pewno, a ile masz przy sobie tej rudy?

Info_ClearChoices (DIA_Grd_8001_Skrzypek );
Info_AddChoice (DIA_Grd_8001_Skrzypek,"100 bryłek powinno wystarczyć?" ,DIA_Grd_8001_Skrzypek_100Erz);
Info_AddChoice (DIA_Grd_8001_Skrzypek,"Co byś powiedział na 50 bryłek?" ,DIA_Grd_8001_Skrzypek_50Erz);
Info_AddChoice (DIA_Grd_8001_Skrzypek,"Mam przy sobie 10 bryłek - oto one." ,DIA_Grd_8001_Skrzypek_10Erz);
};

func void DIA_Grd_8001_Skrzypek_10Erz()
{
AI_Output (other, self,"DIA_Grd_8001_Skrzypek_10Erz_15_00"); //Może 10 bryłek rudy wystarczy?
if (Npc_HasItems (other, itminugget) >= 10)
{
AI_Output (self, other,"DIA_Grd_8001_Skrzypek_10Erz_06_01"); //10 bryłkami to sobie możesz przekupić tych szczurów ze Starego Obozu, a nie mnie.
}
else
{
AI_Output (self, other,"DIA_Grd_8001_Skrzypek_10Erz_06_02"); //Jaja sobie robisz? Nie widzę tutaj żadnych 10 bryłek rudy!
};

AI_StopProcessInfos (self);
};

func void DIA_Grd_8001_Skrzypek_50Erz()
{
AI_Output (other, self,"DIA_Grd_8001_Skrzypek_50Erz_15_00"); //To w takim razie stawiam 50 bryłek rudy.
if (Npc_HasItems (other, itminugget) >= 50)
{
AI_Output (self, other,"DIA_Grd_8001_Skrzypek_50Erz_06_01"); //Stanowczo za mało!
}
else
{
AI_Output (self, other,"DIA_Grd_8001_Skrzypek_50Erz_06_02"); //Gdzie masz te 50 bryłek rudy?
};

AI_StopProcessInfos (self);
};

func void DIA_Grd_8001_Skrzypek_100Erz()
{
AI_Output (other, self,"DIA_Grd_8001_Skrzypek_100Erz_15_00"); //A co powiesz na 100 bryłek rudy?
if (Npc_HasItems (other, itminugget) >= 100)
{
AI_Output (self, other,"DIA_Grd_8001_Skrzypek_100Erz_06_01"); //Hmm... dobra, możesz wejść! Ale nie rozrabiaj!
self.aivar[AIV_PASSGATE] = TRUE;
B_GiveInvItems (other, self, ItMiNugget, 100);
}
else
{
AI_Output (self, other,"DIA_Grd_8001_Skrzypek_100Erz_06_02"); //Na pewno nie masz tyle przy sobie!
};

AI_StopProcessInfos (self);
};

Kombinowałem z dodaniem ;, };. } i nic. Nie mam pojęcia o co chodzi :P .
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Ale treść błędu raczej nie było expected (brakuje) ;, tylko redefined function (albo coś koło tego), czyli że ponownie została zdefiniowana ta sama funkcja, a dokładnie ta:
INSTANCE DIA_Grd_8001_Skrzypek (C_INFO)
{
npc = Grd_8001_Skrzypek;
nr = 1;
condition = DIA_Grd_8001_Skrzypek_Condition;
information = DIA_Grd_8001_Skrzypek_Info;
permanent = 1;
description = "Chcę wejść do obozu!";
};

Zmień w jednym z tych wystąpień na niepowtarzalną nazwę.

WonderiuS
  • Gość
Czyli gdzie bo dokładnie nie wiem? Błąd pokazywał się w linii 59, czyli tam gdzie jest INSTANCE Grd_8001_Skrzypek..
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Cytuj
INSTANCE DIA_Grd_8001_Skrzypek (C_INFO)
{
    npc            = Grd_8001_Skrzypek;
    nr            = 1;
    condition    = DIA_Grd_8001_Skrzypek_Condition;
    information    = DIA_Grd_8001_Skrzypek_Info;
    permanent    = 1;
    description = "Chcę wejść do obozu!";
};                      

FUNC INT DIA_Grd_8001_Skrzypek_Condition()
{
    if    (self.aivar[AIV_PASSGATE] == FALSE)
    &&    (Npc_GetAttitude(self,hero) != ATT_FRIENDLY)
    {    
        return TRUE;
    };
};

FUNC VOID DIA_Grd_8001_Skrzypek_Info()
{    
    AI_Output (other, self,"DIA_Grd_8001_Skrzypek_15_00"); //Chcę wejść do obozu!
    AI_Output (self, other,"DIA_Grd_8001_Skrzypek_15_01"); //Nie ma mowy!

};

// ************************************************************
//                         Bestechen
// ************************************************************

INSTANCE DIA_Grd_8001_Skrzypek (C_INFO)
{
    npc            = Grd_8001_Skrzypek;
    nr            = 1;
    condition    = DIA_Grd_8001_Skrzypek_Condition;
    information    = DIA_Grd_8001_Skrzypek_Info;
    permanent    = 1;
    description = "Może ruda załatwi sprawę?";
};

WonderiuS
  • Gość
Dobra, już wszystko działa, ale gdy zreparswowałem skrypty Spacerem i włączyłem grę to jak zrobić żeby nie powtarzał się dialog u Skrzypka? Tylko raz zapytam i potem ta funkcja dialogowa zniknie?
 

jendrzejs

jendrzejs

Użytkownicy
posty586
Propsy31
Profesjabrak
  • Użytkownicy

jendrzejs

Dialog
#37 2010-01-17, 20:27(Ostatnia zmiana: 2010-01-17, 20:28)
Zmieniasz permanent z 1 na 0 i kwestia będzie wypowiadana a potem znika.

permanent = 0;
 

WonderiuS
  • Gość

WonderiuS
Gość

Dialog
#38 2010-01-18, 16:30(Ostatnia zmiana: 2010-01-18, 16:31)
Ok, działa. No ale gdy to wszystko już zrobiłem i włączam grę to ten dialog inaczej działa niż powinien. Zresztą u siebie sami sprawdźcie, zreparsujcie skrypty w Spacerze i zobaczycie że coś jest nie tak z ty dialogiem. NPC, np. jak biorę: Może ruda załatwi sprawę? A on ciągle to samo wymawia! Nie ma mowy! I tak z każdym dialogiem. Co tu jest źle?

// ************************************************************
//  EXIT
// ************************************************************

INSTANCE DIA_Grd_8001_EXIT (C_INFO)
{
npc = Grd_8001_Skrzypek;
nr = 999;
condition = DIA_Grd_8001_EXIT_Condition;
information = DIA_Grd_8001_EXIT_Info;
permanent = 1;
description = DIALOG_ENDE;
};  

FUNC INT DIA_Grd_8001_EXIT_Condition()
{
return 1;
};

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

// ************************************************************
// Bin Schürfer
// ************************************************************

INSTANCE DIA_Grd_8001_Skrzypek (C_INFO)
{
npc = Grd_8001_Skrzypek;
nr = 1;
condition = DIA_Grd_8001_Skrzypek_Condition;
information = DIA_Grd_8001_Skrzypek_Info;
permanent = 1;
description = "Chcę wejść do obozu!";
};  

FUNC INT DIA_Grd_8001_Skrzypek_Condition()
{
if (self.aivar[AIV_PASSGATE] == FALSE)
&& (Npc_GetAttitude(self,hero) != ATT_FRIENDLY)
{
return TRUE;
};
};

FUNC VOID DIA_Grd_8001_Skrzypek_Info()
{
AI_Output (other, self,"DIA_Grd_8001_Skrzypek_15_00"); //Chcę wejść do obozu!
AI_Output (self, other,"DIA_Grd_8001_Skrzypek_15_01"); //Nie ma mowy!

};

// ************************************************************
// Bestechen
// ************************************************************

INSTANCE DIA_Grd_8001_Skrzypek (C_INFO)
{
npc = Grd_8001_Skrzypek;
nr = 1;
condition = DIA_Grd_8001_Skrzypek_Condition;
information = DIA_Grd_8001_Skrzypek_Info;
permanent = 1;
description = "Może ruda załatwi sprawę?";
};  

FUNC INT DIA_Grd_8001_Skrzypek_Condition()
{
if (self.aivar[AIV_PASSGATE] == FALSE)
&& (Npc_GetAttitude(self,hero) != ATT_FRIENDLY)
{
return 1;
};
};

FUNC VOID DIA_Grd_8001_Skrzypek_Info()
{
AI_Output (other, self,"DIA_Grd_8001_Skrzypek_15_00"); //Może ruda załatwi sprawę?
AI_Output (self, other,"DIA_Grd_8001_Skrzypek_06_01"); //Na pewno, a ile masz przy sobie tej rudy?

Info_ClearChoices (DIA_Grd_8001_Skrzypek );
Info_AddChoice (DIA_Grd_8001_Skrzypek,"100 bryłek powinno wystarczyć?" ,DIA_Grd_8001_Skrzypek_100Erz);
Info_AddChoice (DIA_Grd_8001_Skrzypek,"Co byś powiedział na 50 bryłek?" ,DIA_Grd_8001_Skrzypek_50Erz);
Info_AddChoice (DIA_Grd_8001_Skrzypek,"Mam przy sobie 10 bryłek - oto one." ,DIA_Grd_8001_Skrzypek_10Erz);
};

func void DIA_Grd_8001_Skrzypek_10Erz()
{
AI_Output (other, self,"DIA_Grd_8001_Skrzypek_10Erz_15_00"); //Może 10 bryłek rudy wystarczy?
if (Npc_HasItems (other, itminugget) >= 10)
{
AI_Output (self, other,"DIA_Grd_8001_Skrzypek_10Erz_06_01"); //10 bryłkami to sobie możesz przekupić tych szczurów ze Starego Obozu, a nie mnie.
}
else
{
AI_Output (self, other,"DIA_Grd_8001_Skrzypek_10Erz_06_02"); //Jaja sobie robisz? Nie widzę tutaj żadnych 10 bryłek rudy!
};

AI_StopProcessInfos (self);
};

func void DIA_Grd_8001_Skrzypek_50Erz()
{
AI_Output (other, self,"DIA_Grd_8001_Skrzypek_50Erz_15_00"); //To w takim razie stawiam 50 bryłek rudy.
if (Npc_HasItems (other, itminugget) >= 50)
{
AI_Output (self, other,"DIA_Grd_8001_Skrzypek_50Erz_06_01"); //Stanowczo za mało!
}
else
{
AI_Output (self, other,"DIA_Grd_8001_Skrzypek_50Erz_06_02"); //Gdzie masz te 50 bryłek rudy?
};

AI_StopProcessInfos (self);
};

func void DIA_Grd_8001_Skrzypek_100Erz()
{
AI_Output (other, self,"DIA_Grd_8001_Skrzypek_100Erz_15_00"); //A co powiesz na 100 bryłek rudy?
if (Npc_HasItems (other, itminugget) >= 100)
{
AI_Output (self, other,"DIA_Grd_8001_Skrzypek_100Erz_06_01"); //Hmm... dobra, możesz wejść! Ale nie rozrabiaj!
self.aivar[AIV_PASSGATE] = TRUE;
B_GiveInvItems (other, self, ItMiNugget, 100);
}
else
{
AI_Output (self, other,"DIA_Grd_8001_Skrzypek_100Erz_06_02"); //Na pewno nie masz tyle przy sobie!
};

AI_StopProcessInfos (self);
};


Nie chodzi mi oto Instance_... Tylko co jest w tym dialogu źle? To co opisałem powyżej.

Nawet jak nie mam lub mam np. 100 bryłek rudy, to nie pojawia się opcja dialogowa  u tego NPC. I ten npc nie zatrzymuje mnie jak Wykidajło przed wejściem do karczmy w Nowym Obozie.
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Nie wywaliło ci błędu? Masz dwa razy to samo ;]

Cytuj
INSTANCE DIA_Grd_8001_Skrzypek (C_INFO)
{
    npc            = Grd_8001_Skrzypek;
    nr            = 1;
    condition    = DIA_Grd_8001_Skrzypek_Condition;
    information    = DIA_Grd_8001_Skrzypek_Info;
    permanent    = 1;
    description = "Chcę wejść do obozu!";
};                      

FUNC INT DIA_Grd_8001_Skrzypek_Condition()
{
    if    (self.aivar[AIV_PASSGATE] == FALSE)
    &&    (Npc_GetAttitude(self,hero) != ATT_FRIENDLY)
    {    
        return TRUE;
    };
};

FUNC VOID DIA_Grd_8001_Skrzypek_Info()
{    
    AI_Output (other, self,"DIA_Grd_8001_Skrzypek_15_00"); //Chcę wejść do obozu!
    AI_Output (self, other,"DIA_Grd_8001_Skrzypek_15_01"); //Nie ma mowy!

};

// ************************************************************
//                         Bestechen
// ************************************************************

INSTANCE DIA_Grd_8001_Skrzypek (C_INFO)
{
    npc            = Grd_8001_Skrzypek;
    nr            = 1;
    condition    = DIA_Grd_8001_Skrzypek_Condition;
    information    = DIA_Grd_8001_Skrzypek_Info;
    permanent    = 1;
    description = "Może ruda załatwi sprawę?";
};


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