From 80e505df06aab94b74210cc2f0e0651d6b6feb5f Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Wed, 11 Mar 2020 20:53:34 +0100 Subject: Add map_session_data->autocast.skill_id/_lv assignments --- src/map/pc.c | 2 ++ src/map/script.c | 2 ++ src/map/skill.c | 4 ++++ 3 files changed, 8 insertions(+) (limited to 'src') diff --git a/src/map/pc.c b/src/map/pc.c index 73bae2b5b..0981cdee9 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -5347,6 +5347,8 @@ static int pc_itemskill_clear(struct map_session_data *sd) nullpo_ret(sd); sd->autocast.type = AUTOCAST_NONE; + sd->autocast.skill_id = 0; + sd->autocast.skill_lv = 0; sd->itemskill_id = 0; sd->itemskill_lv = 0; sd->state.itemskill_conditions_checked = 0; diff --git a/src/map/script.c b/src/map/script.c index 18855e3b0..44cab8429 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -11003,6 +11003,8 @@ static BUILDIN(itemskill) pc->itemskill_clear(sd); sd->autocast.type = AUTOCAST_ITEM; + sd->autocast.skill_id = script_isstringtype(st, 2) ? skill->name2id(script_getstr(st, 2)) : script_getnum(st, 2); + sd->autocast.skill_lv = script_getnum(st, 3); sd->skillitem = script_isstringtype(st, 2) ? skill->name2id(script_getstr(st, 2)) : script_getnum(st, 2); sd->skillitemlv = script_getnum(st, 3); sd->state.itemskill_conditions_checked = 0; // Skill casting items will check the conditions prior to the target selection in AEGIS. Thus we need a flag to prevent checking them twice. diff --git a/src/map/skill.c b/src/map/skill.c index a83f3bfe5..5ceff376f 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -6322,6 +6322,8 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * if (sd) { // player-casted sd->autocast.type = AUTOCAST_ABRA; + sd->autocast.skill_id = abra_skill_id; + sd->autocast.skill_lv = abra_skill_lv; sd->state.abra_flag = 1; sd->skillitem = abra_skill_id; sd->skillitemlv = abra_skill_lv; @@ -10065,6 +10067,8 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * if (sd != NULL) { sd->autocast.type = AUTOCAST_IMPROVISE; + sd->autocast.skill_id = improv_skill_id; + sd->autocast.skill_lv = improv_skill_lv; sd->state.abra_flag = 2; sd->skillitem = improv_skill_id; sd->skillitemlv = improv_skill_lv; -- cgit v1.2.3-70-g09d2