提供: Minecraft Modding Wiki
移動先: 案内検索

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 編集中の文章
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:アイテム]]
 

Minecraft Modding Wikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMinecraft Modding Wiki:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート: