爆発について

2件の返信スレッドを表示中
  • 投稿者
    投稿
    • #164407返信
      ほしくず
      参加者

      着弾地点で爆発する投擲物をアドオンで作っています。
      この爆発のダメージをプレイヤーが喰らわないようにしたいのですが、方法はありますでしょうか。
      仮にこの投擲物がプレイヤーに着弾しても爆発は発生し、プレイヤー以外のモブにはダメージが発生してほしいです。

    • #164953返信
      コウクマ
      参加者

      スクリプト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); // タグを外す
              }
          }
      }
      
    • #166821返信
      ほしくず
      参加者

      今気づきました……!
      亀レスですみません……

      教えていただきありがとうございます!
      試してみてまた何かあったらよろしくお願いします!

2件の返信スレッドを表示中
返信先: 爆発について
あなたの情報: