|
Архив - только для чтения |
| Модератор форума: andycrowz |
| Форум Корзина форума Корзина Требуется помощь с заклинанием |
| Требуется помощь с заклинанием |
Не могу понять в каком файле исходников копать. Есть задания которые при сдаче, дают игроку заклинания. А именно нужно на определенный квест сделать отбирание заклинания у игрока. Кто знает, подскажие где искать.
Чтобы сделать что то особенное - нужно просто поверить что это особенное.
Пишите по вопросам и приватке на https://vk.com/id195171613 Skype - MantiCore8460
Сообщение # 1 написано 07.12.2013 в 14:00
|
MantiCore, как вариант - снимать с игрока заклинание во время старта квеста и обратно вешать при сдаче. Это несложно реализовать кастомным патчем, особенно для тебя.
Выдрано из исходников команды .unaura: Код Unit* target = getSelectedUnit(); // ну тут думаю на выделение игрока поменяешь target->RemoveAurasDueToSpell(ID ауры); return true; // надо ли, не надо ли, я не шарю в C++ } Еще можешь прочитать про http://wiki.ytdb.ru/index.php/Spell_area
Сообщение # 2 написано 08.12.2013 в 08:46
|
staford11, спелл должен добавлятся и отниматся игроку в книгу заклинаний, простой навес ауры не пойдет.
Чтобы сделать что то особенное - нужно просто поверить что это особенное.
Пишите по вопросам и приватке на https://vk.com/id195171613 Skype - MantiCore8460
Сообщение # 3 написано 08.12.2013 в 11:50
|
MantiCore, так и надо было писать, что должен добавляться в книгу заклинаний. Тогда можно попробовать:
Код m_session->GetPlayer()->learnSpell(ID, false); Код if (m_session->GetPlayer()->HasSpell(ID)) m_session->GetPlayer()->removeSpell(ID, false, 0);
Сообщение # 4 написано 08.12.2013 в 18:04
|
staford11, еще один вопрос. В какой файл cpp этот код пихать?
Чтобы сделать что то особенное - нужно просто поверить что это особенное.
Пишите по вопросам и приватке на https://vk.com/id195171613 Skype - MantiCore8460
Сообщение # 5 написано 09.12.2013 в 09:46
|
MantiCore, одного этого кода мало будет, я лишь указал, какие функции использовать.
Нужно в итоге делать некое подобие этого: Код Player* plr = m_session->GetPlayer(); if (plr->GetQuestState(ID) == DONE) { plr->LearnSpell(ID,false); } else { plr->RemoveSpell(ID,false,0); } |
Хм, никогда не понимал этого копания ядра, особенно в тех случаях, когда можно решить все с помощью базы. Пример: создаем (дабы обойтись вмешательств в дбц, предмет переделываем (ага, в вов есть уйма неиспользуемых предметов)) любой предмет, пихаем в него спел, ставим условия On Use и радуемся.
P.S. Думаю, что проставить в квесте не так уже и сложно сообразить. Но, если, уж, так важно копание ядра, тогда удачи.
Сообщение # 7 написано 09.12.2013 в 14:46
|
Данная тема была перемещена из раздела [CMaNGOS] Help.
Причина перемещения: Решено Переместил: staford11.
Сообщение # 8 написано 27.02.2014 в 19:26
|
| |||
| |||