2

プレイヤーの総合的な経験を出力するコードがあります。

問題は、実際のXPが変更されても、出力されるXP値が変更されないことです。たとえば、レベル50,000では、XPは2,147,483,647でした。レベルが4に下がったとき、XP値は同じままでした。

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;
    }
}

実行後にこの値をリセットして、XPを再チェックし、変数を新しい量で更新するにはどうすればよいですか?

4

2 に答える 2

2

Playerオブジェクトから来ているように見えるオブジェクトを更新しないsenderと、古い値が保持されるのでsender、新しいデータで入ってくることを確認します。

于 2012-02-17T01:30:28.957 に答える
1

ExpSkillsを見ると、レベルではなく経験で遊ぶことが道のりのようです。

だから今のところ使用setTotalExperience()getTotalExperience()てください。

すべてが機能するようになったら、レベルのサポートを追加してみてください。レベルを経験に変換し、経験をレベルに変換するコンバーターがどこかにあるのではないでしょうか。そうでない場合は、ここに変換チャートがあります。

于 2012-02-17T02:12:48.063 に答える