Как добавить дроп к ванильному блоку с определенным шансом 1.7.10

Starcry

Каменная лига
Сообщения
116
Лучшие ответы
0
Симпатии
4
#1
Версия Minecraft
1.7.10
Подтверждение
Я максимально подробно описал проблему, включая исходный код файлов, краш лог, изображения и другую информацию, которая может помочь пользователям форума решить мой вопрос!
Всем привет.
Я хочу добавить дроп палок с листвы, чтобы дроп палки имел 25%
Я пытался добавить просто дроп без % для любого ванильного блока(для теста), но ничего не вышло. Как захожу в игру, дроп не меняется. А как добавлять дроп с определенным шансом я не знаю вообще.
Объясните как добавлять дроп к ванильному блоку, не затронув его предыдущий дроп(с процентами и без).
Буду очень благодарен!
Вот код, где я попытался просто добавить дроп алмаза с блока земли, но ничего не вышло...:
    @SubscribeEvent
    public void event1(HarvestDropsEvent event){
      if(event.block == Blocks.dirt){
          event.drops.add(new ItemStack(Items.diamond));
      }
    }
 

Agravaine

Алмазная лига
Сообщения
4,412
Лучшие ответы
182
Симпатии
578
#2
Ивент зарегай.
Для шанса нужно добавить проверку:
Java:
if(Math.random() < 0.25D)
0.25 - 25% шанс, 1.0 - 100%.
 

Starcry

Каменная лига
Сообщения
116
Лучшие ответы
0
Симпатии
4
#3
у меня как с шансом не падает из земли алмаз так и без
 

Doc

Золотая лига
Сообщения
2,274
Лучшие ответы
122
Симпатии
288
#4

Starcry

Каменная лига
Сообщения
116
Лучшие ответы
0
Симпатии
4
#5
Какой и как? Я очень только начал делать моды и мало знаю
 

timaxa007

Команда форума
Сообщения
5,475
Лучшие ответы
355
Симпатии
502
#6
YourModMod:
package yourpach;

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.common.MinecraftForge;

@Mod(modid = YourModMod.MODID, name = YourModMod.NAME, version = YourModMod.VERSION)
public class YourModMod {

    public static final String
    MODID = "your_mod",
    NAME = "Your Mod",
    VERSION = "1.0";

    @Mod.Instance(MODID)
    public static YourModMod instance;

    @Mod.EventHandler
    public void init(FMLInitializationEvent event) {
        MinecraftForge.EVENT_BUS.register(new EventsForge());

    }

}
EventsForge:
package yourpach;

import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent;

public class EventsForge {

    @SubscribeEvent
    public void event1(HarvestDropsEvent event){

        if (event.block == Blocks.dirt){
            event.drops.add(new ItemStack(Items.diamond));
        }

        else if (event.block == Blocks.leaves) {
            event.drops.add(new ItemStack(Items.stick));
        }

        else if (event.block == Blocks.leaves2) {
            event.drops.add(new ItemStack(Items.stick));
        }

    }

}
 

Starcry

Каменная лига
Сообщения
116
Лучшие ответы
0
Симпатии
4
#7
Спасибо всем огромное. Оказывается у меня ничего не работало и не добавлялось/убиралось при изменении кода, тк была такая проблема - "Project 'Minecraft' is missing required library: 'C:\Users\admin\Desktop\Minecraft\MCP\forge 1.7\unresolved dependency - forgeBin 1.7.2-10.12.0.1019" У кого она будет, то откройте .classpath любым блокнотом, далее найдите "forgeSrc" in path attribute и переименуйте в "forgeBin"("forgeSrc" in sourcepath attribute переименовывать не надо, только первый "forgeSrc"), далее запустите Eclipse, зайдите заново в .classpath, переименуйти "forgeBin" обратно в "forgeSrc" и все, далее обновляем на CTRL+S Eclipse, ошибки нет...
 
Сверху