
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 "-c http.sslVerify=false".

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

   4. Im *src/*-Verzeichnis, fuehere "./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 "make all" und "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
      "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:

     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:

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


Beispielinstallation
====================

   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:

   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)
