G2NK Ograniczenie percepcji NPC 1491 3

O temacie

Autor Lobos

Zaczęty 23.03.2020 roku

Wyświetleń 1491

Odpowiedzi 3

Lobos

Lobos

Użytkownicy
posty594
Propsy360
Profesjabrak
  • Użytkownicy
Jest jakiś sposób by skutecznie ograniczyć zasięg z jakim NPC reagują na potwory?

Idąc na polowanie z dwoma NPC, jeden zachowuje się normalnie i idzie do wpisanego WP, a drugi zanim tam dochodzi najpierw rozpierdala pół mapy i zabija każdego potwora w zasięgu wzroku. Zasięg PERC_DIST_ACTIVE_MAX ustawiony jest jak w oryginale na 1500. Nic nie zmieniałem, ale oczywiście bawiłem się tą liczbą. Nawet jak dałem na 300, jeden z nich atakował wszystko a drugi widział potwora dopiero przed samym nosem, więc coś tu jest nie tak.

Drugi problem jest taki, że jak NPC stoją sobie w jaskini to zauważają potwory które są nad nimi, a teoretycznie nie powinni bo model mapy oddziela jednych od drugich. Przesunąłem WP respawnu potworów dalej, ale niektóre potwory zmieniają swój spawn point i gdzieś łażą po okolicy, biegając obok NPCtów.


 

Fabio

Fabio

The Modders
posty3466
Propsy2150
ProfesjaSkrypter
  • The Modders
Drugi problem jest taki, że jak NPC stoją sobie w jaskini to zauważają potwory które są nad nimi, a teoretycznie nie powinni bo model mapy oddziela jednych od drugich. Przesunąłem WP respawnu potworów dalej, ale niektóre potwory zmieniają swój spawn point i gdzieś łażą po okolicy, biegając obok NPCtów.

A czy ta jaskinia ma portale? Pokaż też skrypty dwóch NPC.

Lobos

Lobos

Użytkownicy
posty594
Propsy360
Profesjabrak
  • Użytkownicy
Jaskinia nie ma portali, to bardziej tunel w skale.

Ten NPC idzie normalnie do WP, ale potem jak już wykonamy zadanie to wariuje i zachowuje się jak ten drugi i widzi potwory z końca mapy.
instance DJG_3304_Henry (Npc_Default)
{
// ------ NSC ------
name = "Henry";
guild = GIL_DJG;
id = 3304;
voice = 9;
npctype = NPCTYPE_MAIN;

// ------ AIVARs ------

aivar[AIV_IGNORE_Theft] = TRUE;
// ------ Attributes ------
B_SetAttributesToChapter(self, 5);

// ------ NSC relevant talents ------
B_GiveNpcTalents (self);

// ------ Fight tactic ------
fight_tactic = FAI_HUMAN_STRONG;

// ------ Equipted weapons ------
EquipItem (self, ItMw_Miecz_Rekruta);
EquipItem (self, ItRw_Crossbow_L_02);

// ------ Inventory ------
B_CreateAmbientInv (self);

CreateInvItems (self, ItPo_Health_03, 3);
// ------ Visuals ------
B_SetNpcVisual (self, MALE, "Hum_Head_Pony", Face_N_Torlof, BodyTex_N, STT_ARMOR_M);
Mdl_SetModelFatness (self, 0.7);
Mdl_ApplyOverlayMds (self, "Humans_Militia.mds");

// ------ Fight skills ------
B_SetFightSkills (self, 65);

daily_routine = Rtn_Start_3304;
};


FUNC VOID Rtn_Start_3304()
{
TA_Practice_Sword (07,00,22,00,"STRAZNIK_TRENING_01");
TA_Sleep (22,00,07,00,"OB_WEW_PATH31");

};


FUNC VOID Rtn_WYKOPALISKA_3304()
{
TA_Stand_Guarding (12,30,19,00,"DK_PATH_OB_04");
TA_Stand_Guarding (19,00,12,30,"DK_PATH_OB_04");

};

FUNC VOID Rtn_GADKA_3304()
{
TA_Smalltalk (12,30,19,00,"DK_SIT");
TA_Smalltalk (19,00,12,30,"DK_SIT");

};

FUNC VOID Rtn_BDTSMALLCAVE_3304()
{
TA_Guide_Player (12,30,19,00,"DK_BDTPATH_CAVESMALL1");
TA_Guide_Player (19,00,12,30,"DK_BDTPATH_CAVESMALL1");

};

