質問

プレーヤーの合計体験を出力するコードがあります。

問題は、実際のXPが行われたとしても、XP値IT出力が変更されないことです。たとえば、レベル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を再確認し、変数を新しい金額で更新しますか?

役に立ちましたか?

解決

expskillsを見ると、レベルの代わりに経験で遊ぶことが行く方法のようです。

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

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

他のヒント

更新しない場合 Player それが来ているように見えるオブジェクト sender それは古い値を保持するので、私はそれをチェックします sender 新しいデータが入っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top