Frage:
Gibt es ein einfaches Tool zum Migrieren von Inventar in eine andere Welt für alle Spieler auf einem Vanilla-Server?
dlras2
2011-09-21 23:59:52 UTC
view on stackexchange narkive permalink

Mit all den jüngsten Änderungen in der Biomgeneration habe ich in letzter Zeit viele neue Welten generiert, und sobald 1,9 Treffer erzielt wurden, werde ich es erneut tun.

Wenn ich die Welt auf meinem neu starte Server Ich würde die Inventare aller meiner Spieler in die neue Welt migrieren. Auf diese Weise verlieren Leute, die bereits seit einiger Zeit auf meinem Server spielen, nicht alles und können ihr Gold, ihre Diamanten, Kekse usw. mitbringen, um den Übergang zu erleichtern. Ich bin vorsichtig, wenn ich nur Spielerdaten kopiere, denn wenn es die Spielerposition enthält, besteht eine hohe Wahrscheinlichkeit, dass Spieler an Orten erscheinen, die sie nicht sollten. (Wie auf festem Boden.)

Ich suche also nach einem automatisierten Tool, das ich einmal ausführen kann, bevor sich die Spieler in der neuen Welt anmelden, das das gesamte Spielerinventar und sonst nichts kopiert. Beachten Sie, dass ich nur einen Vanilla-Server betreibe und dies auch weiterhin tun möchte. Wenn dieses Tool nicht vorhanden ist, gibt es eine manuelle Möglichkeit, dies zu tun?

Bearbeiten: Wenn ich eine ausreichend gute Antwort erhalte und jemand weiß, wie Inventar manuell migriert wird, kann ich Vielleicht programmiere ich das Tool selbst und platziere es für alle.

IIRC, Es gibt jetzt eine Ausfallsicherheit, um zu verhindern, dass Menschen in Wänden laichen, sodass es sicher sein sollte, alle Spielerdaten zu kopieren. Ich denke nicht, dass es möglich ist, das Inventar von den restlichen Daten eines Spielers zu trennen, aber Sie könnten einfach jeden zu einem Bot bringen, der sich am Spawnpunkt frisch anschließt.
@John - Nicht in einer Mauer zu laichen ist gut, aber wenn sich Ihre riesige unterirdische Basis über Nacht in ein massives, unbeleuchtetes Höhlensystem - oder mitten in einer Schlucht - verwandeln würde, wären Sie nicht sehr glücklich.
Du fängst von vorne an, also wäre die Basis sowieso weg, oder? Deshalb schlage ich TP-ing vor. Kopieren Sie nicht die Daten einer Person - TP alle an diese Person - kopieren Sie die Daten dieser Person - TP sie an jemanden, der sie gerade TP-bearbeitet hat (und daher spawnt).
@John - Ja, die Basis wäre verschwunden, aber ich möchte nicht, dass Spieler erscheinen, sterben und ihr gesamtes Inventar verlieren. Ich möchte, dass sie wie gewohnt für eine neue Welt erscheinen, aber mit ihren Gegenständen aus ihrem früheren Leben. Die von Ihnen vorgeschlagene TP-Methode funktioniert möglicherweise, ist jedoch für mehr als einige Spieler nicht durchführbar.
Hmm, du hast recht. Ich hatte die Möglichkeit einer großen Anzahl von Spielern nicht in Betracht gezogen. (Re: Sterben: Lassen Sie den Server ruhig, bis das TP-ing abgeschlossen ist.)
@John - Friedlich würde das Problem des Laichens hundert Meter über dem Boden einer Schlucht nicht lösen ...
Fünf antworten:
klaxer
2011-09-23 23:04:12 UTC
view on stackexchange narkive permalink

player.dat ist eine komprimierte Datei. Wenn Sie es entpacken, finden Sie das Feld Pos (Zeichenfolge "Pos" und dann 32 Byte Koordinaten). Sie müssen diese Bytes also ändern.

Ich habe Perl für diesen Zweck verwendet:

process_file.sh

  #! / Bin / bash FILE_NAME_BASE = "$ {1% .dat}" echo "Verarbeitung von $ {FILE_NAME_BASE} ..." mv "$ {FILE_NAME_BASE} .dat" "$ {FILE_NAME_BASE} .gz" gunzip "$ {FILE_NAME_BASE} .gz" perl -pe 's / Pos [\ x {00} - \ x {ff}] {32} / Pos \ x {06} \ x {00} \ x {00} \ x {00} \ x {03} \ x { c0} \ x {88} \ x {c4} \ x {00} \ x {00} \ x {00} \ x {00} \ x {00} \ x {40} \ x {51} \ x { 67} \ x {ae} \ x {14} \ x {80} \ x {00} \ x {00} \ x {c0} \ x {b3} \ x {e4} \ x {80} \ x { 00} \ x {00} \ x {00} \ x {00} \ x {02} \ x {00} \ x {0a} / '< "$ {FILE_NAME_BASE}" > "$ {FILE_NAME_BASE} .out" mv "$ {FILE_NAME_BASE} .out" "$ {FILE_NAME_BASE}" gzip "$ {FILE_NAME_BASE}" mv "$ {FILE_NAME_BASE} .gz" "$ {FILE_NAME_BASE} .dat"  

