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

Сообщения
10
Лучшие ответы
0
Реакции
0
Версия Minecraft
1.7.10
Как сделать чтобы с ванильного моба падал твой предмет?
 

timaxa007

Модератор
Сообщения
5,590
Лучшие ответы
363
Реакции
556
LivingDropsEvent
[hr]
Код:
	@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)
				));
	}
 
Сообщения
10
Лучшие ответы
0
Реакции
0
timaxa007 написал(а):
LivingDropsEvent
[hr]
Код:
 @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)
 ));
 }
Не могли бы расписать что да где, а то я новичок в этом.
 
Сообщения
844
Лучшие ответы
23
Реакции
133
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,376
Лучшие ответы
19
Реакции
132
MJaroslav написал(а):
Vitalik_S написал(а):
Код:
Не могли бы расписать что да где, а то я новичок в этом.
Вот, описал код timaxa007:


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

timaxa007

Модератор
Сообщения
5,590
Лучшие ответы
363
Реакции
556
Потому-что он ошибся. Заменить int на double надо.
 
Сообщения
10
Лучшие ответы
0
Реакции
0
timaxa007 написал(а):
Потому-что он ошибся. Заменить int на double надо.
Я сам уже догадался, но всё равно спасибо.
[hr]
Извините что я такой тупой, но как зарегистрировать событие? Я как понял дело в этом, а то у меня всё равно ничего не работает.
 

timaxa007

Модератор
Сообщения
5,590
Лучшие ответы
363
Реакции
556
Код:
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
MinecraftForge.EVENT_BUS.register(new EventsForge());
}
EventsForge - это класс в котором находиться событие.
 
Сообщения
10
Лучшие ответы
0
Реакции
0
Спасибо вам всем огромное. Всё работает.
 
Сверху