Portal-Zone Gothic-Zone Gothic II-Zone Gothic 3-Zone Gothic 4-Zone Modifikationen-Zone Download-Zone Foren-Zone RPG-Zone Almanach-Zone Spirit of Gothic

 
 
 

Results 1 to 9 of 9
  1. View Forum Posts #1 Reply With Quote
    OdysseeModTeam blackpirate's Avatar
    Join Date
    Jan 2008
    Location
    Jharkendar
    Posts
    4,198
     
    blackpirate is offline

    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?

    Der Krieg gegen die Orks schien verloren, - da machte sich eine Gruppe von Paladinen auf die Welt zu retten:
    ODYSSEE - IM AUFTRAG DES KÖNIGS



  2. View Forum Posts #2 Reply With Quote
    Ministerium für Verstand Dalai Zoll's Avatar
    Join Date
    Sep 2008
    Location
    Stuttgart
    Posts
    12,966
     
    Dalai Zoll is offline
    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"!

    Team 101 Info über die Projekte und Downloaddatenbank:
    http://www.simple-creators.de/

  3. View Forum Posts #3 Reply With Quote
    OdysseeModTeam blackpirate's Avatar
    Join Date
    Jan 2008
    Location
    Jharkendar
    Posts
    4,198
     
    blackpirate is offline
    OK. Werde ich mir anschauen. Danke.

    Der Krieg gegen die Orks schien verloren, - da machte sich eine Gruppe von Paladinen auf die Welt zu retten:
    ODYSSEE - IM AUFTRAG DES KÖNIGS



  4. View Forum Posts #4 Reply With Quote
    Research NicoDE's Avatar
    Join Date
    Dec 2004
    Posts
    6,602
     
    NicoDE is offline
    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."

  5. View Forum Posts #5 Reply With Quote
    Ministerium für Verstand Dalai Zoll's Avatar
    Join Date
    Sep 2008
    Location
    Stuttgart
    Posts
    12,966
     
    Dalai Zoll is offline
    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"!

    Team 101 Info über die Projekte und Downloaddatenbank:
    http://www.simple-creators.de/
    Last edited by Dalai Zoll; 02.07.2012 at 18:09.

  6. View Forum Posts #6 Reply With Quote
    #define sizeof(x) rand()  Gottfried's Avatar
    Join Date
    Mar 2006
    Location
    Advanced Testchamber #18
    Posts
    2,497
     
    Gottfried is offline
    Quote Originally Posted by Dalai Zoll View Post
    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

  7. View Forum Posts #7 Reply With Quote
    OdysseeModTeam blackpirate's Avatar
    Join Date
    Jan 2008
    Location
    Jharkendar
    Posts
    4,198
     
    blackpirate is offline
    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.

    Der Krieg gegen die Orks schien verloren, - da machte sich eine Gruppe von Paladinen auf die Welt zu retten:
    ODYSSEE - IM AUFTRAG DES KÖNIGS



  8. View Forum Posts #8 Reply With Quote
    Ministerium für Verstand Dalai Zoll's Avatar
    Join Date
    Sep 2008
    Location
    Stuttgart
    Posts
    12,966
     
    Dalai Zoll is offline
    Quote Originally Posted by Gottfried View Post
    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"!

    Team 101 Info über die Projekte und Downloaddatenbank:
    http://www.simple-creators.de/
    Last edited by Dalai Zoll; 03.07.2012 at 04:35.

  9. View Forum Posts #9 Reply With Quote
    OdysseeModTeam blackpirate's Avatar
    Join Date
    Jan 2008
    Location
    Jharkendar
    Posts
    4,198
     
    blackpirate is offline
    Im Grunde taucht dieses Problem ja recht selten auf. Ich vermute jetzt dass es daran liegt dass der Portalraum keine Außenwand hat.

    Der Krieg gegen die Orks schien verloren, - da machte sich eine Gruppe von Paladinen auf die Welt zu retten:
    ODYSSEE - IM AUFTRAG DES KÖNIGS



Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
Impressum | Link Us | intern
World of Gothic © by World of Gothic Team
Gothic, Gothic 2 & Gothic 3 are © by Piranha Bytes & Egmont Interactive & JoWooD Productions AG, all rights reserved worldwide