Loading...
Remove Text Formatting

Показано с 1 по 2 из 2

Тема: Автокасты - механика работы каст с автокастами статусов или скилов

  1. #1

    Lightbulb Автокасты - механика работы каст с автокастами статусов или скилов

    Магнолия: bonus2 bAddEff,Eff_Curse,500;
    Металинг: bonus3 bAutoSpell,"RG_STRIPWEAPON",1,50;

    Код:
     01 static int pc_bonus_addeff(struct s_addeffect* effect, int max, enum sc_type id, short rate, short arrow_rate, unsigned char flag) 
     02 { 
     03    int i; 
     04    if (!(flag&(ATF_SHORT|ATF_LONG))) 
     05        flag|=ATF_SHORT|ATF_LONG; //Default range: both 
     06    if (!(flag&(ATF_TARGET|ATF_SELF))) 
     07    flag|=ATF_TARGET; //Default target: enemy. 
    
     08    for (i = 0; i < max && effect[i].flag; i++) { 
     09        if (effect[i].id == id && effect[i].flag == flag) 
     10        { 
     11            effect[i].rate += rate; 
     12            effect[i].arrow_rate += arrow_rate; 
     13            return 1; 
     14        } 
     15    } 
     16    if (i == max) { 
     17        ShowWarning("pc_bonus: Reached max (%d) number of add effects per character!\n", max); 
     18        return 0; 
     19    } 
     20    effect[i].id = id; 
     21    effect[i].rate = rate; 
     22    effect[i].arrow_rate = arrow_rate; 
     23    effect[i].flag = flag; 
     24    return 1; 
     25 }
    Эффекты, в данном случае наложение статуса, однозначно складываются что видно в строчках 11 и 12.
    ВСЕ ОДНОТИПНЫЕ ЭФФЕКТЫ СКЛАДЫВАЮТСЯ. Мифы про то что каждая карта срабатывает отдельно не соответсвуют действительности.

    Код:
     01 static int pc_bonus_autospell(struct s_autospell *spell, int max, short id, short lv, short rate, short flag, short card_id) 
     02 { 
     03     int i; 
     04     if (rate < 0) return //Remove the autobonus. 
     05         pc_bonus_autospell_del(spell, max, id, lv, -rate, card_id); 
    
     06     for (i = 0; i < max && spell[i].id; i++) { 
     07         if ((spell[i].card_id == card_id || spell[i].rate < 0) && 
     08         spell[i].id == id && spell[i].lv == lv) 
     09         { 
     10             if (!battle_config.autospell_stacking && spell[i].rate > 0) 
     11                 return 0; 
     12             rate += spell[i].rate; 
     13             break; 
     14         } 
     15     } 
     16     if (i == max) { 
     17         ShowWarning("pc_bonus: Reached max (%d) number of autospells per character!\n", max); 
     18         return 0; 
     19     } 
     20     spell[i].id = id; 
     21     spell[i].lv = lv; 
     22     spell[i].rate = rate; 
     23     //Auto-update flag value. 
     24     if (!(flag&BF_RANGEMASK)) flag|=BF_SHORT|BF_LONG; //No range defined? Use both. 
     25     if (!(flag&BF_WEAPONMASK)) flag|=BF_WEAPON; //No attack type defined? Use weapon. 
     26     if (!(flag&BF_SKILLMASK)) { 
     27         if (flag&(BF_MAGIC|BF_MISC)) flag|=BF_SKILL; //These two would never trigger without BF_SKILL 
     28         if (flag&BF_WEAPON) flag|=BF_NORMAL; //By default autospells should only trigger on normal weapon attacks. 
     29     } 
     30     spell[i].flag|= flag; 
     31     spell[i].card_id = card_id; 
     32     return 1; 
     33 }
    Обращаем внимание на сторчку 10 и присутсвующую в ней переменную battle_config.autospell_stacking. Видно что если она равна нолю то произойдёт выход из функции если такой автокаст (автокасты спелов разных уровней - разные автокасты) уже имеется. Если 1 то в строчках 12 и 13 эффекты складываются.
    Значение battle_config.autospell_stacking по умолчанию равно 0.
    АВТОКАСТЫ НЕ СУММИРУЮТСЯ.
    Последний раз редактировалось Faifer; 14.11.2012 в 20:09.

  2. #2
    а если бить критами ваще нефига не сумируется
    Споры в интернете — это как Олимпиада для умственно отсталых: даже если ты победил — ты все равно дебил!

Похожие темы

  1. Каст линка
    от Таа Пок в разделе Баги и ошибки
    Ответов: 7
    Последнее сообщение: 22.11.2016, 18:22
  2. Механика РО
    от Sawin в разделе Трактир
    Ответов: 6
    Последнее сообщение: 03.04.2013, 00:30
  3. Технические работы
    от Admin в разделе Информация и новости сервера
    Ответов: 4
    Последнее сообщение: 09.01.2013, 05:59
  4. каст линка
    от zonak в разделе Баги и ошибки
    Ответов: 2
    Последнее сообщение: 18.11.2012, 01:26
  5. Сброс статов и скилов
    от Sniper Alexandr в разделе Вопросы и предложения
    Ответов: 5
    Последнее сообщение: 18.06.2012, 02:27

Метки этой темы

Ваши права

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