フォーラムへの返信
3件の投稿を表示中 - 1 - 3件目 (全3件中)
- 投稿者投稿
コウクマ
参加者EntityTameableComponentのtamedToPlayerIdのidが自分かどうかを見ればできると思います
const tameable = entity.getComponent(EntityComponentTypes.Tameable) as EntityTameableComponent; if (tameable.tamedToPlayerId === player.id) { }
jsonでは無理かと思います。
world.afterEvents.dataDrivenEntityTriggerで「minecraft:convert_to_drowned」(ドラウンドの例)など返信時のeventを拾って
TameableやnameTagなどを返信後に付けなおせば出来ると思いますコウクマ
参加者https://learn.microsoft.com/ja-jp/minecraft/creator/documents/blockbench?view=minecraft-bedrock-stable
初めてならPCでBlockbenchを入れて、blockプラグインを入れるのがいいですね。
モデルだけでなく、ビヘイビアも自動生成してくれます。コウクマ
参加者スクリプトAPIを使えばできますね。
world.afterEvents.projectileHitBlockとworld.afterEvents.projectileHitEntityから
こんな感じで爆発を発生させつつ、別で自分以外にダメージを与える。async function explosion(projectile:Entity, source:Entity, dimension:Dimension, location:Vector3) { if (projectile.typeId === "minecraft:snowball") { // 爆発を発生させたいアイテムなら(json側では爆発させない) const option = { allowUnderwater: false, // 対中でも爆発するか breaksBlocks: true, // ブロックを破壊するか causesFire: false, // 爆発で火が付くか source: source // 爆発を発生させたのは誰か } as ExplosionOptions; // イベントが発生した場所で、範囲2ブロック分爆発を発生させる const bom = dimension.createExplosion(location, 2, option); if (bom) { // 爆発が発生した場合 source.addTag(source.id); // 爆発物を投げたモブを除外させるためにタグをセット // 条件を付けて爆発した範囲のモブを取る dimension.getEntities({ location: location, // 発生源の位置 excludeFamilies: ["player"], // すべてのプレイヤーを除外したいならこれを入れる excludeTypes: ["item"], // ドロップアイテムを除外 maxDistance: 2, // 発生源から2ブロックの範囲 excludeTags: [source.id] // 投げたモブ自身につけたタグを除外 // 範囲内にいる条件に一致したモブの数だけ実行 }).forEach(entity => { // モブが水中にいる場合は影響を無くす(判定はなくてもOK) if (!entity.isInWater) { // モブに爆発ダメージを与える entity.applyDamage(2, { cause: EntityDamageCause.entityExplosion, damagingEntity: source }); } }); source.removeTag(source.id); // タグを外す } } }
- 投稿者投稿
3件の投稿を表示中 - 1 - 3件目 (全3件中)