Ru-MaNGOS

Вернуться   Ru-MaNGOS > Разработка скриптов > Отвергнутые

Важная информация

Отвергнутые Патчи, не принятые разработчиками ScripDev2

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.04.2010, 23:19   #1
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию [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
virusav вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
tempura (07.05.2010)
 

« Предыдущей темы нет | [QUEST=12634]Кому ликер, кому лимонад »

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 21:05. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot