Свой эффект зелья

Свой эффект зелья

1,976
68
221
AlexSocol добавил(а) новый ресурс:

Свой эффект зелья - Научитесь делать собственные эффекты

Доброго времени суток! о/

В этом туториале я расскажу вам как создать собственный эффект, а также добавить предмет для использования этого зелья.

Расширение слотов:
Для начала, нам лучше бы расширить кол-во ванильных слотов под зелья, так как изначально их всего 32. Если вы уверены, что в сборке с вашим модом больше не будет зелий или наоборот, стоят такие моды как таумкрафт или ботания (вы делаете к ним аддон) - смело пропускайте этот шаг.
Java:
// Код...

Узнать больше об этом ресурсе...
 
Java:
    // Добавляем эвент обновления живого существва
    // Здесь мы проверяем, что обновился игрок и что у него есть наше зелье
    // В случае когда время ещё есть даём креативный полёт, иначе забираем и чистим эффект зелья
    @SubscribeEvent
    public void onEntityUpdate(LivingUpdateEvent e) {
        if (e.entityLiving instanceof EntityPlayer) {
            if (e.entityLiving.getActivePotionEffect(this) != null && e.entityLiving.getActivePotionEffect(this).getDuration() > 0) {
                ((EntityPlayer) e.entityLiving).capabilities.allowFlying =
                ((EntityPlayer) e.entityLiving).capabilities.isFlying = true;
            } else {
                ((EntityPlayer) e.entityLiving).capabilities.allowFlying =
                ((EntityPlayer) e.entityLiving).capabilities.isFlying = false;
            }
        }

Ну и мракобесие, никогда так не делайте. Есть возможность реализовать всё в классе эффекта, тут я расписал как это делать правильно.
 
Последнее редактирование модератором:
Этот эффект флая конфликтовать не будет с другими "источниками" полёта?
 
@Losver, будет с креативом, в других случаях не должно.
@AlexSocol, поправь код и ещё, не всякий "мододел" знает про рефлексию, так что лучше наверное через AT, так хоть на форуме есть туториал от Дахаки.
 
@AlexSocol, не знаю что ты там сделал, но апдейтЛивинг как был так и остался, флай как был конфликтным так и остался.
 
@Ivasik, ты, блин, меня так не пугай!
B1zVi_F__kI.jpg
 
не всякий "мододел" знает про рефлексию
Там уже готовый метод лежит, им достаточно просто его скопировать.
лучше наверное через AT
Да, но чтобы описать это в рамках туториала придётся либо отправлять человека на другую страницу, либо локально копировать половину гайда Дахаки. Ни то, ни то мне особо не понравилось, да и в кач-ве библиотеки AT не прицепить (известными мне методами), а вот рефлексию можно
 
флай как был конфликтным так и остался.
Это для примера же. Конечно, можно было бы создать а-ля список "игроки с полётом", при наложении зелья проверять, был ли у игрока полёт до этого, добавлять его в список, при снимании эффекта убирать флай только если игрока в списке не было, потом удалять из списка...
Или даже просто на модификаторе, если он >0 - allowFlying не менять...
Однако в контексте туториала "как создать зелье" не особо нужно расписывать "как создать идеальное неконфликтное зелье полёта", так как сие слегка out of topic.
 
Эм, тебе достаточно !isCreative сделать, чтобы не конфликтовало с креативным полетом. А всякие там добавления в лист и т.п. лучше оставить на тех кто пилит мод.

как создать зелье
И раз уж это создание зелья, то добавь еще зелье которое можно кинуть.
 
Назад
Сверху