1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

[Моддинг|Помогите] MCreator и изменение кода

Тема в разделе "Оффтопик", создана пользователем countersem, 9 сен 2013.

  1. Автор темы
    countersem

    countersem Активный участник Пользователь

    Баллы:
    68
    Здравствуйте. Если здесь есть люди, знающие java, то я бы хотел обратиться к вам за помощью.

    Создал предмет в программе MCreator, хотел сделать что то типо автомат.
    Получившийся код:
    Код:
    package net.minecraft.src;
     
    import cpw.*;
    import cpw.mods.*;
    import cpw.mods.fml.*;
    import cpw.mods.fml.client.*;
    import cpw.mods.fml.client.modloader.*;
    import cpw.mods.fml.client.registry.*;
    import cpw.mods.fml.common.*;
    import cpw.mods.fml.common.asm.*;
    import cpw.mods.fml.common.asm.transformers.*;
    import cpw.mods.fml.common.discovery.*;
    import cpw.mods.fml.common.discovery.asm.*;
    import cpw.mods.fml.common.event.*;
    import cpw.mods.fml.common.functions.*;
    import cpw.mods.fml.common.modloader.*;
    import cpw.mods.fml.common.network.*;
    import cpw.mods.fml.common.registry.*;
    import cpw.mods.fml.common.toposort.*;
    import cpw.mods.fml.common.versioning.*;
    import cpw.mods.fml.relauncher.*;
    import cpw.mods.fml.server.*;
    import ibxm.*;
    import net.*;
    import net.minecraft.*;
    import net.minecraft.block.*;
    import net.minecraft.block.material.*;
    import net.minecraft.client.*;
    import net.minecraft.client.audio.*;
    import net.minecraft.client.entity.*;
    import net.minecraft.client.gui.*;
    import net.minecraft.client.gui.achievement.*;
    import net.minecraft.client.gui.inventory.*;
    import net.minecraft.client.model.*;
    import net.minecraft.client.multiplayer.*;
    import net.minecraft.client.particle.*;
    import net.minecraft.client.renderer.*;
    import net.minecraft.client.renderer.culling.*;
    import net.minecraft.client.renderer.entity.*;
    import net.minecraft.client.renderer.tileentity.*;
    import net.minecraft.client.settings.*;
    import net.minecraft.client.texturepacks.*;
    import net.minecraft.command.*;
    import net.minecraft.crash.*;
    import net.minecraft.creativetab.*;
    import net.minecraft.dispenser.*;
    import net.minecraft.enchantment.*;
    import net.minecraft.entity.*;
    import net.minecraft.entity.ai.*;
    import net.minecraft.entity.boss.*;
    import net.minecraft.entity.effect.*;
    import net.minecraft.entity.item.*;
    import net.minecraft.entity.monster.*;
    import net.minecraft.entity.passive.*;
    import net.minecraft.entity.player.*;
    import net.minecraft.entity.projectile.*;
    import net.minecraft.inventory.*;
    import net.minecraft.item.*;
    import net.minecraft.item.crafting.*;
    import net.minecraft.nbt.*;
    import net.minecraft.network.*;
    import net.minecraft.network.packet.*;
    import net.minecraft.network.rcon.*;
    import net.minecraft.pathfinding.*;
    import net.minecraft.potion.*;
    import net.minecraft.profiler.*;
    import net.minecraft.server.*;
    import net.minecraft.server.dedicated.*;
    import net.minecraft.server.gui.*;
    import net.minecraft.server.integrated.*;
    import net.minecraft.server.management.*;
    import net.minecraft.src.*;
    import net.minecraft.stats.*;
    import net.minecraft.tileentity.*;
    import net.minecraft.util.*;
    import net.minecraft.village.*;
    import net.minecraft.world.*;
    import net.minecraft.world.biome.*;
    import net.minecraft.world.chunk.*;
    import net.minecraft.world.chunk.storage.*;
    import net.minecraft.world.demo.*;
    import net.minecraft.world.gen.*;
    import net.minecraft.world.gen.feature.*;
    import net.minecraft.world.gen.layer.*;
    import net.minecraft.world.gen.structure.*;
    import net.minecraft.world.storage.*;
    import net.minecraftforge.*;
    import net.minecraftforge.classloading.*;
    import net.minecraftforge.client.*;
    import net.minecraftforge.client.event.*;
    import net.minecraftforge.client.event.sound.*;
    import net.minecraftforge.common.*;
    import net.minecraftforge.event.*;
    import net.minecraftforge.event.entity.*;
    import net.minecraftforge.event.entity.item.*;
    import net.minecraftforge.event.entity.living.*;
    import net.minecraftforge.event.entity.minecart.*;
    import net.minecraftforge.event.entity.player.*;
    import net.minecraftforge.event.terraingen.*;
    import net.minecraftforge.event.world.*;
    import net.minecraftforge.liquids.*;
    import net.minecraftforge.oredict.*;
    import net.minecraftforge.transformers.*;
    import paulscode.*;
    import paulscode.sound.*;
    import paulscode.sound.codecs.*;
     
    import java.util.Random;
     
    public class mcreator_ak extends BaseMod{
     
    public mcreator_ak(){}
     
    public static Item block;public void load(){
    ModLoader.addRecipe(new ItemStack(block, 1), new Object[]{
        "012", "345", "678", Character.valueOf('0'), new ItemStack(Item.ingotIron, 1), Character.valueOf('1'), new ItemStack(Item.ingotIron, 1), Character.valueOf('2'), new ItemStack(Item.ingotIron, 1), Character.valueOf('3'), new ItemStack(Block.stone, 1), Character.valueOf('4'), new ItemStack(Block.stone, 1), Character.valueOf('5'), new ItemStack(Item.ingotGold, 1), Character.valueOf('6'), new ItemStack(Block.planks, 1), Character.valueOf('7'), new ItemStack(Block.planks, 1), Character.valueOf('8'), new ItemStack(Item.ingotGold, 1),
    });ModLoader.addName(block, "AK-47");}
    public String getVersion(){
    return "1.0";
    }
     
    static{
    block = (new Itemak(153));
     
    }
     
    static class Itemak extends Item{
     
    public Itemak(int par1){
    super(par1);
    setMaxDamage(0);
    maxStackSize = 1;
    setUnlocalizedName("ak47");setCreativeTab(CreativeTabs.tabCombat);
    }
    public int getItemEnchantability()
    {
        return 0;
    }
    public int getMaxItemUseDuration(ItemStack par1ItemStack)
    {
        return 0;
    }
    public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block)
    {
        return 1.0F;
    }
    public int getDamageVsEntity(Entity par1Entity)
    {
        return 0;
    }
    public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entity){
    float var4 = 1.0F;
    int i = (int)(entity.prevPosX + (entity.posX - entity.prevPosX) * (double)var4);
    int j = (int)(entity.prevPosY + (entity.posY - entity.prevPosY) * (double)var4 + 1.62D - (double)entity.yOffset);
    int k = (int)(entity.prevPosZ + (entity.posZ - entity.prevPosZ) * (double)var4);
     
    world.setBlock(i, j, k, Block.fence.blockID);
    return itemstack;
    }
    public boolean doesContainerItemLeaveCraftingGrid(ItemStack par1ItemStack)
    {
        return true;
    }
     
     
     
     
    }}
    
    В итоге получилось: Если нажать пкм с моим автоматом в руке, то появляется блок забора :/

    --------------------------

    Что я хочу осуществить: При нажатии ПКМ с автоматом в руке, происходит выстрел (летит какой нибудь предмет, при попадании существо наносит этому существу урон). Еще желательно чтобы можно было настроить скорость стрельбы, дальность, скорость самой "пули", разброс, и естественно, урон.
    Так то я еще хотел бы чтобы камера от выстрела поднималась, ну типо отдача от автомата.
    Но пока что мне хотя бы чтобы из автомата пули вылетали))

    Если что то непонятно, пишите в этой теме, я поясню свою идею.

    ОГРОМНЕЙШЕЕ СПАСИБО ЗАРАНЕЕ! Очень хочу осуществить свою идею! Надеюсь, найдутся настоящие знатоки Java!
     
    I-Am-Black-Overlord нравится это.
  2. AZoN

    AZoN Старожил Пользователь

    Баллы:
    123
    Код полностью совпадает с твоим описанием. Ты создал предмет с именем "block"(это, к слову, гениально) и назначил на него событие при клике правой кнопкой мыши ставить на место игрока(мб рядом с ним) блок с идом забора.
     
  3. Автор темы
    countersem

    countersem Активный участник Пользователь

    Баллы:
    68
    Да, но я же хочу сделать чтобы вылетала ентити какая нибудь, наносящая урон всему живому.
     
    Goldenix нравится это.
  4. AZoN

    AZoN Старожил Пользователь

    Баллы:
    123
    Немного учим Java. Берем код какого-нибудь мода с оружием и делаем по аналогии. Займет всего лишь пару месяцев.
     
  5. agentik007

    agentik007 Старожил Пользователь

    Баллы:
    153
    Имя в Minecraft:
    agentik007
    Самый простой способ, смотрим код лука и делаем аналог
     
    Eptuy и countersem нравится это.

Поделиться этой страницей