提供: Minecraft Modding Wiki
(ページの作成:「 ==モンスタードロップの追加== 既存のmobを倒したときに追加でアイテムドロップさせるサンプルプログラムです。 == AddDrop.j...」) |
細 (→解説) |
||
56行目: | 56行目: | ||
(ただし、単純に上記のサンプルプログラムを爆発に置き換えるだけでは死亡即爆発となりそれっぽくはならないでしょう…) | (ただし、単純に上記のサンプルプログラムを爆発に置き換えるだけでは死亡即爆発となりそれっぽくはならないでしょう…) | ||
− | + | 上記はドロップアイテムの「追加」ですが、ドロップアイテムの「置換」を行いたい場合には、LivingDropsEventイベントをフックして置換することができます。 | |
なお、当然ですがこのような処理は既存のmobの死亡時の動作を変更したい場合に利用すればよく、新規追加mobの場合は単にgetDropItemIdメソッドやdropFewItemsメソッドをオーバーライドすることでドロップアイテムを指定することができます。 | なお、当然ですがこのような処理は既存のmobの死亡時の動作を変更したい場合に利用すればよく、新規追加mobの場合は単にgetDropItemIdメソッドやdropFewItemsメソッドをオーバーライドすることでドロップアイテムを指定することができます。 |
2013年9月10日 (火) 01:20時点における版
モンスタードロップの追加
既存のmobを倒したときに追加でアイテムドロップさせるサンプルプログラムです。
AddDrop.java
package adddrop; import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.event.FMLInitializationEvent; @Mod(modid = AddDrop.modid, name = AddDrop.modid, version = "1.0") public class AddDrop { public static final String modid = "adddrop"; @EventHandler public void init(FMLInitializationEvent event) { MinecraftForge.EVENT_BUS.register(new LivingDeathEventHandler()); } }
LivingDeathEventHandler.java
package adddrop; import net.minecraft.entity.monster.EntityZombie; import net.minecraft.item.Item; import net.minecraftforge.event.ForgeSubscribe; import net.minecraftforge.event.entity.living.LivingDeathEvent; public class LivingDeathEventHandler { @ForgeSubscribe public void onLivingDeathEvent(LivingDeathEvent event) { if(event.entityLiving.worldObj.isRemote) { return; } if(event.entityLiving instanceof EntityZombie) { if(event.entityLiving.worldObj.rand.nextInt(10) == 0) { event.entityLiving.dropItem(Item.bone.itemID, 1); } } } }
解説
LivingDeathEventをフックすることでmobの死亡時に指定の処理を追加することができます。
このイベントを利用すれば、戦隊ヒーローモノのようにmobは死亡時に爆発する、などの効果も実装できます。
(ただし、単純に上記のサンプルプログラムを爆発に置き換えるだけでは死亡即爆発となりそれっぽくはならないでしょう…)
上記はドロップアイテムの「追加」ですが、ドロップアイテムの「置換」を行いたい場合には、LivingDropsEventイベントをフックして置換することができます。
なお、当然ですがこのような処理は既存のmobの死亡時の動作を変更したい場合に利用すればよく、新規追加mobの場合は単にgetDropItemIdメソッドやdropFewItemsメソッドをオーバーライドすることでドロップアイテムを指定することができます。