gigilo1968 46 Опубликовано 11 января, 2014 Ребята подскажите как запретить юзать разные банки на ивенте (без дополнительных конфигов) или кто уже делал такое, можете показать пример вот создал перечень итемов private static int[] _itemIds = { 725,726,727,728,5592,13750,10178,10179 }; теперь как их запретить в - UseItem Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 11 января, 2014 ну например добавить игроку хранилище запрещенных предметов и добавлять туда нужные ид например при реге на эвент, а при окончании эвента очищать. ну и затем проверять в UseItem например так if (activeChar.isForbiddenItem(itemId)) { activeChar.sendPacket(new SystemMessage(SystemMsg.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addItemName(itemId)); return; } другой вариант - ввести для игроков какой-то флаг - в котором будет выставляться признак того, что игрок участвует в эвенте. а для вещей ввести параметр - запрещающий их использование на эвенте и опять же в UseItem проверять типа так if (activeChar.isInPvPEventMode() && !item.getTemplate().isAllowedOnPvPEvent()) { activeChar.sendPacket(new SystemMessage(SystemMsg.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addItemName(itemId)); return; } P.S. аналогично можно запрещать еще скажем и использование определенных скиллов на эвенте. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
gigilo1968 46 Опубликовано 11 января, 2014 (изменено) Ясно, спасибо за подсказку, постараюсь реализовать + Изменено 11 января, 2014 пользователем gigilo1968 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
mogr 12 Опубликовано 11 января, 2014 Если итемы имеют свой скилл можно напрямую в ДП запретить <not> <player event="true"> </not> А сделав через <cond msgId=""> припаять сообщение на попытку использования ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Flylink 85 Опубликовано 11 января, 2014 Можно взять механизм запрета итемов, скилов и т.д с олимпиады. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
gigilo1968 46 Опубликовано 11 января, 2014 (изменено) Если итемы имеют свой скилл можно напрямую в ДП запретить <not> <player event="true"> </not> А сделав через <cond msgId=""> припаять сообщение на попытку использования ) этот параметр ядро не поддержывает в скилах (( сделал так <cond msgId="1508" addName="1"> <not> <player instance_zone="607" /> <player instance_zone="608" /> <player instance_zone="609" /> <player instance_zone="610" /> </not> </cond> ошибок не даёт но почемуто не работает тоже Изменено 11 января, 2014 пользователем gigilo1968 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 11 января, 2014 Можно взять механизм запрета итемов, скилов и т.д с олимпиады. это ты про проверку на то что игрок находится в зоне определенного типа?можно и так. но мне лично такой способ никогда не нравился - слишком громоздко и нерационально. лично у меня подобные запреты для вещей и скиллов описываются проще, типа так: <set name="allowed_on_olympiad" value="false" /> <set name="allowed_on_pvp_event" value="false" /> Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 11 января, 2014 этот параметр ядро не поддержывает в скилах (( сделал так <cond msgId="1508" addName="1"> <not> <player instance_zone="607" /> <player instance_zone="608" /> <player instance_zone="609" /> <player instance_zone="610" /> </not> </cond> ошибок не даёт но почемуто не работает тоже скорее уж так: <cond msgId="1508" addName="1"> <not> <or> <player instance_zone="607" /> <player instance_zone="608" /> <player instance_zone="609" /> <player instance_zone="610" /> </or> </not> </cond> З.Ы. не оптимальна такая проверка - каждый раз при юзе скилла/итема такое проверять - не очень. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
gigilo1968 46 Опубликовано 11 января, 2014 Спасибо, так работает - понимаю столько проверок маразм, но без вмешательство в ядро по другому не как не получилось )) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты