Hikari 48 Опубликовано 27 июня, 2014 И так у нас есть ивент - TvT, в данном ивенте есть 2 листа: лист 1 команды и лист 2 команды.Далее нужно "из листов выбирать из всех плееров тех, кто в одной команде с атакующим". В листы чары записываются таким образом: players_list1.add(player.getStoredId()); live_list1.add(player.getStoredId()); Так же мы можем получить "StoredId()" атакующего: attacker.getStoredId() Но что с этим делать - не знаю. Также нашел вот такой код: public boolean checkForAttack(Player activeChar, Creature target, Skill skill, boolean forceUse) { if(_isEventStarted) { if(skill == null) return activeChar.getTeam() != TeamType.NONE && activeChar.getTeam() != target.getTeam(); else return (skill.isNotTargetAoE()) || (skill.isOffensive() ? activeChar.getTeam() != target.getTeam() : activeChar.getTeam() == target.getTeam()); } return skill != null && !skill.isOffensive() && target.getTeam() == activeChar.getTeam(); } Но он не работает. Прошу помощи! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
munhgausen 0 Опубликовано 27 июня, 2014 могу ошибиться (давно делал) но насколько помню, запрет на любые виды атак нужно делать через классы player либо character.В этих классах смотрите примеры. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hikari 48 Опубликовано 27 июня, 2014 могу ошибиться (давно делал) но насколько помню, запрет на любые виды атак нужно делать через классы player либо character.В этих классах смотрите примеры. Можете поточнее сказать ? Если не сложно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Industrial 13 Опубликовано 27 июня, 2014 Если это лист, то у него должен быть метод contains, далее уже дело техники, перем таргет и проверяем если он есть в данном списке то запрещаем атаковать, если уже нету то атакуем!!!) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hikari 48 Опубликовано 27 июня, 2014 Если это лист, то у него должен быть метод contains, далее уже дело техники, перем таргет и проверяем если он есть в данном списке то запрещаем атаковать, если уже нету то атакуем!!!) нет, так не получится т.к. в таком случае всем на ивенте нельзя будет атаковать игроков из листа Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mr.Smith 128 Опубликовано 27 июня, 2014 Класс L2Playable у вас по видимому Playable, найдите метод isAutoAttackable() но возможно он у вас будет в другом месте Character или Player классе, а дальше уже по коду сами думаю разберетесь. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hikari 48 Опубликовано 27 июня, 2014 Класс L2Playable у вас по видимому Playable, найдите метод isAutoAttackable() но возможно он у вас будет в другом месте Character или Player классе, а дальше уже по коду сами думаю разберетесь. запретил атаку скиллами и обычную атаку, но дамаг от мас скиллов получают и враги и свои Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hikari 48 Опубликовано 27 июня, 2014 думал взять все это дело из групповой дуэли, но там ничего такого не нашел Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 28 июня, 2014 дать одной команде красную отрядную ауру, а второму - синюю и в большинстве сборок уже есть в методах проверяющих возможность атаки запрет на атаку цели, имеющую такую же отрядную ауру как у атакующего. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hikari 48 Опубликовано 28 июня, 2014 дать одной команде красную отрядную ауру, а второму - синюю и в большинстве сборок уже есть в методах проверяющих возможность атаки запрет на атаку цели, имеющую такую же отрядную ауру как у атакующего. в FT - не было, пришлось самому все дописывать, спасибо Dislike.Можно закрывать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Saick 46 Опубликовано 29 июня, 2014 Класс L2Playable у вас по видимому Playable, найдите метод isAutoAttackable() но возможно он у вас будет в другом месте Character или Player классе, а дальше уже по коду сами думаю разберетесь. Круто запретит автоатаку, но за то по 1 стрелять можно збс. В L2PlayableAI создаешь проверку if (target.getActingPlayer().getTeam() == _actor.getActingPlayer().getTeam()) { _actor.getActingPlayer().sendPacket(SystemMessageId.TARGET_IS_INCORRECT); clientActionFailed(); return; } if (target.getActingPlayer().getTeam() == _actor.getActingPlayer().getTeam()) { _actor.getActingPlayer().sendPacket(SystemMessageId.TARGET_IS_INCORRECT); clientActionFailed(); _actor.setIsCastingNow(false); return; } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hikari 48 Опубликовано 30 июня, 2014 Круто запретит автоатаку, но за то по 1 стрелять можно збс. В L2PlayableAI создаешь проверку if (target.getActingPlayer().getTeam() == _actor.getActingPlayer().getTeam()) { _actor.getActingPlayer().sendPacket(SystemMessageId.TARGET_IS_INCORRECT); clientActionFailed(); return; } if (target.getActingPlayer().getTeam() == _actor.getActingPlayer().getTeam()) { _actor.getActingPlayer().sendPacket(SystemMessageId.TARGET_IS_INCORRECT); clientActionFailed(); _actor.setIsCastingNow(false); return; } и не только это еще кое-что дописал в reduceCurrentHp т.к. дамаг от масс атак проходил на своих, осталась маленкая проблема, дмг не проходит но в систем чат пишет что дамаг нанесен. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Saick 46 Опубликовано 30 июня, 2014 и не только это еще кое-что дописал в reduceCurrentHp т.к. дамаг от масс атак проходил на своих, осталась маленкая проблема, дмг не проходит но в систем чат пишет что дамаг нанесен. АОЕ скиллы не так блокируют. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hikari 48 Опубликовано 1 июля, 2014 АОЕ скиллы не так блокируют. а как ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Saick 46 Опубликовано 1 июля, 2014 В L2AttackableAI добавить проверку на команду. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hikari 48 Опубликовано 1 июля, 2014 В L2AttackableAI добавить проверку на команду. что-то не совсем понимаю куда именно ? в какой метод ? thinkAttack и thinkCast ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Saick 46 Опубликовано 1 июля, 2014 boolean cast(L2Skill sk, double distance, int range) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hikari 48 Опубликовано 1 июля, 2014 boolean cast(L2Skill sk, double distance, int range) 1. у вас не оверы 2. даже если сделать что-то похоже то не кастуются селфы, а дамаг все-рано проходит Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Saick 46 Опубликовано 1 июля, 2014 Значит не там проставили Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hikari 48 Опубликовано 1 июля, 2014 (изменено) Значит не там проставили отрицать не стануPlayableAI.rar куда ставить ? Изменено 1 июля, 2014 пользователем Pacifist Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Saick 46 Опубликовано 1 июля, 2014 Не в этом файле. Есть ссылка на исходы? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hikari 48 Опубликовано 1 июля, 2014 Не в этом файле. Есть ссылка на исходы? http://forummaxi.ru/files/file/270-ishodnyj-kod-first-team/ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты