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 save/j/jof.o save/t/thomas.o
      mv secure/save/j/jof.o 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

    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 save/j/jof.o save/t/thomas.o
       mv secure/save/j/jof.o 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)
