Вопрос Как выдать эффект противнику одним ударом

Lefixses

Заблокирован
Сообщения
41
Пишу плагин на предметы с одного сервера.
Написал большую часть предметов, но с одним из них возникли сложности.

Суть предмета: после того как способность предмета использовалась Игрок нанесёт следующий удар по противнику и даст тому эффект иссушения(последующие удары становятся обычными) и так можно использовать предмет много раз.

Проблема: никак не могу написать рабочий код чтобы игрок выдавал эффект только одним ударом, а не всеми последующими. Просьба помочь.
 
Проблема: никак не могу написать рабочий код чтобы игрок выдавал эффект только одним ударом, а не всеми последующими. Просьба помочь.
Запоминайте в листе/сете/где ещё угодно игроков и способность или как вам будет удобней/практичней. При первом ударе (или в каком вам там случае надо) добавляйте игрока в этот список, при последующих не выдавайте эффект иссушения. Не забывайте чистить список от игроков в нужном вам случае (спустя время или спустя какое-то количество ударов, как вам нужно будет).
 
Запоминайте в листе/сете/где ещё угодно игроков и способность или как вам будет удобней/практичней. При первом ударе (или в каком вам там случае надо) добавляйте игрока в этот список, при последующих не выдавайте эффект иссушения. Не забывайте чистить список от игроков в нужном вам случае (спустя время или спустя какое-то количество ударов, как вам нужно будет).
можно какой-нибудь пример пожалуйста?
 
создаешь лист List<Player> player = new ArrayList<>;
Это при использовании предмета, добавляешь в него игрока, который использовал, делаешь статичным и получаешь через геттер, если у тебя это в разных классах, если нет, то просто делаешь приватным. Потом в ивенте на домаг вроде EnitityDamageByEntity(как-то так), проверяешь есть ли игрок, который нанес урон в листе if (players.contains(e.getDamager)), и тому кто получил урон даешь эффекты и удаляешь того кто был в листе, всё, если помог - поставь лучший ответ.
 
Людей говнокоду не учи, ООП наше всё
кому как не тебе - человеку, который пишет плагины с миллионами багов. Давай расскажи, как получить лист из 1 класса в другой без статиков, жду.
 
Последнее редактирование:
который пишет плагины с миллионами багов
Интересное замечание, вот только баги всегда будут, написать код без багов почти невозможно
Только есть моменты, когда я тщательно проверяю плагины, а когда нет, всё зависит от ситуаций
Объединено

правильным и оптимизированным

В основном это был байт, но писать крупные плагины на чистой статике полный бред, ООП нужно использовать, но в случаях, когда это необходимо
Если ты не понимаешь как работает код, то объяснять тебе чего-либо бессмысленно, но суть такая, что статика хранится в памяти постоянно, а при использовании ООП методы, которые не используются, выгружаются из памяти
В данном случаи лист будет использоваться постоянно, при каждом ударе вызываться, а значит статика никак не повредит, но новичкам я бы советовал использовать ООП везде, дабы взять это в привычку, так как для человека, который использует ООП постоянно, писать плагины становится неким удовольствием
 
забыл, то что надо использовать предмет в другом ивенте и в нем же создать List
Объединено

Вам необходимо зарегистрироваться для просмотра изображений-вложений
забыл, то что надо использовать предмет в другом ивенте и в нем же создать List
Объединено

забыл, то что надо использовать предмет в другом ивенте и в нем же создать List
Объединено


забыл, то что надо использовать предмет в другом ивенте и в нем же создать List
вернее в том классе, где ивент использования
 
Вам необходимо зарегистрироваться для просмотра изображений-вложений

забыл, то что надо использовать предмет в другом ивенте и в нем же создать List
А ты наверное, читать не умеешь...
 
Вам необходимо зарегистрироваться для просмотра изображений-вложений
У меня способность активируется нажатием F через ивент PlayerSwapItemsHandEvent, можно ли как-то реализовать с ним?
 
У меня способность активируется нажатием F через ивент PlayerSwapItemsHandEvent, можно ли как-то реализовать с ним?
При активации предмета добавляешь UUID игрока в лист players
 
Последнее редактирование модератором:
Будьте осторожны с рекомендациями этого пользователя.
Назад
Сверху Снизу