NPC prowadzi nas po dialogu do waypointu. 7873 8

O temacie

Autor Goran

Zaczęty 28.02.2010 roku

Wyświetleń 7873

Odpowiedzi 8

Goran

Goran

Użytkownicy
posty168
Propsy39
  • Użytkownicy
Cytuj
Zrobiłem ten tutorial, ponieważ były z tym problemy. Nie powstałby on, gdyby nie pomoc Adanosa. Początkowo ja chciałem żeby to on zrobił tutorial o tym temacie, napisałem mu na PW. On mi wyjaśnił jak co zrobić i oto jest:

Na początek dialog w którym chcemy aby NPC nas prowadził.
AI_Output (other,self,"DIA_PC_Fighter_NW_nach_DJG_latarnia_55_02"); //No to w drogę.
AI_Output (self, other,"DIA_PC_Fighter_NW_nach_DJG_latarnia_55_03"); //Tak. za mną!  :lol2:

Npc_ExchangeRoutine(self,"Guide");

AI_Output (self, other,"DIA_PC_Fighter_NW_nach_DJG_latarnia_55_04"); //No i jesteśmy.

No i widzimy dialog w który NPC nas prowadzi.
Npc_ExchangeRoutine(self,"Guide");Ta linijka odpowiada za wykonanie rutyny. Tutaj możemy napisać ogónie:
Npc_ExchangeRoutine(self,"NAZWA_RUTYNY");
Teraz wchodzimy do pliku .d z NPC'em. \Scripts\Content\Story\NPC
Schodzimy na sam dół. Są tam linijki z rutynami.
FUNC VOID Rtn_Start_706 ()
{
TA_Stand_ArmsCrossed (08,00,23,00,"NW_WAITFOR_SHIP_01");
TA_Stand_Guarding (23,00,08,00,"NW_WAITFOR_SHIP_01");
};
To jest rutyna startowa. Czyli to co robi NPC od początku gry.
Teraz kopiujemy tą rutynę i zmieniamy, albo jak kto chce to piszemy od nowa pod spodem:
FUNC VOID Rtn_Guide_706 ()
{
TA_Guide_Player (08,00,23,00,"XARDAS");
TA_Guide_Player (23,00,08,00,"XARDAS");
};

To odpowiada za prowadzenie naszego bohatera przez NPC'a po dialogu.
Rtn_Guide_706 ()  Npc_ExchangeRoutine(self,"Guide"); ''Guide'' się powtarza, to jest nazwa rutyny. Może być dowolna byle w obu plikach była taka sama.
TA_Guide_Player Oznacza to że NPC nas prowadzi do waypointu który jest podany w nawiasie:
(08,00,23,00,"XARDAS");Czyli ogólnie:
FUNC VOID Rtn_NAZWA_RUTYNY_nr NPC'a ()
{
TA_Guide_Player (08,00,23,00,"WAYPOINT");
TA_Guide_Player (23,00,08,00,"WAYPOINT");
};

To by było tyle. WAŻNE: Żeby waypointy były połączone.
Jeśli robicie to w starym świecie np. newworld.zen który jest w grze to wszystko powinno być ok.
Pozwalam kopiować tutorial, lecz musicie wspomnieć o autorach.  :D  
Podziękowania dla Adanosa.  :D
 

Pragasek

Pragasek

Użytkownicy
posty334
Propsy39
ProfesjaSkrypter
  • Użytkownicy
yy popraw bo jest tu błąd (znaczy to nie błąd ale npc źle prowadzi) zmień TA_Guide_Player na TA_GuidePC ;]

różnica jest taka że w TA_Guide_Player npc po prostu biegnie se do wp nie czekając na nas oraz omijając potwory. a w TA_GuidePC to npc łaskawie czeka na nas i wybija potworki :D

karti

karti

Użytkownicy
posty1
  • Użytkownicy
Nie wiem może coś zrobiłem ale pokazuje mi się problem po włączeniu gothic-a gdy to zrobie gdy miałem wpisane TA_Guide_Player To pokazywał mi się błąd który własnie miał tylko napisane TA_Guide_Player. A gdy zmieniłem na TA_GuidePC To błąd mi się zmnienił z TA_Guide_Player na TA_GuidePC. Co mam robić?
 
