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

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

Здравствуйте, предложения принимаете?
Возможно ли добавить в плагин "магию"? То есть активатором будет предмет, как бы "волшебная палочка", ну например обычная палка зачаренная на шелковое касание, или что то другое, но активируется она "заклинанием" то есть фразой написанной в чат, в результате чего происходит действие или не происходит, а флагом может быть взгляд направленный на игрока/моба/блок, размещенный не далее или не ближе расстояния в ххх блоков. А если еще на этот предмет наложить несколько "заклинаний" чтобы при произнесении каждого производился другой эффект, то вообще супер было бы)
ReActions это конструктор, а не волшебная шляпа для фантазеров.
 
Здравствуйте, предложения принимаете?
Возможно ли добавить в плагин "магию"? То есть активатором будет предмет, как бы "волшебная палочка", ну например обычная палка зачаренная на шелковое касание, или что то другое, но активируется она "заклинанием" то есть фразой написанной в чат, в результате чего происходит действие или не происходит, а флагом может быть взгляд направленный на игрока/моба/блок, размещенный не далее или не ближе расстояния в ххх блоков. А если еще на этот предмет наложить несколько "заклинаний" чтобы при произнесении каждого производился другой эффект, то вообще супер было бы)

По шагам:
1. "активатором будет предмет" — есть ITEM_CLICK
2. "активируется фразой написанной в чат" — можно создавать собственную команду. Для включения/выключения - можно использовать переменные. Ну, вообще активатор на чат, планируется.
3. "флагом может быть взгляд направленный на игрока/моба/блок, размещенный не далее или не ближе расстояния в ххх блоков." — не понял, что Вы тут имеете в виду под словом "флаг". Но явно не то, что есть в ReActions
4. "А если еще на этот предмет наложить несколько "заклинаний" чтобы при произнесении каждого производился другой эффект, то вообще супер было бы)" — в принципе можно, активаторы на команду с проверкой флага "внутри".

Вообще если реализовывать "один в один" то, что Вы написали, то к ReActions это не имеет никакое отношение. Но вот при помощи ReActions, можно попытаться сделать, то что Вам нужно.

Ну и кстати, посмотрите на Laser — тоже своего рода конструктор.
 
Код:
2014-04-04 01:51:48 [INFO] [ReActions] Enabling ReActions v0.6.1
2014-04-04 01:51:48 [INFO] [ReActions] PlayEffect plugin is not found at your system
2014-04-04 01:51:48 [INFO] [ReActions] If you need more effects please download PlayEffect from:
2014-04-04 01:51:48 [INFO] [ReActions] http://dev.bukkit.org/bukkit-plugins/playeffect/
Лог запуска плагина. Про WG он вообще ничего не написал, хотя и запустился после него. Сервер - 1.5.2. Что делать?
Последняя версия на данный момент (0.7.0) постоянно "спамит" в консоль ошибкой, хотя и работает:
Код:
2014-04-06 17:48:41 [SEVERE] Could not pass event EntityDamageByEntityEvent to ReActions v0.7.0
org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
    at org.bukkit.craftbukkit.v1_5_R3.event.CraftEventFactory.callEvent(CraftEventFactory.java:93)
    at org.bukkit.craftbukkit.v1_5_R3.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:381)
    at org.bukkit.craftbukkit.v1_5_R3.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:406)
    at net.minecraft.server.v1_5_R3.EntityLiving.damageEntity(EntityLiving.java:677)
    at net.minecraft.server.v1_5_R3.EntityMonster.damageEntity(EntityMonster.java:39)
    at net.minecraft.server.v1_5_R3.EntityArrow.l_(EntityArrow.java:229)
    at net.minecraft.server.v1_5_R3.World.entityJoinedWorld(World.java:1355)
    at net.minecraft.server.v1_5_R3.WorldServer.entityJoinedWorld(WorldServer.java:614)
    at net.minecraft.server.v1_5_R3.World.playerJoinedWorld(World.java:1336)
    at net.minecraft.server.v1_5_R3.World.tickEntities(World.java:1224)
    at net.minecraft.server.v1_5_R3.WorldServer.tickEntities(WorldServer.java:480)
    at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:563)
    at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:226)
    at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:477)
    at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:410)
    at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
Caused by: java.lang.NoSuchMethodError: org.bukkit.entity.Projectile.getShooter()Lorg/bukkit/projectiles/ProjectileSource;
    at me.fromgate.reactions.util.Util.getDamagerEntity(Util.java:400)
    at me.fromgate.reactions.RAListener.onMobDmg(RAListener.java:182)
    at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
    ... 19 more
Бамп. Может поможете?
 
strelok193, у Вас точно 1.5.2 без модов? или что-то нестандартное?
 
Да, нет. Ругается на конкретный метод получения "стрелка". Что странно. Этот метод по моему существовал давно. Попробуйте всё же версию 0.7.0 для очистки совести. А я, будет время, скачаю 1.5.2 и посмотрю...
 
Да, нет. Ругается на конкретный метод получения "стрелка". Что странно. Этот метод по моему существовал давно. Попробуйте всё же версию 0.7.0 для очистки совести. А я, будет время, скачаю 1.5.2 и посмотрю...
0.7.0 сейчас и стоит. Работает, но в консоли от нее одни ошибки
P.s. Могу дать 1.5.2 что бы не искать
 
Возник вопрос, как сделать так, что бы если игрок входит в состав какой-либо группы, когда входит в особый регион у него менялся игровой режим.
Например есть игрок в группе 'god'. Он входит в регион 'creative' и у него включается креатив. Если же он в другой группе, то креатив у него не включается.
Как я понял это можно сделать так:
  1. Создаём регион 'creative'.
  2. Привязываем активаторы к региону.
    1. Активатор на вход в регион: /rea add rgenter creative_on creative
    2. Активатор на выход из региона: /rea add rgleave creative_off creative
  3. Привязываем команды/действия к активаторам.
    1. К активатору creative_on: /rea add creative_on a cmd_op gamemode 1 %player%
    2. К активатору creative_off: /rea add creative_off a cmd gamemode 0 %player%
  4. Привязываем проверку на наличие игрока в группе.
    1. /ra add creative_on f group=god
    2. /ra add creative_off f group=god
Несколько вопросов:
  1. Я правильно написал? :) спасибо!
  2. Если у игрока нет перишна на 'gamemode 1' будет ли переключен режим, когда выполняется команда /rea add creative_on a cmd gamemode 1? спасибо!
 
Последнее редактирование:
Возник вопрос, как сделать так, что бы если игрок входит в состав какой-либо группы, когда входит в особый регион у него менялся игровой режим.
Например есть игрок в группе 'god'. Он входит в регион 'creative' и у него включается креатив. Если же он в другой группе, то креатив у него не включается.
Как я понял это можно сделать так:
  1. Создаём регион 'creative'.
  2. Привязываем активаторы к региону.
    1. Активатор на вход в регион: /rea add rgenter creative_on creative
    2. Активатор на выход из региона: /rea add rgleave creative_off creative
  3. Привязываем команды/действия к активаторам.
    1. К активатору creative_on: /rea add creative_on a cmd gamemode 1
    2. К активатору creative_off: /rea add creative_off a cmd gamemode 1
  4. Привязываем проверку на наличие игрока в группе.
    1. /ra add creative_on f group=god
    2. /ra add creative_off f group=god
Несколько вопросов:
  1. Я правильно написал? :)
  2. Если у игрока нет перишна на 'gamemode 1' будет ли переключен режим, когда выполняется команда /rea add creative_on a cmd gamemode 1?
  3. Как правильнее: /rea add creative_on a cmd gamemode 1 или /rea add creative_on a cmd gamemode 1 @p?
1. Да. Только к активатору creative_off почему привязана команда gamemode 1, если надо выживание?
2. Исполняй команду от ОПа
3. А разве нету переменной/плейсхолдера для игрока? (%player%) :S
 
1. Да. Только к активатору creative_off почему привязана команда gamemode 1, если надо выживание?
2. Исполняй команду от ОПа
3. А разве нету переменной/плейсхолдера для игрока? (%player%) :S
  1. Упс
  2. Упс
  3. Упс
Так правильно:
/rea add creative_on a cmd_op gamemode 1 %player%, /rea add creative_off a cmd_op gamemode 0 %player%?
 
Всё пока шёл отвечать тут уже всё сказали :)

Я бы всё также сказал, единственное вместо ОПа посоветовал бы выполнять от консоли. ОПы бывают разные ;)
 
Всё пока шёл отвечать тут уже всё сказали :)

Я бы всё также сказал, единственное вместо ОПа посоветовал бы выполнять от консоли. ОПы бывают разные ;)
Вы бы лучше на мой вопрос ответили. Что за ошибку мне спамит плагин в консоль?
Код:
2014-04-06 17:48:41 [SEVERE] Could not pass event EntityDamageByEntityEvent to ReActions v0.7.0
org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
    at org.bukkit.craftbukkit.v1_5_R3.event.CraftEventFactory.callEvent(CraftEventFactory.java:93)
    at org.bukkit.craftbukkit.v1_5_R3.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:381)
    at org.bukkit.craftbukkit.v1_5_R3.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:406)
    at net.minecraft.server.v1_5_R3.EntityLiving.damageEntity(EntityLiving.java:677)
    at net.minecraft.server.v1_5_R3.EntityMonster.damageEntity(EntityMonster.java:39)
    at net.minecraft.server.v1_5_R3.EntityArrow.l_(EntityArrow.java:229)
    at net.minecraft.server.v1_5_R3.World.entityJoinedWorld(World.java:1355)
    at net.minecraft.server.v1_5_R3.WorldServer.entityJoinedWorld(WorldServer.java:614)
    at net.minecraft.server.v1_5_R3.World.playerJoinedWorld(World.java:1336)
    at net.minecraft.server.v1_5_R3.World.tickEntities(World.java:1224)
    at net.minecraft.server.v1_5_R3.WorldServer.tickEntities(WorldServer.java:480)
    at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:563)
    at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:226)
    at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:477)
    at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:410)
    at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
Caused by: java.lang.NoSuchMethodError: org.bukkit.entity.Projectile.getShooter()Lorg/bukkit/projectiles/ProjectileSource;
    at me.fromgate.reactions.util.Util.getDamagerEntity(Util.java:400)
    at me.fromgate.reactions.RAListener.onMobDmg(RAListener.java:182)
    at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
    ... 19 more
 
@fromgate, планируется поддержка плагина Heroes?
 
Последнее редактирование:
strelok193, я помню. Но, увы, катастрофически нет времени. Я за последние две недели ни строчки кода не написал. А уж о каких-то тестах...

FedorNogopletov, собственно почему бы и нет. Будет время — добавлю, это должно быть достаточно просто. Флаги проверки классов, профессий по идее без проблем. Если делать их смену — надо будет глядеть API, но там насколько помню всё понятно и грамотно, поэтому тоже должно быть нормально.
 
Возник вопрос, как сделать так, что бы если игрок входит в состав какой-либо группы, когда входит в особый регион у него менялся игровой режим.
Например есть игрок в группе 'god'. Он входит в регион 'creative' и у него включается креатив. Если же он в другой группе, то креатив у него не включается.
Как я понял это можно сделать так:
  1. Создаём регион 'creative'.
  2. Привязываем активаторы к региону.
    1. Активатор на вход в регион: /rea add rgenter creative_on creative
    2. Активатор на выход из региона: /rea add rgleave creative_off creative
  3. Привязываем команды/действия к активаторам.
    1. К активатору creative_on: /rea add creative_on a cmd_op gamemode 1 %player%
    2. К активатору creative_off: /rea add creative_off a cmd gamemode 0 %player%
  4. Привязываем проверку на наличие игрока в группе.
    1. /ra add creative_on f group=god
    2. /ra add creative_off f group=god
Несколько вопросов:
  1. Я правильно написал? :) спасибо!
  2. Если у игрока нет перишна на 'gamemode 1' будет ли переключен режим, когда выполняется команда /rea add creative_on a cmd gamemode 1? спасибо!
Как сделать чтобы игрок не мог взять из креатива вещи, а потом выйти из региона 'creative'. Можно сделать так, чтобы в регионе 'creative' у него был свой инвентарь?
 
Как сделать чтобы игрок не мог взять из креатива вещи, а потом выйти из региона 'creative'. Можно сделать так, чтобы в регионе 'creative' у него был свой инвентарь?
отдельный инвентарь это уже не про ReActions.
В твоем случае самое простое решение, это чистить игроку инвентарь при выходе, но тогда он сможет выкинуть вещи перед собой, стоя на границе. Хотя и это можно обойти, если подумать чутка.
 
Ура! Всё работает, только надо писать
  1. /ra add creative_off f group god (без знака "=")
 
Назад
Верх