Przyjazny potwór 1643 4

O temacie

Autor Bonczur

Zaczęty 5.12.2018 roku

Wyświetleń 1643

Odpowiedzi 4

Bonczur

Bonczur

Użytkownicy
posty9
ProfesjaProgramista
  • Użytkownicy
Witam, mam pytanie, chciałbym zrobić wilka, z którym można porozmawiać i którego nie atakują inni. Niestety, przeszukiwałem skrypty i nie mogę nic znaleźć, żadnych plików z dialogiem np. Owcy którą można zaprowadzić do klasztoru lub Demona w wieży xardasa z G1.
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Ustaw jedną z gildii neutralnych, np. GIL_NONE lub ustaw w skrypcie NPC
npctype = NPCTYPE_FRIEND;

A.K.

A.K.

Użytkownicy
posty159
Propsy161
Profesjabrak
  • Użytkownicy
Ustaw jedną z gildii neutralnych, np. GIL_NONE

Tylko, czy nie będzie później stać jak kołek, bo się mu rutyny nie zgadzają? Bo pamiętam, że chyba były z tym jakieś problemy.
Trzeba by chyba poprzestawiać ręcznie w skryptach nastawienie NPC i dodać PERC_ASSESSTALK, niestety dawno nie siedziałem w Gothiku i musiałbym sobie poprzypominać.

W KD zrobiłem to po najmniejszej linii oporu - ponadawałem gildię chrząszcza i dodałem warunki do m.in. ZS_MM_Rtn_Rest. (Minus jest taki, że potworki nie atakowały, ale fabuła nie wymagała :P)

Nawiasem, tamten kod miał sporo tego typu wstawek:
if (Hlp_GetInstanceID (self) == Hlp_GetInstanceID (KDP_2009_Ork)
||Hlp_GetInstanceID (self) == Hlp_GetInstanceID (KDP_2036_Granicznik)) //Jak to zadziała, to rządzę...
{
Perception_Set_Przyjazny_Ork ();
}
else if (Hlp_GetInstanceID (self) == Hlp_GetInstanceID (KDP_2053_PanZurkon))
{
Perception_Set_Przyjazny_Ork ();
}
else if(jestWygadanymPotworem(self))
{
Npc_PercEnable (self, PERC_ASSESSPLAYER , B_MM_AssessPlayer);
Npc_PercEnable (self, PERC_ASSESSTALK , B_AssessTalk);
Npc_PercEnable  (self, PERC_ASSESSDAMAGE , B_AssessDamage);
}
else
{
Perception_Set_Monster_Rtn();
};

... tak że wesoło :F
 

Cruc

Cruc

Użytkownicy
posty666
Propsy232
Profesjabrak
  • Użytkownicy
To trzeba zrobić mniej więcej Twoim sposobem, bo rutyny ustawiają perce na nowo, więc nawet po dopisaniu ich w skryptach raczej szybko się resetują.
 
while (!success) try{...}

Najlepszy modder od gothic multiplayer - polecam pytać go o wszystko!

A.K.

A.K.

Użytkownicy
posty159
Propsy161
Profesjabrak
  • Użytkownicy

A.K.

Przyjazny potwór
#4 2018-12-05, 23:01(Ostatnia zmiana: 2018-12-05, 23:10)
Co do nieatakowania przez NPC można by spróbować dodać na początku funkcji B_AssessEnemy() coś w stylu:
if
(
(self.guild < GIL_SEPERATOR_HUM)
&&(Hlp_GetInstanceID(other) == Hlp_GetInstanceID(ten_potwor))
// i/lub jakieś własne warunki
)
{
return FALSE;
};

Wtedy ludzki NPC powinien odrzucić reakcję na potwora jako wroga (brawa dla składni tego zdania...), ale trzeba by sprawdzić, czy na pewno zadziała.
 


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