FUNC VOID Rtn_BDTSMALLCAVEEND_3304()
{
TA_Guide_Player (12,30,19,00,"DK_CAVESMALL_BDT6");
TA_Guide_Player (19,00,12,30,"DK_CAVESMALL_BDT6");

};

FUNC VOID Rtn_WAIT_3304()
{
TA_Stand_Guarding (12,30,19,00,"DK_CAVESMALL_HENRYWAIT");
TA_Stand_Guarding (19,00,12,30,"DK_CAVESMALL_HENRYWAIT");

};

FUNC VOID Rtn_BDTCAVE_3304 ()
{
TA_Guide_Player (18,00,04,00,"DK_BDTPATH_01");
TA_Guide_Player (04,00,18,00,"DK_BDTPATH_01");
};


Drugi NPC
instance SLD_3202_Malik (Npc_Default)
{
// ------ NSC ------
name = "Malik";
guild = GIL_SLD;
id = 3202;
voice = 12;
npctype = NPCTYPE_MAIN;

aivar[AIV_IGNORE_Theft] = TRUE;

// ------ Attributes ------
B_SetAttributesToChapter(self, 6);

// ------ NSC relevant talents ------
B_GiveNpcTalents (self);

// ------ Fight tactic ------
fight_tactic = FAI_HUMAN_MASTER;

// ------ Equipted weapons ------
EquipItem (self, ItMw_Zolnierz_M);
CreateInvItems (self, ItPo_Health_03, 5);
// ------ Inventory ------



// ------ Visuals ------
B_SetNpcVisual (self, MALE, "Hum_Head_Pony", Face_N_NormalBart11, BodyTex_N, GRD_Armor_M);
Mdl_SetModelFatness (self, 1.4);
Mdl_ApplyOverlayMds (self, "Humans_Militia.mds");

// ------ Fight skills ------
B_SetFightSkills (self, 80);

daily_routine = Rtn_PreStart_3202;

};

FUNC VOID Rtn_PreStart_3202 ()
{
TA_Pick_FP (20,00,22,00,"DK_ZOL_02");
TA_Pick_FP (22,00,20,00,"DK_ZOL_02");
};

FUNC VOID Rtn_Gadka_3202()
{
TA_Smalltalk (20,00,22,00,"DK_PATH_OB");
TA_Smalltalk (22,00,20,00,"DK_PATH_OB");

};

FUNC VOID Rtn_BDTSMALLCAVE_3202 ()
{
TA_Guide_Player (20,00,22,00,"DK_BDTPATH_CAVESMALL1");
TA_Guide_Player (22,00,20,00,"DK_BDTPATH_CAVESMALL1");
};

FUNC VOID Rtn_BDTSMALLCAVEEND_3202 ()
{
TA_Guide_Player (20,00,22,00,"DK_CAVESMALL_BDT6");
TA_Guide_Player (22,00,20,00,"DK_CAVESMALL_BDT6");
};

FUNC VOID Rtn_WAIT_3202 ()
{
TA_Stand_Drinking (20,00,22,00,"DK_CAVESMALL_BDT3");
TA_Stand_Drinking (22,00,20,00,"DK_CAVESMALL_BDT3");
};

FUNC VOID Rtn_BDTCAVE_3202 ()
{
TA_Follow_Player (20,00,22,00,"DK_BDTCAVE_9");
TA_Follow_Player (22,00,20,00,"DK_BDTCAVE_9");
};

FUNC VOID Rtn_BDTCAVEREST_3202 ()
{
TA_Stand_Eating (20,00,22,00,"DK_BDTCAVE_9");
TA_Stand_Eating (22,00,20,00,"DK_BDTCAVE_9");
};

To musi być problem z percepcją, ale nie wiem dlaczego ona tak szwankuje skoro nic tam nie zmieniałem.
 

Lobos

Lobos

Użytkownicy
posty594
Propsy360
Profesjabrak
  • Użytkownicy
Zagadka po części rozwiązana. Wstawiałem potwory na freepointach podczas, gdy powinny się respić na WP. Nie zrobiłem dobrego waynetu i pomieszałem nazwy WP i FP wpisując cokolwiek aby tylko było dlatego wszystko żyło swoim życiem i łaziło gdzie popadnie.

Można zamknąć.
 


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