Dokumentation zu: match_living(S)

HR Image


FUNKTION:
        varargs mixed match_living(string str, int flag, object room)

ARGUMENTE:
        str  - Kuerzel, nach dem die living_names durchsucht werden sollen
        flag - MATCH_PLAYER, MATCH_NO_DOUBLES, MATCH_OBJS, MATCH_NO_INVIS
               sowie MATCH_PLAYER_FIRST
        room - Raum, der durchsucht werden soll (oder NULL)

BESCHREIBUNG:
        Sucht ein Lebewesen, dessen 'living-name' (siehe set_living_name(E))
        mit str beginnt ('wol' findet Lebewesen 'wolf').

        Sind mehrere Namen moeglich, so wird ein Fehlercode zurueckgegeben
        (Lebewesen 'wolf' und 'wolfi' sind vorhanden, 'wol' ist dann
        nicht eindeutig zuordbar).

        Wird der Name eines Lebewesens genau getroffen, werden keine
        weiteren Lebewesen mehr gesucht ('wolf' findet nur 'wolf' jedoch
        nicht 'wolfi' - es wird also keine Fehlermeldung zurueckgegeben).

        Gibt es mehrere Lebewesen, die 'wolf' heissen (der gesuchte Name
        also mehrfach vergeben ist), so wird kein Fehlercode geliefert.
        Es sei denn, in flag ist MATCH_NO_DOUBLES gesetzt, so dass solche
        Doubles nicht ignoriert werden - es wird dann in einem solchen
        Fall -1 zurueckgegeben.

        Gesetztes MATCH_PLAYER in flag beschraenkt die Suche auf Spieler
        (genauer auf interactive()s).

        Ist MATCH_OBJS gesetzt, werden alle in Frage kommenden Objekte als
        Array zurueckgeliefert. Ein direkter Treffer ist nur dann moeglich,
        wenn es keine Doubles gibt. Wird nichts gefunden, wird ein leeres
        Array zurueckgegeben.

        Ist room gesetzt, so wird nur im Inventury dieses Objektes gesucht;
        automatisch ist dabei immer MATCH_NO_DOUBLES gesetzt.

        Ist MATCH_NO_INVIS gesetzt, wird die Suche so durchgefuehrt, als
        ob Lebewesen mit gesetztem P_INVIS nicht vorhanden waeren.

        Ist MATCH_PLAYER_FIRST gesetzt, so wird zunaechst eine Suche nach
        einem passenden Spieler durchgefuehrt (genauso als ob MATCH_PLAYER
        gesetzt waere). Wird kein passender Spieler gefunden, wird ein
        NPC gesucht, dessen Name muss dann jedoch genau (!) passen.

        Die Defines fuer 'flag' sind in <defines.h> definiert.

RÜCKGABEWERT:
        Der Name des Lebewesens. Er ist zB in find_player(), find_living()
        oder find_livings() verwendbar.
        -1, wenn es mehrere Lebewesen gibt, auf dessen Name str passt
        -2, wenn es kein Lebewesen gibt, auf dessen Name str passt

        Wenn MATCH_OBJ gesetzt ist immer ein Array aus Objekten (oder ein
        leeres Array). Es ist hierbei nicht mehr moeglich Doubletten von
        Objekten mit differierenden Namen zu unterscheiden.

BEISPIELE:
        match_living("wargon");            => "wargon", wenn Wargon eingeloggt
                                              ist.
        match_living("war");               => "wargon", wenn es kein anderes
                                              Lebewesen gibt, dessen Name mit
                                              "war" beginnt.
        match_living("war", MATCH_PLAYER); => "wargon", wenn es zwar einen
                                              NPC namens "wartemal" gibt, aber
                                              keinen anderen Spieler, der mit
                                              "war" beginnt.

SIEHE AUCH:
        find_living(S), find_livings(S), find_player(S), find_netdead(S)
        set_living_name(S), present_living(S)


Start » Magierhandbuch » Docu » Sfun » Match_living Letzte Generierung: 01.05.2021, 16:59
Valid HTML 4.01!