Niemożność interakcji z NPC. 5317 12

O temacie

Autor Mercer-223

Zaczęty 28.07.2019 roku

Wyświetleń 5317

Odpowiedzi 12

Mercer-223

Mercer-223

Użytkownicy
posty44
Propsy1
Profesjabrak
  • Użytkownicy
Witam!

Mam mały a zarazem irytujący problem chodzi o to że zrobiłem nowego NPC i zrobiłem prosty dialog i questa, ale z NPC nie ma żadnej interakcji nie mogę z nim nawet porozmawiać także nie reaguje na rutyny które mu przypisałem.
Zapewne to jakiś głupi błąd który popełniłem przy skryptach jeśli ktoś wie o co chodzi to prosił bym o pomoc.

(DIALOG)
Spoiler
INSTANCE DIA_Fenriz_EXIT(C_INFO)
{
   npc             = NON_6675_Fenriz;
   nr              = 999;
   condition   = DIA_Fenriz_EXIT_Condition;
   information   = DIA_Fenriz_EXIT_Info;
   permanent   = TRUE;
   description     = "KONIEC";
};

FUNC INT DIA_Fenriz_EXIT_Condition()
{
   return TRUE;
};

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

//========================================
//-----------------> HELLO1
//========================================

INSTANCE DIA_Fenriz_HELLO1 (C_INFO)
{
   npc          = NON_6675_Fenriz;
   nr           = 1;
   condition    = DIA_Fenriz_HELLO1_Condition;
   information  = DIA_Fenriz_HELLO1_Info;
   permanent   = FALSE;
   Important    = FALSE;
};

FUNC INT DIA_Fenriz_HELLO1_Condition()
{
    return TRUE;
};

FUNC VOID DIA_Fenriz_HELLO1_Info()
{
    AI_Output (self, other ,"DIA_Fenriz_HELLO1_03_01"); //A ty coś za jeden?
    AI_Output (other, self ,"DIA_Fenriz_HELLO1_15_02"); //Jestem Vendrick.
    AI_Output (self, other ,"DIA_Fenriz_HELLO1_03_03"); //Mam na imię Fenriz, czego tu szukasz Vendricku?
    AI_Output (other, self ,"DIA_Fenriz_HELLO1_15_05"); //Nie twój interes!
    AI_Output (self, other ,"DIA_Fenriz_HELLO1_03_06"); //Czyżby?
};

//========================================
//-----------------> HELLO2
//========================================

INSTANCE DIA_Fenriz_HELLO2 (C_INFO)
{
   npc          = NON_6675_Fenriz;
   nr           = 2;
   condition    = DIA_Fenriz_HELLO2_Condition;
   information  = DIA_Fenriz_HELLO2_Info;
   permanent   = FALSE;
   description   = "Muszę dostać się do Górskiej Fortecy.";
};

FUNC INT DIA_Fenriz_HELLO2_Condition()
{
    return TRUE;
};

FUNC VOID DIA_Fenriz_HELLO2_Info()
{
    AI_Output (other, self ,"DIA_Fenriz_HELLO2_15_01"); //Muszę dostać się do Górskiej Fortecy.
    AI_Output (self, other ,"DIA_Fenriz_HELLO2_03_02"); //A po co chcesz tam iść? Zapuszczanie się w tamte tereny to samobójstwo.
    AI_Output (other, self ,"DIA_Fenriz_HELLO2_15_03"); //Mam tam pewną sprawę do załatwienia.
    AI_Output (self, other ,"DIA_Fenriz_HELLO2_03_04"); //Radzę Ci zdobyć jakąś mapę.
    AI_Output (self, other ,"DIA_Fenriz_HELLO2_03_05"); //Tak się składa że mam jedną i mogę Ci ją oddać. Jeśli tylko zrobisz dla mnie malutką przystługę.
    AI_Output (other, self ,"DIA_Fenriz_HELLO2_15_06"); //O co chodzi?
    AI_Output (self, other ,"DIA_Fenriz_HELLO2_03_07"); //Przed upadkiem bariery byłem kopaczem w starym obozie. Pracowałem w starej kopalni.
    AI_Output (self, other ,"DIA_Fenriz_HELLO2_03_08"); //Zostawiłem tam mój amulet. Zdobądź go dla mnie a dostaniesz mapę.
    AI_Output (other, self ,"DIA_Fenriz_HELLO2_15_09"); //Jak dostanę się do starej kopalni?
    AI_Output (self, other ,"DIA_Fenriz_HELLO2_03_10"); //Idź prosto aż dotrzesz do Starego Obozu potem zobaczysz niewielki most przejdź przez niego i idź w lewo wzdłóż rzeki.
    AI_Output (self, other ,"DIA_Fenriz_HELLO2_03_11"); //Powinieneś dotrzeć.
    AI_Output (other, self ,"DIA_Fenriz_HELLO2_15_12"); //Dobra. Przyniosę Ci ten amulet.
    AI_Output (self, other ,"DIA_Fenriz_HELLO2_03_13"); //W takim razie czekam.
    MIS_AMULET_FENRIZ = LOG_RUNNING;

    Log_CreateTopic            (CH1_AMULET_FENRIZ, LOG_MISSION);
    Log_SetTopicStatus       (CH1_AMULET_FENRIZ, LOG_RUNNING);
    B_LogEntry                     (CH1_AMULET_FENRIZ,"Fenriz poprosił mnie o znalezienie jego amuletu w starej kopalni.");
    AI_StopProcessInfos   (self);
};

//========================================
//-----------------> HELLO3
//========================================

INSTANCE DIA_Fenriz_HELLO3 (C_INFO)
{
   npc          = NON_6675_Fenriz;
   nr           = 3;
   condition    = DIA_Fenriz_HELLO3_Condition;
   information  = DIA_Fenriz_HELLO3_Info;
   permanent   = FALSE;
   description   = "Mam twój Amulet.";
};

FUNC INT DIA_Fenriz_HELLO3_Condition()
{
    if (Npc_KnowsInfo (other, DIA_Fenriz_HELLO2))
    && (Npc_HasItems (other, ItMi_Amulet_Fenriz) >=1)
    {
    return TRUE;
    };
};


FUNC VOID DIA_Fenriz_HELLO3_Info()
{
    AI_Output (other, self ,"DIA_Fenriz_HELLO3_15_01"); //Mam twój Amulet.
    AI_Output (self, other ,"DIA_Fenriz_HELLO3_03_02"); //Świetnie! Oto twoja mapa.
    AI_Output (other, self ,"DIA_Fenriz_HELLO3_15_03"); //Dzięki, przyda się na pewno.
    AI_Output (self, other ,"DIA_Fenriz_HELLO3_03_04"); //Posłuchaj.
    AI_Output (self, other ,"DIA_Fenriz_HELLO3_03_05"); //Nie wiem jaki masz cel i czego szukasz w tej dolinie ale, uwierz mi to nie jest tego warte dolina roi się od orków i innych paskud.
    AI_Output (self, other ,"DIA_Fenriz_HELLO3_03_06"); //Wyjście na otwarty teren to samobójstwo.
    AI_Output (other, self ,"DIA_Fenriz_HELLO3_15_07"); //Potrafię o siebie zadbać.
    AI_Output (self, other ,"DIA_Fenriz_HELLO3_03_08"); //W takim razie życzę Ci powodzenia.
    B_LogEntry                     (CH1_AMULET_FENRIZ,"Przyniosłem Fenrizowi jego Amulet w zamian dostałem mapę Koloni.");
    Log_SetTopicStatus       (CH1_AMULET_FENRIZ, LOG_SUCCESS);
    MIS_AMULET_FENRIZ = LOG_SUCCESS;

    B_GiveXP (250);
   
    CreateInvItems (self, ItWrWorldmap, 1);
    B_GiveInvItems (self, other, ItWrWorldmap, 1);
    B_GiveInvItems (other, self, ItMi_Amulet_Fenriz, 1);
   
};


