Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Jack Frost, Status Traps, Stone Fling, Leap, Cannon Spear
* Fixed status base chances of Jack Frost and Status Traps (fixes #997) -- Jack Frost: 200% freeze chance instead of 100% -- Land Mine: 10% stun chance instead of 35%-55% -- Flasher: 100% blind chance instead of 40%-80% -- Freezing Trap: 100% freeze chance of instead 38%-50% * Sandman Sleep and Throw Stone Blind base duration is now 30s in pre-re and 20s in renewal * Leap now has a shorter distance when used diagonally (fixes #1007) * Cannon Spear now shows the skill animation even if it doesn't hit anything (fixes #1004)
- Loading branch information
1 parent
3a5f3a3
commit 61a48b9
Showing
3 changed files
with
23 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -1164,16 +1164,16 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1 | |
|
||
case HT_FREEZINGTRAP: | ||
case MA_FREEZINGTRAP: | ||
sc_start(src,bl,SC_FREEZE,(3*skill_lv+35),skill_lv,skill_get_time2(skill_id,skill_lv)); | ||
sc_start(src,bl,SC_FREEZE,100,skill_lv,skill_get_time2(skill_id,skill_lv)); | ||
break; | ||
|
||
case HT_FLASHER: | ||
sc_start(src,bl,SC_BLIND,(10*skill_lv+30),skill_lv,skill_get_time2(skill_id,skill_lv)); | ||
sc_start(src,bl,SC_BLIND,100,skill_lv,skill_get_time2(skill_id,skill_lv)); | ||
break; | ||
|
||
case HT_LANDMINE: | ||
case MA_LANDMINE: | ||
sc_start(src,bl,SC_STUN,(5*skill_lv+30),skill_lv,skill_get_time2(skill_id,skill_lv)); | ||
sc_start(src,bl,SC_STUN,10,skill_lv,skill_get_time2(skill_id,skill_lv)); | ||
break; | ||
|
||
case HT_SHOCKWAVE: | ||
|
@@ -1453,7 +1453,7 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1 | |
} | ||
break; | ||
case WL_JACKFROST: | ||
sc_start(src,bl,SC_FREEZE,100,skill_lv,skill_get_time(skill_id,skill_lv)); | ||
sc_start(src,bl,SC_FREEZE,200,skill_lv,skill_get_time(skill_id,skill_lv)); | ||
break; | ||
case RA_WUGBITE: { | ||
int wug_rate = (50 + 10 * skill_lv) + 2 * ((sd) ? pc_checkskill(sd,RA_TOOTHOFWUG)*2 : skill_get_max(RA_TOOTHOFWUG)) - (status_get_agi(bl) / 4); | ||
|
@@ -4468,6 +4468,8 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint | |
case NC_FLAMELAUNCHER: | ||
if (sd) pc_overheat(sd,1); | ||
case LG_CANNONSPEAR: | ||
if(skill_id == LG_CANNONSPEAR) | ||
clif_skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); | ||
skill_area_temp[1] = bl->id; | ||
if (battle_config.skill_eightpath_algorithm) { | ||
//Use official AoE algorithm | ||
|
@@ -7675,6 +7677,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui | |
) { | ||
x = src->x; | ||
y = src->y; | ||
} else if(dir%2) { | ||
//Diagonal | ||
x = src->x + dirx[dir]*(skill_lv*4)/3; | ||
y = src->y + diry[dir]*(skill_lv*4)/3; | ||
} else { | ||
x = src->x + dirx[dir]*skill_lv*2; | ||
y = src->y + diry[dir]*skill_lv*2; | ||
|
@@ -16612,8 +16618,14 @@ int skill_attack_area(struct block_list *bl, va_list ap) | |
flag = va_arg(ap,int); | ||
type = va_arg(ap,int); | ||
|
||
if (skill_area_temp[1] == bl->id) //This is the target of the skill, do a full attack and skip target checks. | ||
return (int)skill_attack(atk_type,src,dsrc,bl,skill_id,skill_lv,tick,flag); | ||
if (skill_area_temp[1] == bl->id) { //This is the target of the skill, do a full attack and skip target checks. | ||
switch (skill_id) { | ||
case LG_CANNONSPEAR: | ||
return (int)skill_attack(atk_type,src,dsrc,bl,skill_id,skill_lv,tick,flag|SD_ANIMATION); | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
Playtester
Author
Member
|
||
default: | ||
return (int)skill_attack(atk_type,src,dsrc,bl,skill_id,skill_lv,tick,flag); | ||
} | ||
} | ||
|
||
if(battle_check_target(dsrc,bl,type) <= 0 || | ||
!status_check_skilluse(NULL, bl, skill_id, 2)) | ||
|
I seem this is kinda wrong,
I know there is flag that can be passed from somewhere in
skill_castend_nodamage_id
before thisskill_attack_area
called.