Войти или зарегистрироваться

Плагин [MECH/FUN] ReActions - Что? Тогда? Иначе! [BukkitDev]

2 предложения:

1) дать возможность при спавне моба, указывать радиус Без локации или региона, чтобы радиус отсчитывался от игрока, который активировал активатор
2) добавить флаг - уровень голода
 
1. Если не путаю, то... если локацию не указать, то подставляется локация игрока. Соответственно если указать только радиус, то по идее будут спавниться вокруг игрока в пределах заданного радиуса.

2. Сегодня полностью переписал флаги, теперь их добавлять будет очень просто, так что добавлю обязательно.
п.2 уже добавил ;) в следующей версии будет
 
Соответственно если указать только радиус, то по идее будут спавниться вокруг игрока в пределах заданного радиуса.
Нет, там баг в консоли ошибки и не спавнятся вовсе мобы. Я это и прошу добавить, чтобы был рабочий радиус от игрока.


раз такая пьянка, можно еще попросить флаг на уровень опыта игрока? по аналогии с голодом.
 
Странно, раньше точно спавн мобов так работал. Вечером проверю.Флаг добавлю тоже.
@ValeraSTK,
https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar

Вроде нашёл в чем ошибка - теперь при спавне мобов без указания локации исходной точкой будет считаться координата игрока. Радиус учитывается.

Добавлены флаги:
FOODLEVEL — уровень голода (возвращает true если у игрока он больше или равен указанному)
XP — уровень опыта - имеется в виду полный опыт игрока вне зависимости от уровня (возвращает true если у игрока он больше или равен указанному)
LEVEL — уровень игрока (возвращает true если у игрока он больше или равен указанному)
 
Спасибо!

П.С. заметил, что на девбаките нет описания действия potion, а у этого действия (возможно ) не работает атрибут level

и еще заметил что действие dmg есть, а heal нету)
 
@ValeraSTK, кстати да! я про heal тоже замечал, только всегда забывал добавить :)
Буду добавлять после того как действия переделаю по принципу флагов: тогда их будет добавлять очень просто и быстро :)
 
оставлю еще пару важных предложений, которые уже звучали
1) действие msg region, отправляет сообщение всем игрокам в заданном регионе
2) активатор убийства игрока игроком (в регионе), с плейсхолдерами для убийцы и жертвы. ( да, да, я знаю что это довольно обьемная штука, но вдруг у тебя будет время?=))
 
1. Сообщения сделаю. Сейчас как раз переделываю действия.
2. PVP-активаторы сделаю. Но есть один момент. Если игрок умирает, то значительная часть действий ему недоступна. Значит нужно отлавливать его респавн. А это в пределах одного активатора уже будет затруднительно. Значит проще будет сделать два активатора - на смерть (который будет отрабатывать в момент респавна - тут будет оправдан телепорт игрока, выдача предмета, наложение эффекта и т.д.) и на убийство (отрабатывать будет сразу)
 
предположительно в последнем релизе сломался флаг invitem.

Кроме того, во флаге potion не работает атрибут level - все эффекты всегда навешиваются с уровнем 2
 
@ValeraSTK, о! я при переделке флагов (они потом будут называться по другому, конвертация пройдёт автоматически) старые названия добавил в виде алиасов. А для invitem перепутал. Ниже исправленная версия:
https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar

С действием potion - непонятно. Погоняю вечером. Код на эти зелья не менялся с самого начала.
@ValeraSTK,
Potion исправил. По крайней мере у меня работает. Немножно подправил. Раньше level:1 соответствовало второму уровню зелья. Сейчас - первому.
Единственное если задавать большие значения - уровень может не отображаться. К примеру сделал сейчас speed level:10 - ношусь как угорелый, а в инвентаре отображается только начальный уровень.
 
Спасибо за фиксы!

Совершенно гениальная и простая идея пришла мне на ум сегодня -
что если флагам item/invitem, добавить атрибут, сверяющий поле имени предмета? т.е. он возвратит true, только если имена совпадают.

Например, у нас есть обычный кремень (id 318) и такой же кремень с названием "СуперКамень". С новым атрибутом, можно будет заставлять флаги реагировать только на второй тип - возможности просто бесконечные!

можно назвать бумагу - "10$" "20$" и реально использовать ее как валюту, например.
 
ReActions 0.3.9/2
https://www.dropbox.com/s/nwp1tn5wsq4v86s/ReActions.jar

Новое:
  • Значительная оптимизация кода. Это в первую очередь для меня: теперь будет проще добавлять новые активаторы, флаги и действия
  • Все флаги и действия переименованы, старые названия поддерживаются в качестве алиасов, поэтому пока новые названия приводить не будет. Все старые файлы с активаторами работать будут.
  • Новый активатор PVPKILL. Вызывается когда игрок убивает другого игрока. Выполняется по отношению к "победителю".
  • Новый активатор PVPDEATH. Вызывается когда игрока убивает другой игрок. Выполняется по отношению к "побежденному" в момент респавна. Т.е. когда он нажмет кнопку для возрождения.
  • Новый плейсхолдер %deathpoint%. Представляет собой сохранённую последнюю точку смерти игрока (только при PVP!). Позволяет вернуть игрока на место действием tp loc:%deathpoint%
  • Действие MESSAGE (которой раньше было msg) теперь поддерживает флаги: region:<название региона> world:<название мира> group:<группа> perm:<пермишен>. Это дает возможность отправлять игрокам, которые находятся в заданном регионе, мире или принадлежат определенной группе и/или имеют определенный пермишен, соответственно. Если указывается несколько параметров, допустим: region:xyz group:admin то получат все кто находится в регионе плюс все те кто находится в группе admin. Если результат выборки - пустой, допустим в регионе никого нет и нет онлайн игроков из группы admin, то сообщение никто не получит.
  • Новое действие HEAL. Параметр, соответственно, количество восстанавливаемых HP. Либо hp:<количество hp> hearts:<true/false> — если установлен плагин PlayEffect на игроке ещё отыгрываются сердечки (параметром hearts:false)

https://www.dropbox.com/s/nwp1tn5wsq4v86s/ReActions.jar

Небольшое дополнение:
  • Добавлено действие ITEM_DROP (itemdrop). Параметры: loc:<локация> (если пропущена - берутся координаты игрока) radius:<радиус> land:<true/false> scatter:<true/false - разрбрасывать стаки или всё спавнить в одной точке> item:<описание предметов>
 
v0.4.0
  • Новый активатор PVPKILL. Вызывается когда игрок убивает другого игрока. Выполняется по отношению к "победителю".
  • Новый активатор PVPDEATH. Вызывается когда игрока убивает другой игрок. Выполняется по отношению к "побежденному" в момент респавна. Т.е. когда он нажмет кнопку для возрождения.
  • Новый активатор LEVER
    Чтобы создать активатор нужно посмотреть на рычаг и написать /react add lever <название активатора>
    По умолчанию создается активатор срабатывающий при любом состоянии рычага.
    Чтобы создать рычаг срабатывающий при определенном состоянии, используем команды/react add lever <название активатора> on — активатор будет срабатывать, если после дёрганья рычага он активирует редстоун
    /react add lever <название активатора> off — активатор будет срабатывать, если после дёрганья рычага он выключает редстоун
  • Новый активатор DOOR. Этот активатор привязывается ко всякого рода дверям - деревянные двери, калитки (fence gate) и люки (trap door).
    Чтобы создать активатор нужно посмотреть на дверь и написать /react add door <название активатора>
    По умолчанию создается активатор срабатывающий при любом состоянии двери.
    Чтобы создать активатор срабатывающий при определенном состоянии, используем команды/react add door <название активатора> open — активатор будет срабатывать, если дверь будет открыта (после клика по ней)
    /react add door <название активатора> close — активатор будет срабатывать, если дверь закрывают.
  • Новый плейсхолдер %deathpoint%. Представляет собой сохранённую последнюю точку смерти игрока (только при PVP!). Позволяет вернуть игрока на место действием tp loc:%deathpoint%
  • Действие MESSAGE (которой раньше было msg) теперь поддерживает флаги: region:<название региона> world:<название мира> group:<группа> perm:<пермишен>. Это дает возможность отправлять игрокам, которые находятся в заданном регионе, мире или принадлежат определенной группе и/или имеют определенный пермишен, соответственно. Если указывается несколько параметров, допустим: region:xyz group:admin то получат все кто находится в регионе плюс все те кто находится в группе admin. Если результат выборки - пустой, допустим в регионе никого нет и нет онлайн игроков из группы admin, то сообщение никто не получит.
  • Новое действие HEAL. Параметр, соответственно, количество восстанавливаемых HP. Либо hp:<количество hp> hearts:<true/false> — если установлен плагин PlayEffect на игроке ещё отыгрываются сердечки (параметром hearts:false)
  • Добавлено действие ITEM_DROP (itemdrop). Параметры: loc:<локация> (если пропущена - берутся координаты игрока) radius:<радиус> land:<true/false> scatter:<true/false - разрбрасывать стаки или всё спавнить в одной точке> item:<описание предметов>
  • Флаг item теперь сравнивает ещё и имя название предмета. Т.е. флаг item = &6Super_sword$IRON_SWORD отработает только если железный меч назван именно так (т.е. "Super sword" "золотого цвета").
  • Добавлен флаг FOODLEVEL — уровень голода (возвращает true если у игрока он больше или равен указанному)
  • Добавлен флаг XP — уровень опыта - имеется в виду полный опыт игрока вне зависимости от уровня (возвращает true если у игрока он больше или равен указанному)
  • Добавлен флаг LEVEL — уровень игрока (возвращает true если у игрока он больше или равен указанному)
  • Добавлен флаг POWER <location> — проверяет подведена ли к данному блоку энергия или нет.
  • Значительная оптимизация кода. Это в первую очередь для меня: теперь будет проще добавлять новые активаторы, флаги и действия
  • Все флаги и действия переименованы, старые названия поддерживаются в качестве алиасов, поэтому пока новые названия приводить не будет. Все старые файлы с активаторами работать будут.

