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)
Старый 20.04.2010, 13:20   #2
MaS0n
Модератор
 
Регистрация: 09.03.2010
Адрес: dev/null
Сообщений: 126
Сказал(а) спасибо: 44
Поблагодарили 111 раз(а) в 47 сообщениях
MaS0n Скоро придёт к известностиMaS0n Скоро придёт к известности
Отправить сообщение для MaS0n с помощью ICQ
По умолчанию

2. Думаю, что думми эффект разбивания сферы как раз и должен исполнять действия, которые сейчас в итем-скрипте

3. Любой скрипт итема выполняется раньше, чем каст с этого же итема

4. Атака не срабатывает, потому что ф-ция Attack - это базовая инициация атаки, пакеты, стойки, state, снятие аур при боевом состоянии и т.д
И к тому же, это еще и переход от рейнж/магич. атак к мили

Чтоб они именно бежали атаковать - думаю написать им простенький скрипт(все равно попадание спеллом сферы наверное делать придется) и использовать AttackStart

Ну а чтоб просто бежали
(*itr)->GetMotionMaster()->MoveChase(pTarget);

Пс : а можно ссылочку на видео добавить в первый пост

Последний раз редактировалось MaS0n; 20.04.2010 в 13:49.
MaS0n вне форума   Ответить с цитированием
Старый 20.04.2010, 13:25   #3
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

На видео над освобожденным мурлоком появляется эффект, как при касте контроля на него.
Возможно, они изначально ходят под аурой, но на видео этого не увидел.

Если можно, пишите по пунктам, так проще будет разбирать.
virusav вне форума   Ответить с цитированием
Старый 05.05.2010, 00:03   #4
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Переписал скрипт и опубликовал на форуме СД2:
http://www.scriptdev2.com/project.php?issueid=941
Вложения
Тип файла: patch spell_orb_of_murloc_control.patch (2.0 Кб, 532 просмотров)
virusav вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
tempura (07.05.2010)
Старый 06.05.2010, 23:01   #5
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Внес изменения: добавлен нпц в список допустимых целей, увеличен радиус поиска целей.
Причина изменений: видео прохождения квеста.
Вложения
Тип файла: patch spell_orb_of_murloc_control.patch (2.9 Кб, 450 просмотров)
virusav вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
tempura (07.05.2010)
Старый 11.11.2010, 22:54   #6
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

В репозитарий СД2 принят другой скрипт.
virusav вне форума   Ответить с цитированием
Ответ

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

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

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



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


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