[1.6.4]Учебник по моддингу

timaxa007 написал(а):
evan написал(а):
Вопрос, как у пули убрать этот белый квадрат? Пытался брать код от стрелы лука, но не получалось.
Пытался делать как в уроке mcmodding.ru/учебник/, но крашился майн при выстреле
8f649b636dd2bf548f586cf94199df04.png

Просмотр изображения 2014-06-24_22.47.27.png
На серверной стороне это куб, а на клиенской стороне должно рендериться вместо куба.
Код:
RenderingRegistry.registerEntityRenderingHandler(EntityArrowMini.class, new RenderArrowMini());
Заработало :D пасибо)
 
Помогите с материалами для брони.
Сделал по туториалу (хотя тут для 1.6.4, но я запилил для своего 1.5.2) и при компиляции в папке reobf лежат еще 2 файла:

Первый
Код:
static class uq$1
{

    static final int $SwitchMap$net$minecraft$item$EnumArmorMaterial[];

    static 
    {
        $SwitchMap$net$minecraft$item$EnumArmorMaterial = new int[uq.values().length];
        try
        {
            $SwitchMap$net$minecraft$item$EnumArmorMaterial[uq.a.ordinal()] = 1;
        }
        catch(NoSuchFieldError ex) { }
        try
        {
            $SwitchMap$net$minecraft$item$EnumArmorMaterial[uq.b.ordinal()] = 2;
        }
        catch(NoSuchFieldError ex) { }
        try
        {
            $SwitchMap$net$minecraft$item$EnumArmorMaterial[uq.d.ordinal()] = 3;
        }
        catch(NoSuchFieldError ex) { }
        try
        {
            $SwitchMap$net$minecraft$item$EnumArmorMaterial[uq.c.ordinal()] = 4;
        }
        catch(NoSuchFieldError ex) { }
        try
        {
            $SwitchMap$net$minecraft$item$EnumArmorMaterial[uq.e.ordinal()] = 5;
        }
        catch(NoSuchFieldError ex) { }
    }
}
Второй
Код:
public final class uq extends Enum
{

    public static uq[] values()
    {
        return (uq[])i.clone();
    }

    public static uq valueOf(String name)
    {
        return (uq)Enum.valueOf(uq, name);
    }

    private uq(String s, int j, int par3, int par4ArrayOfInteger[], int par5)
    {
        super(s, j);
        customCraftingMaterial = null;
        f = par3;
        g = par4ArrayOfInteger;
        h = par5;
    }

    public int a(int par1)
    {
        return uo.e()[par1] * f;
    }

    public int b(int par1)
    {
        return g[par1];
    }

    public int a()
    {
        return h;
    }

    public int b()
    {
        static class _cls1
        {

            static final int $SwitchMap$net$minecraft$item$EnumArmorMaterial[];

            static 
            {
                $SwitchMap$net$minecraft$item$EnumArmorMaterial = new int[uq.values().length];
                try
                {
                    $SwitchMap$net$minecraft$item$EnumArmorMaterial[uq.a.ordinal()] = 1;
                }
                catch(NoSuchFieldError ex) { }
                try
                {
                    $SwitchMap$net$minecraft$item$EnumArmorMaterial[uq.b.ordinal()] = 2;
                }
                catch(NoSuchFieldError ex) { }
                try
                {
                    $SwitchMap$net$minecraft$item$EnumArmorMaterial[uq.d.ordinal()] = 3;
                }
                catch(NoSuchFieldError ex) { }
                try
                {
                    $SwitchMap$net$minecraft$item$EnumArmorMaterial[uq.c.ordinal()] = 4;
                }
                catch(NoSuchFieldError ex) { }
                try
                {
                    $SwitchMap$net$minecraft$item$EnumArmorMaterial[uq.e.ordinal()] = 5;
                }
                catch(NoSuchFieldError ex) { }
            }
        }

        switch(_cls1..SwitchMap.net.minecraft.item.EnumArmorMaterial[ordinal()])
        {
        case 1: // '\001'
            return wk.aG.cp;

        case 2: // '\002'
            return wk.p.cp;

        case 3: // '\003'
            return wk.q.cp;

        case 4: // '\004'
            return wk.p.cp;

        case 5: // '\005'
            return wk.o.cp;
        }
        return customCraftingMaterial != null ? customCraftingMaterial.cp : 0;
    }

    public static final uq a;
    public static final uq b;
    public static final uq c;
    public static final uq d;
    public static final uq e;
    private int f;
    private int g[];
    private int h;
    public wk customCraftingMaterial;
    private static final uq i[];

    static 
    {
        a = new uq("CLOTH", 0, 5, new int[] {
            1, 3, 2, 1
        }, 15);
        b = new uq("CHAIN", 1, 15, new int[] {
            2, 5, 4, 1
        }, 12);
        c = new uq("IRON", 2, 15, new int[] {
            2, 6, 5, 2
        }, 9);
        d = new uq("GOLD", 3, 7, new int[] {
            2, 5, 3, 1
        }, 25);
        e = new uq("DIAMOND", 4, 33, new int[] {
            3, 8, 6, 3
        }, 10);
        i = (new uq[] {
            a, b, c, d, e
        });
    }
}

Вот к примеру как создал материалы:


Код:
public static EnumArmorMaterial STEEL = EnumHelper.addArmorMaterial("STEEL", 35, new int[] {3, 7, 6, 2}, 12);
public static EnumArmorMaterial DRAGON = EnumHelper.addArmorMaterial("DRAGON", 40, new int[] {3, 8, 6, 3}, 20);

public static final Item steelHelmet = new SteelArmor(2195, STEEL, 0, 0).setCreativeTab(CreativeTabs.tabCombat).setUnlocalizedName("steelHelmet");
public static final Item steelPlate = new SteelArmor(2196, STEEL, 1, 0).setCreativeTab(CreativeTabs.tabCombat).setUnlocalizedName("steelPlate");
public static final Item steelLeggins = new SteelArmor(2197, STEEL, 2, 0).setCreativeTab(CreativeTabs.tabCombat).setUnlocalizedName("steelLeggins");
public static final Item steelBoots = new SteelArmor(2198, STEEL, 3, 0).setCreativeTab(CreativeTabs.tabCombat).setUnlocalizedName("steelBoots");
    
public static final Item dragonHelmet = new DragonArmor(2280, DRAGON, 0, 0).setCreativeTab(CreativeTabs.tabCombat).setUnlocalizedName("dragonHelmet");
public static final Item dragonPlate = new DragonArmor(2281, DRAGON, 1, 0).setCreativeTab(CreativeTabs.tabCombat).setUnlocalizedName("dragonPlate");
public static final Item dragonLeggins = new DragonArmor(2282, DRAGON, 2, 0).setCreativeTab(CreativeTabs.tabCombat).setUnlocalizedName("dragonLeggins");
public static final Item dragonBoots = new DragonArmor(2283, DRAGON, 3, 0).setCreativeTab(CreativeTabs.tabCombat).setUnlocalizedName("dragonBoots");


В файле брони:

Код:
public class SteelArmor extends ItemArmor implements IArmorTextureProvider
{
    public SteelArmor(int par1, EnumArmorMaterial par2EnumArmorMaterial, int par3, int par4)
    {
        super(par1, par2EnumArmorMaterial, par3, par4);
        this.setCreativeTab(CreativeTabs.tabCombat);
    }

На что мой эклипс ругается и как это исправить?
 
m4Name
1. Отдельную тему в подФоруме Вопросы не как не можешь создать.
2.
m4Name написал(а):
На что мой эклипс ругается и как это исправить?
А с чего ты взял, что он у тебя ругается?
 
timaxa007, с того, что черный экран выдает при загрузке с моим модом.
 
В классе BlasterBullet (У меня он TeslaBullet)
Ругается на:
if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).func_96122_a(entityplayer))
                {
                    movingobjectposition = null;
                }
            }

Короче на func_96122_a.

И ещё на
     else
        {
            ++this.ticksInAir;
            Vec3 vec3 = this.worldObj.getWorldVec3Pool().getVecFromPool(this.posX, this.posY, this.posZ);
            Vec3 vec31 = this.worldObj.getWorldVec3Pool().getVecFromPool(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ);
            MovingObjectPosition movingobjectposition = this.worldObj.rayTraceBlocks_do_do(vec3, vec31, false, true);
            vec3 = this.worldObj.getWorldVec3Pool().getVecFromPool(this.posX, this.posY, this.posZ);
            vec31 = this.worldObj.getWorldVec3Pool().getVecFromPool(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ);

            if (movingobjectposition != null)
            {
                vec31 = this.worldObj.getWorldVec3Pool().getVecFromPool(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord);
            }

            Entity entity = null;
            List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D));
            double d0 = 0.0D;
            int l;
            float f1;

То есть на это:
this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D));

Что делать?
Спасибо.
 
Majestic написал(а):
func_96122_a замени на canAttackPlayer.
А что делать с
Код:
this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D));?
 
Ты зачем стащил мою подпись?

Она подходит только тем, у кого ранг коммунист.
 
Где меч ошибка 
Код:
public static EnumToolMaterial BATTOOLMATERIAL = EnumHelper.addToolMaterial(“BAT”, 4, 150, 5, 0, 10);

5 это не количество отнимаемых сердечек, а эффективность.
0 это урон, НО! 0 по умолчанию это 4 урона, поэтому рассчитывая урон нужно учитывать этот фактор.
Кто не верит вот код в фордже 1.6.4
Код:
    public static EnumToolMaterial addToolMaterial(String name, int harvestLevel, int maxUses, float efficiency, float damage, int enchantability)
    {
        return addEnum(EnumToolMaterial.class, name, harvestLevel, maxUses, efficiency, damage, enchantability);
    }

Правда, что значит harvestLevel я так и не понял.
 
Шмугл.harvestLevel - уровень инструмента, минимальный для того, чтоб блок дропался.
 
Вопрос, как добавить рецепт на починку в наковальню?
 
На мой взгляд, лучше  в графе "Скачайте Eclipse" указывать, что можно использовать и другие среды разработки. Просто сегодня, придя с работы, увидел как брат скачивает Eclipse ( при том, что у меня стоит три версии IntelliJ IDEA (мне она больше нравится) ). Когда я сказал, что у меня уже есть среда разработки и что мне Eclipse нахрен не нужен, он заявил, что на сайте сказали именно Eclipse, а я нифига не разбираюсь в программировании (видимо, зря я четыре года Java изучал). Вот для таких вот балбесов, лучше это писать. А вообще, статья неплохая. Автор молодец! Продолжай просвещать "ламеров"=D
 
Dragon2488 написал(а):
Что, правда? А если попробовать починить свой меч или броню, неважно с помощью материала, из которого делался этот предмет? Так тоже не сработает?
 
А что значит "добавить рецепт на починку в наковальню"? Что-то туплю...  Может,  получится что-нибудь придумать
 
TheNord, это значит, человек хочет добавить ремонт своего айтема в обычную ванильную наковальню. Тобишь, у него есть какой-нибудь платиновый предмет и платиновая руда. Чтобы починить предмет, надо положить его в наковальню, во второй слот положить платиновых слитков и заплатить несколько уровней опыта, чтобы починить этот айтем. Вот он спрашивает, как это сделать (мне тоже интересно).
 
Никак.
[merge_posts_bbcode]Добавлено: 23.07.2014 19:07:04[/merge_posts_bbcode]

Если не пилить свой контейнер и свою гуишку наковальни, и заменять дефольтную на эту при открытии.
 
Назад
Сверху