Свои эффекты

Как делать свои эффекты?
P.S. Если не сложно, пришлите пожалуйста пример кода.
 
Если ты имеешь в виду эффекты по типу молния, дождь, то:
net.minecraft.entity.effect


Если частицы, то:
net.minecraft.client.particle
 
Я имею в виду, не частицы и погоду, а простые эффекты, по типу отравления или моментального урона.
Я заглядывал в net.minecraft.potions/PotionsHealth. Там нашёл код:
Код:
package net.minecraft.potion;

public class PotionHealth extends Potion
{
    public PotionHealth(int par1, boolean par2, int par3)
    {
        super(par1, par2, par3);
    }

    /**
     * Returns true if the potion has an instant effect instead of a continuous one (eg Harming)
     */
    public boolean isInstant()
    {
        return true;
    }

    /**
     * checks if Potion effect is ready to be applied this tick.
     */
    public boolean isReady(int par1, int par2)
    {
        return par1 >= 1;
    }
}

Но мне не понятно, какая строка отвечает за осуществление действия.
Так же я не знаю, что писать в главный класс. 
Я пытался писать public static Potion %ЭффектНейм%, public static Effect %ЭффектНейм% - оно выдаёт ошибку.
 
MaximPixel написал(а):
Если ты имеешь в виду эффекты по типу молния, дождь, то:
net.minecraft.entity.effect


Если частицы, то:
net.minecraft.client.particle
Ахахахах, like.
 
MaximPixel написал(а):
svk2140 написал(а):
MaximPixel написал(а):
Если ты имеешь в виду эффекты по типу молния, дождь, то:
net.minecraft.entity.effect


Если частицы, то:
net.minecraft.client.particle
Ахахахах, like.
Он не уточнил какие эффекты
Просто очевидно что нубик будет спрашивать про самые банальные эффекты, а ты перечислил все кроме них - меня это рассмешило => like
[merge_posts_bbcode]Добавлено: 22.05.2016 19:30:34[/merge_posts_bbcode]

Mercen написал(а):
Я имею в виду, не частицы и погоду, а простые эффекты, по типу отравления или моментального урона.
Я заглядывал в net.minecraft.potions/PotionsHealth. Там нашёл код:
Код:
package net.minecraft.potion;

public class PotionHealth extends Potion
{
    public PotionHealth(int par1, boolean par2, int par3)
    {
        super(par1, par2, par3);
    }

    /**
     * Returns true if the potion has an instant effect instead of a continuous one (eg Harming)
     */
    public boolean isInstant()
    {
        return true;
    }

    /**
     * checks if Potion effect is ready to be applied this tick.
     */
    public boolean isReady(int par1, int par2)
    {
        return par1 >= 1;
    }
}

Но мне не понятно, какая строка отвечает за осуществление действия.
Так же я не знаю, что писать в главный класс. 
Я пытался писать public static Potion %ЭффектНейм%, public static Effect %ЭффектНейм% - оно выдаёт ошибку.
Я лично не знаю, но так-как никто не отвечает, сделаю предположение:
Скорей всего тебе самому надо проверять активен ли твой эффект откуда тебе удобно. (Это я думаю очевидно должно быть)
 
Глав. Класс:
Код:
public static Potion flight;

/**
 * ID - номер эффекта. В майне доступно любое число из {24; 31}
 * boolean - плохое ли зелье. Да (true) или Нет (false)
 * color - цвет, их смотри в гугле; задавать, например, так: 0xf91a76
 */
myPotion = new FlightPotion(ID, boolean, color);

Класс зелья
Код:
public class FlightPotion extends Potion {
    public FlightPotion (int id, boolean isBad, int i) {
        super(id, isBad, i);
        setPotionName("Flight Potion");
        liquidColor = i;
    }
}

Дальше где хочешь пиши его наложение
Код:
player.addPotionEffect(new PotionEffect(Main.flight.id, время, сила));

И проверяешь, где нужно. Допустим, в Серверном тикхэндлере:
Код:
if (player.isPotionActive(Main.flight)) {
    player.capabilities.allowFlying = true;
}

Ну как-то так :D
[merge_posts_bbcode]Добавлено: 23.05.2016 19:13:40[/merge_posts_bbcode]

P.S. Я не знаю, как зарегать больше 32х зелий. Если напишешь 32 - кинет ошибку ArrayOutOfBounds
 
AlexSocol написал(а):
Глав. Класс:
Код:
public static Potion flight;

/**
 * ID - номер эффекта. В майне доступно любое число из {24; 31}
 * boolean - плохое ли зелье. Да (true) или Нет (false)
 * color - цвет, их смотри в гугле; задавать, например, так: 0xf91a76
 */
myPotion = new FlightPotion(ID, boolean, color);

Класс зелья
Код:
public class FlightPotion extends Potion {
    public FlightPotion (int id, boolean isBad, int i) {
        super(id, isBad, i);
        setPotionName("Flight Potion");
        liquidColor = i;
    }
}

Дальше где хочешь пиши его наложение
Код:
player.addPotionEffect(new PotionEffect(Main.flight.id, время, сила));

И проверяешь, где нужно. Допустим, в Серверном тикхэндлере:
Код:
if (player.isPotionActive(Main.flight)) {
    player.capabilities.allowFlying = true;
}

Ну как-то так :D
[merge_posts_bbcode]Добавлено: 23.05.2016 19:13:40[/merge_posts_bbcode]

P.S. Я не знаю, как зарегать больше 32х зелий. Если напишешь 32 - кинет ошибку ArrayOutOfBounds
Забавно, а на каком именно массиве?
 
Спасибо конечно, но мне нужен свой эффект, а не своё зелье. По типу той же радиации из IC2 или магической порчи ThaumCraft.
17ea30376822.png


Извиняюсь за не точное объяснение.
 
Mercen, хоть класс называется Potion, но это как-бы является типом эффекта. PotionEffect - это эффект который мы даём ему ид тип эффекта и время, а так-же по желанию уровень эффекта и будет-ли эффект испускать частицы.
 
Хм... При добавлении строчки про игрока, пишет ошибку в "Player", т.к. он его не видит и не хочет импортить пакеты.
Код:
        blood = new Blood(52, true, 0xf91a76);
        player.addPotionEffect(new PotionEffect(Main.flight.blood));
При импортировании main, он выдаёт ошибку в силе.
Так же ошибка в этой строчке.
Код:
        liquidColor = i;
Но тут я подставил int и ошибка пропала.
 
Mercen написал(а):
Хм... При добавлении строчки про игрока, пишет ошибку в "Player", т.к. он его не видит и не хочет импортить пакеты.
Код:
        blood = new Blood(52, true, 0xf91a76);
        player.addPotionEffect(new PotionEffect(Main.flight.blood));
При импортировании main, он выдаёт ошибку в силе.
Так же ошибка в этой строчке.
Код:
        liquidColor = i;
Но тут я подставил int и ошибка пропала.
Ты понимаешь что такое ПРИМЕР? Это абстрактные значения, ты должен достать объект плеера и зарегистрировать СВОЙ эффект САМ.
 
Назад
Сверху