process_all.sh

  #! / bin / bash find. -name "* .dat" -exec ./process_file.sh \ {\} \; Echo "Fertig."  

Wenn Sie process_all.sh im Ordner world / player ausführen, wird das Feld Pos von geändert Alle Spieler auf 06 00 00 00 03 c0 88 c4 00 00 00 00 40 51 67 ae 14 80 00 00 c0 b3 e4 80 00 00 00 00 02 00 0a (hexadezimal). Natürlich können Sie diese Werte ändern, um Spieler an einen anderen Punkt zu verschieben.

Joe Dovahkiin
2011-09-24 01:18:44 UTC
view on stackexchange narkive permalink

Diese Methode ist etwas unorthodox, aber wenn Sie sie durchziehen können, ist sie fantastisch .

Schritt 1: Lassen Sie alle Ihre Spieler eine Arche bauen. Informieren Sie sie darüber, dass Personen oder Gegenstände, die sich nicht auf der Arche befinden, wenn die Welt untergeht, zurückgelassen werden. Erlauben Sie ihnen, auch ihre Truhen mitzubringen. Falls das Benutzerinventar nicht korrekt kopiert wird, weisen Sie Ihre Anhänger - ich meine die Spieler - an, ihre Habseligkeiten in eine Truhe zu legen.

Schritt 2: Erstellen Sie eine neue Welt mit einem Weltsamen mit einem Ozeanbiom in der Nähe von Laich. Wenn die Idee der 'Arche' nicht aufgeht, erhalten die Spieler eine sichere Landung. Wenn die Arche erfolgreich ist, wird sie den Effekt verstärken.

Schritt 3: Verwenden Sie das Karteneditorprogramm MCEdit, um die gesamte Arche in die neue Welt zu kopieren. Dazu wählen Sie den Bereich aus, exportieren ihn als Schaltplan und importieren ihn in die neue Welt. Wenn Sie die Arche auf Meereshöhe gebaut haben, sollte sie sich nahtlos in jedes Meeresgebiet in der Nähe Ihres Spawns kopieren lassen.

Das ist einfach nur episch ...
James
2011-09-22 02:37:46 UTC
view on stackexchange narkive permalink

Kopieren Sie die Dateien manuell, und dann gibt es ein Befehlszeilentool, mit dem Sie möglicherweise jede Datei durchsuchen und den Spawnpunkt des Spielers ändern sowie diesen Player an diesen Spawnpunkt verschieben können.

Ich habe dieses Tool nicht selbst getestet, aber seine Funktionsliste passt zu Ihrer Situation: http://www.electricmonk.nl/Programmings/MCPlayerEdit

Hoffe das hilft.

Shangz
2011-09-22 16:44:35 UTC
view on stackexchange narkive permalink

In der World / Player-Datei können Sie die .dat-Dateien kopieren und in Ihre neue World Player-Datei einfügen. Auf diese Weise können Sie das Inventar behalten, aber ich bin mir nicht sicher, ob Ihre Spieler beim Spawn erscheinen werden, da ihre letzten Koordinaten aufgezeichnet werden.

Ken
2011-09-22 20:03:46 UTC
view on stackexchange narkive permalink

Wenn Sie ein Bukkit ausführen, können Sie Multiversum und Sternentore verwenden, um Ihre Karten / Welten miteinander zu verknüpfen und (erzählen?) Personen zu ermöglichen, ihre eigenen Sachen zu bewegen.

Das ist die Lösung, die ich verwende, und ich greife nach einem anderen Plugin (ich vergesse den Namen), um Glasblöcke und andere zerbrechliche Objekte so zu ändern, dass sie ihren eigenen Gegenstand fallen lassen, damit Menschen auch Teile ihrer Strukturen bewegen können .

Ich sehe, Sie haben gesagt, Sie betreiben einen Vanilla-Server, aber die Karten sind zwischen Vanilla und Bukkit kompatibel, sodass es sich für Sie möglicherweise lohnt, dies zu tun Verwenden Sie das Bukkit eine Woche lang, damit die Benutzer ihre Gegenstände bewegen können.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...