【統合版解説】カスタムアイテム #3 エフェクト付与の剣

スポンサーリンク

【統合版解説】カスタム剣 #2 普通の剣 に引き続き、v.1.21.2で使えるカスタム剣を作ります。

前回はカスタムコンポーネントを利用し、耐久値が正しく減る剣を作りました。

今回はさらにアイテムの使用時に、スピードエフェクトが付く剣を作ります。

ビヘイビアパック

Group-39.png

custom_sword_BP/items/speed_sword.json

{
    "format_version": "1.21.10",
    "minecraft:item": {
        "description": {
            "identifier": "saba:speed_sword",
            "menu_category": {
                "category": "Equipment",
                "group": "itemGroup.name.sword"
            }
        },
        "components": {
            "minecraft:display_name": {
                "value": "スピードの剣"
            },
            "minecraft:icon": {
                "textures": {
                    "default": "saba:speed_sword"
                }
            },
            "minecraft:damage": {
                "value": 12
            },
            "minecraft:durability": {
                "max_durability": 1561
            },
            "minecraft:max_stack_size": {
                "value": 1
            },
            "minecraft:hand_equipped": true,
            "minecraft:enchantable": {
                "slot": "sword",
                "value": 10
            },
            "minecraft:can_destroy_in_creative": false,
            "minecraft:digger": {
                "use_efficiency": true,
                "destroy_speeds": [
                    {
                        "block": "minecraft:web",
                        "speed": 15
                    },
                    {
                        "block": "minecraft:bamboo",
                        "speed": 10
                    }
                ]
            },
            "minecraft:interact_button": "スピードアップ", // 「スピードアップ」ボタンを追加する
            "minecraft:cooldown": {
                "category": "speed_sword",
                "duration": 4 // 4秒のクールダウン
            },
            "minecraft:custom_components": [ // カスタムコンポーネント
                "saba:sword_durability",
                "saba:use_speed_up" // 使用時にスピードアップするコンポーネント
            ]
        }
    }
}

custom_sword_BP/scripts/main.js

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

// itemDamageChance() , durabilityDamage() は #2 を参照


// カスタムコンポーネントの登録
world.beforeEvents.worldInitialize.subscribe(ev => {

    // 剣の耐久値減少のアイテムコンポーネントの登録 #2
    ev.itemComponentRegistry.registerCustomComponent("saba:sword_durability", {
        // 採掘時の耐久値減少処理
        onMineBlock: (ev) => { // 採掘したとき
            durabilityDamage(ev.source, ev.itemStack, 2); // 耐久値を2減らす
        },
        // 攻撃時の耐久値減少処理
        onBeforeDurabilityDamage: (ev) => { // 攻撃で耐久値が減少したとき
            if (itemDamageChance(ev.itemStack)) {
                ev.durabilityDamage = 1; // 減少値を1にする
            } else {
                ev.durabilityDamage = 0;
            }
        }
    });

    // スピードアップのカスタムコンポーネントを登録
    ev.itemComponentRegistry.registerCustomComponent("saba:use_speed_up", {
        onUse: (ev) => { // アイテムを使用したとき
            const source = ev.source;
            const itemStack = ev.itemStack;

            // アイテムのクールダウンを開始する
            itemStack.getComponent("cooldown").startCooldown(source);
            // スピードエフェクト(強さ3,パーティクル有) を付与
            source.addEffect("speed", 40, { amplifier: 3, showParticles: true });

            // random.levelup(ピッチ2) を再生
            source.playSound("random.levelup", { pitch: 2 });
            // minecraft:sonic_explosion パーティクルを生成
            source.dimension.spawnParticle("minecraft:sonic_explosion", source.location);
        }
    });
});

リソースパック

Group-41.png

custom_sword_RP/textures/item_texture.json

{
    "resource_pack_name": "custom_sword RP",
    "texture_data": {
        "saba:test_sword": { // #1 テストの剣
            "textures": "textures/items/test_sword"
        },
        "saba:normal_sword": { // #2 普通の剣
            "textures": "textures/items/normal_sword"
        },
        "saba:speed_sword": { // #3 スピードの剣
            "textures": "textures/items/speed_sword"
        }
    }
}

custom_sword_RP/textures/items/speed_sword.png

speed_sword.png

動作確認

・アイテムを使うと、スピードエフェクトが付く

%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-08-21-231439.png

タップ操作では、インタラクトボタンが表示される

image-1-2.jpg

完成品
zip
https://mega.nz/file/lR5XyRaA#x3OXRhXJScC3qwbSlIhdDe-2OhlwznxdtFWf7p-cHnI
mcaddon
https://mega.nz/file/xVxBlTjS#BpKQcSUrx_rfDxpReT73mYgCYLr4MbpO8ikzNMoggPM

※投稿記事に含まれるファイルやリンクにより発生した被害についてクラフターズコロニーは責任を取りません
投稿通報

コメント

コメント通報