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 "snapchot" 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::

      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::

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


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

    code-block::

       cd <mudhome>
       git clone https://github.com/ldmud/ldmud.git
       cd ldmud-3.5/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>
       git clone https://mg.mud.de/gerrit/mudlib-public
       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::

      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)
