Przypisanie portalu do danego NPC Gothic 2 2209 0

O temacie

Autor piootrek86

Zaczęty 28.04.2020 roku

Wyświetleń 2209

Odpowiedzi 0

piootrek86

piootrek86

Użytkownicy
Fanatyk Gothica
posty89
Propsy13
ProfesjaGrafik 3D
  • Użytkownicy
  • Fanatyk Gothica
W Gothicu portale są przypisane do gildii. Jeżeli chcielibyśmy by dany portal do np domu lub jaskini został przypisany tylko danemu npc (Lub tylko kilku danym npc) należy:

1. Otworzyć plik C_NpcIsBotheredByPlayerRoomGuild.d i dodać na końcu :

func int C_NpcIsBotheredByPlayerRoom(var C_Npc slf)
{
    var c_npc portalowner; portalowner = Wld_GetPlayerPortalOwner();

if (Hlp_GetInstanceID (slf) == Hlp_GetInstanceID(portalowner) )
{
return TRUE;
};

return FALSE; //DEFAULT
};

Właśnie dodaliśmy funkcję, która będzie sprawdzać czy self jest właścicielem portalu czytaj jest przypisanym npc do danego miejsca.

Następnie otwieramy plik B_AssessEnterRoom.d a w nim w linijce 160 dodajemy :
if (C_NpcIsBotheredByPlayerRoom(self))
{
Npc_ClearAIQueue (portalowner);
B_ClearPerceptions (portalowner);
AI_StartState (portalowner, ZS_ClearRoom, 1, ""); //vor allem wegen im Bett aufstehen
return TRUE;
};

Następnie zamieniamy w pliku ZS_ClearRoom.d w linijce 24 to
if (!C_NpcIsBotheredByPlayerRoomGuild(self))
|| (portalguild == GIL_PUBLIC)
na to:
if (!C_NpcIsBotheredByPlayerRoomGuild(self)) && (!C_NpcIsBotheredByPlayerRoom(self))
|| (portalguild == GIL_PUBLIC)

Teraz wystarczy dodac w pliku startup.d :
Wld_AssignRoomToNpc("NazwaPortalu", Instance NPC);
Jeżeli nie macie pojęcia czym są portale odsyłam was do https://themodders.org/index.php?topic=20020.0

Nie ma za co  :D
 
Mam pomysł na moda ale nie mam chęci i zdolności :D


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