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
      Spieler hat den Autoloader eingelagert
    0
      Spieler hat den Autoloader nicht eingelagert odre besitzt keine Truhe
    \-1
      Keine sinnvollen Werte uebergeben
    \-2
      Funktion wurde nicht an der Blueprint aufgerufen

HINWEIS
-------

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


Last modified: 2025-12-10, Bugfix

