Дроп предмета с моба.

Версия Minecraft
1.7.10

timaxa007

Модератор
5,826
410
651
LivingDropsEvent


Код:
	@SubscribeEvent
	public void addDropItem(LivingDropsEvent event) {
		if (event.entityLiving instanceof EntityPlayer) return;
		event.drops.add(new EntityItem(
				event.entityLiving.worldObj,
				event.entityLiving.posX,
				event.entityLiving.posY,
				event.entityLiving.posZ,
				new ItemStack(MyMod.my_item)
				));
	}
 
timaxa007 написал(а):
LivingDropsEvent


Код:
 @SubscribeEvent
 public void addDropItem(LivingDropsEvent event) {
 if (event.entityLiving instanceof EntityPlayer) return;
 event.drops.add(new EntityItem(
 event.entityLiving.worldObj,
 event.entityLiving.posX,
 event.entityLiving.posY,
 event.entityLiving.posZ,
 new ItemStack(MyMod.my_item)
 ));
 }



Не могли бы расписать что да где, а то я новичок в этом.
 
886
25
153
Vitalik_S написал(а):
Код:
Не могли бы расписать что да где, а то я новичок в этом.
Вот, описал код timaxa007:

Код:
@SubscribeEvent
public void addDropItem(LivingDropsEvent event) {
if (!(event.entityLiving instanceof КлассТвоегоМоба)) return; // Если моб не является нужным, ничего не делать
World world = event.entityLiving.worldObj;    // Получить мир
double x = event.entityLiving.posX;           // и
double y = event.entityLiving.posY;           // координаты
double z = event.entityLiving.posZ;           // для дропа
ItemStack stack = new ItemStack(MyItem);   // Твой предмет
EntityItem item = new EntityItem(world, x, y, z, stack); //Создать сущность предмета
event.drops.add(item); //Добавить эту сущность к дропу
));
}
И да, не забудь зарегистрировать событие.

/Могут быть ошибки/
 
Решение
1,453
19
163
MJaroslav написал(а):
Vitalik_S написал(а):
Код:
Не могли бы расписать что да где, а то я новичок в этом.
Вот, описал код timaxa007:


Код:
if (!(vent.entityLiving instanceof КлассТвоегоМоба)) return; // Если моб не является нужным, ничего не делать
Это должно быть так
Код:
if (!(event.entityLiving instanceof КлассТвоегоМоба)) return; // Если моб не является нужным, ничего не делать
А то могут скопировать а потом писать: АААА АШИБКА НИ РАБОТАИТ!!!!
 

timaxa007

Модератор
5,826
410
651
Потому-что он ошибся. Заменить int на double надо.
 
timaxa007 написал(а):
Потому-что он ошибся. Заменить int на double надо.
Я сам уже догадался, но всё равно спасибо.


Извините что я такой тупой, но как зарегистрировать событие? Я как понял дело в этом, а то у меня всё равно ничего не работает.
 

timaxa007

Модератор
5,826
410
651
Код:
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
MinecraftForge.EVENT_BUS.register(new EventsForge());
}
EventsForge - это класс в котором находиться событие.
 
Сверху