Показать сообщение отдельно
Старый 10.03.2010, 18:45   #15
MaS0n
Модератор
 
Регистрация: 09.03.2010
Адрес: dev/null
Сообщений: 126
Сказал(а) спасибо: 44
Поблагодарили 111 раз(а) в 47 сообщениях
MaS0n Скоро придёт к известностиMaS0n Скоро придёт к известности
Отправить сообщение для MaS0n с помощью ICQ
По умолчанию

Код:
     // if player is dead and stuck, send ghost to graveyard 
    chr->RepopAtGraveyard(); 
    chr->ResurrectPlayer(0.0f, false); 

    int32 startLevel = sWorld.getConfig(CONFIG_DEATH_SICKNESS_LEVEL); 

    if(int32(chr->getLevel()) >= startLevel) 
    { 
        // set resurrection sickness 
        chr->CastSpell(chr,15007,false); 

        // not full duration 
        if(int32(chr->getLevel()) < startLevel+9) 
        { 
            int32 delta = (int32(chr->getLevel()) - startLevel + 1)*MINUTE; 

            if(Aura * aur = chr->GetAura(15007, chr->GetGUID())) 
            { 
                aur->SetDuration(delta*IN_MILISECONDS); 
                aur->SetAuraMaxDuration(delta * IN_MILISECONDS);
                aur->RefreshAura();
            } 
        } 
    } 
    return true; 
    } 

    // cast spell Stuck 
     chr->RepopAtGraveyard(); 
     return true;
1. в GetAura второй параметр нужен индекс эффекта, сейчас не знаю как, а раньше всегда было 0, щас мб EFF_INDEX_0, т.к enum, вобщем смотреть по коду

2. ЧТоб установить свою длительность ауры, надо установить макс. длительность а потом ее зарефрешить

PS - каст маски 15007 лучше делать true, т.к true- означает триггерный спелл, кастуется инстантом, не требуя ни энергии(маны, ярости и т.д), ни реагентов, игонря любые эффекты LOS
Код:
chr->CastSpell(chr,15007,true);
PS2 - Visual Studio там есть такая вещь как "Go to Definition", "Go to Declaration" - в контекст меню правым целчком мыши на ф-ции в коде, первое к самой функции, второе - к ее обьявлению,
uint8, uint16, uint32, uint64 - unsigned int, беззнаковый целочисленный тип, цифра - битовость
беззнаковый - биты могут быть либо 0, либо положительными, за счет отрицательных значений мы вдвое расширяем диапазон, uint32 - 0 to 65536

Это обьясняет и любимый всеми баг с уходом спд в минус и появлятся 65536 при значении < 0

Последний раз редактировалось MaS0n; 10.03.2010 в 18:58.
MaS0n вне форума   Ответить с цитированием
4 пользователя(ей) сказали cпасибо:
Feel the Power (12.03.2010), Hantet (02.05.2010), Wish (10.03.2010)