-
Публикаций
1572 -
Зарегистрирован
-
Посещение
-
Победитель дней
62 -
Отзывы
0%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент Gaikotsu
-
не вводи человека в заблуждение, если совершенно не разбираешься в вопросе. 2 Автор: эти описания описаны в виде скиллов, в skillname-e, а показ их прописан в npcgrp, в виде информации о скиллах-пассивках моба.
-
скорее уж так: <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> З.Ы. не оптимальна такая проверка - каждый раз при юзе скилла/итема такое проверять - не очень.
-
это ты про проверку на то что игрок находится в зоне определенного типа?можно и так. но мне лично такой способ никогда не нравился - слишком громоздко и нерационально. лично у меня подобные запреты для вещей и скиллов описываются проще, типа так: <set name="allowed_on_olympiad" value="false" /> <set name="allowed_on_pvp_event" value="false" />
-
ну например добавить игроку хранилище запрещенных предметов и добавлять туда нужные ид например при реге на эвент, а при окончании эвента очищать. ну и затем проверять в 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. аналогично можно запрещать еще скажем и использование определенных скиллов на эвенте.
-
делать что-то типа такого (если сборка поддерживает) <zone name="[giran_non_trade]" type="dummy"> <set name="blocked_actions" val="open_private_store;open_private_workshop" /> <polygon> <coords loc="85792 147072" /> <coords loc="83605 147080" /> <coords loc="83560 147537" /> <coords loc="83440 147472" /> <coords loc="80780 147474" /> <coords loc="80692 147543" /> <coords loc="80691 149704" /> <coords loc="80786 149774" /> <coords loc="86445 149877" /> </polygon> <banned_polygon> <coords loc="82725 147884" /> <coords loc="82729 149334" /> <coords loc="81134 149326" /> <coords loc="81137 147887" /> <coords loc="82694 147886" /> <coords loc="82143 148383" /> <coords loc="81692 148378" /> <coords loc="81689 148839" /> <coords loc="82149 148840" /> <coords loc="82150 148396" /> <coords loc="82723 147885" /> </banned_polygon> </zone> во всей зоне, исключая описанную в banned_polygon терииторию, нельзя будет садиться в приват трейд/крафт.
-
самый простой - это тот что выше указан, все остальные что на ум приходят - сложнее и требуют модификаций кода. только я бы дополнил - лучше добавлять статы не в общие для всех скиллы, а в такие, которые есть только у нужных классов, тогда не придется с кондишнами возиться.
-
а конкретно RequestMultiSellChoose, в большинстве сборок алгоритм подбора подходящей для обмена вещи сделан так, что старается выбрать для обмена вещь с самым низким энчантом, если их несколько в инвентаре.
-
ну это понятно - обычно такое идет в связке с защитой, чтобы нельзя было просто взять и заменить модифицированный файл обычной версией.
-
не знаю как точно у лг сделано, но думаю примерно так: l2.exe или используемые им дллки модифицированы так, что при запуске проверяют, как именно была запущена игра, т.е. напрямую или же через апдейтер и если запуск был не через апдейтер, то запускается апдейтер, а l2.exe прекращает работу. обычно для подобных дел подменяют например dsetup.dll из клиента самописной версией, с нужным функционалом.
-
или в данном случае вместо mul использовать div, т.е. деление вместо умножения.
-
самый простой и защищающий только от нубов способ - переименовать l2.exe например в l2.bin или еще что-то, апдейтеру указать что надо запускать этот, переименованный файл, а в качестве l2.exe написать любом языке программирования свою программку из пары строк, которая при запуске просто будет запускать апдейтер.
-
Название: Lin][info Добавил: Gaikotsu Добавлен: 08 Jan 2014 Категория: Скрипты\движки Автор: Gaikotsu Да-да, ваши глаза вас не обманывают - это шара очередной версии базы знаний от меня, уже третьей по счету (если считать только те версии, что я расшаривал). Шарю по причине того, что доработка данной версии мною заморожена и более эта версия, для HF, развиваться не будет - сейчас дорабатывается новая версия, для GoD, основанная на этой. Так что чего зря добру пропадать - может кто возьмет за основу эту версию и доработает ее для своих нужд. Техническая информация: - сама база написана с использованием фреймворка UIKit, шаблонизатора XTemplate и всякой разной мелочи; - активно используются плюшки CSS3 и HTML5, так что старые браузеры в пролете; - парсеры данных заточены под выдирание данных из сервера на базе феникса, так что если у вас сервер на базе овера или еще каком-то другом - парсеры придется переписать под свои нужды (это не так уж и сложно). В живую работу базы можно посмотреть по этому адресу: http://l2i.gaikotsu.ru/ Нажмите здесь, чтобы скачать файл
- 9 ответов
-
- 10
-
-
Версия 2.0
294 раза скачали
Да-да, ваши глаза вас не обманывают - это шара очередной версии базы знаний от меня, уже третьей по счету (если считать только те версии, что я расшаривал). Шарю по причине того, что доработка данной версии мною заморожена и более эта версия, для HF, развиваться не будет - сейчас дорабатывается новая версия, для GoD, основанная на этой. Так что чего зря добру пропадать - может кто возьмет за основу эту версию и доработает ее для своих нужд. Техническая информация: - сама база написана с использованием фреймворка UIKit, шаблонизатора XTemplate и всякой разной мелочи; - активно используются плюшки CSS3 и HTML5, так что старые браузеры в пролете; - парсеры данных заточены под выдирание данных из сервера на базе феникса, так что если у вас сервер на базе овера или еще каком-то другом - парсеры придется переписать под свои нужды (это не так уж и сложно). В живую работу базы можно посмотреть по этому адресу: http://l2i.gaikotsu.ru/Бесплатный
-
а потому-что никак ты это не сделаешь. для 99.9% клиентских окон ничего серву не шлется при их закрытии. можешь банально поставить отладку в GamePacketHandler (или подобный класс - зависит от сборки), чтобы выводило в лог названия всех полученных пакетов и убедиться в этом сам.
-
в чем проблема самому дописать данный функционал, если исходники есть? не такая уж и сложная вещь. З.Ы. можно и без исходников ядра сделать - в виде эвента, в котором при входе игрока в игру ему будет выдавать нужные скиллы, если у его клана есть замок. но данная реализация будет ущербной, т.к. скиллы будут исчезать например при переключении сабы.
-
на шару/продажу не очень много народу разрабатывает. по моему в основном пилят линдвиор и выше чисто для своих серверов (как мы например).
-
может тебе еще и готовые аи написать? за прошедшее с создания темы время мог бы даже просто методом тыка написать все что тебе нужно было, даже если знаешь самые-самые основы явы.
-
Все через их аи делается и очень-очень просто и банально...
-
ну оыбчно автолут можно настроить отдельно как для обычных мобов так и для боссов, но я хз как там у тебя в твоей сборке.
-
Сделать несколько групп дропа с нужной вещью
-
там же по коду метода lockTarget вроде все понятно - если задать в нем объект, то не будет давать игроку, на котором висит эффект, выделять кого либо, кроме этого объекта. ну а при окончании просто обнуляет блокировку, так сказать разрешая снова свободное выделение любой цели.
-
плохо видимо читаешь... это же самые основы в любом языке программирования.
-
делаешь зону на основной зал, где босс, и вешаешь на нее слушатель. в слушателе в методе вызываемом при выходе объекта из зоны делаешь проверку - если этот объект фрея, то телепортируешь ее к примеру обратно в центр зала.
- 2 ответа
-
- 1
-