Issue information

Issue ID
#7012
Status
New
Severity
None
Started
Hercules Elf Bot
Dec 17, 2012 10:27
Last Post
Mysterious
Jan 19, 2013 18:59
Confirmation
N/A

Hercules Elf Bot - Dec 17, 2012 10:27

Originally posted by [b]michieru[/b]
Maybe it's me but I found harder to cast fallen empire in rathena than on official can someone comfirm this?
On official I can spam but here even if I spam it's casting so far...

I use rAthena 17026

Hercules Elf Bot - Dec 17, 2012 11:38

Originally posted by [b]malufett[/b]
me I found it opposite...haha..I cast it harder in official...
ATM the delay is aspd base....

:meow:

Hercules Elf Bot - Dec 17, 2012 15:35

Originally posted by [b]michieru[/b]
ok thanks for your anwser can you show me what to change to get this a little bit more easy please?

Hercules Elf Bot - Dec 17, 2012 16:33

Originally posted by [b]malufett[/b]
just do some tweak here @skill.c

[codebox]

/*==========================================
* Does delay reductions based on dex/agi, sc data, item bonuses, ...
*------------------------------------------*/
int skill_delayfix (struct block_list *bl, int skill_id, int skill_lv)
{
int delaynodex = skill_get_delaynodex(skill_id, skill_lv);
int time = skill_get_delay(skill_id, skill_lv);
struct map_session_data *sd;
struct status_change *sc = status_get_sc(bl);

nullpo_ret(bl);
sd = BL_CAST(BL_PC, bl);

if (skill_id == SA_ABRACADABRA || skill_id == WM_RANDOMIZESPELL)
return 0; //Will use picked skill's delay.

if (bl->type&battle_config.no_skill_delay)
return battle_config.min_skill_delay_limit;

if (time < 0)
time = -time + status_get_amotion(bl); // If set to <0, add to attack motion.

// Delay reductions
switch (skill_id) { //Monk combo skills have their delay reduced by agi/dex.
case MO_TRIPLEATTACK:
case MO_CHAINCOMBO:
case MO_COMBOFINISH:
case CH_TIGERFIST:
case CH_CHAINCRUSH:
case SR_DRAGONCOMBO:
case SR_FALLENEMPIRE:
time -= 4*status_get_agi(bl) - 2*status_get_dex(bl);
break;
case HP_BASILICA:
if( sc && !sc->data[SC_BASILICA] )
time = 0; // There is no Delay on Basilica creation, only on cancel
break;
default:
if (battle_config.delay_dependon_dex && !(delaynodex&1))
{ // if skill delay is allowed to be reduced by dex
int scale = battle_config.castrate_dex_scale - status_get_dex(bl);
if (scale > 0)
time = time * scale / battle_config.castrate_dex_scale;
else //To be capped later to minimum.
time = 0;
}
if (battle_config.delay_dependon_agi && !(delaynodex&1))
{ // if skill delay is allowed to be reduced by agi
int scale = battle_config.castrate_dex_scale - status_get_agi(bl);
if (scale > 0)
time = time * scale / battle_config.castrate_dex_scale;
else //To be capped later to minimum.
time = 0;
}
}

if ( sc && sc->data[SC_SPIRIT] )
{
switch (skill_id) {
case CR_SHIELDBOOMERANG:
if (sc->data[SC_SPIRIT]->val2 == SL_CRUSADER)
time /= 2;
break;
case AS_SONICBLOW:
if (!map_flag_gvg(bl->m) && !map[bl->m].flag.battleground && sc->data[SC_SPIRIT]->val2 == SL_ASSASIN)
time /= 2;
break;
}
}

if (!(delaynodex&2))
{
if (sc && sc->count) {
if (sc->data[SC_POEMBRAGI])
time -= time * sc->data[SC_POEMBRAGI]->val3 / 100;
if (sc->data[SC_WIND_INSIGNIA] && sc->data[SC_WIND_INSIGNIA]->val1 == 3 && (skill_get_ele(skill_id, skill_lv) == ELE_WIND))
time /= 2; // After Delay of Wind element spells reduced by 50%.
}

}

if( !(delaynodex&4) && sd && sd->delayrate != 100 )
time = time * sd->delayrate / 100;

if (battle_config.delay_rate != 100)
time = time * battle_config.delay_rate / 100;

//min delay
time = max(time, status_get_amotion(bl)); // Delay can never be below amotion [Playtester]
time = max(time, battle_config.min_skill_delay_limit);

// ShowInfo("Delay delayfix = %d\n",time);
return time;
}

[/codebox]

or modify your settings @conf/battle/skill.conf

:meow:

Hercules Elf Bot - Dec 17, 2012 16:35

Originally posted by [b]michieru[/b]
ok thanks a lot =)