Merge branch 'master' into class/soul_ascetic
# Conflicts: # db/re/status.yml
This commit is contained in:
commit
010e6fa2ea
@ -36847,16 +36847,16 @@ Body:
|
||||
Toggleable: true
|
||||
Hit: Single
|
||||
HitCount: 1
|
||||
GiveAp: 15
|
||||
SplashArea: 10
|
||||
CastCancel: true
|
||||
CastTime: 2000
|
||||
AfterCastActDelay: 500
|
||||
Duration1: 60000
|
||||
Cooldown: 15000
|
||||
AfterCastActDelay: 300
|
||||
Duration1: 40000
|
||||
Cooldown: 25000
|
||||
FixedCastTime: 1000
|
||||
Requires:
|
||||
SpCost: 60
|
||||
ApCost: 35
|
||||
Status:
|
||||
Guard_Stance: true
|
||||
Status: Guardian_S
|
||||
@ -37018,7 +37018,7 @@ Body:
|
||||
Range: 9
|
||||
Hit: Multi_Hit
|
||||
HitCount: -10
|
||||
Element: Holy
|
||||
Element: Neutral
|
||||
CastCancel: true
|
||||
CastTime: 2000
|
||||
Cooldown: 5000
|
||||
@ -37058,7 +37058,7 @@ Body:
|
||||
Hit: Multi_Hit
|
||||
HitCount: -7
|
||||
Element: Weapon
|
||||
GiveAp: 3
|
||||
GiveAp: 5
|
||||
SplashArea:
|
||||
- Level: 1
|
||||
Area: 2
|
||||
@ -37105,7 +37105,7 @@ Body:
|
||||
HitCount: 3
|
||||
Element: Weapon
|
||||
SplashArea: 3
|
||||
GiveAp: 3
|
||||
GiveAp: 5
|
||||
CastCancel: true
|
||||
CastTime: 1000
|
||||
AfterCastActDelay: 500
|
||||
@ -37145,7 +37145,7 @@ Body:
|
||||
Hit: Single
|
||||
HitCount: 1
|
||||
Element: Holy
|
||||
GiveAp: 4
|
||||
GiveAp: 6
|
||||
CastCancel: true
|
||||
CastTime: 1000
|
||||
AfterCastActDelay: 150
|
||||
@ -38857,7 +38857,7 @@ Body:
|
||||
Time: 1500
|
||||
- Level: 5
|
||||
Time: 1000
|
||||
Cooldown: 60000
|
||||
Cooldown: 30000
|
||||
Requires:
|
||||
SpCost:
|
||||
- Level: 1
|
||||
@ -38888,26 +38888,27 @@ Body:
|
||||
FixedCastTime: 1000
|
||||
Requires:
|
||||
SpCost: 100
|
||||
ApCost: 150
|
||||
ApCost: 120
|
||||
Status: Abyss_Slayer
|
||||
- Id: 5319
|
||||
Name: ABC_ABYSS_STRIKE
|
||||
Description: Abyss Strike
|
||||
Description: Omega Abyss Strike
|
||||
MaxLevel: 10
|
||||
Type: Magic
|
||||
TargetType: Ground
|
||||
Range: 9
|
||||
Hit: Single
|
||||
HitCount: 1
|
||||
Element: Fire
|
||||
CastCancel: true
|
||||
CastTime: 2000
|
||||
AfterCastActDelay: 500
|
||||
Duration1: 100
|
||||
Cooldown: 3000
|
||||
Cooldown: 700
|
||||
FixedCastTime: 1000
|
||||
Requires:
|
||||
SpCost: 125
|
||||
ApCost: 15
|
||||
ApCost: 10
|
||||
Unit:
|
||||
Id: Dummyskill
|
||||
Range: 4
|
||||
@ -39022,7 +39023,7 @@ Body:
|
||||
Hit: Multi_Hit
|
||||
HitCount: 2
|
||||
Element: Weapon
|
||||
GiveAp: 1
|
||||
GiveAp: 3
|
||||
CastCancel: true
|
||||
AfterCastActDelay: 500
|
||||
Cooldown: 350
|
||||
@ -40909,7 +40910,7 @@ Body:
|
||||
GiveAp: 5
|
||||
CastCancel: true
|
||||
CastTime: 4000
|
||||
AfterCastActDelay: 500
|
||||
AfterCastActDelay: 700
|
||||
Duration1: 3000
|
||||
Duration2: 10000
|
||||
Cooldown: 2000
|
||||
@ -40948,7 +40949,7 @@ Body:
|
||||
GiveAp: 5
|
||||
CastCancel: true
|
||||
CastTime: 4000
|
||||
AfterCastActDelay: 500
|
||||
AfterCastActDelay: 700
|
||||
Duration1: 3000
|
||||
Duration2: 20000
|
||||
Cooldown: 2000
|
||||
@ -40987,7 +40988,7 @@ Body:
|
||||
GiveAp: 5
|
||||
CastCancel: true
|
||||
CastTime: 4000
|
||||
AfterCastActDelay: 500
|
||||
AfterCastActDelay: 700
|
||||
Duration1: 3000
|
||||
Duration2: 20000
|
||||
Cooldown: 2000
|
||||
@ -41068,7 +41069,7 @@ Body:
|
||||
CastTime: 3000
|
||||
AfterCastActDelay: 500
|
||||
Duration1: 1500000
|
||||
Cooldown: 900000
|
||||
Cooldown: 60000
|
||||
FixedCastTime: 2000
|
||||
Requires:
|
||||
SpCost: 100
|
||||
@ -41089,7 +41090,7 @@ Body:
|
||||
CastTime: 3000
|
||||
AfterCastActDelay: 500
|
||||
Duration1: 1500000
|
||||
Cooldown: 900000
|
||||
Cooldown: 60000
|
||||
FixedCastTime: 2000
|
||||
Requires:
|
||||
SpCost: 100
|
||||
@ -41110,7 +41111,7 @@ Body:
|
||||
CastTime: 3000
|
||||
AfterCastActDelay: 500
|
||||
Duration1: 1500000
|
||||
Cooldown: 900000
|
||||
Cooldown: 60000
|
||||
FixedCastTime: 2000
|
||||
Requires:
|
||||
SpCost: 100
|
||||
@ -41131,7 +41132,7 @@ Body:
|
||||
CastTime: 3000
|
||||
AfterCastActDelay: 500
|
||||
Duration1: 1500000
|
||||
Cooldown: 900000
|
||||
Cooldown: 60000
|
||||
FixedCastTime: 2000
|
||||
Requires:
|
||||
SpCost: 100
|
||||
@ -41152,7 +41153,7 @@ Body:
|
||||
CastTime: 3000
|
||||
AfterCastActDelay: 500
|
||||
Duration1: 1500000
|
||||
Cooldown: 900000
|
||||
Cooldown: 60000
|
||||
FixedCastTime: 2000
|
||||
Requires:
|
||||
SpCost: 100
|
||||
@ -41171,11 +41172,11 @@ Body:
|
||||
CastCancel: true
|
||||
CastTime: 8000
|
||||
AfterCastActDelay: 500
|
||||
Cooldown: 5000
|
||||
Cooldown: 2000
|
||||
FixedCastTime: 1500
|
||||
Requires:
|
||||
SpCost: 140
|
||||
ApCost: 30
|
||||
ApCost: 15
|
||||
- Id: 5381
|
||||
Name: EM_ELEMENTAL_VEIL
|
||||
Description: Elemental Veil
|
||||
@ -41240,7 +41241,7 @@ Body:
|
||||
Splash: true
|
||||
Range: 1
|
||||
Hit: Multi_Hit
|
||||
HitCount: 2
|
||||
HitCount: 5
|
||||
SplashArea: 4
|
||||
Requires:
|
||||
SpCost: 1
|
||||
@ -41439,7 +41440,7 @@ Body:
|
||||
Area: 3
|
||||
- Level: 5
|
||||
Area: 3
|
||||
GiveAp: 1
|
||||
GiveAp: 2
|
||||
AfterCastActDelay: 1000
|
||||
Cooldown: 500
|
||||
CastCancel: true
|
||||
@ -41447,15 +41448,15 @@ Body:
|
||||
Requires:
|
||||
SpCost:
|
||||
- Level: 1
|
||||
Amount: 49
|
||||
Amount: 72
|
||||
- Level: 2
|
||||
Amount: 53
|
||||
Amount: 76
|
||||
- Level: 3
|
||||
Amount: 57
|
||||
Amount: 80
|
||||
- Level: 4
|
||||
Amount: 61
|
||||
Amount: 84
|
||||
- Level: 5
|
||||
Amount: 65
|
||||
Amount: 88
|
||||
Weapon:
|
||||
Gatling: true
|
||||
Shotgun: true
|
||||
@ -41474,9 +41475,9 @@ Body:
|
||||
Hit: Single
|
||||
HitCount: 1
|
||||
Element: Weapon
|
||||
GiveAp: 1
|
||||
GiveAp: 2
|
||||
AfterCastActDelay: 500
|
||||
Cooldown: 300
|
||||
Cooldown: 350
|
||||
CastCancel: true
|
||||
FixedCastTime: 1000
|
||||
Requires:
|
||||
@ -41521,7 +41522,7 @@ Body:
|
||||
Area: 3
|
||||
- Level: 5
|
||||
Area: 3
|
||||
GiveAp: 1
|
||||
GiveAp: 2
|
||||
AfterCastActDelay: 1000
|
||||
Cooldown: 500
|
||||
CastCancel: true
|
||||
@ -41556,7 +41557,7 @@ Body:
|
||||
Hit: Multi_Hit
|
||||
HitCount: 6
|
||||
Element: Weapon
|
||||
GiveAp: 1
|
||||
GiveAp: 2
|
||||
AfterCastActDelay: 1000
|
||||
Cooldown: 500
|
||||
CastCancel: true
|
||||
@ -41602,7 +41603,7 @@ Body:
|
||||
Area: 3
|
||||
- Level: 5
|
||||
Area: 3
|
||||
GiveAp: 1
|
||||
GiveAp: 2
|
||||
AfterCastActDelay: 1000
|
||||
Cooldown: 500
|
||||
CastCancel: true
|
||||
|
@ -7937,6 +7937,9 @@ Body:
|
||||
Flags:
|
||||
BlEffect: true
|
||||
DisplayPc: true
|
||||
NoBanishingBuster: true
|
||||
NoDispell: true
|
||||
NoClearance: true
|
||||
- Status: Ultimate_S
|
||||
Icon: EFST_ULTIMATE_S
|
||||
DurationLookup: IG_ULTIMATE_SACRIFICE
|
||||
@ -8876,6 +8879,10 @@ Body:
|
||||
DurationLookup: NW_HIDDEN_CARD
|
||||
CalcFlags:
|
||||
All: true
|
||||
Flags:
|
||||
NoBanishingBuster: true
|
||||
NoDispell: true
|
||||
NoClearance: true
|
||||
- Status: Talisman_of_Protection
|
||||
Icon: EFST_TALISMAN_OF_PROTECTION
|
||||
DurationLookup: SOA_TALISMAN_OF_PROTECTION
|
||||
|
@ -1846,7 +1846,7 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
|
||||
switch (skill_id) {
|
||||
case HN_SHIELD_CHAIN_RUSH:
|
||||
case HN_DOUBLEBOWLINGBASH:
|
||||
damage += damage * 70 / 100;
|
||||
damage += damage * 120 / 100;
|
||||
break;
|
||||
case HN_MEGA_SONIC_BLOW:
|
||||
case HN_SPIRAL_PIERCE_MAX:
|
||||
@ -4231,7 +4231,7 @@ static void battle_calc_multi_attack(struct Damage* wd, struct block_list *src,s
|
||||
break;
|
||||
}
|
||||
case ABC_FRENZY_SHOT:
|
||||
if( rnd()%100 < 5 * skill_lv ){
|
||||
if( rnd_chance( 5 * skill_lv, 100 ) ){
|
||||
wd->div_ = 3;
|
||||
}
|
||||
break;
|
||||
@ -5624,22 +5624,22 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
|
||||
skillratio += skillratio * i / 100;
|
||||
break;
|
||||
case IG_SHIELD_SHOOTING:
|
||||
skillratio += -100 + 650 + 2850 * skill_lv;
|
||||
skillratio += 7 * sstatus->pow;
|
||||
skillratio += skill_lv * 50 * pc_checkskill( sd, IG_SHIELD_MASTERY );
|
||||
skillratio += -100 + 1000 + 3500 * skill_lv;
|
||||
skillratio += 10 * sstatus->pow;
|
||||
skillratio += skill_lv * 150 * pc_checkskill( sd, IG_SHIELD_MASTERY );
|
||||
if (sd) { // Damage affected by the shield's weight and refine. Need official formula. [Rytech]
|
||||
short index = sd->equip_index[EQI_HAND_L];
|
||||
|
||||
if (index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->type == IT_ARMOR) {
|
||||
skillratio += (sd->inventory_data[index]->weight * 7 / 6) / 10;
|
||||
skillratio += sd->inventory.u.items_inventory[index].refine * 25;
|
||||
skillratio += sd->inventory.u.items_inventory[index].refine * 100;
|
||||
}
|
||||
}
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case IG_OVERSLASH:
|
||||
skillratio += -100 + 160 * skill_lv;
|
||||
skillratio += pc_checkskill(sd, IG_SPEAR_SWORD_M) * 25 * skill_lv;
|
||||
skillratio += -100 + 220 * skill_lv;
|
||||
skillratio += pc_checkskill(sd, IG_SPEAR_SWORD_M) * 50 * skill_lv;
|
||||
skillratio += 7 * sstatus->pow;
|
||||
RE_LVL_DMOD(100);
|
||||
if ((i = pc_checkskill_imperial_guard(sd, 3)) > 0)
|
||||
@ -5734,7 +5734,7 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case ABC_ABYSS_DAGGER:
|
||||
skillratio += -100 + 100 + 900 * skill_lv;
|
||||
skillratio += -100 + 350 + 1400 * skill_lv;
|
||||
skillratio += 5 * sstatus->pow;
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
@ -5743,20 +5743,22 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case ABC_CHAIN_REACTION_SHOT:
|
||||
skillratio += -100 + 850 * skill_lv + 15 * sstatus->con;
|
||||
skillratio += -100 + 850 * skill_lv;
|
||||
skillratio += 15 * sstatus->con;
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case ABC_CHAIN_REACTION_SHOT_ATK:
|
||||
skillratio += -100 + 600 + 2350 * skill_lv + 15 * sstatus->con;
|
||||
skillratio += -100 + 800 + 2550 * skill_lv;
|
||||
skillratio += 15 * sstatus->con;
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case ABC_DEFT_STAB:
|
||||
skillratio += -100 + 250 + 350 * skill_lv;
|
||||
skillratio += 5 * sstatus->pow;
|
||||
skillratio += -100 + 700 + 550 * skill_lv;
|
||||
skillratio += 7 * sstatus->pow;
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case ABC_FRENZY_SHOT:
|
||||
skillratio += -100 + 150 + 600 * skill_lv;
|
||||
skillratio += -100 + 250 + 800 * skill_lv;
|
||||
skillratio += 15 * sstatus->con;
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
@ -5901,7 +5903,7 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
|
||||
skillratio += -100 + 50000;
|
||||
break;
|
||||
case HN_SPIRAL_PIERCE_MAX:
|
||||
skillratio += -100 + 700 + 800 * skill_lv;
|
||||
skillratio += -100 + 1000 + 1500 * skill_lv;
|
||||
skillratio += pc_checkskill(sd, HN_SELFSTUDY_TATICS) * 3 * skill_lv;
|
||||
skillratio += 5 * sstatus->pow;
|
||||
switch (status_get_size(target)){
|
||||
@ -5918,7 +5920,7 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case HN_SHIELD_CHAIN_RUSH:
|
||||
skillratio += -100 + 700 + 500 * skill_lv;
|
||||
skillratio += -100 + 850 + 1050 * skill_lv;
|
||||
skillratio += pc_checkskill(sd, HN_SELFSTUDY_TATICS) * 3 * skill_lv;
|
||||
skillratio += 5 * sstatus->pow;
|
||||
RE_LVL_DMOD(100);
|
||||
@ -5932,19 +5934,19 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case HN_DOUBLEBOWLINGBASH:
|
||||
skillratio += -100 + 200 + 300 * skill_lv;
|
||||
skillratio += -100 + 250 + 400 * skill_lv;
|
||||
skillratio += pc_checkskill(sd, HN_SELFSTUDY_TATICS) * 3 * skill_lv;
|
||||
skillratio += 5 * sstatus->pow;
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case NW_HASTY_FIRE_IN_THE_HOLE:
|
||||
skillratio += -100 + 1500 + 1050 * skill_lv;
|
||||
skillratio += -100 + 1500 + 1500 * skill_lv;
|
||||
skillratio += pc_checkskill( sd, NW_GRENADE_MASTERY ) * 20;
|
||||
skillratio += 5 * sstatus->con;
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case NW_BASIC_GRENADE:
|
||||
skillratio += -100 + 1000 + 950 * skill_lv;
|
||||
skillratio += -100 + 1500 + 2100 * skill_lv;
|
||||
skillratio += pc_checkskill( sd, NW_GRENADE_MASTERY ) * 50;
|
||||
skillratio += 5 * sstatus->con;
|
||||
RE_LVL_DMOD(100);
|
||||
@ -5956,39 +5958,39 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case NW_WILD_FIRE:
|
||||
skillratio += -100 + 1000 + 2300 * skill_lv;
|
||||
skillratio += -100 + 1500 + 3000 * skill_lv;
|
||||
skillratio += 5 * sstatus->con;
|
||||
if (sc && sc->getSCE(SC_INTENSIVE_AIM_COUNT))
|
||||
skillratio += sc->getSCE(SC_INTENSIVE_AIM_COUNT)->val1 * 500 * skill_lv;
|
||||
if (sd && sd->weapontype1 == W_SHOTGUN)
|
||||
skillratio += 150 * skill_lv;
|
||||
skillratio += 200 * skill_lv;
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case NW_MAGAZINE_FOR_ONE:
|
||||
skillratio += -100 + 100 + 450 * ( skill_lv - 1 );
|
||||
skillratio += -100 + 250 + 500 * skill_lv;
|
||||
skillratio += 5 * sstatus->con;
|
||||
if (sc && sc->getSCE(SC_INTENSIVE_AIM_COUNT))
|
||||
skillratio += sc->getSCE(SC_INTENSIVE_AIM_COUNT)->val1 * 100 * skill_lv;
|
||||
if (sd && sd->weapontype1 == W_REVOLVER)
|
||||
skillratio += 50 + 100 * (skill_lv-1);
|
||||
skillratio += 50 + 300 * skill_lv;
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case NW_SPIRAL_SHOOTING:
|
||||
skillratio += -100 + 1000 + 1500 * skill_lv;
|
||||
skillratio += -100 + 1200 + 1700 * skill_lv;
|
||||
skillratio += 5 * sstatus->con;
|
||||
if (sc && sc->getSCE(SC_INTENSIVE_AIM_COUNT))
|
||||
skillratio += sc->getSCE(SC_INTENSIVE_AIM_COUNT)->val1 * 150 * skill_lv;
|
||||
if (sd && sd->weapontype1 == W_RIFLE)
|
||||
skillratio += 200 + 200 * skill_lv;
|
||||
skillratio += 200 + 1100 * skill_lv;
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case NW_ONLY_ONE_BULLET:
|
||||
skillratio += -100 + 800 + 1350 * skill_lv;
|
||||
skillratio += -100 + 1200 + 3000 * skill_lv;
|
||||
skillratio += 5 * sstatus->con;
|
||||
if (sc && sc->getSCE(SC_INTENSIVE_AIM_COUNT))
|
||||
skillratio += sc->getSCE(SC_INTENSIVE_AIM_COUNT)->val1 * 350 * skill_lv;
|
||||
if (sd && sd->weapontype1 == W_REVOLVER) {
|
||||
skillratio += 150 * skill_lv;
|
||||
skillratio += 400 * skill_lv;
|
||||
}
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
@ -7715,7 +7717,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
||||
if ((skill_id == MG_FIREBOLT && sc->getSCE(SC_FLAMETECHNIC_OPTION)) ||
|
||||
(skill_id == MG_COLDBOLT && sc->getSCE(SC_COLD_FORCE_OPTION)) ||
|
||||
(skill_id == MG_LIGHTNINGBOLT && sc->getSCE(SC_GRACE_BREEZE_OPTION)))
|
||||
skillratio *= 2;
|
||||
skillratio *= 5;
|
||||
|
||||
if (sc->getSCE(SC_SPELLFIST) && mflag & BF_SHORT) {
|
||||
skillratio += (sc->getSCE(SC_SPELLFIST)->val3 * 100) + (sc->getSCE(SC_SPELLFIST)->val1 * 50 - 50) - 100; // val3 = used bolt level, val1 = used spellfist level. [Rytech]
|
||||
@ -7768,7 +7770,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
||||
case WZ_EARTHSPIKE:
|
||||
skillratio += 100;
|
||||
if (sc && sc->getSCE(SC_EARTH_CARE_OPTION))
|
||||
skillratio += skillratio * 80 / 100;
|
||||
skillratio += skillratio * 800 / 100;
|
||||
break;
|
||||
#endif
|
||||
case HW_NAPALMVULCAN:
|
||||
@ -8035,7 +8037,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
||||
skillratio += (sd ? sd->status.job_level : 0);
|
||||
|
||||
if (sc->getSCE(SC_DEEP_POISONING_OPTION))
|
||||
skillratio += skillratio * 50 / 100;
|
||||
skillratio += skillratio * 1500 / 100;
|
||||
}
|
||||
break;
|
||||
case NPC_CLOUD_KILL:
|
||||
@ -8282,9 +8284,9 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
||||
break;
|
||||
case IG_CROSS_RAIN:
|
||||
if( sc && sc->getSCE( SC_HOLY_S ) ){
|
||||
skillratio += -100 + ( 450 + 15 * pc_checkskill( sd, IG_SPEAR_SWORD_M ) ) * skill_lv;
|
||||
skillratio += -100 + ( 650 + 15 * pc_checkskill( sd, IG_SPEAR_SWORD_M ) ) * skill_lv;
|
||||
}else{
|
||||
skillratio += -100 + ( 320 + 10 * pc_checkskill( sd, IG_SPEAR_SWORD_M ) ) * skill_lv;
|
||||
skillratio += -100 + ( 450 + 10 * pc_checkskill( sd, IG_SPEAR_SWORD_M ) ) * skill_lv;
|
||||
}
|
||||
skillratio += 7 * sstatus->spl;
|
||||
RE_LVL_DMOD(100);
|
||||
@ -8321,13 +8323,16 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case ABC_ABYSS_STRIKE:
|
||||
skillratio += -100 + 2200 * skill_lv + 10 * sstatus->spl;
|
||||
skillratio += -100 + 2650 * skill_lv;
|
||||
skillratio += 10 * sstatus->spl;
|
||||
if (tstatus->race == RC_DEMON || tstatus->race == RC_ANGEL)
|
||||
skillratio += 150 * skill_lv;
|
||||
skillratio += 200 * skill_lv;
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case ABC_ABYSS_SQUARE:
|
||||
skillratio += -100 + ( 570 + 20 * pc_checkskill( sd, ABC_MAGIC_SWORD_M ) ) * skill_lv + 5 * sstatus->spl;
|
||||
skillratio += -100 + 750 * skill_lv;
|
||||
skillratio += 40 * pc_checkskill( sd, ABC_MAGIC_SWORD_M ) * skill_lv;
|
||||
skillratio += 5 * sstatus->spl;
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case TR_METALIC_FURY:
|
||||
@ -8350,52 +8355,60 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
||||
}
|
||||
break;
|
||||
case EM_DIAMOND_STORM:
|
||||
skillratio += -100 + 400 + 1550 * skill_lv + 5 * sstatus->spl;
|
||||
skillratio += -100 + 500 + 2400 * skill_lv;
|
||||
skillratio += 5 * sstatus->spl;
|
||||
|
||||
if( sc != nullptr && sc->getSCE( SC_SUMMON_ELEMENTAL_DILUVIO ) ){
|
||||
skillratio += 5000 + 250 * skill_lv + 5 * sstatus->spl;
|
||||
skillratio += 7300 + 200 * skill_lv;
|
||||
skillratio += 5 * sstatus->spl;
|
||||
}
|
||||
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case EM_LIGHTNING_LAND:
|
||||
skillratio += -100 + 500 + 650 * skill_lv + 5 * sstatus->spl;
|
||||
skillratio += -100 + 700 + 1100 * skill_lv;
|
||||
skillratio += 5 * sstatus->spl;
|
||||
|
||||
if( sc != nullptr && sc->getSCE( SC_SUMMON_ELEMENTAL_PROCELLA ) ){
|
||||
skillratio += 400 * skill_lv;
|
||||
skillratio += 200 * skill_lv;
|
||||
}
|
||||
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case EM_VENOM_SWAMP:
|
||||
skillratio += -100 + 500 + 650 * skill_lv + 5 * sstatus->spl;
|
||||
skillratio += -100 + 700 + 1100 * skill_lv;
|
||||
skillratio += 5 * sstatus->spl;
|
||||
|
||||
if( sc && sc->getSCE( SC_SUMMON_ELEMENTAL_SERPENS ) ){
|
||||
skillratio += 400 * skill_lv;
|
||||
skillratio += 200 * skill_lv;
|
||||
}
|
||||
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case EM_CONFLAGRATION:
|
||||
skillratio += -100 + 500 + 650 * skill_lv + 5 * sstatus->spl;
|
||||
skillratio += -100 + 700 + 1100 * skill_lv;
|
||||
skillratio += 5 * sstatus->spl;
|
||||
|
||||
if( sc != nullptr && sc->getSCE( SC_SUMMON_ELEMENTAL_ARDOR ) ){
|
||||
skillratio += 400 * skill_lv;
|
||||
skillratio += 200 * skill_lv;
|
||||
}
|
||||
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case EM_TERRA_DRIVE:
|
||||
skillratio += -100 + 400 + 1550 * skill_lv + 5 * sstatus->spl;
|
||||
skillratio += -100 + 500 + 2400 * skill_lv;
|
||||
skillratio += 5 * sstatus->spl;
|
||||
|
||||
if( sc != nullptr && sc->getSCE( SC_SUMMON_ELEMENTAL_TERREMOTUS ) ){
|
||||
skillratio += 5000 + 250 * skill_lv + 5 * sstatus->spl;
|
||||
skillratio += 7300 + 200 * skill_lv;
|
||||
skillratio += 5 * sstatus->spl;
|
||||
}
|
||||
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case ABC_FROM_THE_ABYSS_ATK:
|
||||
skillratio += -100 + 100 + 500 * skill_lv + 5 * sstatus->spl;
|
||||
skillratio += -100 + 150 + 650 * skill_lv;
|
||||
skillratio += 5 * sstatus->spl;
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case EM_ELEMENTAL_BUSTER_FIRE:
|
||||
@ -8403,7 +8416,8 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
||||
case EM_ELEMENTAL_BUSTER_WIND:
|
||||
case EM_ELEMENTAL_BUSTER_GROUND:
|
||||
case EM_ELEMENTAL_BUSTER_POISON:
|
||||
skillratio += -100 + 500 + 2200 * skill_lv + 10 * sstatus->spl;
|
||||
skillratio += -100 + 550 + 2650 * skill_lv;
|
||||
skillratio += 10 * sstatus->spl;
|
||||
if (tstatus->race == RC_FORMLESS || tstatus->race == RC_DRAGON)
|
||||
skillratio += 150 * skill_lv;
|
||||
RE_LVL_DMOD(100);
|
||||
@ -8449,7 +8463,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case HN_HELLS_DRIVE:
|
||||
skillratio += -100 + 1500 + 700 * skill_lv;
|
||||
skillratio += -100 + 1700 + 900 * skill_lv;
|
||||
skillratio += pc_checkskill(sd, HN_SELFSTUDY_SOCERY) * 4 * skill_lv;
|
||||
skillratio += 5 * sstatus->spl;
|
||||
RE_LVL_DMOD(100);
|
||||
@ -9984,7 +9998,7 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t
|
||||
sd->state.autocast = 0;
|
||||
}
|
||||
|
||||
if( sc->getSCE(SC_ABYSSFORCEWEAPON) && sd->abyssball > 0 && rnd() % 100 < 15 ){
|
||||
if( sc->getSCE(SC_ABYSSFORCEWEAPON) && sd->abyssball > 0 && rnd_chance( 25, 100 ) ){
|
||||
uint16 skill_id = ABC_FROM_THE_ABYSS_ATK;
|
||||
uint16 skill_lv = sc->getSCE(SC_ABYSSFORCEWEAPON)->val1;
|
||||
|
||||
|
@ -2190,19 +2190,19 @@ int skill_additional_effect( struct block_list* src, struct block_list *bl, uint
|
||||
status_change_end(bl, SC_SOUNDBLEND);
|
||||
break;
|
||||
case EM_DIAMOND_STORM:
|
||||
sc_start(src, bl, SC_HANDICAPSTATE_FROSTBITE, 40 + 10 * skill_lv, skill_lv, skill_get_time2(skill_id, skill_lv));
|
||||
sc_start(src, bl, SC_HANDICAPSTATE_FROSTBITE, 5, skill_lv, skill_get_time2(skill_id, skill_lv));
|
||||
break;
|
||||
case EM_LIGHTNING_LAND:
|
||||
sc_start(src, bl, SC_HANDICAPSTATE_LIGHTNINGSTRIKE, 10 + 10 * skill_lv, skill_lv, skill_get_time2(skill_id, skill_lv));
|
||||
sc_start(src, bl, SC_HANDICAPSTATE_LIGHTNINGSTRIKE, 3, skill_lv, skill_get_time2(skill_id, skill_lv));
|
||||
break;
|
||||
case EM_VENOM_SWAMP:
|
||||
sc_start(src, bl, SC_HANDICAPSTATE_DEADLYPOISON, 10 + 10 * skill_lv, skill_lv, skill_get_time2(skill_id, skill_lv));
|
||||
sc_start(src, bl, SC_HANDICAPSTATE_DEADLYPOISON, 3, skill_lv, skill_get_time2(skill_id, skill_lv));
|
||||
break;
|
||||
case EM_CONFLAGRATION:
|
||||
sc_start(src, bl, SC_HANDICAPSTATE_CONFLAGRATION, 10 + 10 * skill_lv, skill_lv, skill_get_time2(skill_id, skill_lv));
|
||||
sc_start(src, bl, SC_HANDICAPSTATE_CONFLAGRATION, 3, skill_lv, skill_get_time2(skill_id, skill_lv));
|
||||
break;
|
||||
case EM_TERRA_DRIVE:
|
||||
sc_start(src, bl, SC_HANDICAPSTATE_CRYSTALLIZATION, 40 + 10 * skill_lv, skill_lv, skill_get_time2(skill_id, skill_lv));
|
||||
sc_start(src, bl, SC_HANDICAPSTATE_CRYSTALLIZATION, 5, skill_lv, skill_get_time2(skill_id, skill_lv));
|
||||
break;
|
||||
case MT_RUSH_QUAKE:
|
||||
sc_start( src, bl, SC_RUSH_QUAKE1, 100, skill_lv, skill_get_time( skill_id, skill_lv ) );
|
||||
@ -12979,7 +12979,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
||||
skill_area_temp[2] = 0;
|
||||
|
||||
if (sd && sd->weapontype1 == W_GATLING) {
|
||||
i += 3;
|
||||
i = 5; // 11x11
|
||||
clif_skill_nodamage(src, bl, NW_THE_VIGILANTE_AT_NIGHT_GUN_GATLING, skill_lv, 1);
|
||||
} else
|
||||
clif_skill_nodamage(src, bl, NW_THE_VIGILANTE_AT_NIGHT_GUN_SHOTGUN, skill_lv, 1);
|
||||
|
@ -12651,7 +12651,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
||||
tick = INFINITE_TICK;
|
||||
break;
|
||||
case SC_GUARDIAN_S:
|
||||
val2 = ( status->max_hp / 2 ) * ( 50 * val1 ) / 100 + 15 * status->sta; // Barrier HP
|
||||
val2 = ( status->max_hp * 30 / 100 ) * ( 25 * val1 ) / 100 + 15 * status->sta; // Barrier HP
|
||||
break;
|
||||
case SC_REBOUND_S:
|
||||
val2 = 10 * val1;// Reduced Damage From Devotion
|
||||
|
Loading…
x
Reference in New Issue
Block a user