NPC zagaduje bez skryptu 1173 2

O temacie

Autor Liberty

Zaczęty 3.08.2019 roku

Wyświetleń 1173

Odpowiedzi 2

Liberty

Liberty

Użytkownicy
posty39
Propsy12
ProfesjaSkrypter
  • Użytkownicy

Liberty

NPC zagaduje bez skryptu
2019-08-03, 19:38(Ostatnia zmiana: 2019-08-03, 19:44)
Witam, nawet nie wiem jaką dać nazwe tematu, mam problem taki że NPC zagaduje do mnie a nawet nie ma skryptu na zagadywanie :ayfkm:
Skrypt NPC:
instance NOV_1330_BaalParvez (Npc_Default)
{
//-------- primary data --------
name = "Parvez";
Npctype = Npctype_Main;
guild = GIL_VLK;
level = 99;

voice = 10;
id = 1330;

//-------- abilities --------
attribute[ATR_STRENGTH] = 20;
attribute[ATR_DEXTERITY] = 20;
attribute[ATR_MANA_MAX] = 10;
attribute[ATR_MANA] = 10;
attribute[ATR_HITPOINTS_MAX] = 80;
attribute[ATR_HITPOINTS] = 80;

//-------- visuals --------
// animations
Mdl_SetVisual (self,"HUMANS.MDS");
Mdl_ApplyOverlayMds (self,"Humans_Relaxed.mds");
// body mesh     ,bdytex,skin,head mesh     ,headtex,teethtex,ruestung
Mdl_SetVisualBody (self,"hum_body_Naked0", 0, 1,"Hum_Head_Pony", 56,  1, VLK_ARMOR_M);

B_Scale (self);
Mdl_SetModelFatness(self,-1);

fight_tactic = FAI_HUMAN_STRONG;

//-------- Talente --------


//-------- inventory --------

EquipItem (self, ItMw_1h_Nailmace_01);
CreateInvItem (self,ItMi_Stuff_OldCoin_02);
CreateInvItems (self, ItMiNugget, 50);
CreateInvItems (self, ItFo_Potion_Health_03, 1);
CreateInvItems (self, ItFoRice, 1);


       
//-------- inventory --------



//-------------Daily Routine-------------
daily_routine = Rtn_start_1330;
};

FUNC VOID Rtn_start_1330 ()
{
TA_StandAround (22,35,08,00,"OCR_HUT_26");
TA_SitAround (08,00,22,35,"OCR_OUTSIDE_ARENA_BENCH1");
};

FUNC VOID Rtn_follow_1330 ()
{
TA_FollowPC (23,00,16,00,"OCR_OUTSIDE_ARENA_BENCH1");
TA_FollowPC (16,00,23,00,"OCR_OUTSIDE_ARENA_BENCH1");
};

FUNC VOID Rtn_Guide_Dungeon_1330 ()
{
TA_GuidePC (08,00,20,00,"LOCATION_15_IN_2");
TA_GuidePC (20,00,08,00,"LOCATION_15_IN_2");
};

FUNC VOID Rtn_Guide_1330 ()
{
TA_GuidePC (08,00,20,00,"PATH_OC_PSI_18");
TA_GuidePC (20,00,08,00,"PATH_OC_PSI_18");
};

Dialog tego NPC:
//========================================
//-----------------> End
//========================================

INSTANCE DIA_BaalParvez_End (C_INFO)
{
   npc          = Nov_1330_BaalParvez;
   nr           = 999;
   condition    = DIA_BaalParvez_End_Condition;
   information  = DIA_BaalParvez_End_Info;
   permanent = TRUE;
   description = "KONIEC";
};

FUNC INT DIA_BaalParvez_End_Condition()
{
    return TRUE;
};

FUNC VOID DIA_BaalParvez_End_Info()
{
    AI_Output (other, self ,"DIA_BaalParvez_End_15_01"); //ukryłem dialog
    AI_Output (self, other ,"DIA_BaalParvez_End_03_02"); //ukryłem dialog
AI_StopProcessInfos (self);
};

//========================================
//-----------------> Berion_hello
//========================================

INSTANCE DIA_BaalParvez_Berion_hello (C_INFO)
{
   npc          = Nov_1330_BaalParvez;
   nr           = 1;
   condition    = DIA_BaalParvez_Berion_hello_Condition;
   information  = DIA_BaalParvez_Berion_hello_Info;
   permanent = FALSE;
   Important    = FALSE;
};

FUNC INT DIA_BaalParvez_Berion_hello_Condition()
{
    return TRUE;
};

FUNC VOID DIA_BaalParvez_Berion_hello_Info()
{
Left_Joints = 2;
    AI_Output (self, other ,"DIA_BaalParvez_Berion_hello_03_01"); //ukryłem dialog
    AI_Output (other, self ,"DIA_BaalParvez_Berion_hello_15_02"); //ukryłem dialog
    AI_Output (other, self ,"DIA_BaalParvez_Berion_hello_15_03"); //ukryłem dialog
    AI_Output (self, other ,"DIA_BaalParvez_Berion_hello_03_04"); //ukryłem dialog
    AI_Output (other, self ,"DIA_BaalParvez_Berion_hello_15_05"); //ukryłem dialog
    AI_Output (self, other ,"DIA_BaalParvez_Berion_hello_03_06"); //ukryłem dialog
    AI_Output (other, self ,"DIA_BaalParvez_Berion_hello_15_07"); //ukryłem dialog
    AI_Output (other, self ,"DIA_BaalParvez_Berion_hello_15_08"); //ukryłem dialog
    AI_Output (self, other ,"DIA_BaalParvez_Berion_hello_03_09"); //ukryłem dialog
    AI_Output (other, self ,"DIA_BaalParvez_Berion_hello_15_10"); //ukryłem dialog
    AI_Output (self, other ,"DIA_BaalParvez_Berion_hello_15_11"); //ukryłem dialog
    AI_Output (other, self ,"DIA_BaalParvez_Berion_hello_15_14"); //ukryłem dialog
    MIS_New_members = LOG_RUNNING;
    Log_CreateTopic (CH1_New_members, LOG_MISSION);
    Log_SetTopicStatus (CH1_New_members, LOG_RUNNING);
    B_LogEntry (CH1_New_members,"ukryłem dialog");
    AI_StopProcessInfos (self);
};

//========================================
//-----------------> Take_that
//========================================

INSTANCE DIA_BaalParvez_Take_that (C_INFO)
{
   npc          = Nov_1330_BaalParvez;
   nr           = 2;
   condition    = DIA_BaalParvez_Take_that_Condition;
   information  = DIA_BaalParvez_Take_that_Info;
   permanent = FALSE;
   description = "ukryłem dialog";
};

FUNC INT DIA_BaalParvez_Take_that_Condition()
{
    if (Left_Joints < 2)
&& (Npc_KnowsInfo (other, DIA_BaalParvez_Berion_hello))
    {
return TRUE;
    };
};


FUNC VOID DIA_BaalParvez_Take_that_Info()
{
    AI_Output (other, self ,"DIA_BaalParvez_Take_that_15_01"); //ukryłem dialog
    B_GiveInvItems (other, self, ItMiJoint_Mission, 1);
AI_StopProcessInfos (self);
if ( C_BodystateContains(self, BS_SIT) )
{
AI_StandUp (self);
AI_TurnToNpc (self, hero);
};
    AI_UseItem (self, ItMiJoint_Mission);
};

//========================================
//-----------------> Belive_you
//========================================

INSTANCE DIA_BaalParvez_Belive_you (C_INFO)
{
   npc          = Nov_1330_BaalParvez;
   nr           = 3;
   condition    = DIA_BaalParvez_Belive_you_Condition;
   information  = DIA_BaalParvez_Belive_you_Info;
   permanent = FALSE;
   important = FALSE;
};

FUNC INT DIA_BaalParvez_Belive_you_Condition()
{
    if (Npc_KnowsInfo (other, DIA_BaalParvez_Take_that))
    {
return TRUE;
    };
};


FUNC VOID DIA_BaalParvez_Belive_you_Info()
{
    AI_Output (self, other ,"DIA_BaalParvez_Belive_you_03_02"); //Wukryłem dialog
    AI_Output (self, other ,"DIA_BaalParvez_Belive_you_03_03"); //ukryłem dialog
    AI_Output (other, self ,"DIA_BaalParvez_Belive_you_15_04"); //ukryłem dialog
    AI_Output (self, other ,"DIA_BaalParvez_Belive_you_03_05"); //ukryłem dialog
    AI_Output (self, other ,"DIA_BaalParvez_Belive_you_03_06"); //ukryłem dialog
    B_LogEntry (CH1_New_members,"ukryłem dialog");
};