You think i'm stuptid? You think i'm idiot? You think i'm crazy?



....



You righht ^.^

Goran

Goran

Użytkownicy
posty168
Propsy39
  • Użytkownicy
Zależy do której części.
G1 - Ta_GuidePC
g2nk - Ta_Guide_player
 

gothic1210
  • Gość
AI_Output (other,self,"DIA_PC_Fighter_NW_nach_DJG_latarnia_55_02"); //No to w drogę.
AI_Output (self, other,"DIA_PC_Fighter_NW_nach_DJG_latarnia_55_03"); //Tak. za mną!  :lol2:  

Npc_ExchangeRoutine(self,"Guide");

AI_Output (self, other,"DIA_PC_Fighter_NW_nach_DJG_latarnia_55_04"); //No i jesteśmy.

Zrobiłem tak jak tu i u mnie NPC nie dokańcza dialogu. CZyli leci w to miejsce w które mu kazałem ale nie zaczepia mnie. Muszę robić nową opcję dialogową? (G1)
 

EdekSumo

EdekSumo

Wyspa Khorinis
posty1739
Propsy924
ProfesjaLvl designer
  • Wyspa Khorinis
<brawo> takie rzeczy są chyba logiczne. (czip17 zrobił ostatnio o tym filmiki polecam :D )
 

Meldor12

Meldor12

Użytkownicy
posty27
  • Użytkownicy
jeżeli ktoś jest początkującym skrypterem polecam easy dialog makera v.3.3: kliknij tu aby przejść do tematu o nim tam wszystko jest generowane ałtomatycznie prosty w obsłudze a do tego wersja pl!
 

Ravensword17

Ravensword17

Użytkownicy
posty35
Propsy3
  • Użytkownicy
U mnie gościu po rozmowie w ogóle się nie rusza, wykonuje rutynę taką jaką miał normalnie.
Skrypt w NPC-ecie:
FUNC VOID Rtn_Guide_5644()
{
TA_Guide_Player  (09,00,21,00,"NW_BIGFARM_CROSS");
TA_Guide_Player  (21,00,09,00,"NW_BIGFARM_CROSS");
};
Skrypt w dialogu:
FUNC VOID DIA_Bronek_HELLO1_TAK()
{
    AI_Output (other, self ,"DIA_Bronek_HELLO1_TAK_15_01"); //Ruszajmy
    AI_Output (self, other ,"DIA_Bronek_HELLO1_TAK_03_02"); //Za mną
    B_LogEntry                     (TOPIC_Atak,"Ruszam z Bronkiem zabić bandytów.");
    B_GivePlayerXP (100);

self.aivar[AIV_PARTYMEMBER] = TRUE;
    Npc_ExchangeRoutine (self, "Guide");

AI_StopProcessInfos (self);

Npc_ExchangeRoutine (BDT_5645_Bandit_L, "ATACZEK");
    Npc_ExchangeRoutine (BDT_5646_Bandit_L, "ATACZEK");
    Npc_ExchangeRoutine (BDT_5647_Bandit_L, "ATACZEK");
};
Ta trójka bandytów działa poprawnie. Po rozmowie pojawiają się w wybranym miejscu.
 

Wicon

Wicon

Użytkownicy
posty147
Propsy5
  • Użytkownicy
Eeee tam programy do dialogów. Ja od początku swojego modowania robię w notatniku i jest dobrze. (No czasami są problemy, ale notatnikiem idzie się szybciej nauczyć)

Ja robię moda do g2nk i mi działa TA_Guide_Player. Co więcej: Postać czeka na nas i wybija potworki. Na koniec dialogu trzeba też dodać:
       self.aivar[AIV_PARTYMEMBER] = TRUE; Czyli, że postać jest z nami w drużynie i dostajemy expa jak zabije potwory.
        self.aivar[AIV_PARTYMEMBER] = FALSE; Czyli npc nie jest już z nami w drużynie.
 


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