マイクラの配布サイト › フォーラム › 技術相談(統合版) › 【至急】ScriptAPIについて質問
- 投稿者投稿
- バナナ参加者
以下のコードにおいて、ランダムなX,ランダムなZの部分にscripteventで代入したXrandom,Zrandomの値をそれぞれ入れられるようにしたいです。
このコードはプレイヤーと定期的に設定できるランダム座標との距離を測れるようにするもので詰まったときのものです。
import { world, system } from ‘@minecraft/server’;
system.afterEvents.scriptEventReceive.subscribe(ev => {
if(ev.id === “MG:random”) {
const Xrandom = Math.floor(Math.random() * 200000) – 100000
const Zrandom = Math.floor(Math.random() * 200000) – 100000
}
});system.runInterval(() => {
let players = world.getAllPlayers();for (let player of players) {
const ScoreName = “MGDistance”
const SelectPos = [ランダムなX, 100 ,ランダムなZ]
const PlayerPos = player.locationconst score = getScore(player, ScoreName)
if(score == undefined){
player.runCommandAsync(scoreboard players set @s ${ScoreName} 0
)
}const Distance = Math.round(Math.sqrt((SelectPos[0]-PlayerPos.x+0.5)**2+(SelectPos[1]-PlayerPos.y)**2+(SelectPos[2]-PlayerPos.z+0.5)**2))
setScore(player, ScoreName, Distance)}
});function getScore(target, objective){
try {
return world.scoreboard.getObjective(objective).getScore(target.scoreboardIdentity);
} catch {
return null;
}
}function setScore(target, objective, value){
try {
world.scoreboard.getObjective(objective).setScore(target.scoreboardIdentity, value);
} catch {
return target.runCommandAsync(scoreboard players set @s ${objective} ${value}
);
}
} - 餅わらびすと参加者
Xrandom、ZrandomをそれぞれDynamicPropertyに保存し、使いたいところで保存したものを取得すればできます
//XrandomというキーでXrandomを保存する
world.setDynqmicProperty(‘Xrandom’, Xrandom);//Xrandomというキーで保存した値が返ってくる
world.getDynamicProperty(‘Xrandom’); - バナナ参加者
本当にありがとうございます!
助かりました!- 餅わらびすと参加者
いいえー
- 投稿者投稿