diff options
-rw-r--r-- | db/skill_require_db.txt | 2 | ||||
-rw-r--r-- | npc/quests/quests_rachel.txt | 2 | ||||
-rw-r--r-- | src/map/battle.c | 53 | ||||
-rw-r--r-- | src/map/clif.c | 8 | ||||
-rw-r--r-- | src/map/pc.c | 2 | ||||
-rw-r--r-- | src/map/skill.c | 2 |
6 files changed, 33 insertions, 36 deletions
diff --git a/db/skill_require_db.txt b/db/skill_require_db.txt index 57503b618..2d575c2b6 100644 --- a/db/skill_require_db.txt +++ b/db/skill_require_db.txt @@ -135,7 +135,7 @@ 142,0,0,3,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#?急手?# 143,0,0,5,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NV_TRICKDEAD#死んだふり# -146,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SM_AUTOBERSERK#オ?トバ?サ?ク# +146,0,0,0,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SM_AUTOBERSERK#オ?トバ?サ?ク# 147,0,0,10,0,0,0,99,0,0,recover_weight_rate,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //AC_MAKINGARROW#矢作成# 148,0,0,15,0,0,0,11,1,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //AC_CHARGEARROW#チャ?ジアロ?# 149,0,0,9,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //TF_SPRINKLESAND#砂まき# diff --git a/npc/quests/quests_rachel.txt b/npc/quests/quests_rachel.txt index cffde368e..e058350cb 100644 --- a/npc/quests/quests_rachel.txt +++ b/npc/quests/quests_rachel.txt @@ -6401,7 +6401,7 @@ ra_temin,277,159,3 script High Priest Zhed#rachel 932,{ mes "I'm glad that everything"; mes "turned out great. Your"; mes "help was truly a blessing."; - mes "Althoug Schwaltzvalt will"; + mes "Although Schwaltzvalt will"; mes "continue their plans without"; mes "us, we've slowed them down."; next; diff --git a/src/map/battle.c b/src/map/battle.c index b0ad2f075..c430cf5e4 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -2964,36 +2964,33 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t if (sc && sc->data[SC_CLOAKING] && !(sc->data[SC_CLOAKING]->val4&2)) status_change_end(src,SC_CLOAKING,-1); - //Check for counter attacks that block your attack. [Skotlex] - if(tsc) + if( tsc && tsc->data[SC_AUTOCOUNTER] && status_check_skilluse(target, src, KN_AUTOCOUNTER, 1) ) { - if(tsc->data[SC_AUTOCOUNTER] && - status_check_skilluse(target, src, KN_AUTOCOUNTER, 1) - ) { - int dir = map_calc_dir(target,src->x,src->y); - int t_dir = unit_getdir(target); - int dist = distance_bl(src, target); - if(dist <= 0 || (!map_check_dir(dir,t_dir) && dist <= tstatus->rhw.range+1)) - { - int skilllv = tsc->data[SC_AUTOCOUNTER]->val1; - clif_skillcastcancel(target); //Remove the casting bar. [Skotlex] - clif_damage(src, target, tick, sstatus->amotion, 1, 0, 1, 0, 0); //Display MISS. - status_change_end(target,SC_AUTOCOUNTER,-1); - skill_attack(BF_WEAPON,target,target,src,KN_AUTOCOUNTER,skilllv,tick,0); - return ATK_NONE; - } + int dir = map_calc_dir(target,src->x,src->y); + int t_dir = unit_getdir(target); + int dist = distance_bl(src, target); + if(dist <= 0 || (!map_check_dir(dir,t_dir) && dist <= tstatus->rhw.range+1)) + { + int skilllv = tsc->data[SC_AUTOCOUNTER]->val1; + clif_skillcastcancel(target); //Remove the casting bar. [Skotlex] + clif_damage(src, target, tick, sstatus->amotion, 1, 0, 1, 0, 0); //Display MISS. + status_change_end(target,SC_AUTOCOUNTER,-1); + skill_attack(BF_WEAPON,target,target,src,KN_AUTOCOUNTER,skilllv,tick,0); + return ATK_NONE; } - if (tsc->data[SC_BLADESTOP_WAIT] && !is_boss(src)) { - int skilllv = tsc->data[SC_BLADESTOP_WAIT]->val1; - int duration = skill_get_time2(MO_BLADESTOP,skilllv); - status_change_end(target, SC_BLADESTOP_WAIT, -1); - if(sc_start4(src, SC_BLADESTOP, 100, sd?pc_checkskill(sd, MO_BLADESTOP):5, 0, 0, target->id, duration)) - { //Target locked. - clif_damage(src, target, tick, sstatus->amotion, 1, 0, 1, 0, 0); //Display MISS. - clif_bladestop(target, src->id, 1); - sc_start4(target, SC_BLADESTOP, 100, skilllv, 0, 0, src->id, duration); - return ATK_NONE; - } + } + + if( tsc && tsc->data[SC_BLADESTOP_WAIT] && !is_boss(src) ) + { + int skilllv = tsc->data[SC_BLADESTOP_WAIT]->val1; + int duration = skill_get_time2(MO_BLADESTOP,skilllv); + status_change_end(target, SC_BLADESTOP_WAIT, -1); + if(sc_start4(src, SC_BLADESTOP, 100, sd?pc_checkskill(sd, MO_BLADESTOP):5, 0, 0, target->id, duration)) + { //Target locked. + clif_damage(src, target, tick, sstatus->amotion, 1, 0, 1, 0, 0); //Display MISS. + clif_bladestop(target, src->id, 1); + sc_start4(target, SC_BLADESTOP, 100, skilllv, 0, 0, src->id, duration); + return ATK_NONE; } } diff --git a/src/map/clif.c b/src/map/clif.c index 739805f04..b17e85aab 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -9378,7 +9378,10 @@ void clif_parse_UseSkillToId(int fd, struct map_session_data *sd) return; if( sd->bl.id != target_id && !sd->state.skill_flag && tmp&INF_SELF_SKILL ) - target_id = sd->bl.id; //What good is it to mess up the target in self skills? Wished I knew... [Skotlex] + target_id = sd->bl.id; // never trust the client + + if( target_id < 0 && -target_id == sd->bl.id ) // for disguises [Valaris] + target_id = sd->bl.id; if( sd->ud.skilltimer != -1 ) { @@ -9397,9 +9400,6 @@ void clif_parse_UseSkillToId(int fd, struct map_session_data *sd) if( sd->sc.data[SC_BASILICA] && (skillnum != HP_BASILICA || sd->sc.data[SC_BASILICA]->val4 != sd->bl.id) ) return; // On basilica only caster can use Basilica again to stop it. - if( target_id < 0 && -target_id == sd->bl.id ) // for disguises [Valaris] - target_id = sd->bl.id; - if( sd->menuskill_id ) { if( sd->menuskill_id == SA_TAMINGMONSTER ) diff --git a/src/map/pc.c b/src/map/pc.c index ee9dc1878..aa3b45157 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -5266,7 +5266,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) npc_script_event(sd,NPCE_DIE); - if ( sd && sd->spiritball ) // maybe also monks' spiritballs ? + if ( sd && sd->spiritball ) pc_delspiritball(sd,sd->spiritball,0); if (src) diff --git a/src/map/skill.c b/src/map/skill.c index 159f445ea..cb8fb986d 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1306,7 +1306,7 @@ int skill_blown(struct block_list* src, struct block_list* target, int count, in break; case BL_SKILL: su = (struct skill_unit *)target; - if( su->group->unit_id == UNT_ANKLESNARE ) + if( su->group->skill_id == HT_ANKLESNARE ) return 0; // ankle snare cannot be knocked back break; } |