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)
This commit is contained in:
Playtester 2016-03-03 22:11:41 +01:00
parent 3a5f3a3f98
commit 61a48b9b0b
3 changed files with 23 additions and 11 deletions

View File

@ -207,7 +207,7 @@
//-- HT_SHOCKWAVE
118,0,0,0,200000:160000:120000:80000:40000,0,0
//-- HT_SANDMAN
119,0,0,0,150000:120000:90000:60000:30000,12000:14000:16000:18000:20000,0
119,0,0,0,150000:120000:90000:60000:30000,30000,0
//-- HT_FLASHER
120,0,0,0,150000:120000:90000:60000:30000,30000,0
//-- HT_FREEZINGTRAP
@ -257,7 +257,7 @@
//-- TF_PICKSTONE
151,500,0,0,0,0,0
//-- TF_THROWSTONE
152,0,0,0,5000,8000,0
152,0,0,0,5000,30000,0
//-- MC_LOUD
155,0,0,0,300000,0,0
@ -297,7 +297,7 @@
177,0,0,0,0,30000,0
//-- NPC_SILENCEATTACK
178,0,0,0,0,30000,0
//-- NPC0,_STUNATTACK
//-- NPC_STUNATTACK
179,0,0,0,0,5000,0
//-- NPC_PETRIFYATTACK
180,0,0,0,0,20000,0

View File

@ -208,7 +208,7 @@
//-- HT_SHOCKWAVE
118,0,0,0,200000:160000:120000:80000:40000,0,0,0
//-- HT_SANDMAN
119,0,0,0,150000:120000:90000:60000:30000,12000:14000:16000:18000:20000,0,0
119,0,0,0,150000:120000:90000:60000:30000,20000,0,0
//-- HT_FLASHER
120,0,0,0,150000:120000:90000:60000:30000,20000,0,0
//-- HT_FREEZINGTRAP
@ -255,7 +255,7 @@
//-- TF_PICKSTONE
151,0,0,0,0,0,0,500
//-- TF_THROWSTONE
152,0,100,0,5000,8000,0,0
152,0,100,0,5000,20000,0,0
//-- MC_LOUD
155,0,0,0,300000,0,0,0

View File

@ -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);
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))