• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Установка NPC в ГМ режиме
Stormtrooper
Командир
И снова всем привет
Думаю проблема известная но блин решения я не нашёл (только советы не ставить мобов в ГМ режиме)
Но всё-таки - как сделать так чтобы мобы ставились в ГМ режиме и были видимы для игроков?
Сейчас если моба поставить он создаётся с phasemask = 4294967294
Откуда он это значение тянет я так и не понял
Помогите плиз знанием
Спасибо
Если помог, ставь плюсик в репу :)

Сообщение # 1 написано 25.07.2019 в 14:33
Infernales
Сержант
Цитата Stormtrooper ()
Думаю проблема известная но блин решения я не нашёл (только советы не ставить мобов в ГМ режиме)Но всё-таки - как сделать так чтобы мобы ставились в ГМ режиме и были видимы для игроков?

Скорее всего это означает, что данная локация имеет несколько фаз, а поскольку ГМ находится сразу во всех фазах, то из-за этого и возникает
такая проблема.
Цитата Stormtrooper ()
Сейчас если моба поставить он создаётся с phasemask = 4294967294

Лично мне данное значение кажется аномальным и возможно у тебя где-то ошибки в серверной части.
Цитата Stormtrooper ()
Но всё-таки - как сделать так чтобы мобы ставились в ГМ режиме и были видимы для игроков?

Как вариант поиграться с командой ".npc set phase". В TC она вроде как сохраняет данные о фазе NPC в БД.
Сообщение # 2 написано 26.07.2019 в 03:19
Stormtrooper
Командир
я копаю ядро БК а там фаз по зонам ещё по сути не было
да я спрашиваю про серверную часть
каждого поставленного моба допиливать командой это жесть
Если помог, ставь плюсик в репу :)

Сообщение # 3 написано 26.07.2019 в 19:40
p620
Маршал
Цитата Stormtrooper ()
я копаю ядро БК


Сообщить об этом сразу Вы, конечно же, не могли - пускай люди гадают.
Каким образом по-Вашему можно определить источник проблемы, если посмотреть код нет возможности? Либо скидывайте ссылку на репозиторий, либо начинайте приводить сниппеты по запросам. Начать можете с обработчика команды 'npc add ID'.
Сообщение # 4 отредактировано p620 - Пятница, 26.07.2019, 22:07
gratural
Капрал
Stormtrooper, в 335  перед расстановкой нужно самому перелючиться в нужную фазу.
Значит добавили на каком-то этапе. Ищи phasemask в исходниках
Сообщение # 5 написано 29.07.2019 в 10:26
p620
Маршал
Цитата gratural ()
Stormtrooper, в 335  перед расстановкой нужно самому перелючиться в нужную фазу.


В современной ветке 3.3.5 официального TrinityCore как раз наличествует обработка
Код
uint32 Player::GetPhaseMaskForSpawn(void) const

, игнорирующая GM-статус при установке игроком НИПов.
Сообщение # 6 отредактировано p620 - Понедельник, 29.07.2019, 12:36
Stormtrooper
Командир
Цитата p620 ()
В современной ветке 3.3.5 официального TrinityCore как раз наличествует обработка
Код
uint32 Player::GetPhaseMaskForSpawn(void) const

, игнорирующая GM-статус при установке игроком НИПов.


Привет
Твои ответы конечно хамоватые :)) но всё-же ответ про обработчик GetPhaseMaskForSpawn навёл меня на мысль
И хотя версия ядра не имеет отношения к внесению PhaseMask в базу (уверен оно везде одинаковое - SaveToDB или что-то вроде того), но я смог благодаря твоему ответу найти решение
Вобщем поискал по GetPhaseMask и нашёл сохранение creature в базу:

creature->SaveToDB(map->GetId(), (1 << map->GetSpawnMode()), chr->GetPhaseMaskForSpawn());

Проверил и действительно, сохранение находится в:
bool ChatHandler::HandleNpcAddCommand(const char* args)

А значит это то что нужно - просто меняем chr->GetPhaseMaskForSpawn() на 1 и всё - фазы игнорируются

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

Сообщение # 7 написано 30.07.2019 в 09:54
  • Страница 1 из 1
  • 1
Поиск: