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.0Nie ma za co
