• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Форум » TrinityCore » [TrinityCore] Help » Триггер для инчанта на оружии (С++)
Триггер для инчанта на оружии
Stormtrooper
Командир
Приветствую
Возникла задача:

Есть инчант на оружии (одноручном двуручном не важно) - необходимо чтобы этот инчант с вероятностью скажем 10% при уроне в мили, кастах или стрельбе, триггерил бафф на игрока

Подскажите плиз как это сделать - пока не представляю даже в какой CPPшке код писать
Если помог, ставь плюсик в репу :)

Сообщение # 1 отредактировано Stormtrooper - Четверг, 22.12.2016, 09:57
Pallam
Рыцарь
Инчант накладывает спелл.

Спелл имеет нужные флаги.
Перехватываем флаги и делаем всю грязную работу.
Сообщение # 2 написано 22.12.2016 в 21:25
Stormtrooper
Командир
Какие флаги? чем перехватываем? и главное нафига?

spellmgr.cpp - в этой CPPшке хранятся различные доп скрипты для спеллов
вот только я не знаю как написать скрипт для вероятности срабатывания

Добавлено (24.12.2016, 11:22)
---------------------------------------------
Ну что ни у кого нет идей? sad

Если помог, ставь плюсик в репу :)

Сообщение # 3 написано 24.12.2016 в 11:22
Pallam
Рыцарь
Флаги на срабатывания.
Покурите spell.dbc вики. Там все написано про procFlags, сам ведь дописывал rofl
Сообщение # 4 написано 25.12.2016 в 01:39
Stormtrooper
Командир
при чём тут флаги вообще?
если вы не знаете ответа на вопрос - не нужно писать ерунду
spellmgr.cpp - в этой CPPшке хранятся различные доп скрипты для спеллов

нужно просто написать нужный CASE: xxxxx в нужном разделе
повторяю - я лишь не знаю как задать процентную вероятность прока

флаги тут вообще ни при чём
Если помог, ставь плюсик в репу :)

Сообщение # 5 написано 26.12.2016 в 01:03
Pallam
Рыцарь
Господи, если вы не знаете основную механику проков, не надо мне тут наяривать про "spellmgr"
Объясняю - почти 100% думми-проков, даже печать пала на дополнительный урон автоатаки - скаллящийся спел, который навешивается на персонажа и в момент срабатывания прока procFlags, тех самых, вызывают свой скрипт.
Хорошо, а при чем тут инчант? А то, что инчант - это невидимое наложение спела на персонажа, в 40% случаев. Так сделайте инчант, который будет накладывать спелл, который при определенных проках будет вызывать нужный эвент. Делов в целом - на час.
а делать какие-то кривые case непонятно где - не просто неэтично, а вообще стоило бы руки обрывать. Потому что всю эту няшность давно нужно было (а лучше изначально) разбить на подключаемые скрипты и играть с их подключениями. А не так, как вышло в начале у тринити.

В вашем же случае, даже не нужно ничего писать в ядро, с этим извращением из разряда "перехват энчанта для наложения спела". Вам нужно написать всего-лишь спел с прокфлагами нужными (ОНИ ЕСТЬ НА ВИКИ!), который при проке будет вызывать спел (в дбц можно даже шанс настроить. Это не сложно). И никакого ядра.
Сообщение # 6 отредактировано Pallam - Понедельник, 26.12.2016, 01:48
Stormtrooper
Командир
Это за изменения ДБЦ надо руки отрывать по самые гланды так как ДБЦ берётся из клиента а значит правильный по определению
Ваш "совет" - полная глупость

p.s про ИНЧАНТ я сказал не просто так - я вообще ничего просто так не делаю

если вы такой умный то уже должны были догадаться о чём именно идёт речь
речь идёт именно об ИНЧАНТАХ которые триггерят спеллы
к примеру :
Blessed Weapon Coating и Righteous Weapon Coating
http://www.wowhead.com/item=34538/blessed-weapon-coating
http://www.wowhead.com/item=34539/righteous-weapon-coating

ДБЦ тут вообще ни при чём
Данные ИНЧАНТЫ ничего не делают а должны триггерить 45403 от Blessed и 45401 от Righteous
И где тут ДБЦ?
Убедительно прошу не писать бред

p.p.s
в spell.dbc нет даже намёка на те спеллы которые должны триггериться
скриншотики прислать?

Добавлено (27.12.2016, 13:00)
---------------------------------------------
Вобщем ситуация немного прояснилась но всё равно не до конца

Как выяснилось немного был неправ я а немного Pallam

DBC как оказалось МОЖЕТ ошибаться - в моём случае триггеры 45403 от Blessed и 45401 от Righteous в DBC отсутствуют - вместо них почему-то несуществующие спеллы, но находятся они не в spell.dbc как писал Pallam а в SpellItemEnchantment.dbc

Я поставил нужные спеллы и Righteous заработал а вот с Blessed всё куда сложнее - он должен срабатывать не только при ударах в мили но и при кастах заклинаний и при выстрелах из Ranged оружия типа вандов луков и тд
Вот это сделать как раз не удаётся ну никак - пробовал самые разные флаги но толку никакого - удалось добиться срабатывания только в мили и при смене оружия/наненсения инчанта - на спеллы и на дальнобойное оружие не реагирует

Может кто подсказать комбинацию флагов в DBC для OregonCore TBC ?
Структура выглядит так:



я выяснил - что единички в начале это как раз флаг (отрабатывают почему-то только 1 и 3 - один это удар в мили а 3 это надевание оружия/наложение инчанта)
колонки 5 и 8 это вероятности срабатывания (при чём непонятно почему их 2 но у всех спеллов именно такая фигня)
колонка 11 это как раз спелл который требуется вызвать триггером
остально не существенно так как изменения других колонок не давали никаких изменений

Помогите плиз найти комбинацию для срабатывания триггера при кастовании и стрельбе

Если помог, ставь плюсик в репу :)

Сообщение # 7 отредактировано Stormtrooper - Понедельник, 26.12.2016, 10:04
Pallam
Рыцарь
Я вообще о 335а.
Об Орегоне и тбк я слабо представляю. Схема одинаковая, уточнений не было про тбк.
Было бы - я б не давал советов, ибо не знаю эту структуру. За 335 спокойно поясню (там, в принципе, даже и сами дбц не трогать можно, есть же таблица spell_dbc в world) что там про Орегон - опять таки, не знаю, но, скорее всего, есть и что-то подобное.

Добавлено (28.12.2016, 00:56)
---------------------------------------------
обработку нужных флагов почекайте буквально на месте. в ТКоре они прописаны отдельно.
Если подгоните структуру (хотя бы) на Орегонку, мб и подскажу что-нибудь.

Сообщение # 8 написано 28.12.2016 в 00:56
Форум » TrinityCore » [TrinityCore] Help » Триггер для инчанта на оружии (С++)
  • Страница 1 из 1
  • 1
Поиск: