Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc//lfun/SearchPath

SearchPath()
************


FUNKTION
========

   public int SearchPath(string from, string to, int para,
                         closure callback)


DEFINIERT IN
============

   /p/daemon/pathd.c
   


ARGUMENTE
=========

   from     - Der Startpunkt
   to       - Der Endpunkt
   para     - Die Parawelt in der gesucht wird (Normalwelt: 0)
   callback - Closure, die am Ende der Pfadsuche gerufen wird


BESCHREIBUNG
============

   Diese Funktion berechnet - sofern moeglich - den kuerzesten Pfad zwischen
    und  in der (Para-)Welt .



   Die Pfadsuche wird anhand von Daten ueber von Spielern gelaufene Wege
   durchgefuehrt. D.h. Gebiete, die von Spielern nicht (in letzter Zeit mal)
   betreten werden, sind auch dem Pfaddaemon nicht bekannt. Auch kann es
   Gebiete geben, wo zwar gebietsintern Pfade bekannt sind, aber keine Wege
   in den Rest vom MG.

   Da diese Suche im Allgemeinen SEHR aufwendig sein kann, wird sie meistens
   nicht sofort fertig, sondern dauert eine Weile. Wenn sie fertig ist, wird
   die Closure  aufgerufen und ihr die Argumente , ,
   , ,  und  uebergeben. Die Bedeutung
   dieser Argumente ist unten erklaert.

   Eine Suche nach einem Pfad in einer Parawelt fuehrt durch Raeume der
   gewuenschen Parawelt und durch Raeume der Normalwelt.


RUeCKGABEWERT
=============

    1      - Suche wurde gestartet
    2      - Pfad gefunden (und callback gerufen)
   -1      - es laeuft schon ein Suchauftrage fuer die UID des anfragenden
             Objektes
   -2      - es laufen bereits zuviele Suchanfragen
   -3      -  und/oder  sind nicht bekannt



   An  uebergebene Argumente am Ende der Pfadsuche:
        - Startpunkt des Weges (string)
          - Zielpunkt des Weges (string)
        - Parawelt des Weges (int)
       - Kosten des Wege. (int) Je hoeher, desto
                laenger/unguenstiger. 0, wenn kein Pfad gefunden
        - Array mit Raumnamen, die durchlaufen werden (string*)
                0, wenn kein Pfad gefunden
        - Array mit Kommandos zum Ablaufen des Weges (string*)
                0, wenn kein Pfad gefunden


BEMERKUNGEN
===========

   Es ist natuerlich nicht dazu gedacht, Spielern fertige Routen zwischen
   Orten zu geben - bzw. nur in Ausnahmefaellen.
   Pfadabfrgen werden geloggt.

   Die Angabe  sagt grob etwas ueber die Laenge und vor allem ueber die
   "Qualitaet" des Pfades aus. Die steigt bei Paraweltwechseln, wenig
   abgelaufenen Verbindungen zwischen Raeumen oder wenn eine Verbindung kein
   normaler Ausgang ist.

   Die Closure  sollte nicht zuviele Ticks verbrauchen.


BEISPIEL
========

   #include 
   void suchergebnis(string from, string to, int para, int costs, string*
        path, string* cmds) {
        tell_object(find_player("zesstra"), sprintf(
            "Ergebnis Pfadsuche von %s nach %s in Para %d fuer %d:\n %O\n %O\n",
            from, to, para, costs, path, cmds));
   };

   ...
   mixed res=PATHD->SearchPath("/gilden/abenteurer",
                               "/d/ebene/dancer/lucky/room/pova_la3",
                               0, #'suchergebnis);

22.12.2015, Zesstra


zurück zur Übersicht

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.