Co trzeba napisać aby npc uczył danego talentu? 6817 19

O temacie

Autor Hraoldzix

Zaczęty 25.07.2011 roku

Wyświetleń 6817

Odpowiedzi 19

Hraoldzix

Hraoldzix

Użytkownicy
posty73
Propsy12
  • Użytkownicy
Witam. Chciałym się dowiedzieć co w dialogu trzeba wpisać aby npc uczył nas nowej umiejętności. Umiejętność działa ale nie da się zrobić w dialogu aby npc jej uczył, bo wyskakuje masa błędów. Mógłby mi ktoś pomóc? Dodam jeszcze, że kopiowałem z innych dialogów linijki odpowadające za uczenie ale dalej nie działa... Proszę o szybką pomoc.
 
Życie jest jak papier toaletowy. Długie , szare i do du**. . .



Chyba, że masz Gothica :P






http://www.bandyckahistoriateam.pun.pl/

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Najłatwiej to chyba zrobić za pomocą zmiennej i po opcji dialogowej zmienna zmienia się na przykład 1 i tyle chyba że chodzi o coś w stylu walki mieczami ale to tez podobna zasada tylko cyferki większe :D .
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

Hraoldzix

Hraoldzix

Użytkownicy
posty73
Propsy12
  • Użytkownicy
Spróbowałem jeszcze wcześniej inaczej i wyskakuje błąd expected '(' w linijce 218 oto skrypt:

//*********************************************************************
// TeachHayk
//*********************************************************************
INSTANCE DIA_BDT_001_Bandyta_TeachHayk   (C_INFO)
{
npc         = BDT_001_Bandyta;
nr          = 7;
condition   = DIA_BDT_001_Bandyta_TeachHayk_Condition;
information = DIA_BDT_001_Bandyta_TeachHayk_Info;
permanent   = FALSE;
description = "Blablabla";
};

FUNC INT DIA_BDT_001_Bandyta_TeachHayk_Condition()
{
if (Npc_GetTalentSkill(other, PLAYER_TALENT_UMIEJETNOSC) == FALSE)
&& (Npc_HasItems (Other, ItMi_Gold) >= 100)
    {
return TRUE;
};
};
FUNC VOID DIA_BDT_001_Bandyta_TeachHayk_Info()
{
AI_Output (other,self ,"DIA_BDT_001_Bandyta_TeachHayk_15_00"); //Blablabla
AI_Output (self ,other,"DIA_BDT_001_Bandyta_TeachHayk_01_01"); //Blablabla
AI_Output (self ,other,"DIA_BDT_001_Bandyta_TeachHayk_01_02"); //Blablabla
AI_Output (self ,other,"DIA_BDT_001_Bandyta_TeachHayk_01_03"); //Blablabla


Info_ClearChoices (DIA_BDT_001_Bandyta_TeachHayk);
Info_AddChoice (DIA_BDT_001_Bandyta_TeachHayk,"Blablabla",DIA_BDT_001_Bandyta_TeachHayk_No);
Info_AddChoice (DIA_BDT_001_Bandyta_TeachHayk,"Blablabla",DIA_BDT_001_Bandyta_TeachHayk_Yes);

};

FUNC VOID DIA_BDT_001_Bandyta_TeachHayk_No ()
{
AI_Output (other,self ,"DIA_BDT_001_Bandyta_TeachHayk_No_15_00"); //Blablabla
AI_Output (self ,other,"DIA_BDT_001_Bandyta_TeachHayk_No_01_01"); //Blablabla
AI_StopProcessInfos (self);
Info_ClearChoices (DIA_BDT_001_Bandyta_TeachHayk);
};

             
FUNC VOID DIA_BDT_001_Bandyta_TeachHayk_Yes ()
{
AI_Output (other,self ,"DIA_BDT_001_Bandyta_TeachHayk_Yes_15_00"); //Blablabla
AI_Output (self ,other,"DIA_BDT_001_Bandyta_TeachHayk_Yes_01_01"); //Blablabla
B_GiveInvItems (other, self, ItMi_Gold, 100);
AI_Output (self ,other,"DIA_BDT_001_Bandyta_TeachHayk_Yes_01_02"); //Blablabla
AI_Output (self ,other,"DIA_BDT_001_Bandyta_TeachHayk_Yes_01_03"); //Blablabla
B_GetLearnCostTalent, (other, NPC_TALENT_UMIEJETNOSC);                    LINIJKA 218
AI_StopProcessInfos (self);
Info_ClearChoices (DIA_BDT_001_Bandyta_TeachHayk);
};

