• Страница 1 из 1
  • 1
Архив - только для чтения
Модератор форума: andycrowz  
Класс нпс
Flywithme
Капрал
Как дать нпс определенный класс.

Т.е мне нужно что бы когда игрок с классом CLASS_HUNTER нажимает у нпс меняеться класс на CLASS_HUNTER.

Код
switch (pPlayer->getClass())
{
case  CLASS_HUNTER:
{
pCreature->GetCreatureInfo()->classNum ==  CLASS_HUNTER;


Примерно так я думал.

Может кто, что подскажет?
Сообщение # 1 отредактировано Flywithme - Среда, 21.01.2015, 21:27
infinium
Маршал
Откуда вы вообще взяли, что у существ может быть CLASS_HUNTER?
Сообщение # 2 написано 21.01.2015 в 20:55
Flywithme
Капрал
Если нпс тренер, у него есть классы.

Когда игрок хочет обучиться спеллам - нпс проверяет игрока класс. Они должны совпадать.

Т.е если у игрока класс Роги, а у нпс класс мага - тренер не будет обучать его.

Делается через госсип на нужном нпс.

Добавлено (21.01.2015, 21:42)
---------------------------------------------
поменял код на:

Код
pCreature->GetCreatureInfo()->classNum = CLASS_HUNTER;


Код
Ошибка 418 error C3892: pCreature: невозможно присваивать значения переменной, которая объявлена как константа C:\FrostfanCore\src\scripts\Custom\npc_class_trainer.cpp 37


можно ли как то изменить это, у нпс ведь могут значения изменяться вообще.
Сообщение # 3 отредактировано Flywithme - Среда, 21.01.2015, 21:28
Horon
Рыцарь
Что именно вам нужно сделать? Может подскажу другую реализацию или же с этой помогу.
Сообщение # 4 написано 21.01.2015 в 22:03
Flywithme
Капрал
Идея такова: Хочу сделать "общего тренера". Когда нажимаешь на нпс он выдает список нужных спеллов.
Проблема в том что у нпс есть свой класс и он проверяет какой класс у игрока. Если классы не совпадают - ничего не происходит.
Сообщение # 5 отредактировано Flywithme - Среда, 21.01.2015, 22:09
Horon
Рыцарь
Ну если я вас правильно понял(вам нужен обычный общеклассовый тренер заклинаний), то его можно легко сделать и через базу(кстати, готовый пример есть на этом форуме, нужно только переписать чуть), если же я вас не так понял, уточните.
Сообщение # 6 написано 21.01.2015 в 22:24
Flywithme
Капрал
У меня OregonCore(2.4.3), общего тренера через базу нельзя сделать.

В одного тренера залили все спеллы для всех классов. Но так как у нпс в creature_template должен быть задан класс нпс - то он все равно работает только для 1 класса.

На ЛК нету такой проверки на классы. Тому приходиться мудрить через ядро)
Сообщение # 7 отредактировано Flywithme - Среда, 21.01.2015, 22:30
Flywithme
Капрал
Ranege, это функция на обнуления талантов. и это сравнения класса игрока с нпс - что бы выполнить обнуления талов.

А мне нужно присвоить нпс определенный класс.:)

Добавлено (22.01.2015, 17:48)
---------------------------------------------
Всем спасибо за попытку помочь.

Вопрос решился:

Код
const_cast<CreatureInfo*>(pCreature->GetCreatureInfo())->classNum = CLASS_HUNTER;
Сообщение # 9 написано 22.01.2015 в 17:48
  • Страница 1 из 1
  • 1
Поиск: