最新版 |
編集中の文章 |
1行目: |
1行目: |
− | {{前提MOD|reqmod="ModLoader及びMinecraftForge"}}
| + | このページは<br/> |
| + | ・ModLoader<br/> |
| + | ・MinecraftForge<br/> |
| + | を使っていることを前提に書かれています。 |
| | | |
− | =ModLoaderのみで追加する方法=
| + | ※Forgeを使わない方法は私は知りません。詳しい人お願いします・・。 |
| | | |
− | ==ソース解説==
| |
− |
| |
− | ===mod_hogearmorクラスを作成===
| |
− | <source lang="java">
| |
− | package net.minecraft.src;
| |
− |
| |
− | import net.minecraft.client.Minecraft;
| |
− |
| |
− | public class mod_hogearmor extends BaseMod
| |
− | {
| |
− | public static Item HogeHelmet;
| |
− | public static Item HogePlate;
| |
− | public static Item HogeLegs;
| |
− | public static Item HogeBoots;
| |
− |
| |
− | public mod_hogearmor()
| |
− | {
| |
− | }
| |
− |
| |
− | public String getVersion()
| |
− | {
| |
− | return "1.1";
| |
− | }
| |
− |
| |
− | public void load()
| |
− | {
| |
− | /*
| |
− | *ItemArmor()内を説明します。
| |
− | *2500~2503:ただのItemIDを指定しているだけです。
| |
− | *EnumHogeArmorMaterial.HOGEは材料のIDです。
| |
− | *今回はEnumHogeArmorMaterialクラスで無駄に定義してありますので、そこから取得しています。
| |
− | *ModLoader.addArmor()でHogeArmorのクラスを参照
| |
− | *その後の0~3は部位の種類を定義しています。
| |
− | */
| |
− | HogeHelmet = new HogeArmor(2500, EnumHogeArmorMaterial.HOGE, ModLoader.AddArmor("HogeArmor"), 0).setItemName("HogeHelmet");
| |
− | HogePlate = new HogeArmor(2501, EnumHogeArmorMaterial.HOGE, ModLoader.AddArmor("HogeArmor"), 1).setItemName("HogePlate");
| |
− | HogeLegs = new HogeArmor(2502, EnumHogeArmorMaterial.HOGE, ModLoader.AddArmor("HogeArmor"), 2).setItemName("HogeLegs");
| |
− | HogeBoots = new HogeArmor(2503, EnumHogeArmorMaterial.HOGE, ModLoader.AddArmor("HogeArmor"), 3).setItemName("HogeBoots");
| |
− | /*
| |
− | *テクスチャを割り当ててるだけです。
| |
− | */
| |
− | HogeHelmet.iconIndex = ModLoader.addOverride("/gui/items.png", "/armor/hogeHelmet.png");
| |
− | ModLoader.AddName(HogeHelmet, "Hoge Helmet");
| |
− | HogePlate.iconIndex = ModLoader.addOverride("/gui/items.png", "/armor/hogeHelmet.png");
| |
− | ModLoader.AddName(HogePlate, "Hoge Plate");
| |
− | HogeLegs.iconIndex = ModLoader.addOverride("/gui/items.png", "/armor/hogelegs.png");
| |
− | ModLoader.AddName(HogeLegs, "Hoge Legs");
| |
− | HogeBoots.iconIndex = ModLoader.addOverride("/gui/items.png", "/aromor/hogeboots.png");
| |
− | ModLoader.AddName(HogeBoots, "Hoge Boots");
| |
− | }
| |
− | }
| |
− | </source>
| |
− |
| |
− | ===HogeArmorクラスを作成===
| |
− | <source lang="java">
| |
− | package net.minecraft.src;
| |
− |
| |
− | public class HogeArmor extends Item
| |
− | {
| |
− | private static final int[] maxDamageArray = {11,16,15,13};
| |
− | public final int armorType;
| |
− | public final int damageReduceAmount;
| |
− | public final int renderIndex;
| |
− | public final EnumHogeArmorMaterial material;
| |
− |
| |
− | /*
| |
− | * Itemクラスからの初期化に加えて、mod_hogearmorからのデータを割り当てているだけです。
| |
− | * 詳細はmod_hogearmorを確認ください。
| |
− | */
| |
− | public HogeArmor(int i, EnumHogeArmorMaterial enumhogaarmormaterial, int j, int k)
| |
− | {
| |
− | super(i);
| |
− | this.material = enumhogaarmormaterial;
| |
− | this.armorType = k;
| |
− | this.renderIndex = j;
| |
− | this.damageReduceAmount = enumhogaarmormaterial.getDamageReductionAmount(k);
| |
− | setMaxDamage(enumhogaarmormaterial.getDurability(k));
| |
− | maxStackSize = 1;
| |
− | }
| |
− |
| |
− | public int getItemEnchantability()
| |
− | {
| |
− | return material.getEnchantability();
| |
− | }
| |
− |
| |
− | public int[] getMaxDamageArray()
| |
− | {
| |
− | return maxDamageArray;
| |
− | }
| |
− | }
| |
− | </source>
| |
− |
| |
− | ===EnumHogeArmorMaterialクラスを作成===
| |
− | 突貫でサンプル的に作ったので変な部分がありますが、参考だけにしてください。<br/>
| |
− | 内容はEnumArmorMaterialクラスと基本変えてないです。<br/>
| |
− | Cloth部分をHOGEにしてちょっと数字弄ってあるだけです。
| |
− | <source lang="java">
| |
− | package net.minecraft.src;
| |
− |
| |
− | public final class EnumHogeArmorMaterial extends Enum
| |
− | {
| |
− | public static final EnumHogeArmorMaterial HOGE;
| |
− | private int maxDamageFactor;
| |
− | private int damageReductionAmountArray[];
| |
− | private int enchantability;
| |
− | private static final EnumHogeArmorMaterial allArmorMaterials[];
| |
− | private static final EnumHogeArmorMaterial $VALUES[];
| |
− |
| |
− | public static EnumHogeArmorMaterial[] values()
| |
− | {
| |
− | return (EnumHogeArmorMaterial[])$VALUES.clone();
| |
− | }
| |
− |
| |
− | public static EnumHogeArmorMaterial valueOf(String s)
| |
− | {
| |
− | return (EnumHogeArmorMaterial)Enum.valueOf(net.minecraft.src.EnumHogeArmorMaterial.class, s);
| |
− | }
| |
− |
| |
− | private EnumHogeArmorMaterial(String s, int i, String s1, int j, int k, int ai[], int l)
| |
− | {
| |
− | super(s, i);
| |
− | maxDamageFactor = k;
| |
− | damageReductionAmountArray = ai;
| |
− | enchantability = l;
| |
− | }
| |
− |
| |
− | public int getDurability(int i)
| |
− | {
| |
− | return ItemArmor.getMaxDamageArray()[i] * maxDamageFactor;
| |
− | }
| |
− |
| |
− | public int getDamageReductionAmount(int i)
| |
− | {
| |
− | return damageReductionAmountArray[i];
| |
− | }
| |
− |
| |
− | public int getEnchantability()
| |
− | {
| |
− | return enchantability;
| |
− | }
| |
− |
| |
− | static
| |
− | {
| |
− | HOGE = new EnumHogeArmorMaterial("HOGE", 0, "HOGE", 4, 33, new int[]
| |
− | {
| |
− | 3, 8, 6, 3
| |
− | }, 10);
| |
− | $VALUES = (new EnumHogeArmorMaterial[]
| |
− | {
| |
− | HOGE
| |
− | });
| |
− | allArmorMaterials = (new EnumHogeArmorMaterial[]
| |
− | {
| |
− | HOGE
| |
− | });
| |
− | }
| |
− | }
| |
− | </source>
| |
− |
| |
− | =MinecraftForgeで追加する方法=
| |
| ==ソース解説== | | ==ソース解説== |
| | | |
202行目: |
45行目: |
| * "Hoge"は材料名です。適当なのでHogeです。 | | * "Hoge"は材料名です。適当なのでHogeです。 |
| * 29の部分は、完全に防具が破壊されるまでのダメージ値です。 | | * 29の部分は、完全に防具が破壊されるまでのダメージ値です。 |
− | * 配列部分は2:Helmet 7:Chestplate 5:legs 3:bootsと防具の防御力を示しています。 | + | * 配列部分は2:Helmet 7:Chestplate 5:legs 3:bootsと防具の種類を示しています。 |
− | * 最後のやつはエンチャント時の補正です。 | + | * 最後のやつはわかりません。知ってる人教えろください。 |
| */ | | */ |
| enumArmorHoge = EnumHelper.addArmorMaterial("Hoge", 29, new int[] {2, 7, 5, 3}, 9); | | enumArmorHoge = EnumHelper.addArmorMaterial("Hoge", 29, new int[] {2, 7, 5, 3}, 9); |
272行目: |
115行目: |
| | | |
| <comments /> | | <comments /> |
− | ----
| |
− | * Forge版、MCPでコンパイルしたらエラーでたぞ --[[特別:投稿記録/119.243.249.66|119.243.249.66]] 2016年9月25日 (日) 16:46 (JST)
| |
− | ----
| |
− | * 1.5~はどうやればいいでしょうか? 新しいtexture定義を使えば何とかなる部分もあります、が SpriteID無限化は使用不可になったようですから 別の方法があるのなら、書いていただけると幸いです 改善点があるのなら、それを教えていただけてもらえるのでも構いません --[[特別:投稿記録/125.53.252.221|125.53.252.221]] 2013年6月3日 (月) 07:46 (JST)
| |
− | ----
| |
− | * 自作モデルを当てたい場合は事前に定義すればいいのでしょうか? --[[特別:投稿記録/101.111.248.161|101.111.248.161]] 2013年6月3日 (月) 02:33 (JST)
| |
− | ----
| |
− | * これってエンチャントできるの? --[[特別:投稿記録/114.198.223.38|114.198.223.38]] 2012年9月4日 (火) 20:21 (JST)
| |
− | ----
| |
− | * Modの画像データはMCPのどこに格納したらいいのですか? --[[特別:投稿記録/115.178.118.163|115.178.118.163]] 2012年7月9日 (月) 19:55 (JST)
| |
− | ----
| |
− | * 何がどう出来なくて、分からないのか一切分からないので答えようがありません。 --[[利用者:Nagisawa|Nagisawa]] 2012年4月10日 (火) 11:13 (JST)
| |
− | ----
| |
− | * ModLoaderのみ版が不完全なんですが…装備のスキンの呼び出し方もわからないし… --[[利用者:Aoisensi|Aoisensi]] 2012年4月9日 (月) 21:50 (JST)
| |
− |
| |
− | [[Category:アイテムの追加|ほうく]] [[category:アイテム]]
| |