Frage

Ich habe einen Code, der die Gesamterfahrung des Spielers ausgibt.

Das Problem ist, dass sich der ausgaberadendische XP -Wert nicht ändert, wenn der tatsächliche XP dies tut. Beispielsweise betrug der XP bei Stufe 50.000 2.147.483.647. Wenn das Level auf 4 sank, blieb der XP -Wert gleich.

if (cmd.getName().equalsIgnoreCase("checkxp")) {
    // If person is null, it's not a player!
    if (person == null) {
        sender.sendMessage("This command can only be used by a player, sorry!");
        return false;
    } else {
        int curxp;
        Player player = (Player) sender;
        curxp = player.getTotalExperience();
        sender.sendMessage("You currently have: " + curxp + " XP!");
        return true;
    }
}

Wie bekomme ich diesen Wert auf Zurücksetzen, nachdem er ausgeführt wurde, sodass er den XP wieder aufrechterhalten und die Variable mit dem neuen Betrag aktualisiert?

War es hilfreich?

Lösung

Wenn man Expkills betrachtet, scheint es der richtige Weg zu sein, mit Erfahrung anstelle von Levels zu spielen.

Also benutze setTotalExperience() und getTotalExperience() zur Zeit.

Sobald Sie alles zum Laufen bringen, versuchen Sie, Unterstützung für Levels zu erhöhen. Vielleicht gibt es irgendwo einen Konverter, der Levels in Erfahrung und Erfahrung in Levels umwandelt? Wenn nicht, hier sind die Conversion -Diagramme.

Andere Tipps

Wenn Sie Ihre nicht aktualisieren Player Objekt, das aussieht, als würde es kommen sender Es wird die alten Werte halten, also überprüfe ich das sender kommt mit neuen Daten herein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top