(SKRYPT NPC)
Spoiler
instance NON_6675_Fenriz (Npc_Default)
{
//Generated by Gothic NPC Maker

//----------Info ogolne----------

name = "Fenriz";
Npctype = Npctype_Main;
guild = GIL_NONE;
level = 30;
voice = 9;
id = 6675;

//----------Statystyki----------

attribute[ATR_STRENGTH] = 60;
attribute[ATR_DEXTERITY] = 60;
attribute[ATR_MANA_MAX] = 25;
attribute[ATR_MANA] = 25;
attribute[ATR_HITPOINTS_MAX] = 300;
attribute[ATR_HITPOINTS] = 300;

//----------Wyglad----------

Mdl_SetVisual      (self,"HUMANS.MDS");
Mdl_ApplyOverlayMds   (self,"Humans_Relaxed.mds");
Mdl_SetVisualBody (self,"hum_body_naked0",1, 1,"Hum_Head_Thief",79, 1,VLK_ARMOR_L);
B_Scale (self);
Mdl_SetModelFatness(self,0);

//----------Umiejetnasci----------

Npc_SetTalentSkill (self, NPC_TALENT_1H,2);
Npc_SetTalentSkill (self, NPC_TALENT_2H,1);
Npc_SetTalentSkill (self, NPC_TALENT_BOW,1);
Npc_SetTalentSkill (self, NPC_TALENT_CROSSBOW,1);

//----------Ekwipunek----------
EquipItem      (self, ItMw_1H_Axe_03);
CreateInvItems  (self,ItLsTorch,1);
CreateInvItems  (self,ItMiLute,1);
CreateInvItems  (self,ItKeLockpick,1);
CreateInvItems  (self,ItFo_Potion_Water_01,1);
CreateInvItems  (self,ItForice,1);
//----------Pozostale----------
fight_tactic   =   FAI_HUMAN_Strong;
daily_routine = Rtn_start_666875;
//Generated by Gothic NPC Maker
};
FUNC VOID Rtn_Start_666875 ()
{
};
FUNC VOID Rtn_Stand_666875 ()
{
};
 

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Cytuj
nie reaguje na rutyny które mu przypisałem
Rutyny? Jakie rutyny?

FUNC VOID Rtn_Start_666875 ()
{
};
FUNC VOID Rtn_Stand_666875 ()
{
};

Tu nic nie ma
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Fabio

Fabio

The Modders
posty3477
Propsy2157
ProfesjaSkrypter
  • The Modders
Nie działa interakcja z NPC, bo musi mieć on jakąkolwiek rutynę, której u ciebie nie ma.

Mercer-223

Mercer-223

Użytkownicy
posty44
Propsy1
Profesjabrak
  • Użytkownicy
Moje głupie niedopatrzenie, ale przynajmniej będę wiedział na przyszłość.
Dzięki za pomoc!! Ale mam kolejny problem jak npc jest już w pełni funkcjonalny to po dodaniu waypointa i dodaniu wpisu w Startupie on się nie pojawia na miejscu waypointa.
 

Anyone

Anyone

Użytkownicy
posty39
Propsy5
ProfesjaSkrypter
  • Użytkownicy
dodałem nowego NPC, dodałem go do startup.d ale go nie ma, spawnuje go w konsoli ale on stoi w miejscu (nie ma rutyny?, gdy zmienie czas to znika)
Miałem taki sam problem, był zły waypoint, sprawdź czy dobrze wpisałeś, waypointy masz pod ALT + U w grze
 

Mercer-223

Mercer-223

Użytkownicy
posty44
Propsy1
Profesjabrak
  • Użytkownicy
Cytuj
Miałem taki sam problem, był zły waypoint, sprawdź czy dobrze wpisałeś, waypointy masz pod ALT + U w grze

Waypoint jest w porządku npc jak nie miał rutyny to się w nim spawnował a po dodaniu rutyny go tam nie ma.
 

Anyone

Anyone

Użytkownicy
posty39
Propsy5
ProfesjaSkrypter
  • Użytkownicy
A kod NPC poprawionego podaj bo nikt (tak podejrzewam) nie umie wróżyć
 

Mercer-223

Mercer-223

Użytkownicy
posty44
Propsy1
Profesjabrak
  • Użytkownicy
Cytuj
A kod NPC poprawionego podaj bo nikt (tak podejrzewam) nie umie wróżyć

Chodzi ci o Skrypt?

Spoiler
instance NON_6675_Fenriz (Npc_Default)
{
//Generated by Gothic NPC Maker

//----------Info ogolne----------

name = "Fenriz";
Npctype = Npctype_Main;
guild = GIL_NONE;
level = 30;
voice = 9;
id = 6675;

//----------Statystyki----------

attribute[ATR_STRENGTH] = 60;
attribute[ATR_DEXTERITY] = 60;
attribute[ATR_MANA_MAX] = 25;
attribute[ATR_MANA] = 25;
attribute[ATR_HITPOINTS_MAX] = 300;
attribute[ATR_HITPOINTS] = 300;

//----------Wyglad----------

Mdl_SetVisual      (self,"HUMANS.MDS");
Mdl_ApplyOverlayMds   (self,"Humans_Relaxed.mds");
Mdl_SetVisualBody (self,"hum_body_naked0",1, 1,"Hum_Head_Thief",79, 1,VLK_ARMOR_L);
B_Scale (self);
Mdl_SetModelFatness(self,0);

//----------Umiejetnasci----------

Npc_SetTalentSkill (self, NPC_TALENT_1H,2);
Npc_SetTalentSkill (self, NPC_TALENT_2H,1);
Npc_SetTalentSkill (self, NPC_TALENT_BOW,1);
Npc_SetTalentSkill (self, NPC_TALENT_CROSSBOW,1);

//----------Ekwipunek----------
EquipItem      (self, ItMw_1H_Axe_03);
CreateInvItems  (self,ItLsTorch,1);
CreateInvItems  (self,ItMiLute,1);
CreateInvItems  (self,ItKeLockpick,1);
CreateInvItems  (self,ItFo_Potion_Water_01,1);
CreateInvItems  (self,ItForice,1);
//----------Pozostale----------
fight_tactic   =   FAI_HUMAN_Strong;
daily_routine = Rtn_start_666875;
//Generated by Gothic NPC Maker
};
FUNC VOID Rtn_Start_666875 ()
{
   TA_SitAround      (22,00,06,00,"NPC01_SIT");
   TA_StandAround      (06,00,22,00,"NPC01_STAND");
};

Plus Startup
Spoiler
Wld_InsertNpc   (NON_6675_Fenriz,            "NPC01");

 

Fabio

Fabio

The Modders
posty3477
Propsy2157
ProfesjaSkrypter
  • The Modders
""NPC01" nie ma takiego przypisanego WP, powinno być chyba "NPC01_SIT".

bogu9821

bogu9821

Użytkownicy
posty407
Propsy185
ProfesjaProgramista
  • Użytkownicy
""NPC01" nie ma takiego przypisanego WP, powinno być chyba "NPC01_SIT".
Jeżeli waypoint istnieje w świecie, to postać sobie do niego pójdzie, wiec to nie problem. No chyba, że nie istnieje.
 
while(false) Do();

Liberty

Liberty

Użytkownicy
posty39
Propsy12
ProfesjaSkrypter
  • Użytkownicy
""NPC01" nie ma takiego przypisanego WP, powinno być chyba "NPC01_SIT".
Gdzie widzisz NPC01? Chyba że zedytował

@Mercer-223 pamiętaj że nie możesz podać freepointa, musi być waypoint
 

Fabio

Fabio

The Modders
posty3477
Propsy2157
ProfesjaSkrypter
  • The Modders
@Liberty w startupie.

Mercer-223

Mercer-223

Użytkownicy
posty44
Propsy1
Profesjabrak
  • Użytkownicy
Już w porządku zrobiłem waypointy od nowa i faktycznie popełniłem błąd bo do rutyn przypisałem freepointy.
Dziękuję wszystkim za zaangażowanie i pomoc! :)
 


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