GameTestでスコアボードをいじる【Minecraft BE】

スコアボードに関連するクラスたち

Scoreboardクラス

公式ドキュメント(Scoreboard Class)
簡単に言えばコマンドの/scoreboard objectivesでできることができるイメージ。
objectたちを管理する感じ。
Worldクラスのproperty。

ScoreboardObjectiveクラス

公式ドキュメント(ScoreboardObjective Class)
簡単に言えばコマンドの/scoreboard playersでできることができるイメージ。
正体はスコアボードのobject。

ScoreboardIdentityクラス

公式ドキュメント(ScoreboardIdentity Class)
スコアボード内でのプレイヤー。
スコアボードにはPlayer、Entity、FakePlayer(プレイヤーやエンティティに紐付けは行わず、自由な名前で登録したもの)の3種類が登録できるため、それらを統一的に扱うためのもの。
イメージ的にはPlayerクラスやEntityクラスと同じだけど、3種類あるものを1つにまとめたものだと考えればok。
実際にここからgetEntity()でEntityクラスが取得できる。

ScoreboardScoreInfoクラス

公式ドキュメント(ScoreboardScoreInfo Class)
ScoreboardObjectiveクラスでgetScores()(=object内のすべてのスコア取得)をしたときに、ScoreboardScoreInfoの配列が返ってくる。
ScoreboardIdentity(プレイヤー)とnumber(スコアの値)のペア。

使用例

import { world } from "@minecraft/server";

//testという名前のオブジェクトを取得
let object_test = world.scoreboard.getObjective("test");
//playerという名前のプレイヤーのスコアを取得
let score = object_test.getScore("player");
//Entityクラスを用いて取得することもできる
let score = object_test.getScore(entity);

//playerという名前のプレイヤーのスコアを1に変更
object_test.setScore("player", 1);
//こちらもEntityクラスでも可
object_test.setScore(entity, 1);

コメント

タイトルとURLをコピーしました