Ru-MaNGOS

Вернуться   Ru-MaNGOS > Документация > Новичкам

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

Новичкам Информация для всех новичков, новичкам рекомендуется задавать свои вопросы здесь

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.05.2010, 14:03   #1
Prefect
Гость
 
Сообщений: n/a
По умолчанию Помощь в написании условия в SD2

Добрый день, прошу вашей помощи, я хочу написать скрипт для рунического оружия (может и кривой, но сам факт в работе )

У меня есть персонаж, owner, его пет - руническое оружие.
Как написать проверку типа "Если owner использует спелл *ид*", ну а дальше всё понятно.

Примерно такую проверочку бы, но ф-ция CastSpell типа void, поэтому проверку нельзя сделать .
Код:
if( owner->CastSpell(owner->getVictim(),H_STRIKE, true))
Код:
void Reset()
    {
        Unit * owner = m_creature->GetOwner();
        if (!owner || owner->GetTypeId() != TYPEID_PLAYER)
            return;

        // Cannot be Selected or Attacked
        m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
        m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
		m_creature->SetDisplayId(20024);

		if (owner && !m_creature->hasUnitState(UNIT_STAT_FOLLOW))
		{
			m_creature->GetMotionMaster()->Clear(false);
			m_creature->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
		}

        // Add visible weapon
        if (Item const * item = ((Player *)owner)->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND))
            m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, item->GetProto()->ItemId);

        // Add stats scaling
        int32 damageDone=owner->CalculateDamage(BASE_ATTACK, true); // might be average damage instead ?
        int32 meleeSpeed=owner->m_modAttackSpeedPct[BASE_ATTACK];
        m_creature->CastCustomSpell(m_creature, 51906, &damageDone, &meleeSpeed, NULL, true);

	//тут проверка на спелл
	if( owner->CastSpell(owner->getVictim(),H_STRIKE, true))
			if(owner->getVictim()->isAlive())
			{
			m_creature->CastSpell(owner->getVictim(),H_STRIKE, true);
			}else{
				return;
			}


        // Visual Glow
     m_creature->CastSpell(m_creature, 53160, true);
}
Впереди ещё есть enum, напишу на всякий случай
Код:
enum
{
   H_STRIKE = 55262,
   ICY_TOUCH = 49909,
   OBLITERATE = 51425,
   DEATH_COIL = 49895,
   DEATH_STRIKE = 49924,
   PLAGUE_STRIKE = 49921
};
Сильно не бейте, только учусь
  Ответить с цитированием
 


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь по scriptdev2 Alexes Корзина 7 06.10.2010 21:11
Условия завершения квестов deadangel Баг-репорты 4 30.09.2010 16:47
WWW Помощь с Капчей terrible Новичкам 13 28.09.2010 12:29
Нужна помощь koly2000 Корзина 0 12.04.2010 12:49
помощь id инстас frenk Баг-репорты 1 15.03.2010 09:19


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


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