| 両面宿儺 | Дата: Суббота, Вчера, 20:43 | Сообщение # 1 |
Призрак
Оффлайн
Сообщений: 4
Замечаний нет
| [В1] Что ещё можно сделать в Titan Quest PvP, скиллы и немного того, что осталось за пределами старых тем форума
Здравствуйте 👋🖤Вижу давно тут никто ничего не писал, а в игру всё меньше, но всё же продолжают играть. Что касается меня, я тоже плыпу по течению и понемногу рыпаюсь, просто для меня большая часть возни уже давно происходит в CE, а не в АртМенеджере.За это время накопилось достаточно, чтобы написать несколько тем. Про умения, баффы, выбор индивидуальной цели на кодовом уровне, работу игры по сети и т.д. В старых темах много полезного для новых игроков, сам когда-то с них начинал. Но некоторые вещи там либо вообще не разбирались, либо обсуждение заканчивалось на "видел у кого-то на сервере, как сделать хз".Вот такие места и хочется понемногу разобрать. Начну с PvP, потому что с ним у многих примерно одинаковая история.Цитата Сначала хочется включить PvP. Потом выясняется, что включить его было самым простым во всей затее :D 1. Сервер наш, чего бы всему не сработатьДопустим, с включением PvP в основной игре уже разобрались. Пока из изменений только это: обычный персонаж, допустим предвестник, обычные скиллы. На сервер к вам заходит чел у которого статы по 10000, и укладывает с одного удара или скилла. Резы у него по 80%, если он вообще без своего мода. С модом ведь тоже можно заходить на серваки. А иногда чел просто становится у фонтана и спамит ударами, даже со своего сервера нормально не ливнуть из-за постоянной загрузки.Но что если всё же хочется зарубиться с ним. Например, заморозить. Как это делали те ребята, к которым раньше можно было зайти и потом полчаса не сдвинуться с места) По постам \ коментам с тех времён, когда онлайн был на пике, "вечная заморозка" была чуть ли не слухом и одной из самых желаемых вещей в PvP.В зависимости от того, сколько вам уже получилось узнать об игре и моддинге, история обычно идёт примерно так:1. Пока непонятно как сделать мод, как его загрузить в активный сеанс и потом зайти с ним на сервер, либо создать свой. • Тут для начала пригодятся старые темы форума про создание модов. Сделать что-нибудь небольшое, привыкнуть к АртМенеджеру, а потом уже разобраться с загрузкой своего мода в активный сеанс через CE.2. Свой мод уже есть, сервер запущен, интеллект давно за десятки тысяч. В баффе заморозки стоит таймер на час, противник в радиусе, скилл кастуется, а морозит всё равно секунд на 6~8. Что не так, я же хост? • В своей игре на мобах увеличение времени может дать нужный результат, а с игроком на сервере получается иначе. Здесь обычно и начинается знакомство с шаблонами .tpl, переделкой скиллов и старыми PvP модами. Был один немецкий сайт моддера с такими наработками: изменения скиллов, персонажей, карты. Некоторые архивы были с паролями, некоторые можно было спокойно открыть и посмотреть что внутри.Цитата Кстати, про старые способы) Раньше для таких вещей скрещивали хилки, дебаффы и ауры из природы и грёз. Брали скилл, который уже умеет действовать на окружающих персонажей, и пытались через него получить нужный эффект. Кто ковырял старые PvP моды, возможно, узнает знакомые сочетания. Но можно сделать для каждой ауры отдельный файл баффа, связать его с самой аурой и через подходящий .tpl переделать скилл во включаемый \ выключаемый. Так уже понятнее что именно накладывается, без лишнего поведения от хилки, взятой за основу. Это вполне рабочая ступень моддинга. Только вопрос с выбором союзников \ врагов от этого сам по себе не решается ;) 3. Разница между разовым кастом и аурой уже знакома. Большинство нужных скиллов переделано, заморозка \ ловушка \ оглушение постоянно обновляется, пока персонаж в радиусе. Если, конечно, эффект проходит через его защиту. • На авто-пати сервере такое уже может дать тот самый результат. А на PvP сервере ещё надо разобраться, как направить ауру на врага. Огромный радиус тоже не бесплатный: при таких экспериментах можно заметить неприятные вещи с пингом и нагрузкой на игру. Проще держаться на подходящем расстоянии, чем пытаться одной аурой накрыть полкарты.2. Так что там с "вечной" заморозкойСо стороны всё выглядит как одна длинная заморозка. Перс стоит, лёд не пропадает. Можно решить, что ему один раз дали бафф на несколько часов.А в примере с аурой он всё это время обновляется. Это и позволяет держать персонажа в эффекте, даже если попытка просто увеличить длительность разового каста не дала желаемого результата.Аура выключилась \ персонаж вышел из радиуса, дальше остаётся последнее наложение. Сколько оно проживёт и как закончится, уже зависит от конкретного скилла и условий.Вот почему одного выражения "вечная заморозка" мало. У одного это постоянно работающая аура, у другого может быть совсем другой способ. А по виду оба держат человека во льду.Есть и способ оставить эффект без необходимости стоять рядом с включённой аурой. До него ниже ещё дойдём)3. В датабейзе заморозок побольше чем в мастерствеКогда обычные скиллы уже знакомы, начинаются поиски у монстров \ боссов \ в старых файлах. Там хватает и заморозок, и сетей, и окаменения, и других эффектов, которых в обычных скиллтри нет.Всего я у себя насчитал пять разных заморозок. Не просто пять уровней одного скилла, а разные варианты из игровых записей. В ролике дальше они тоже будут.Только у одного умения может быть несколько файлов: сам каст, снаряд, бафф после попадания, вспомогательные записи. Поэтому знакомое название ещё не говорит, что найден именно тот файл, который нужно кастовать.Отсюда и куча попыток выдать себе скилл, который отдельно вообще не работает так, как ожидалось. Файл существует, путь правильный, а толку нет. Иногда достаточно посмотреть откуда он вызывается, чтобы стало понятно, чего ему не хватает.У старых заморозок ещё и внутренние классы могут отличаться. Так что там интересно не только цифры сравнивать.4. Через шмотку тоже не всё так простоКто читал старые темы, наверняка пробовал собирать несколько вещей в одну. Основа, префикс \ суффикс, бонусы реликвий, ссылки на другие записи. Свойств получается на полэкрана, можно сидеть и комбинировать долго.Но изменение стат предмета, получение скилла и его применение на другом персонаже всё равно остаются разными вещами. Ссылка на запись может дать совсем не то поведение, которое представлялось по её названию.У предметных скиллов есть условия срабатывания. Нужное описание уже на шмотке, а запуска нет, потому что условия не подошли. Здесь увеличение силы или длительности эффекта ничего не изменит, до самого эффекта ещё не дошло.Старые вещи с отрицательными характеристиками, от которых персонаж умирал после надевания, тоже хорошо это показывают. Умереть можно из-за изменившихся стат, без отдельного скилла который кого-то "убивает".Устройство таких вещей лучше разобрать отдельно, на конкретных записях. Иначе здесь только предметами и займёмся :D5. Скилл кастуется, а противнику ничегоКто уже пытался выдавать себе через мод скиллы не из обычных мастерств, скорее всего знаком с этим моментом. Медицина, способности монстров, квестовые скиллы, баффы с алтарей. В своей игре всё интересно, а на сервере пользоваться ими обычным способом будто бы "невозможно".Сам скилл удалось выдать, он есть у персонажа, может даже кастуется. Например, летит снаряд паутины, попадает во врага, а ловушки нет. Причём снаряд виден только со своей стороны. Сам противник не видел ни паутины, ни попадания и никакого баффа не получил.То есть даже до случая "у одного перс замёрз, у другого бегает" дело не дошло. Отрисовался локальный каст, на этом всё.Цитата Поэтому "выдать себе скилл" и "пользоваться им на сервере" в таких опытах совсем не одно и то же. Есть и другой вариант рассинхрона, когда чужой перс уже выглядит обездвиженным \ мёртвым, но сам игрок у себя и других спокойно бегает. Такое тоже встречалось. Вроде эффект получился, а человек даже не понял что с ним пытались сделать)Вот почему проверка только со своей стороны легко вводит в заблуждение. Важно что произошло у самого игрока, а не только как его перс отрисовался у остальных. На примере с годмодом ниже как раз будет видно обе стороны.6. Но пользоваться этими скиллами всё-таки можноМне удалось найти способ кастовать скиллы монстров и накладывать баффы из разных частей игры на выбранного персонажа. Старые \ новые мастерства, медицина, монстры, локации, алтари. Короче говоря, эффекты которые при обычной выдаче через мод \ вещи на сервере нормально не работали.Для показанного набора я отфильтровал скиллы с негативным эффектом: дебаффы, контроль и прочие неприятности. Поэтому под "всеми скиллами" здесь не подразумевается вообще каждый файл в базе.Сами эффекты можно переделывать в "ауры" уже на кодовом уровне. Кавычки здесь не просто так: это не та переделка через .tpl, о которой я говорил выше. Не требуется всё время стоять рядом и поддерживать эффект радиусом.В моих опытах наложенные таким способом баффы оставались даже после моего выхода с сервера. Пока сам игрок не умрёт \ не выйдет, либо пока я не сниму с него это добро. Сроком действия тоже можно управлять. Для такого "вечного" варианта время выставлено настолько большим, что в обычном ходе игры бафф не заканчивается.Ролики уже давно лежали на ютубе, я про них и забыл)
Здесь показано со стороны хоста. Игра у меня обычная, без подгруженного мода. Включён годмод, чтобы не сдохнуть посреди демонстрации. Способ работает не только на хосте, но и на присоединившемся игроке.На видео есть те самые пять заморозок, четыре варианта "волчьей сети", три паутины и много других скиллов. Попадаются и несколько эффектов со значком молнии. Только одинаковая иконка не означает одинаковый дебафф.Есть скиллы монстров, ауры со старых файлов, эффекты с локаций, в том числе из комнат боссов. Свитки и некоторые артефакты тоже переделаны в ауры. А вот режущие резисты эффекты с алтарей в Гелосе тогда забыл добавить. Ещё прикол в том, что таким способом можно накладывать на врага скилл вообще любого типа, возьмем то же окаменение с мастерства земли, или его старую версию, по дефолту, его можно накладывать только на себя, а так, и на других)Во второй части идут дебаффы, которые при обычных попытках у людей чаще всего так и остаются локальными. В конце сам снимаю наложенные ауры с персонажа.Ещё про таймеры в правой части ряда эффектов. Там одни и те же скиллы применялись разными способами (типо сначала они шли наложенные "вечным" способом, а после через снаряд, и повторное наложение перезаписало часть прежних эффектов. Поэтому у некоторых значков снова появилось обычное время. Это не означает, что все наложенные ауры вдруг начали заканчиваться.Внутреннее устройство способа здесь расписывать конечно же не буду. Но по результату уже видно, насколько дальше обычного редактирования мастерств можно зайти.7. Курсор, ауры и выбор конкретного персонажаПо привычке удар \ каст направляется туда, куда наведен курсор. Для большинства обычных скиллов так и играют: выбрать противника, навестись, атаковать. Логично и привычно.Ауры от этого частично освобождают. Не нужно каждый раз вручную выцеливать одного и того же чела, пока он попадает под действие ауры и подходит ей как цель.Но есть и третий вариант. По смыслу немного напоминает Aim-Assist из других игр, только здесь речь о выборе персонажа по его внутреннему ID. Можно получить ObjectID нужного игрока и работать с этой целью, не привязывая каждый раз выбор к положению курсора.Само получение ID ещё ничего не кастует и не обходит правила игры. Зато появляется способ точно указать с каким объектом предстоит работать.Кстати, на форуме уже есть тема про консоль разработчика. Там упоминается команда:Цитата character.LogData [true/false] Включает \ выключает вывод игровой информации о монстрах и NPC. Для знакомства с тем, какие сведения игра умеет выводить об объектах, пригодится. Это не лучший способ получить ID любого игрока, но хороший повод начать смотреть дальше имени над головой.Консоль сначала надо включить в текущем сеансе. Как вижу, на форуме уже есть пост про включение консоли через скрипт, так что каждый раз вручную искать одноразовый адрес не обязательно.Дальше уже можно разбирать чтение \ перехват цели в CE. Главное не путать ID с адресом объекта. И не считать что сохранённое значение автоматически относится к тому же персонажу после перезахода.8. Хост, присоединившийся игрок и годмодСетевая часть становится особенно заметна, когда обычные скиллы перестают давать результат. Например, хост включил game.god true. Атаки и спам даже всех скрытых скиллов его не пробивают. Значит ли это, что сделать уже ничего нельзя?У меня есть ещё один старый ролик как раз об этом:
Сначала видно, что обычные атаки \ скиллы не проходят. Примерно с середины показано уже с обеих сторон: присоединившийся игрок сверху слева, хост снизу справа.После применения другого способа у хоста сразу падает ХП и начинается цикл смерти, несмотря на включённый консольный годмод. Это происходит у обоих игроков, а не локально только у себя.Вот здесь как раз видна разница с локальной "смертью". В неудачном варианте у атакующего лежит труп, а сам хост продолжает спокойно играть. В показанном случае изменение дошло до самого хоста.Это не означает, что консольный годмод и вообще любая защита одно и то же. Есть способы атаковать и сильнее этого, есть и защиты посложнее. Но уже этот пример показывает, почему сравнивать всё только по урону скилла \ резистам недостаточно.Для сетевого действия важно кто управляет объектом, как оно обрабатывается и что принимает другая сторона. Поэтому "я хост" не даёт одинакового преимущества во всех случаях. В некоторых местах у присоединившегося игрока возможности могут оказаться даже интереснее)9. Насколько далеко вообще можно зайтиСмерть тоже работает по-разному. Дроп ХП, обычный урон и вызов других внутренних механизмов могут закончиться похожей картинкой, но вести себя при этом по-разному. Отсюда и разные результаты против защит.На более глубоком уровне у меня получалось обнулять \ уводить в отрицательные значения ХП, ману, силу, интеллект, ловкость другого игрока. Вплоть до нулей и отрицательной бесконечности. Такие вещи не ограничиваются только своим сервером, но нюансы хоста \ присоединившегося игрока всё равно остаются.Это уже не вопрос какой бонус вписать в шмотку или сколько интеллекта добавить через мод. Такой прямой дроп одним редактированием .dbr в АртМенеджере не повторить. Здесь работа идёт с самим движком и сетевыми механизмами.Поэтому я обычно и бегаю без своего мода, со стандартным набором вещей. Даже карту меняю через движок во время игры, а не через заранее собранный мод.Самих реализаций таких атак здесь не будет. Но объяснить почему они отличаются от обычного урона и почему роль в соединении меняет результат вполне можно. Для начальной темы достаточно увидеть, что за привычными скиллами и шмотками есть ещё очень много всего.10. Зачем вообще всё это писатьПонимаю тех, кто разобрался и оставил наработки у себя. На поиск одной функции и понимание того что она реально делает может уйти куча времени. А со стороны потом кажется, что просто нашёл число, поменял и всё заработало.Сам на это потратил достаточно времени и нервов. Поэтому часть хочется рассказать, чтобы следующие люди хотя бы не начинали с тех же самых тупиков.Про дроп ХП я когда-то видел у других. А вот такого применения скиллов монстров \ медицины сам не встречал. Помню одного чела много лет назад, который через консоль спавнил алтари, а они уже выдавали баффы. Дальше этого тогда не видел. Это из моего опыта, за всех кто когда-либо ковырял игру говорить не буду.Пост задумывался начального уровня, поэтому здесь больше примеров и объяснений, чем внутреннего кода. Хотелось показать сколько всего остаётся за пределами обычного моддинга, даже в игре которую столько лет разбирают.Описывать буду то, что уже проверено, в том числе с двух и больше сторон. Где результат зависит от роли, версии или мода, это тоже будет в объяснении. А старые ролики здесь просто кстати нашлись, специально снимать каждую вещь заново не планирую)Если кому-то это поможет дальше разобраться в титанке, значит не зря всё это собирал.

Сообщение отредактировал 両面宿儺 - Суббота, 2026-11-07, 20:55 |
| |
| |