HasAutoloader()
===============

FUNKTION
--------

    int HasAutoloader(string uuid, string loadname);

DEFINIERT IN
------------

    /d/seher/haeuser/moebel/autoloadertruhe.c

ARGUMENTE
---------

    uuid
      UUID des Spielers, dessen Autoloader durchsucht werden sollen
    loadname
      Ladename des gesuchten Autoloaders

BESCHREIBUNG
------------

    Mit dieser Funktion kann man ueberpruefen, ob ein Spieler einen
    bestimmten Autoloader in seiner Autoloadertruhe eingelagert hat.

RUeCKGABEWERT
-------------

    1
      wenn der Spieler den Autoloader eingelagert hat
    0
      wenn nicht
    \-1
      wenn Unfug uebergeben wurde, der Spieler keine Truhe besitzt oder die
      Funktion nicht in der Blueprint aufgerufen wurde

HINWEIS
-------

    Die Funktion muss in der Blueprint der Autoloadertruhe gerufen
    werden, weil nur diese ueber alle Daten verfuegt.


Last modified: 2023-08-27, Arathorn