http://dev.bukkit.org/media/files/746/912/ReActions.jar
 
Последнее редактирование:
2013-10-15 18:23:46 [SEVERE] Could not pass event RAButtonEvent to ReActions v0.3.2
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:363)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:47)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:464)
at me.fromgate.reactions.EventManager.raiseButtonEvent(EventManager.java:61)
at me.fromgate.reactions.RAListener.onPlayerInteract(RAListener.java:208)
at sun.reflect.GeneratedMethodAccessor83.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:361)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:47)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:464)
at org.bukkit.craftbukkit.v1_5_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:189)
at net.minecraft.item.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:549)
at net.minecraft.network.NetServerHandler.func_72472_a(NetServerHandler.java:875)
at net.minecraft.network.packet.Packet15Place.func_73279_a(SourceFile:58)
at net.minecraft.network.TcpConnection.func_74428_b(TcpConnection.java:442)
at net.minecraft.network.NetServerHandler.func_72570_d(NetServerHandler.java:223)
at net.minecraft.network.NetworkListenThread.func_71747_b(NetworkListenThread.java:53)
at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(SourceFile:30)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:865)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:320)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:732)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:614)
at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)
Caused by: java.lang.NullPointerException
at org.bukkit.Location.getChunk(Location.java:73)
at me.fromgate.reactions.Actions.teleportPlayer(Actions.java:545)
at me.fromgate.reactions.Actions.performAction(Actions.java:79)
at me.fromgate.reactions.Actions.executeActivator(Actions.java:63)
at me.fromgate.reactions.activators.ButtonActivator.activate(ButtonActivator.java:68)
at me.fromgate.reactions.activators.Activators.activate(Activators.java:306)
at me.fromgate.reactions.RAListener.onButton(RAListener.java:232)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:361)
... 27 more

Из версии к версии вижу это на MCPC+. Может хотя бы в try {} catch () {} обернуть?
 
fromgate, а как себя поведет новая версия плагина на версии Minecraft 1.5.2 ?
 
AsBesT, в 1.5.2 не работают функции связанные со здоровьем как игрока так и моба. Всё остальное работает. Ошибка, о которой говорит Sirse, на нормальном craftbukkit'е не проявляется. Это какие-то нюансы MCPC+
 
Спасибо за отличные обновления!

Вопрос - можно ли заставить файл перевода понимать цветовые коды? В данный момент он просто красит все дефолтным зеленым.
 
Назад
Верх