"UMIEJETNOSC" To talent przezemnie stworzony a treść dialogów byłą do kitu więc ja "ocenzurowałem"  :D
 
Życie jest jak papier toaletowy. Długie , szare i do du**. . .



Chyba, że masz Gothica :P






http://www.bandyckahistoriateam.pun.pl/

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
To nie ma tylu linijek więc obstawiam inny plik.
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

Hraoldzix

Hraoldzix

Użytkownicy
posty73
Propsy12
  • Użytkownicy
soki wyciąłem ze skryptu to i zapomniałem napisać która to ta z błędem xD zaraz poprawie...

EDIT: Już jest ;d
 
Życie jest jak papier toaletowy. Długie , szare i do du**. . .



Chyba, że masz Gothica :P






http://www.bandyckahistoriateam.pun.pl/

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Po talent chyba powinno być (1)
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
B_GetLearnCostTalent, (other, NPC_TALENT_UMIEJETNOSC);    Co po B_GetLearnCostTalent robi przecinek?  :blink:

Hraoldzix

Hraoldzix

Użytkownicy
posty73
Propsy12
  • Użytkownicy
Nie działa nawet jak przecinek usuwam :(
 
Życie jest jak papier toaletowy. Długie , szare i do du**. . .



Chyba, że masz Gothica :P






http://www.bandyckahistoriateam.pun.pl/

kaczka

kaczka

RaveN Studio
Definitely not kaczka!
posty2280
Propsy2392
NagrodyV
ProfesjaLvl designer
  • RaveN Studio
  • Definitely not kaczka!
Matko kochana :facepalm:  Czy tak trudno użyć gotowego dialogu jakiejś postaci i potem przerobić go wg swojego "widzimisie"? :ayfkm:

Walka bronią (w tym wypadku jedno-ręczną)

//***********************************************
// Kampflehrer EINHAND
//***********************************************

INSTANCE DIA_Keroloth_Teacher(C_INFO)
{
npc = PAL_258_Keroloth;
nr = 6;
condition = DIA_Keroloth_Teacher_Condition;
information = DIA_Keroloth_Teacher_Info;
permanent = TRUE;
description = "(Nauka walki bronią jednoręczną)";
};                  

FUNC INT DIA_Keroloth_Teacher_Condition()
{
if (Keroloth_TeachPlayer == TRUE)
&& (Keroloths_BeutelLeer == FALSE)
{
return TRUE;
};
};
 
FUNC VOID DIA_Keroloth_Teacher_Info()
{
AI_Output (other,self ,"DIA_Keroloth_Teacher_15_00"); //Chcę się szkolić!

Info_ClearChoices (DIA_Keroloth_Teacher);
Info_AddChoice (DIA_Keroloth_Teacher,DIALOG_BACK,DIA_Keroloth_Teacher_Back);
Info_AddChoice (DIA_Keroloth_Teacher, B_BuildLearnString(PRINT_Learn1h1 , B_GetLearnCostTalent(other, NPC_TALENT_1H, 1)) ,DIA_Keroloth_Teacher_1H_1);
Info_AddChoice (DIA_Keroloth_Teacher, B_BuildLearnString(PRINT_Learn1h5 , B_GetLearnCostTalent(other, NPC_TALENT_1H, 5)) ,DIA_Keroloth_Teacher_1H_5);
};

FUNC VOID DIA_Keroloth_Teacher_Back ()
{
Info_ClearChoices (DIA_Keroloth_Teacher);
};

FUNC VOID B_Keroloth_TeachNoMore1 ()
{
AI_Output(self,other,"B_Keroloth_TeachNoMore1_07_00"); //Jesteś bardzo dobry. Niczego już cię nie mogę nauczyć.
};

FUNC VOID B_Keroloth_TeachNoMore2 ()
{
AI_Output(self,other,"B_Keroloth_TeachNoMore2_07_00"); //Teraz może ci pomóc tylko wyszkolony mistrz miecza.
};

FUNC VOID DIA_Keroloth_Teacher_1H_1 ()
{
B_TeachFightTalentPercent (self, other, NPC_TALENT_1H, 1, 60);

if (other.HitChance[NPC_TALENT_1H] >= 60)
{
B_Keroloth_TeachNoMore1 ();

if (Npc_GetTalentSkill (other, NPC_TALENT_1H) == 2)
{
B_Keroloth_TeachNoMore2 ();
};
};
Info_AddChoice (DIA_Keroloth_Teacher, B_BuildLearnString(PRINT_Learn1h1 , B_GetLearnCostTalent(other, NPC_TALENT_1H, 1)) ,DIA_Keroloth_Teacher_1H_1);
};

FUNC VOID DIA_Keroloth_Teacher_1H_5 ()
{
B_TeachFightTalentPercent (self, other, NPC_TALENT_1H, 5, 60);

if (other.HitChance[NPC_TALENT_1H] >= 60)
{
B_Keroloth_TeachNoMore1 ();

if (Npc_GetTalentSkill (other, NPC_TALENT_1H) == 2)
{
B_Keroloth_TeachNoMore2 ();
};
};
Info_AddChoice (DIA_Keroloth_Teacher, B_BuildLearnString(PRINT_Learn1h5 , B_GetLearnCostTalent(other, NPC_TALENT_1H, 5)) ,DIA_Keroloth_Teacher_1H_5);
};

Inne umiejętności (w tym wypadku skradanie)

// *****************************************************
// TeachSneak
// *****************************************************
INSTANCE DIA_Bartok_TeachSneak (C_INFO)
{
npc = VLK_440_Bartok;
nr = 4;
condition = DIA_Bartok_TeachSneak_Condition;
information = DIA_Bartok_TeachSneak_Info;
permanent = TRUE;
description = B_BuildLearnString ("Naucz mnie, jak się należy skradać!", B_GetLearnCostTalent(other, NPC_TALENT_SNEAK, 1));
};                  
FUNC INT DIA_Bartok_TeachSneak_Condition()
{
if (Bartok_TeachPlayer == TRUE)
&& (Npc_GetTalentSkill(other, NPC_TALENT_SNEAK) == 0)
{
return TRUE;
};
};
FUNC VOID DIA_Bartok_TeachSneak_Info()
{
AI_Output (other ,self,"DIA_Bartok_TeachSneak_15_00"); //Pokaż mi, jak się skradać.

if (B_TeachThiefTalent (self, other, NPC_TALENT_SNEAK))
{
AI_Output (self ,other,"DIA_Bartok_TeachSneak_04_01"); //Dobrze. Najpierw musisz nauczyć się odpowiednio rozłożyć ciężar swojego ciała.
AI_Output (self ,other,"DIA_Bartok_TeachSneak_04_02"); //Aby to zrobić, ugnij kolana i zawsze stawiaj stopę, zaczynając od pięty.
AI_Output (self ,other,"DIA_Bartok_TeachSneak_04_03"); //Zanim ruszysz drugą nogę, znajdź dobre oparcie i przenieś cały ciężar ciała na pierwszą nogę.
AI_Output (self ,other,"DIA_Bartok_TeachSneak_04_04"); //Do większości stworzeń nie uda ci się podejść, chyba że śpią. Zwierzęta po prostu cię wyczują.
AI_Output (self ,other,"DIA_Bartok_TeachSneak_04_05"); //A więc zawsze zwracaj uwagę, skąd wieje wiatr.
};
};

Same skrypty masz i potem po prostu podmieniasz instance i te wszystkie pierdoły co potrzeba.
 

Hraoldzix

Hraoldzix

Użytkownicy
posty73
Propsy12
  • Użytkownicy
Edytowałem dialog innego npc'a i kopiowałem linijkę odpowiadającą za uczenie się talentu a potem podmieniałem nazwę talentu na swój własny stworzony. Teraz wyskakuje Unknow Identifier : NPC_TALENT_UMIEJETNOSC. A jak dam inną umiejetność co już w grze jest to nie wyskakuje ten błąd.
 
Życie jest jak papier toaletowy. Długie , szare i do du**. . .



Chyba, że masz Gothica :P






http://www.bandyckahistoriateam.pun.pl/

FraseR
  • Gość
No bo najwyraźniej nie istnieje taka zmienna.
Zmień na inną lub dopisz gdzieś

var int umiejetnosc;
Jeżeli coś źle mówię to mnie poprawcie, gdyż od bardzo dawna nie tykałem skryptów...
 

Hraoldzix

Hraoldzix

Użytkownicy
posty73
Propsy12
  • Użytkownicy
Ok błędów niema FaseR łap propsa ale jak zagadam do npc to nie mam umiejętności nauczonej.
 
Życie jest jak papier toaletowy. Długie , szare i do du**. . .



Chyba, że masz Gothica :P






http://www.bandyckahistoriateam.pun.pl/

FraseR
  • Gość
W takim razie skopiuj cały skrypt (dialog) postaci, która uczy np. walki bronią jednoręczną i potem pozmieniaj resztę ale nie zmieniaj nazwy talentu tylko sprawdź czy działa. Jak działa to po kłopocie.
 

Hraoldzix

Hraoldzix

Użytkownicy
posty73
Propsy12
  • Użytkownicy
Z tym talentem z gry działa ale  moim nie...  :|
 
Życie jest jak papier toaletowy. Długie , szare i do du**. . .



Chyba, że masz Gothica :P






http://www.bandyckahistoriateam.pun.pl/

kaczka

kaczka

RaveN Studio
Definitely not kaczka!
posty2280
Propsy2392
NagrodyV
ProfesjaLvl designer
  • RaveN Studio
  • Definitely not kaczka!
Czyli wychodzi na to, że masz źle dodany swój talent w innych plikach bo sam dodawałem tego trochę i wiem, że jest tych plików od cholery.
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Po co sobie życie utrudniać jak nie wiecie gdzie trzeba pozmieniać pliki. Ja nowe talenty robiłem tak.

1)Robiłem zmienną
var int talent;
2)Potem w dialogu
FUNC INT DIA_dialog_Condition()
{
        if (talent == 0)
        {
                return TRUE;
        };
};
Czyli jeżeli zmienna talent równa się zero (uznajemy ze zero to NIE nauczony) możemy się jej nauczyć

FUNC VOID DIA_dialog_Info()
{      
       
        if (hero.lp>=10)
        {
                AI_Output (self ,other,"DIA_dialog_04_01"); //teksty
                hero.lp = hero.lp - 10//odejmowanie 10 punktów nauki
                talent = 1; //nauczenie umiejentności
        };
};


Potem możesz sprawdzać gdzie chcesz czy talent jest nauczony zwykłym if`em
       if (talent == 1)

Hraoldzix

Hraoldzix

Użytkownicy
posty73
Propsy12
  • Użytkownicy
Nie nauczyłem się jak rozmawiałem... A pozatym tekst w oknie umiejętności sie nie zmienia...  :|
 
Życie jest jak papier toaletowy. Długie , szare i do du**. . .



Chyba, że masz Gothica :P






http://www.bandyckahistoriateam.pun.pl/

Silver

Silver

Użytkownicy
posty109
Propsy14
ProfesjaGracz
  • Użytkownicy
:facepalm:  :facepalm:  :facepalm:  :facepalm:  :facepalm:      czy wszystcy oprócz adminów i moderatorów to idioci?
niedawno robiłem nową umiejętność. Pomogę ci, ale ty musisz napisać mi wiadomość dotyczącą umiejętności.(albo daj gg to przez nie pogadamy)
 

kaczka

kaczka

RaveN Studio
Definitely not kaczka!
posty2280
Propsy2392
NagrodyV
ProfesjaLvl designer
  • RaveN Studio
  • Definitely not kaczka!
Czy tylko mi się wydaje, czy zajebało podlizem na kilometr? :ayfkm:

~Haroldzix
Imo chyba opcja Rafała najłatwiejsza do zrealizowania, więc radzę postępować właśnie zgodnie z tym co Rafał napisał wyżej.
 

Silver

Silver

Użytkownicy
posty109
Propsy14
ProfesjaGracz
  • Użytkownicy
Czy tylko mi się wydaje, czy zajebało podlizem na kilometr? :ayfkm:
jeśli to było do mnie to ja nikomu się nie podlizuje. stwierdzam tylko fakty.
 


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