-
Публикаций
1569 -
Зарегистрирован
-
Посещение
-
Победитель дней
62 -
Отзывы
0%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент Gaikotsu
-
чем он юзабельней то? наоборот показ по шифт+клику более гибкий и информативный - его же даже можно выдавать персональный для игрока, с учетом его личных рейтов, штрафа от разницы уровней с мобом и т.д. и т.п.
-
обычно непись привязывается к замку указанием в его свойствах ai-параметра указывающего id замка. еще бывает просто в самом классе типа NpcInstance/MerchantInstance и.д. детектится самый ближайший по координатам замок и идет автоматическая привязка к нему. все зависит от сборки
-
и зря - это ты сделал так, что у тебя все предметы нпс будут продавать игрокам по 5 аден
-
ага, так и вижу что прям авторы сборки думали "вот точно кому-то потом потребуется такая фигня - обязательно добавим такое" и вобще куда уж проще то может быть? написать листенер по сути в несколько строк и при старте серва пркреплять его к зоне/зонам с определенным типом или именем.
- 4 ответа
-
- 1
-
-
написать и зарегать листенер для нее и в обработке входа в зону делать что душе угодно. надеюсь у тебя в сборке поддержка таких листенеров имеется. пример простого листенера для овероподобных сборок package listeners.zones; import l2p.commons.util.Rnd; import l2p.gameserver.enums.AbnormalVisualEffect; import l2p.gameserver.enums.ZoneType; import l2p.gameserver.listener.zone.OnZoneEnterLeaveListener; import l2p.gameserver.model.Creature; import l2p.gameserver.model.Zone; import l2p.gameserver.scripts.ScriptFile; import l2p.gameserver.utils.ReflectionUtils; /** * При входе в зону воды вешает на игрока случайный абнормал, меняющий внешний вид одетой брони на купальник, а при выходе из зоны убирает его обратно. * * @author Gaikotsu */ public class WaterZone implements ScriptFile { private static final AbnormalVisualEffect[] _ae = { AbnormalVisualEffect.SHAPE_BIKINI_A, AbnormalVisualEffect.SHAPE_BIKINI_B, AbnormalVisualEffect.SHAPE_BIKINI_C }; private static final ZoneListener _zoneListener = new ZoneListener(); @Override public void onLoad() { for (Zone zone : ReflectionUtils.getZonesByType(ZoneType.water)) zone.addListener(_zoneListener); } @Override public void onReload() {} @Override public void onShutdown() {} public static class ZoneListener implements OnZoneEnterLeaveListener { @Override public void onZoneEnter(Zone zone, Creature cha) { if (!cha.isPlayer()) return; cha.startAbnormalEffect(_ae[Rnd.get(_ae.length)]); } @Override public void onZoneLeave(Zone zone, Creature cha) { if (!cha.isPlayer()) return; for (AbnormalVisualEffect ae : _ae) cha.stopAbnormalEffect(ae); } } }
- 4 ответа
-
- 1
-
-
сделать можно комбинируя 1 и 2 как вариант могу посоветовать за основу взять мои скрипты бз - они достаточно простые и понятные и переработать их под себя можно имея даже базовые познания в HTML/CSS/PHP/JS но сразу предупреждаю, что то что там у меня выложено - это писалось еще под феникс, в котором все требуемые серверные данные хранятся в бд. если необходимо будет парсить данные из овероподобной сборки, то парсеры данных придется почти полностью переписывать, т.к. в таких сборках все нужное лежит в xml-файлах. З.Ы. если что, в шаре у меня есть и более новые версии бз, с переработанными парсерами. но лежат они не на этом форуме.
-
Даже если запилят двигло на UE4, то графические ресурсы то один фиг будут использовать от старого клиента - врд ли кто возьмется все модели создавать новые и делать новые текстуры. А значит один фиг докопаться повод останется.
-
Но опять же без фришардов линейка была бы еще одной корейской гриндилкой, о которой почти никто бы не знал за пределами Кореи. Все же фришарды вольно и невольно делали и делают просто огромную рекламу игре.
-
да никак по сути - один фиг банят как только хоть сколько-то нормальное количество подписчиков в группе появляется. мы дак уже по сути забили на группу в вк, ибо банят слишком быстро...
-
а, ну может в старых хрониках так называлось - я то глянул в ини от крусейда
-
user.ini выставить для нужных вариантов FixedDefaultCameraMaxDist большое значение, к примеру 65535
-
Чет меня терзают подозрения что медленная работа с бд в наличии. и все фризится из-за того что одномоментно идет куча запросов в бд на изменение инфы о предметах. А если еще там на каждое обращение в бд идут действия "соединение с бд -> запрос -> закрытие соединения", то тут еще и может упереться в лимит соединений. Т.е. части запросов к бд еще и придется ждать своей очереди на освобожденные коннекты
-
потому что корейцы при реализации показа анимаций каста и т.п. не рассчитывали на извращенцев, которым вздумается обходить официальное ограничение в 1999 скорости каста.
-
я так подозреваю там сделан костыль, в виде того что одетое в слот нижнего белья на самом деле модифицирует отображаемые ид других слотов эквипа. в любом случае изменение внешнего вида эквипа через одевание отдельного итема в какой-то слот - это кривой костыль в плане реализации функции смены внешнего вида, т.к. слот то может и для чего друго понадобиться. если уж реализовывать подобное, то за основу можно взять офф реализацию подобного функционала, появившуюся с глори дейс - у предметов просто появилось еще одно свойство, где можно хранить ид внешнего вида, и при его наличии - оно и шлется в CI / UI. Конечно там для этого выделены отдельные поля в пакетах, то в ХФ и ниже этим ид можно просто подменять реальный ид одетого предмета. чисто для примера моя реализация. никаких доп. одеваемых предметов - все данные о внешнем виде предмета хранятся в этом самом предмете, а не где-то извне.
-
ну для хроник хф и ниже, слот нижнего белья никак на внешности перса не отображается.
-
Я бы честно говоря посоветовал ограничиться апом до того же крусейда - намного меньше геммороя будет, т.к. данных по пакетке крусейда найти можно много. На худой конце можно даже сразу взять сборку крусейда из шары, ту же юнити к примеру, и уже на базе ее дальше пытаться пилить.
-
В качестве источника инфы по структурам можно было бы порекомендовать NetPro, но конкретно по орфену тут помощи будет мало - там более менее полные структуры только до крусейда (включительно)
-
пусть и по мелочам, но отличия в пакетке есть. так что удачи искать правильные структуры пакетов под орфен, затем тщательно у себя сравнивать все пакеты и исправлять отличия.
-
У нас тут не филиал ТНТ - экстрасенсов нет.
- 3 ответа
-
- 1
-
-
ты как я понимаю про Аура Сигеля / Аура Тира и т.п. тогглы? опять же все обрабатывается в эффекте таких тогглов - какой дополнительный скилл включать например у меня так: <!-- Аура Сигеля / Sigel Aura --> <skill id="1927" levels="1" name="Аура Сигеля"> <!-- Дает члену группы Силу Сигеля. Физ. Атк. +1%. --> <stat name="icon" value="icon.icon_sigel" /> <stat name="reuseDelay" value="5000" /> <stat name="target" value="SELF" /> <stat name="skillType" value="CONT" /> <stat name="operateType" value="OP_TOGGLE" /> <stat name="magicType" value="3" /> <stat name="magicLevel" value="85" /> <for> <effect name="ForceAura" count="0x7fffffff" time="5"> <def name="forceSkill" value="1928" /> </effect> </for> </skill> <!-- Сила Сигеля / Sigel Force --> <skill id="1928" levels="1" name="Сила Сигеля"> <!-- Физ. Атк. +1%. --> <stat name="icon" value="icon.icon_sigel_01" /> <stat name="reuseDelay" value="5000" /> <stat name="affectRange" value="1600" /> <stat name="target" value="PARTY" /> <stat name="skillType" value="BUFF" /> <stat name="operateType" value="OP_TOGGLE" /> <stat name="magicType" value="3" /> <stat name="hideStartMessage" value="true" /> <stat name="hideUseMessage" value="true" /> <stat name="magicLevel" value="85" /> <stat name="effectPoint" value="2" /> <for> <effect name="ForceAura" count="0x7fffffff" time="5" stackOrder="1" stackType="synergy_sigel"> <def name="auraSkill" value="1927" /> <mul order="0x30" stat="pAtk" value="1.01" /> </effect> </for> </skill> + эффект ForceAura кладет еще один дополнительный бафф (Сила Единства Группы) на пати, если в ней активировано не менее 4 аур, и среди этих аур есть ауры сигеля и альгиза. наверняка в мобиусе что-то подобное тоже сделано
-
я не знаю что тут сложного вобще? вот, чисто ради интересу буквально за 10 минут набросал рабочий вариант, правда для овероподобных сборок, но все же package managers; import l2p.commons.threading.RunnableImpl; import l2p.gameserver.ThreadPoolManager; import l2p.gameserver.listener.actor.player.OnPickupItemListener; import l2p.gameserver.model.Location; import l2p.gameserver.model.Player; import l2p.gameserver.model.actor.listener.PlayerListenerList; import l2p.gameserver.model.items.ItemInstance; import l2p.gameserver.scripts.ScriptFile; import l2p.gameserver.utils.ItemUtils; /** * @author Gaikotsu */ public class AutoDropManager implements ScriptFile { private static boolean _enabled = true; private static final int _itemId = 57; private static final long _itemCount = 1000L; private static final long _dropDelay = 10_000L; private static final Location _dropLoc = new Location(83473, 149223, -3300); // Giran private static final PickupItemListener _listener = new PickupItemListener(); private static int _objId = 0; @Override public void onLoad() { if (!_enabled) return; PlayerListenerList.addGlobal(_listener); dropItem(); } @Override public void onReload() {} @Override public void onShutdown() {} private static void dropItem() { ItemInstance item = ItemUtils.createItem(_itemId); item.setCount(_itemCount); item.dropMe(null, Location.coordsRandomize(_dropLoc, 50, 150)); _objId = item.getObjectId(); } private static class PickupItemListener implements OnPickupItemListener { @Override public void onPickupItem(Player player, ItemInstance item) { if (item.getObjectId() != _objId) return; ThreadPoolManager.getInstance().schedule(new RunnableImpl() { @Override public void runImpl() throws Exception { dropItem(); } }, _dropDelay); } } }
-
Клиент линейки и так базируется на UE2. Ты корее всего видел попытки портирования на UE3 или UE4, коих было уже не одна попытка, но все обычно ограничивается самым минимумом, после чего все забрасывается.
-
В методе расчета маг урона вызвывать (или в скилтайпе MDAM), если произошел крит
-
данный вывод текста вроде как не юзает системный шрифт, а вместо него используется шрифт из текстур. и такое вроде как от некорректных данных в файлах *.gly - если не ошибаюсь, то заданы не те размеры глифов, какие реально есть в текстуре с шрифтами.