Verlegen von Code aus /players

Was muss man beachten?

Den Idealfall, nämlich nichts, hat man leider in den seltensten Fällen.

Ansonsten kann man sich einige Fragen stellen, die einem helfen, etwas überlegter vorzugehen.

Wird der Code in mehreren Regionen benutzt?

Wenn der Magier in mehreren Regionen Regionsmitarbeiter ist, ist es sehr wahrscheinlich, dass anderen Regionen ebenfalls den Kram aus /players holen.

Greifen andere Magier auf den Code zu?

Unter Umständen ist es möglich, dass auch andere Magier sich die Dateien holen.

Existieren in dem Gebiet NPCs, gegebenenfalls mit Erstkillstupen?

Durch das Verlegen von /players in eine Region können ungewollt Erstkills entstehen, da NPCs aus /players normalerweise nicht stupsen. Allerdings gibt es auch Ausnahmen, welche einzeln genehmigt wurden. Zieht so ein NPC um, müssen die Erstkillstupse vorher umgetragen werden, damit der NPC nicht als neuer Stups angesehen wird. Auch kann es passieren, dass durch den Umzug der NPC nicht mehr stupst, weil er nicht die Bedingungen für einen Erstkillstups erfüllt, aber vorher als Ausnahme unter /players genehmigt war.

Existieren in dem Gebiet Forscherpunkte?

Durch den Umzug wären die Forscherpunkte nicht mehr zu erreichen, deswegen sollte man vorher dies mit dem entsprechenden Erzmagier abklären.

Existieren in dem Gebiet Zaubertränke?

Durch den Umzug wären die Zaubertränke nicht mehr zu erreichen, deswegen sollte man vorher dies mit dem entsprechenden Erzmagier abklären.

Wie geht man vor?

Eine allgemein gültige Vorgehensweise gibt es leider nicht, jeder Umzug ist dummerweise anders. Allerdings gibt es bei jedem Umzug Dinge, die man beachten sollte.

  1. Arbeite in einer unabhängigen, aktuellen Kopie des normalen Homemuds.
  2. Dokumentiere die Änderungen.
  3. Teste ausgiebig.
  4. Kläre mit den Verantwortlichen die FPs, ZTs und EKs ab.
  5. Lade das Ergebnis erst dann ins Mud.

Warum sind diese Punkte wichtig? Wenn man direkt an dem Code in seiner normalen Homemudumgebung arbeitet, kann es passieren, dass ungewollt schon die umgestellten Dateien in das Mud gelangen, z.B. weil ein Bug gefixt wurde und es vergessen wurde, die aktuelle Version aus dem Mud vorher zu laden.

Nutzer eines SCM wie git sind hier im Vorteil, da sie für die Umstellung einfach einen neuen Branch erstellen und in diesem dann die Umstellung vornehmen können. Falls doch eine Datei aus der Region wegen eines Fehlers angefasst werden muss, kann man dann einfach den Branch wechseln, die Änderung vornehmen, commiten und ins Mud laden und dann wieder in den Branch der Testumgebung zurückwechseln. Ansonsten empfiehlt es sich halt, ein weiteres Homemud in einem gesondertem Verzeichnis aufzusetzen. Das man eine aktuelle Kopie der Dateien aus dem Mud nehmen sollte, dürfte wohl klar sein.

Alle wichtigen Schritte, die man bei der Umstellung macht, sollten dokumentiert werden. Auch sollte in den einzelnen Files vermerkt werden, was gemacht wurde. Damit lässt sich dann nachvollziehen, was angepasst wurde.

Hat man den Krempel erstmal umgezogen, so sollte er ausgiebig getestet werden. Dazu muss man natürlich nicht wie ein Idiot durch das Gebiet rennen, es reicht aus, wenn die Dateien ohne Fehler ladbar sind. Um die Dateien zu laden, kann man das xtool benutzen, genauer gesagt den Befehl xforall. Mit xforall /Pfad/zum/gebiet/*.c xload !! lassen sich komplette Verzeichnisse laden.

Natürlich wird das Laden per xforall Fehler bringen. Meistens liegt es daran, dass der Code des Magiers aus anderen, regionsfremden Verzeichnissen Objekte clonen möchte. Entweder ignoriert man das oder holt sich per ftp eben die benötigten Dateien. Es wird auch häufig die Fehlermeldung too_long_eval kommen, da einfach zu viele Dateien gleichzeitig geladen werden. Hier hilft als Abhilfe nur das Laden in Abschnitten, anstatt gleich des kompletten Verzeichnisses.

Lädt der Code, geht es an die Drecksarbeit. Unter Umständen sind nämlich noch in den Dateien harte Verweise auf /players. Diese gilt es zu lokalisieren und zu beseitigen.

Nach dem Verlegen im Homemud muss man das ganze noch in der Region nachziehen. Also die entsprechenden Dateien verschieben bzw. kopieren, gegebenenfalls Headerdateien anpassen um sie auf die neue Umgebung umzustellen etc.

Fallstricke

Problematisch wird das nachträgliche Verlegen von Code aus /players, wenn dieser von fremden Regionen genutzt wird, z.B könnte sich das Gebiet auf der Inseln des Magiers Merlin ebenfalls die Dateien aus /players/merlin/sys/holen. Im schlimmsten Fall klemmt man ungewollt Gebiete in fremden Regionen ab, weil diese durch das Wegmoven der Verzeichnisse unter /players nicht mehr ladbar sind. Natürlich könnte man die Dateien am Urpsrungsort lassen, aber dann hat das Mud immer noch mit dem Wildwuchs unter /players zu kämpfen. Entweder koordiniert man das ganze mit den entsprechenden Regionsmagiern oder noch besser: man bietet ihnen an die Umstellungsarbeit zu übernehmen. Dann muss man ihnen am Ende nur noch die geänderten Dateien zur Verfügung stellen, damit diese eingespielt werden können.

Richtig problematisch wird es, wenn sich andere Magier Krempel aus fremden /players-Verzeichnissen holen. Die sieht man naütrlich nicht auf den ersten Blick, besonders wenn diese nicht in der eigenen Region liegen. Hier benötigt man die Hilfe eines Erzmagiers, der über die komplette Mudlib suchen kann.