Homemud
=======

Abhaengigkeiten
---------------

    Um den Treiber mit allen Features, die unsere Mudlib benutzt, zu bauen,
    benoetigt man folgende Pakete (die Namen koennen je nach Distribution
    abweichen):

    libjson0/json-c, libssl, libsqlite3, libpcre3, libxml2, libgcrypt,
    libpcre3, libiconv

    Beachte, dass man auf debianbasierten System auch die entsprechenden
    Entwicklerpackete (`*-dev`) mitinstallieren muss, weil sie die notwendigen
    Header-Dateien der Files enthalten.

Anleitung fuer ein Homemud, unter Linux
---------------------------------------

    Mit den folgenden Schritten installiert man die gegenwaertige mudlib und
    einen Driver der Version LDMUD-3.5.x.

    1. Lade den aktuellen Driver unter https://github.com/ldmud/ldmud herunter.
       Du kannst auch das Repo via git clonen.

    2. Lade die aktuelle Mudlib von
       https://mg.mud.de/gerrit/gitweb?p=mudlib-public.git herunter, entweder
       durch einen Klick auf "snapshot" oder mittels git clonen. Dabei kann
       sich git an unserem selbsterstellten SSL-Zertifikat stoeren, wenn Du
       Dich darum nicht kuemmern willst, nutze die Option
       :code:`-c http.sslVerify=false`.

    3. Gehe in das `src/`-Verzeichnis des drivers

    4. Im `src/`-Verzeichnis, fuehere :code:`./autogen.sh` aus

    5. Im src/-Verzeichnis, passe die Pfade in settings/morgengrauen an, und
       fuehre settings/morgengrauen aus

    6. im src/-Verzeichnis, kompiliere und installiere den Treiber mit
       :code:`make all` und :code:`make install-all`.

    7. Falls noch nicht geschehen, schiebe die Mudlib in den Ordner, den Du in
       `settings/morgengrauen` eingestellt hast

    Nun laesst sich das Homemud mit der installierten ldmud-binary starten.
    Du kannst als Argument noch einen alternativen Port angeben.

    8. Starte das mud mit der installierten ldmud-Binary. Mittels
       :code:`ldmud <port>` kannst Du auch den Port bestimmten, auf welchem
       das Homemud laeuft.

    Optional kannst Du noch den Namen des Mudgottes von Jof auf etwas anderes
    aendern, das geht wie folgt:

.. code-block:: shell

      mv data/save/j/jof.o data/save/t/thomas.o
      mv data/secure/save/j/jof.o data/secure/save/t/thomas.o
      # (beachte den Namen des Unterverzeichnisses, es ist der erste Buchstabe
      # Deines Namens. )
      sed -i 's/jof/thomas/' data/secure/save/t/thomas.o
      mkdir -p players/thomas
      mv players/jof/workroom.c players/thomas/workroom.c

    Nachdem Login muss man nun noch den Workroom anpassen:

.. code-block:: shell

      clone /obj/tools/MGtool
      xcall $me->SetProp(P_START_HOME, "/players/thomas/workroom");
      save


Beispielinstallation
--------------------

.. code-block:: shell

       cd <mudhome>
       git clone https://github.com/ldmud/ldmud.git
       cd ldmud.git/src
       ./autogen.sh
       settings/morgengrauen
       make all && make install-all
       cd <mudhome>
       # hier wurde der bin/ Ordner nicht angepasst, wir verschieben noch die
       # Binary
       mv bin.install/ldmud bin/ldmud
       tar xvzf <mudlib-snapshot.tgz>
       # Alternative
       git clone https://mg.mud.de/gerrit/mudlib-public mudlib
       cd <mudhome>
       cd <mudlib>
       mv data/save/j/jof.o data/save/t/thomas.o
       mv data/secure/save/j/jof.o data/secure/save/t/thomas.o
       # (beachte den Namen des Unterverzeichnisses, es ist der erste Buchstabe
       # Deines Namens. )
       sed -i 's/jof/thomas/' secure/save/t/thomas.o
       mkdir -p players/thomas
       mv players/jof/workroom.c players/thomas/workroom.c
       bin/ldmud
       # oder
       bin/ldmud -m <alternative path to mudlib> <alternative port>

Nachdem Login muss man nun noch den Workroom anpassen:

.. code-block:: shell

      clone /obj/tools/MGtool
      xcall $me->SetProp(P_START_HOME, "/players/thomas/workroom");
      save


Letzte Aenderung: 2018-12-09 von Deaddy (auf Basis von Zesstras engl. Anleitung)
