|
Отвергнутые Патчи, не принятые разработчиками ScripDev2 |
|
Опции темы | Поиск в этой теме | Опции просмотра |
19.04.2010, 23:19 | #1 |
Администратор
|
[QUEST=11541]Зачистить залив Зеленожабрых!
По квесту 11541 выбиваем из 25073 итем 34483, при использовании которого кастуется спелл 45109.
В радиусе 5 метров от указанной точки нпц 25084 становятся 25085, засчитывается +1 за каждого нпц (спелл 45110). НПЦ кастуют спеллы 45111, 45112 на себя и нападают на ближайшего нпц 25073. Примитивный начальный скрипт: Код:
/*###### ## item_orb_of_murloc_control ######*/ enum { QUEST_DISRUPT_THE_GREENGILL_COAST = 11541, NPC_DARKSPINE_SIREN = 25073, NPC_GREENGILL_SLAVE = 25084, NPC_FREED_GREENGILL_SLAVE = 25085, SPELL_ORB_OF_MURLOC_CONTROL = 45109, SPELL_GREENGILL_SLAVE_FREED = 45110, SPELL_ENRAGE = 45111, SPELL_MIND_CONTROL = 45112 }; bool ItemUse_item_orb_of_murloc_control(Player* pPlayer, Item* pItem, const SpellCastTargets &pTargets) { if (pPlayer->GetQuestStatus(QUEST_DISRUPT_THE_GREENGILL_COAST) == QUEST_STATUS_INCOMPLETE) { std::list<Creature* > lCreatureList; GetCreatureListWithEntryInGrid(lCreatureList, pPlayer, NPC_GREENGILL_SLAVE, 5.0f); std::list<Creature* > lCreatureTargetList; if (!lCreatureList.empty()) for(std::list<Creature*>::iterator itr = lCreatureList.begin(); itr != lCreatureList.end(); ++itr) { (*itr)->CastSpell(pPlayer, SPELL_GREENGILL_SLAVE_FREED, true); (*itr)->UpdateEntry(NPC_FREED_GREENGILL_SLAVE); (*itr)->CastSpell((*itr), SPELL_ENRAGE, true); (*itr)->CastSpell((*itr), SPELL_MIND_CONTROL, true); Creature* pTarget = GetClosestCreatureWithEntry((*itr), NPC_DARKSPINE_SIREN, 10.0f); if(pTarget) (*itr)->Attack(pTarget, true); } } return false; } 1. Необходимо искать нпц от точки курсора, где использовался итем (в примере берется точка игрока). Возможно, есть какой-нибудь объект "курсор" или что-то подобное. 2. Спеллы в примере просто кастуются. Возможно, они должны применяться как-нибудь по-другому. 3. Скрипт начинает выполняться сразу при нажатии на итем,не обращая внимания на задержку в 1 секунду, которая требуется для каста спелла. 4. Освобожденные нпц выделяют в качестве цели нужного нпц, но не атакуют его. Ссылка на видео: http://www.youtube.com/watch?v=exQ0PyEC7Zc |
Пользователь сказал cпасибо: | tempura (07.05.2010) |
20.04.2010, 13:20 | #2 |
Модератор
|
2. Думаю, что думми эффект разбивания сферы как раз и должен исполнять действия, которые сейчас в итем-скрипте
3. Любой скрипт итема выполняется раньше, чем каст с этого же итема 4. Атака не срабатывает, потому что ф-ция Attack - это базовая инициация атаки, пакеты, стойки, state, снятие аур при боевом состоянии и т.д И к тому же, это еще и переход от рейнж/магич. атак к мили Чтоб они именно бежали атаковать - думаю написать им простенький скрипт(все равно попадание спеллом сферы наверное делать придется) и использовать AttackStart Ну а чтоб просто бежали (*itr)->GetMotionMaster()->MoveChase(pTarget); Пс : а можно ссылочку на видео добавить в первый пост Последний раз редактировалось MaS0n; 20.04.2010 в 13:49. |
20.04.2010, 13:25 | #3 |
Администратор
|
На видео над освобожденным мурлоком появляется эффект, как при касте контроля на него.
Возможно, они изначально ходят под аурой, но на видео этого не увидел. Если можно, пишите по пунктам, так проще будет разбирать. |
05.05.2010, 00:03 | #4 |
Администратор
|
Переписал скрипт и опубликовал на форуме СД2:
http://www.scriptdev2.com/project.php?issueid=941 |
Пользователь сказал cпасибо: | tempura (07.05.2010) |
11.11.2010, 22:54 | #6 |
Администратор
|
В репозитарий СД2 принят другой скрипт.
|