• Страница 1 из 1
  • 1
Архив - только для чтения
Модератор форума: andycrowz  
Требуется помощь с заклинанием
MantiCore
Разработчик YTDB R2
Не могу понять в каком файле исходников копать. Есть задания которые при сдаче, дают игроку заклинания. А именно нужно на определенный квест сделать отбирание заклинания у игрока. Кто знает, подскажие где искать.
Чтобы сделать что то особенное - нужно просто поверить что это особенное.
Пишите по вопросам и приватке на https://vk.com/id195171613
Skype - MantiCore8460
Сообщение # 1 написано 07.12.2013 в 14:00
staford11
^s†af0rd f0rever^
MantiCore, как вариант - снимать с игрока заклинание во время старта квеста и обратно вешать при сдаче. Это несложно реализовать кастомным патчем, особенно для тебя.
Выдрано из исходников команды .unaura:
Код

     Unit* target = getSelectedUnit(); // ну тут думаю на выделение игрока поменяешь

     target->RemoveAurasDueToSpell(ID ауры);

     return true; // надо ли, не надо ли, я не шарю в C++
}

Еще можешь прочитать про http://wiki.ytdb.ru/index.php/Spell_area
Победоносная @ Галакронд
Мои сборки под 3.3.5а 12340

Исправительные работы: в наличии.
Сообщение # 2 написано 08.12.2013 в 08:46
MantiCore
Разработчик YTDB R2
staford11, спелл должен добавлятся и отниматся игроку в книгу заклинаний, простой навес ауры не пойдет.
Чтобы сделать что то особенное - нужно просто поверить что это особенное.
Пишите по вопросам и приватке на https://vk.com/id195171613
Skype - MantiCore8460
Сообщение # 3 написано 08.12.2013 в 11:50
staford11
^s†af0rd f0rever^
MantiCore, так и надо было писать, что должен добавляться в книгу заклинаний. Тогда можно попробовать:
Код
m_session->GetPlayer()->learnSpell(ID, false);
- для обучения
Код
if (m_session->GetPlayer()->HasSpell(ID))
m_session->GetPlayer()->removeSpell(ID, false, 0);
- для удаления
Победоносная @ Галакронд
Мои сборки под 3.3.5а 12340

Исправительные работы: в наличии.
Сообщение # 4 написано 08.12.2013 в 18:04
MantiCore
Разработчик YTDB R2
staford11, еще один вопрос. В какой файл cpp этот код пихать?
Чтобы сделать что то особенное - нужно просто поверить что это особенное.
Пишите по вопросам и приватке на https://vk.com/id195171613
Skype - MantiCore8460
Сообщение # 5 написано 09.12.2013 в 09:46
staford11
^s†af0rd f0rever^
MantiCore, одного этого кода мало будет, я лишь указал, какие функции использовать.
Нужно в итоге делать некое подобие этого:
Код
Player* plr = m_session->GetPlayer();
if (plr->GetQuestState(ID) == DONE)
{
plr->LearnSpell(ID,false);
}
else
{
plr->RemoveSpell(ID,false,0);
}
Победоносная @ Галакронд
Мои сборки под 3.3.5а 12340

Исправительные работы: в наличии.
Сообщение # 6 отредактировано staford11 - Понедельник, 09.12.2013, 14:30
No_MaTTeR
Старший Маршал
Хм, никогда не понимал этого копания ядра, особенно в тех случаях, когда можно решить все с помощью базы. Пример: создаем (дабы обойтись вмешательств в дбц, предмет переделываем (ага, в вов есть уйма неиспользуемых предметов)) любой предмет, пихаем в него спел, ставим условия On Use и радуемся.
P.S. Думаю, что проставить в квесте не так уже и сложно сообразить. Но, если, уж, так важно копание ядра, тогда удачи.
Сообщение # 7 написано 09.12.2013 в 14:46
staford11
^s†af0rd f0rever^
Данная тема была перемещена из раздела [CMaNGOS] Help.
Причина перемещения: Решено

Переместил: staford11.
Победоносная @ Галакронд
Мои сборки под 3.3.5а 12340

Исправительные работы: в наличии.
Сообщение # 8 написано 27.02.2014 в 19:26
  • Страница 1 из 1
  • 1
Поиск: