Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
EffectLib поищи в ютубеВсем привет, можно ли к мечу(без доп модов) приделать какой нибудь эффект?
Если нет, то подскажите как можно к игроку добавить эффект дыма, огня и т.д?
только он?EffectLib поищи в ютубе
а где можно узнать?"PacketPlayOutWorldParticles" с определенными параметрами.
Лично я тренировался с пакетами партиклов у этого чувака, он правда не русский, посмотри его ролики и поймешь почему он именно.а где можно узнать?
пример увидеть.
Спасибо
он использует плагин который ты выше написал?Лично я тренировался с пакетами партиклов у этого чувака, он правда не русский, посмотри его ролики и поймешь почему он именно.
Ссылка - Жмяк
Ну можно набрать и в ютубе просто слова: EffectLib Minecraft bukkit coding , и тебе найдется куча вариантов, я честно смотрел первые 5 видео.он использует плагин который ты выше написал?
я именно сам хочу отправить пакет, разобраться с этим.Ну можно набрать и в ютубе просто слова: EffectLib Minecraft bukkit coding , и тебе найдется куча вариантов, я честно смотрел первые 5 видео.
/**
* Создаёт частицы.
* @param type Тип
* @param x Координата x
* @param y Координата y
* @param z Координата z
* @param randSeed Погрешность
* @param data Разброс
* @param amount Количество
* @param player Игрок, к которому нужно применить эффект
* <p>
* Список типов частиц:
* <i>
* <ul>
* <li>hugeexplosion</li>
* <li>largeexplode</li>
* <li>fireworksSpark</li>
* <li>bubble</li>
* <li>suspended</li>
* <li>depthsuspend</li>
* <li>townaura</li>
* <li>crit</li>
* <li>magicCrit</li>
* <li>smoke</li>
* <li>mobSpell</li>
* <li>mobSpellAmbient</li>
* <li>spell</li>
* <li>instantSpell</li>
* <li>witchMagic</li>
* <li>note</li>
* <li>portal</li>
* <li>enchantmenttable</li>
* <li>explode</li>
* <li>flame</li>
* <li>lava</li>
* <li>footstep</li>
* <li>splash</li>
* <li>largesmoke</li>
* <li>cloud</li>
* <li>reddust</li>
* <li>snowballpoof</li>
* <li>dripWater</li>
* <li>dripLava</li>
* <li>snowshovel</li>
* <li>slime</li>
* <li>heart</li>
* <li>angryVillager</li>
* <li>happyVillager</li>
* <li>iconcrack_*</li>
* <li>blockcrack_*_*</li>
* <li>blockdust_*_*</li>
* </ul>
* </i>
* </p>
*/
public static void particle(String type, float x, float y, float z, float randSeed, float data, int amount, Player player) {
PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles(type, x, y, z, randSeed, randSeed, randSeed, data, amount);
((CraftPlayer)player).getHandle().playerConnection.sendPacket(packet);
}
/**
* Создаёт частицы. Эффект увидят все игроки в массиве.
* @param type Тип
* @param x Координата x
* @param y Координата y
* @param z Координата z
* @param randSeed Погрешность
* @param data Разброс
* @param amount Количество
* @param player Игрок, к которому нужно применить эффект
* <p>
* Список типов частиц:
* <i>
* <ul>
* <li>hugeexplosion</li>
* <li>largeexplode</li>
* <li>fireworksSpark</li>
* <li>bubble</li>
* <li>suspended</li>
* <li>depthsuspend</li>
* <li>townaura</li>
* <li>crit</li>
* <li>magicCrit</li>
* <li>smoke</li>
* <li>mobSpell</li>
* <li>mobSpellAmbient</li>
* <li>spell</li>
* <li>instantSpell</li>
* <li>witchMagic</li>
* <li>note</li>
* <li>portal</li>
* <li>enchantmenttable</li>
* <li>explode</li>
* <li>flame</li>
* <li>lava</li>
* <li>footstep</li>
* <li>splash</li>
* <li>largesmoke</li>
* <li>cloud</li>
* <li>reddust</li>
* <li>snowballpoof</li>
* <li>dripWater</li>
* <li>dripLava</li>
* <li>snowshovel</li>
* <li>slime</li>
* <li>heart</li>
* <li>angryVillager</li>
* <li>happyVillager</li>
* <li>iconcrack_*</li>
* <li>blockcrack_*_*</li>
* <li>blockdust_*_*</li>
* </ul>
* </i>
* </p>
*/
public static void particle(String type, float x, float y, float z, float randSeed, float data, int amount, Collection<? extends Player> players) {
PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles(type, x, y, z, randSeed, randSeed, randSeed, data, amount);
for (Player player : players)
((CraftPlayer)player).getHandle().playerConnection.sendPacket(packet);
}
particle("blockcrack_159_14", Float.valueOf((float) df_loc.getX()), Float.valueOf((float) df_loc.getY())+1.25F, Float.valueOf((float) df_loc.getZ()), 0.3F, 1.2F, 30, getServer().getOnlinePlayers());
particle("smoke", Float.valueOf((float) firstPoint.getX())+0.5F, Float.valueOf(y), Float.valueOf((float) firstPoint.getZ())+0.5F, 0.01F, 0F, 15, player);
о,спасибо огромное)Всё просто. Сливаю методы создания эффектов из своего плагина:
Если ты хочешь можешь выцепить оттуда код создания и отправки пакета. Примеры:Код:/** * Создаёт частицы. * @param type Тип * @param x Координата x * @param y Координата y * @param z Координата z * @param randSeed Погрешность * @param data Разброс * @param amount Количество * @param player Игрок, к которому нужно применить эффект * <p> * Список типов частиц: * <i> * <ul> * <li>hugeexplosion</li> * <li>largeexplode</li> * <li>fireworksSpark</li> * <li>bubble</li> * <li>suspended</li> * <li>depthsuspend</li> * <li>townaura</li> * <li>crit</li> * <li>magicCrit</li> * <li>smoke</li> * <li>mobSpell</li> * <li>mobSpellAmbient</li> * <li>spell</li> * <li>instantSpell</li> * <li>witchMagic</li> * <li>note</li> * <li>portal</li> * <li>enchantmenttable</li> * <li>explode</li> * <li>flame</li> * <li>lava</li> * <li>footstep</li> * <li>splash</li> * <li>largesmoke</li> * <li>cloud</li> * <li>reddust</li> * <li>snowballpoof</li> * <li>dripWater</li> * <li>dripLava</li> * <li>snowshovel</li> * <li>slime</li> * <li>heart</li> * <li>angryVillager</li> * <li>happyVillager</li> * <li>iconcrack_*</li> * <li>blockcrack_*_*</li> * <li>blockdust_*_*</li> * </ul> * </i> * </p> */ public static void particle(String type, float x, float y, float z, float randSeed, float data, int amount, Player player) { PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles(type, x, y, z, randSeed, randSeed, randSeed, data, amount); ((CraftPlayer)player).getHandle().playerConnection.sendPacket(packet); } /** * Создаёт частицы. Эффект увидят все игроки в массиве. * @param type Тип * @param x Координата x * @param y Координата y * @param z Координата z * @param randSeed Погрешность * @param data Разброс * @param amount Количество * @param player Игрок, к которому нужно применить эффект * <p> * Список типов частиц: * <i> * <ul> * <li>hugeexplosion</li> * <li>largeexplode</li> * <li>fireworksSpark</li> * <li>bubble</li> * <li>suspended</li> * <li>depthsuspend</li> * <li>townaura</li> * <li>crit</li> * <li>magicCrit</li> * <li>smoke</li> * <li>mobSpell</li> * <li>mobSpellAmbient</li> * <li>spell</li> * <li>instantSpell</li> * <li>witchMagic</li> * <li>note</li> * <li>portal</li> * <li>enchantmenttable</li> * <li>explode</li> * <li>flame</li> * <li>lava</li> * <li>footstep</li> * <li>splash</li> * <li>largesmoke</li> * <li>cloud</li> * <li>reddust</li> * <li>snowballpoof</li> * <li>dripWater</li> * <li>dripLava</li> * <li>snowshovel</li> * <li>slime</li> * <li>heart</li> * <li>angryVillager</li> * <li>happyVillager</li> * <li>iconcrack_*</li> * <li>blockcrack_*_*</li> * <li>blockdust_*_*</li> * </ul> * </i> * </p> */ public static void particle(String type, float x, float y, float z, float randSeed, float data, int amount, Collection<? extends Player> players) { PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles(type, x, y, z, randSeed, randSeed, randSeed, data, amount); for (Player player : players) ((CraftPlayer)player).getHandle().playerConnection.sendPacket(packet); }
- Создаёт эффект крови путем ломания блока красной глины на координатах df_loc.Код:particle("blockcrack_159_14", Float.valueOf((float) df_loc.getX()), Float.valueOf((float) df_loc.getY())+1.25F, Float.valueOf((float) df_loc.getZ()), 0.3F, 1.2F, 30, getServer().getOnlinePlayers());
- Создание эффекта дыма на координатах firstPoint.Код:particle("smoke", Float.valueOf((float) firstPoint.getX())+0.5F, Float.valueOf(y), Float.valueOf((float) firstPoint.getZ())+0.5F, 0.01F, 0F, 15, player);
Всё просто. Сливаю методы создания эффектов из своего плагина:
Если ты хочешь можешь выцепить оттуда код создания и отправки пакета. Примеры:Код:/** * Создаёт частицы. * @param type Тип * @param x Координата x * @param y Координата y * @param z Координата z * @param randSeed Погрешность * @param data Разброс * @param amount Количество * @param player Игрок, к которому нужно применить эффект * <p> * Список типов частиц: * <i> * <ul> * <li>hugeexplosion</li> * <li>largeexplode</li> * <li>fireworksSpark</li> * <li>bubble</li> * <li>suspended</li> * <li>depthsuspend</li> * <li>townaura</li> * <li>crit</li> * <li>magicCrit</li> * <li>smoke</li> * <li>mobSpell</li> * <li>mobSpellAmbient</li> * <li>spell</li> * <li>instantSpell</li> * <li>witchMagic</li> * <li>note</li> * <li>portal</li> * <li>enchantmenttable</li> * <li>explode</li> * <li>flame</li> * <li>lava</li> * <li>footstep</li> * <li>splash</li> * <li>largesmoke</li> * <li>cloud</li> * <li>reddust</li> * <li>snowballpoof</li> * <li>dripWater</li> * <li>dripLava</li> * <li>snowshovel</li> * <li>slime</li> * <li>heart</li> * <li>angryVillager</li> * <li>happyVillager</li> * <li>iconcrack_*</li> * <li>blockcrack_*_*</li> * <li>blockdust_*_*</li> * </ul> * </i> * </p> */ public static void particle(String type, float x, float y, float z, float randSeed, float data, int amount, Player player) { PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles(type, x, y, z, randSeed, randSeed, randSeed, data, amount); ((CraftPlayer)player).getHandle().playerConnection.sendPacket(packet); } /** * Создаёт частицы. Эффект увидят все игроки в массиве. * @param type Тип * @param x Координата x * @param y Координата y * @param z Координата z * @param randSeed Погрешность * @param data Разброс * @param amount Количество * @param player Игрок, к которому нужно применить эффект * <p> * Список типов частиц: * <i> * <ul> * <li>hugeexplosion</li> * <li>largeexplode</li> * <li>fireworksSpark</li> * <li>bubble</li> * <li>suspended</li> * <li>depthsuspend</li> * <li>townaura</li> * <li>crit</li> * <li>magicCrit</li> * <li>smoke</li> * <li>mobSpell</li> * <li>mobSpellAmbient</li> * <li>spell</li> * <li>instantSpell</li> * <li>witchMagic</li> * <li>note</li> * <li>portal</li> * <li>enchantmenttable</li> * <li>explode</li> * <li>flame</li> * <li>lava</li> * <li>footstep</li> * <li>splash</li> * <li>largesmoke</li> * <li>cloud</li> * <li>reddust</li> * <li>snowballpoof</li> * <li>dripWater</li> * <li>dripLava</li> * <li>snowshovel</li> * <li>slime</li> * <li>heart</li> * <li>angryVillager</li> * <li>happyVillager</li> * <li>iconcrack_*</li> * <li>blockcrack_*_*</li> * <li>blockdust_*_*</li> * </ul> * </i> * </p> */ public static void particle(String type, float x, float y, float z, float randSeed, float data, int amount, Collection<? extends Player> players) { PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles(type, x, y, z, randSeed, randSeed, randSeed, data, amount); for (Player player : players) ((CraftPlayer)player).getHandle().playerConnection.sendPacket(packet); }
- Создаёт эффект крови путем ломания блока красной глины на координатах df_loc.Код:particle("blockcrack_159_14", Float.valueOf((float) df_loc.getX()), Float.valueOf((float) df_loc.getY())+1.25F, Float.valueOf((float) df_loc.getZ()), 0.3F, 1.2F, 30, getServer().getOnlinePlayers());
- Создание эффекта дыма на координатах firstPoint.Код:particle("smoke", Float.valueOf((float) firstPoint.getX())+0.5F, Float.valueOf(y), Float.valueOf((float) firstPoint.getZ())+0.5F, 0.01F, 0F, 15, player);
у меня так же(о,спасибо огромное)
![]()
что делать?
в качестве аналога можно использовать API плагина PlayEffect от @fromgateу меня так же(
о,спасибо огромное)
![]()
что делать?
1.8 версия. Так же делать как в плей эффект?Разбираться с версиями. Под какую делаете?
1.8, к примеру, эффект идентифицируется не строкой (соответственно, упомянутое, blockcrack_159_14 работать не будет), а через ENUM.
В PlayEffect, к примеру это сделано так: https://github.com/fromgate/PlayEff...effect/customeffects/PacketNMS.java#L198-L233
Правда там через рефлексии, разбираться не удобно.
хочу сделать все сам и в 1 плагинев качестве аналога можно использовать API плагина PlayEffect от @fromgate
Мда.. Зачем делать ещё раз, если уже сделано много раз?1.8 версия. Так же делать как в плей эффект?
хочу сделать все сам и в 1 плагине
практика, опытМда.. Зачем делать ещё раз, если уже сделано много раз?
1.8 версия. Так же делать как в плей эффект?
хочу сделать все сам и в 1 плагине
спасибо за информацию, почти всему серверу надо будет добавить свой эффект. При онлайне 30+ сервер наверно ляжет просто.Ну можно также как и в плейффект. Но там через рефлексии, это для понимания процесса не очень удобно.
Принцип же остается тот же - отправка пакета. Поэтому посмотрите конструктор пакета PacketPlayOutWorldParticles в 1.8, создавайте такой пакет и отправляйте его.
Вообще, если собираетесь рисовать очень много эффектов, учитывайте то, что они создают нагрузку на:
1. Клиента. Вообще сейчас клиент перестает отрисовывать частицы если превышено какое-то пороговое количество. Но не удивлюсь, если в какой-то момент времени это не сработает и можно будет подвесить его. По крайней мере фейерверками клиент подвесить очень легко.
2. Канал сервера. Проигрывая эффект игрокам - вы отправляете каждому из них пакет. Соответственно, если вы проигрываете эффект 20 игрокам 50 эффектов, то вы отправляете 1000 пакетов. При этом сервер должен ещё передавать информацию о перемещениях мобов, отправлять даные с чанками и т.п.
Ну а если Вы проигрываете просто несколько эффектов - то не парьтесь и просто отправляйте пакет.