|
|
-
OdysseeModTeam
NPC nimmt Gegner in Portalraum wahr
Wie kann ich die Wahrnehmung einiger NPCs reduzieren?
Kann man verhindern dass NPCs in einem Portalraum Gegner, die sich außerhalb des Portalraums befinden, erkennen? Ist ja eigentlich unlogisch das man einen Gegner erkennt, solange sich zwischen beiden eine Mauer oder eine Tür befindet. 
Konkretes Problem: In einem großen Gebäude steht ein NPC Wache vor einer Tür. Im Keller, das einen eigenen Portalraum hat, befindet sich ein Monster. Leider aber nimmt der NPC dieses immer wahr und rennt immer in die Richtung wo sich das Monster befindet, anstatt vor der Tür weiter Wache zu schieben. Die Wache hat von mir den TA "TA_Guide_Player" bekommen, damit sich der Spieler zur Tür nicht durchmogeln kann sondern eine Spruchrolle benutzen muss um die Wache auszuschalten. Ich könnte dem NPC zwar den TA "TA_Guard_Passage" geben, dann bleibt er vor der Tür stehen, doch dreht er sich dann nicht mehr zum Spieler herum, wenn der Player hinter ihm durch die Tür will.
Oder was kann ich noch tun um zu verhindern dass das Monster von anderen bemerkt wird?
-
Ministerium für Verstand
Vielleicht helfen die Einträge in den Externals weiter?
FUNC INT Npc_CanSeeNpc (VAR C_NPC npc1, VAR C_NPC npc2) { return 0; };
// Prueft ob Npc1 den Npc2 sehen kann ( ein Ray wird gecastet -> Bitte sparsam einsetzen ) True/False Blickwinkelabhängig (+,-100°)+LOS von der Hüfte aus
FUNC INT Npc_CanSeeNpcFreeLOS (VAR C_NPC self, VAR C_NPC other) {};
// Prüft ob NSC anderen NSC sehen kann, ohne dabei den Winkel zu berücksichtigen (nur LineOfSight-Check)
FUNC INT Npc_CanSeeItem (VAR C_NPC npc1, VAR C_ITEM item) { return 0; };
// Prueft ob Npc1 den Gegenstand sehen kann ( ein Ray wird gecastet -> Bitte sparsam einsetzen ) True/False
FUNC INT Npc_CanSeeSource (VAR C_NPC self) { return 0; };
// Checkt, ob NSC die Soundquelle sehen kann True/False
EWAGA MOD .... "echtes Gothic"!
-
OdysseeModTeam
OK. Werde ich mir anschauen. Danke.
-
Research
In Gothic II wurde die Funktion Npc_GetHeightToNpc eingeführt, um den Höhenunterschied zwischen zwei Charakteren zu bestimmten (wird in den Originalskripten mit PERC_DIST_HEIGHT verglichen).
Ansonsten hätten sich etliche Wachen in den Tod gestürzt
"Some components report an error/warning but you have decided to ignore them."
-
Ministerium für Verstand
Du könntest diesem Monster eventuell die Gilde Schaf zuweisen und erst wenn sich der Hero dem Monster auf ???... m genähert hat, dem Monster wieder die richtige Gilde zuweisen. Dann juckt es die Wache überhaupt nicht und sie verrichtet ihren TA.
Monster if (Npc_GetDistToNpc (self, hero) < 1000)
Schaf if (Npc_GetDistToNpc (self, hero) > 1000)
EWAGA MOD .... "echtes Gothic"!
Last edited by Dalai Zoll; 02.07.2012 at 18:09.
-
#define sizeof(x) rand()
 Originally Posted by Dalai Zoll
Du könntest diesem Monster eventuell die Gilde Schaf zuweisen und erst wenn sich der Hero dem Monster auf ???... m genähert hat, dem Monster wieder die richtige Gilde zuweisen. Dann juckt es die Wache überhaupt nicht und sie verrichtet ihren TA.
Und wenn sich der Held dann auf die ???m genähert hat passiert wieder dasselbe. Dabei gewinnt man nicht sehr viel finde ich.
Es spricht nichts dagegen die von NicoDE angesprochene Funktion zu benutzen. Wenn sie in den Perceptions des entsprechenden Npcs, bzw. dessen TA, genutzt wird ist das Problem gelöst.
MfG Gottfried
-
OdysseeModTeam
Danke für eure Hilfe. Ich werde zunächst mal den Vorschlag von NicoDe ausprobieren. Vielleicht lassen sich dadurch manche grundliegende Probleme lösen.
Ansonsten könnte ich es auch so drehen dass das Monster im Keller erst dorthin gespawnt wird, wenn der Spieler dorthin gelangt ist.
-
Ministerium für Verstand
 Originally Posted by Gottfried
Und wenn sich der Held dann auf die ???m genähert hat passiert wieder dasselbe. Dabei gewinnt man nicht sehr viel finde ich.
Es spricht nichts dagegen die von NicoDE angesprochene Funktion zu benutzen. Wenn sie in den Perceptions des entsprechenden Npcs, bzw. dessen TA, genutzt wird ist das Problem gelöst.
MfG Gottfried
Erst muss mal geklärt sein ob sich die Wache und das Monster auf verschiedenen Höhen befinden. Wenn nicht, nutzt die PERC_DIST_HIGH überhaupt nichts, da es keine Höhendistanz gibt. Ich hätte das nicht geschrieben, wenn wir in der Ewaga Mod nicht das selbe Prob gehabt hätten und das anders hätten lösen müssen.
Und wenn der Hero beim Monster ist, ist es schnurz egal, ob die Wache draussen auf das Monster reagiert, da es der Player ja nicht sieht. Allerdings muss man sie annageln! Falls die Türen offenstehen, in der Zeit wenn das Schaf zum Monster wird und wenn man zurückgeht ist das Monster ja entweder tot oder eben wieder Schaf.
Man kann nach Köln auch mit dem Zug fahren, selbst wenn man ein Auto besitzt, wenn du verstehst was ich damit sagen will.
EWAGA MOD .... "echtes Gothic"!
Last edited by Dalai Zoll; 03.07.2012 at 04:35.
-
OdysseeModTeam
Im Grunde taucht dieses Problem ja recht selten auf. Ich vermute jetzt dass es daran liegt dass der Portalraum keine Außenwand hat.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
|
|