//========================================
//-----------------> Next_vision
//========================================

INSTANCE DIA_BaalParvez_Next_vision (C_INFO)
{
   npc          = Nov_1330_BaalParvez;
   nr           = 4;
   condition    = DIA_BaalParvez_Next_vision_Condition;
   information  = DIA_BaalParvez_Next_vision_Info;
   permanent = FALSE;
   description = "ukryłem dialog";
};

FUNC INT DIA_BaalParvez_Next_vision_Condition()
{
    if (Burned == TRUE)
    {
    return TRUE;
    };
};


FUNC VOID DIA_BaalParvez_Next_vision_Info()
{
    AI_Output (other, self ,"DIA_BaalParvez_Next_vision_15_01"); //ukryłem dialog
    AI_Output (self, other ,"DIA_BaalParvez_Next_vision_03_02"); //ukryłem dialog
    AI_Output (self, other ,"DIA_BaalParvez_Next_vision_03_03"); //ukryłem dialog
    AI_Output (other, self ,"DIA_BaalParvez_Next_vision_15_04"); //ukryłem dialog
    AI_Output (other, self ,"DIA_BaalParvez_Next_vision_15_05"); //ukryłem dialog
    AI_Output (self, other ,"DIA_BaalParvez_Next_vision_03_06"); //ukryłem dialog
    AI_Output (other, self ,"DIA_BaalParvez_Next_vision_15_07"); //ukryłem dialog
    AI_Output (self, other ,"DIA_BaalParvez_Next_vision_03_08"); //ukryłem dialog
    Npc_ExchangeRoutine (self, "Guide_Dungeon");
    AI_StopProcessInfos (self);
    B_LogEntry                     (CH1_New_members,"ukryłem dialog");
};

//========================================
//-----------------> Here_we_go
//========================================

INSTANCE DIA_BaalParvez_Here_we_go (C_INFO)
{
   npc          = Nov_1330_BaalParvez;
   nr           = 5;
   condition    = DIA_BaalParvez_Here_we_go_Condition;
   information  = DIA_BaalParvez_Here_we_go_Info;
   permanent = FALSE;
   Important    = FALSE;
};

FUNC INT DIA_BaalParvez_Here_we_go_Condition()
{
    if (Npc_KnowsInfo (other, DIA_BaalParvez_Next_vision))
    && (Hlp_StrCmp(Npc_GetNearestWP(self),"LOCATION_15_IN_2"))
    {
return TRUE;
    };
};


FUNC VOID DIA_BaalParvez_Here_we_go_Info()
{
    AI_Output (self, other ,"DIA_BaalParvez_Here_we_go_03_01"); //ukryłem dialog
    AI_Output (self, other ,"DIA_BaalParvez_Here_we_go_03_02"); //ukryłem dialog
    AI_StopProcessInfos (self);
    if ( Wld_DetectItem (self, ITEM_KAT_NONE) )
    {
        if (Hlp_IsValidItem(item))
        {
            if (Npc_GetDistToItem(self,item) < 500)
            {
                AI_TakeItem   (self, item);
            };
        };
    };
};

//========================================
//-----------------> I_have_swampherb
//========================================

INSTANCE DIA_BaalParvez_I_have_swampherb (C_INFO)
{
   npc          = Nov_1330_BaalParvez;
   nr           = 6;
   condition    = DIA_BaalParvez_I_have_swampherb_Condition;
   information  = DIA_BaalParvez_I_have_swampherb_Info;
   permanent = FALSE;
   description = "ukryłem dialog";
};

FUNC INT DIA_BaalParvez_I_have_swampherb_Condition()
{
    if (Npc_KnowsInfo (other, DIA_BaalParvez_Here_we_go))
    && (Npc_HasItems (other, ItMi_Plants_Swampherb_01) >=4)
    {
return TRUE;
    };
};


FUNC VOID DIA_BaalParvez_I_have_swampherb_Info()
{
    AI_Output (other, self ,"DIA_BaalParvez_I_have_swampherb_15_01"); //ukryłem dialog
    Npc_ExchangeRoutine (self, "start");
    AI_Output (self, other ,"DIA_BaalParvez_I_have_swampherb_03_02"); //ukryłem dialog
    AI_StopProcessInfos (self);
};

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

INSTANCE DIA_BaalParvez_Show_me (C_INFO)
{
   npc          = Nov_1330_BaalParvez;
   nr           = 7;
   condition    = DIA_BaalParvez_Show_me_Condition;
   information  = DIA_BaalParvez_Show_me_Info;
   permanent = FALSE;
   description = "ukryłem dialog";
};

FUNC INT DIA_BaalParvez_Show_me_Condition()
{
    if (Npc_KnowsInfo (other, DIA_BaalParvez_I_have_swampherb))
&& (Npc_GetDistToWP (self, "OCR_OUTSIDE_ARENA_BENCH1") < 500)
&& (Npc_HasItems (other, ItMi_Plants_Swampherb_01) >=4)
    {
return TRUE;
    };
};


FUNC VOID DIA_BaalParvez_Show_me_Info()
{
    AI_Output (other, self ,"DIA_BaalParvez_Show_me_15_01"); //ukryłem dialog
    AI_Output (self, other ,"DIA_BaalParvez_Show_me_03_02"); //ukryłem dialog
    Npc_ExchangeRoutine (self, "follow");
    AI_StopProcessInfos (self);
};

Musiałem ukryć dialogi bo plagiat moda był by nieunikniony
Dałbym film jak to wygląda ale nie zbyt mogę:
 

Splash

Splash

Moderator
posty4207
Propsy3403
ProfesjaNierób
  • Moderator
No to nie możesz w dialogu ustawić important na false?
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Liberty

Liberty

Użytkownicy
posty39
Propsy12
ProfesjaSkrypter
  • Użytkownicy

Liberty

NPC zagaduje bez skryptu
#2 2019-08-03, 20:49(Ostatnia zmiana: 2019-08-04, 11:15)
Chyba nie doczytałes ale nie mam na te zagadywanie skryptu, a zapomniałem dopisać że on do mnie zaczyna gadać i sie buguje gra, nie ma dialogu a bezio stoi w miejscu a kamera patrzy na tego npc

Edit:
Jednak okazało się że problemem jest monolog z ławką a kamera nakierowywała się na tego NPC bo on na niej siedział przez co myślałem że to problem z dialogiem tego NPC. Mimo tego dalej nie wiem co jest problemem, kod monologu:

//---------------------- make joint --------------------------

func void MAKEJOINT_S1 ()
{
Monolog = M_MakeJoint;
self.aivar[AIV_INVINCIBLE]=TRUE;
Ai_ProcessInfos(self);
};

instance MakeJointDialog(C_Info)
{
npc = PC_Hero;
condition = MakeJointDialog_Condition;
information = MakeJointDialog_Info;
important = 0;
permanent = 1;
description = "Zrób skręt z bagiennego ziela";
};

func int MakeJointDialog_Condition()
{
if (Monolog == M_MakeJoint)
&& (Npc_HasItems (hero, ItMi_Plants_Swampherb_01) >=4)
{
return 1;
};
};

func int MakeJointDialog_Info()
{
AI_Output (Nov_1330_BaalParvez, hero ,"DIA_BaalParvez_Make_Joint_01"); //Weź trochę materiału w reke i go rozwin
AI_Output (Nov_1330_BaalParvez, hero ,"DIA_BaalParvez_Make_Joint_02"); //Zacznij pocierać bagienne ziele aż wyleci z niego pyłek
AI_Output (Nov_1330_BaalParvez, hero ,"DIA_BaalParvez_Make_Joint_01"); //Gdy już skończysz wysyp otrzymany pył do materiału i go skręć
AI_Output (Nov_1330_BaalParvez, hero ,"DIA_BaalParvez_Make_Joint_01"); //Skręt jest gotowy, możesz go śmiało palić
B_GiveInvItems (hero, Nov_1330_BaalParvez, ItMi_Plants_Swampherb_01, 4);
B_GiveInvItems (Nov_1330_BaalParvez, hero, ItMiJoint_1, 4);
Monolog = 0;
AI_StopProcessInfos(self);
};

instance MakeJointExit(C_Info)
{
npc = PC_Hero;
condition = MakeJointExit_Condition;
information = MakeJointExit_Info;
important = 0;
permanent = 1;
nr = 999;
description = "KONIEC";
};

func int MakeJointExit_Condition()
{
if (Monolog == M_MakeJoint)
{
return 1;
};
};

func int MakeJointExit_Info()
{
Monolog = 0;
AI_StopProcessInfos(self);
};

//Edit2: Jak by ktoś nie zrozumiał, ławka do mnie zagaduje (?)
 


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