Несколько вопросов нуждающиеся в помощи!

Версия Minecraft
1.5.2
21
1
Привет всем! Я давно уже наблюдаю этот форум и он мне очень помогает!) Но немного полазив тут я не нашел ответы на некоторые вопросы:

Вопрос 1:
Я хочу сделать что-то типа подарка и мне нужно при нажатии ПКМ мой итем заменялся на рандомный предмет которые имеется в списке предметов.
Помощь заключается: мне нужно подсказать как можно заменять предмет. На данный момент я смог сделать только что при ПКМ по блоку итем исчезает из инвента!
Вопрос 2:
Я решил создать посох или бур(пока текстуру не решился делать) но делать его от энергии из ic2 не оч мне по душе(. А нужно так что когда прочность тратится эта энергия восстанавливалась!
Помощь заключается: Мне нужно подсказать как это можно реализовать!


Простите что отнимаю ваше время!
 
Последнее редактирование:
1,976
68
220
1. В твой метод ПКМ предмета что-то вроде return new ItemStack (PresentsList.randomItem(), 1);
2. Делаешь свою систему энергии, блок-заряжалку со слотом для бура и методы зарядки/разрядки в предмете и блоке. Если плохо знаешь моддинг - даже не берись за провода - оптимизировать их ой как сложно.
 
21
1
1. В твой метод ПКМ предмета что-то вроде return new ItemStack (PresentsList.randomItem(), 1);
2. Делаешь свою систему энергии, блок-заряжалку со слотом для бура и методы зарядки/разрядки в предмете и блоке. Если плохо знаешь моддинг - даже не берись за провода - оптимизировать их ой как сложно.
Понимаешь что мне не нужен блок для зарядки, а нужно что-бы прочность сама восстанавливалась. Типа 1 тик = 1 прочности!
А за 1 вопрос Спасибо!
 

Eifel

Модератор
1,623
78
608
Сделай НБТ для этого предмета. Сохраняй туда какое хочешь значение прочности и отнимай когда что-то делается. Когда 0 то бур не работает. А когда есть нужные условия, то прибавляешь значение...
 
5,018
47
783
Предвижу следующий вопрос - я не знаю что такое нбт, что это?)
 
21
1
Предвижу следующий вопрос - я не знаю что такое нбт, что это?)
Это же такая переменная которая есть в той же кирке например: если б небыло NBT то прочность у этой кирки была бы на сервере у всех одинаковая.. Это так? прост я так это понял)
 
21
1
Сделай НБТ для этого предмета. Сохраняй туда какое хочешь значение прочности и отнимай когда что-то делается. Когда 0 то бур не работает. А когда есть нужные условия, то прибавляешь значение...
Спасибо большое! Благо есть такие люди которые в силах помочь мне(y)
 
21
1
1. В твой метод ПКМ предмета что-то вроде return new ItemStack (PresentsList.randomItem(), 1);
2. Делаешь свою систему энергии, блок-заряжалку со слотом для бура и методы зарядки/разрядки в предмете и блоке. Если плохо знаешь моддинг - даже не берись за провода - оптимизировать их ой как сложно.
Получилось вот так
Java:
@ForgeSubscribe
       public ItemStack onItemRightClick( ItemStack par1ItemStack, World par2World) {
        if(par2World.isRemote) {
             return par1ItemStack ;
          }     
             --par1ItemStack.stackSize;
          return new ItemStack (Item.emerald, 1);
       }
Но если в руке есть больше 1 итема то он превращает сразу большое кол-во, а мне нужно что-бы когда в руке 64 предмета то он их преобразовывал в ресурсы по 1, а не сразу по 64!
Как реализовать проверку?
 
21
1
Java:
player.inventory.addItemStackToInventory(new_item);
но мне больше нравиться дропом
Java:
EntityItem drop = new EntityItem(player.worldObj, player.posX, player.posY + 1.0D, player.posZ, currentitem);
    player.worldObj.spawnEntityInWorld(drop);
Спасибо!!!! А можешь сказать (если не секрет) за скок времени на обучился моддингу? И где ты учил? Прост интересно)
 
21
1
Ну... как-то так)
Java:
public class Priz extends Item {
    
    
      Random ranitem = new Random();
    Item itn[] = {emerald, diamond, ingotGold };
    
      
    public Priz(int par1) {
        super(par1);
    super.maxStackSize = 16;
    }

    @ForgeSubscribe
       public ItemStack onItemRightClick( ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) {
        if(par2World.isRemote) {
             return par1ItemStack ;
          }     
             --par1ItemStack.stackSize;
            
            
            EntityItem drop = new EntityItem(par3EntityPlayer.worldObj, par3EntityPlayer.posX, par3EntityPlayer.posY + 2.0D, par3EntityPlayer.posZ, new ItemStack(itn[ranitem.nextInt(3)]));
             par3EntityPlayer.worldObj.spawnEntityInWorld(drop);
            
          return par1ItemStack ;
       }
    
    
    

    }
 
344
1
47
Хм спасибо) Сейчас реализую! Как я сразу к этому не додумался это же и проще и компактнее)
С всеми бывает) Я иногда могу написать велосипед, а потом понимаю, что это можно было реализовать другим путем, в 6-70 раз короче. :ROFLMAO:
 
Сверху