Перейти к содержанию

EDP + Soul Link


SemirLab

Рекомендуемые сообщения

Порылся в гугле, нашел данный пост: http://www.eathena.ws/board/index.php?showtopic=163592&view=findpost&p=910462

Он оказался каким-то кривым...

sc->data[SC_SPI$

Нашел в ревизии 8016 то, что нужно (https://trac.paradoxsystems.net/browser/branches/stable/src/map/battle.c?rev=8016)

а именно

case AS_SONICBLOW: //EDP will not stack with Soul Link bonus.
if (sc && sc->data[SC_EDP].timer == -1 && sc->data[SC_SPIRIT].timer != -1 && sc->data[SC_SPIRIT].val2 == SL_ASSASIN)
skillratio += (map_flag_gvg(src->m))?25:100; //+25% dmg on woe/+100% dmg on nonwoe
if(sd && pc_checkskill(sd,AS_SONICACCEL)>0)
skillratio += 10;
break;

Компилиться отказывается, пишет

3>..\src\map\battle.c(1778): error C2231: .timer: левый операнд указывает на "struct", используйте "->"
3>..\src\map\battle.c(1778): error C2231: .timer: левый операнд указывает на "struct", используйте "->"
3>..\src\map\battle.c(1778): error C2231: .val2: левый операнд указывает на "struct", используйте "->"

Изменил на

if (sc && sc->data[SC_EDP]->timer == -1 && sc->data[SC_SPIRIT]->timer != -1 && sc->data[SC_SPIRIT]->val2 == SL_ASSASIN)

Все скомпилилось на ура, но теперь SL вообще не работает на Sonic Blow, а EDP начал работать как EDP+SL... :huh:

Изначально этот кусок кода выглядит так (15090 ревизия)

case AS_SONICBLOW:
if (sc && sc->data[SC_SPIRIT] &&
sc->data[SC_SPIRIT]->val2 == SL_ASSASIN)
ATK_ADDRATE(map_flag_gvg(src->m)?25:100); //+25% dmg on woe/+100% dmg on nonwoe

if(sd && pc_checkskill(sd,AS_SONICACCEL)>0)
ATK_ADDRATE(10);
break;

Помогите советами, пожалуйста)

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика