|
@@ -566,7 +566,7 @@ int skillnotok (int skillid, struct map_session_data *sd)
|
|
/**
|
|
/**
|
|
* These skills cannot be used while in mado gear (credits to Xantara)
|
|
* These skills cannot be used while in mado gear (credits to Xantara)
|
|
**/
|
|
**/
|
|
- if(sd->sc.option&OPTION_MADOGEAR) {
|
|
|
|
|
|
+ if( pc_ismadogear(sd) ) {
|
|
clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0);
|
|
clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0);
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
@@ -3045,7 +3045,8 @@ static int skill_timerskill(int tid, unsigned int tick, int id, intptr_t data)
|
|
skill_area_temp[2] = 0;
|
|
skill_area_temp[2] = 0;
|
|
map_foreachinrange(skill_area_sub, src, skill_get_splash(skl->skill_id, skl->skill_lv), splash_target(src), src, skl->skill_id, skl->skill_lv, tick, skl->flag, skill_castend_damage_id);
|
|
map_foreachinrange(skill_area_sub, src, skill_get_splash(skl->skill_id, skl->skill_lv), splash_target(src), src, skl->skill_id, skl->skill_lv, tick, skl->flag, skill_castend_damage_id);
|
|
break;
|
|
break;
|
|
- case WZ_WATERBALL:
|
|
|
|
|
|
+ case WZ_WATERBALL:
|
|
|
|
+ skill_toggle_magicpower(src, skl->skill_id); // only the first hit will be amplify
|
|
if (!status_isdead(target))
|
|
if (!status_isdead(target))
|
|
skill_attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag);
|
|
skill_attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag);
|
|
if (skl->type>1 && !status_isdead(target) && !status_isdead(src)) {
|
|
if (skl->type>1 && !status_isdead(target) && !status_isdead(src)) {
|
|
@@ -3067,6 +3068,7 @@ static int skill_timerskill(int tid, unsigned int tick, int id, intptr_t data)
|
|
{
|
|
{
|
|
struct block_list *nbl = NULL; // Next Target of Chain
|
|
struct block_list *nbl = NULL; // Next Target of Chain
|
|
skill_attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag); // Hit a Lightning on the current Target
|
|
skill_attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag); // Hit a Lightning on the current Target
|
|
|
|
+ skill_toggle_magicpower(src, skl->skill_id); // only the first hit will be amplify
|
|
if( skl->type > 1 )
|
|
if( skl->type > 1 )
|
|
{ // Remaining Chains Hit
|
|
{ // Remaining Chains Hit
|
|
nbl = battle_getenemyarea(src,target->x,target->y,2,BL_CHAR|BL_SKILL,target->id); // Search for a new Target around current one...
|
|
nbl = battle_getenemyarea(src,target->x,target->y,2,BL_CHAR|BL_SKILL,target->id); // Search for a new Target around current one...
|
|
@@ -3087,6 +3089,7 @@ static int skill_timerskill(int tid, unsigned int tick, int id, intptr_t data)
|
|
case WL_TETRAVORTEX_WIND:
|
|
case WL_TETRAVORTEX_WIND:
|
|
case WL_TETRAVORTEX_GROUND:
|
|
case WL_TETRAVORTEX_GROUND:
|
|
skill_attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag);
|
|
skill_attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag);
|
|
|
|
+ skill_toggle_magicpower(src, skl->skill_id); // only the first hit will be amplify
|
|
if( skl->type >= 3 )
|
|
if( skl->type >= 3 )
|
|
{ // Final Hit
|
|
{ // Final Hit
|
|
if( !status_isdead(target) )
|
|
if( !status_isdead(target) )
|
|
@@ -4631,7 +4634,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
|
|
}
|
|
}
|
|
if( status_isimmune(bl) ||
|
|
if( status_isimmune(bl) ||
|
|
(dstmd && (dstmd->class_ == MOBID_EMPERIUM || mob_is_battleground(dstmd))) ||
|
|
(dstmd && (dstmd->class_ == MOBID_EMPERIUM || mob_is_battleground(dstmd))) ||
|
|
- (skillid == AL_HEAL && dstsd && dstsd->sc.option&OPTION_MADOGEAR) )//Mado is immune to AL_HEAL
|
|
|
|
|
|
+ (skillid == AL_HEAL && dstsd && pc_ismadogear(dstsd)) )//Mado is immune to AL_HEAL
|
|
heal=0;
|
|
heal=0;
|
|
|
|
|
|
if( sd && dstsd && sd->status.partner_id == dstsd->status.char_id && (sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->status.sex == 0 )
|
|
if( sd && dstsd && sd->status.partner_id == dstsd->status.char_id && (sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->status.sex == 0 )
|
|
@@ -7777,8 +7780,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
|
|
|
|
|
|
case NC_SELFDESTRUCTION:
|
|
case NC_SELFDESTRUCTION:
|
|
if( sd ) {
|
|
if( sd ) {
|
|
- if( sd->sc.option&OPTION_MADOGEAR )
|
|
|
|
- pc_setoption(sd, sd->sc.option&~OPTION_MADOGEAR);
|
|
|
|
|
|
+ if( pc_ismadogear(sd) )
|
|
|
|
+ pc_setmadogear(sd, 0);
|
|
clif_skill_nodamage(src, bl, skillid, skilllv, 1);
|
|
clif_skill_nodamage(src, bl, skillid, skilllv, 1);
|
|
skill_castend_damage_id(src, src, skillid, skilllv, tick, flag);
|
|
skill_castend_damage_id(src, src, skillid, skilllv, tick, flag);
|
|
}
|
|
}
|
|
@@ -7805,7 +7808,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
|
|
if( sd )
|
|
if( sd )
|
|
{
|
|
{
|
|
int heal;
|
|
int heal;
|
|
- if( dstsd && (dstsd->sc.option&OPTION_MADOGEAR) )
|
|
|
|
|
|
+ if( dstsd && pc_ismadogear(dstsd) )
|
|
{
|
|
{
|
|
heal = dstsd->status.max_hp * (3+3*skilllv) / 100;
|
|
heal = dstsd->status.max_hp * (3+3*skilllv) / 100;
|
|
status_heal(bl,heal,0,2);
|
|
status_heal(bl,heal,0,2);
|
|
@@ -11753,7 +11756,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, short skill, sh
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if( sd->sc.option&OPTION_MADOGEAR ) {
|
|
|
|
|
|
+ if( pc_ismadogear(sd) ) {
|
|
switch( skill ) { //Blacksmiths and Mastersmiths skills are unusable when Mado is equipped. [Jobbie]
|
|
switch( skill ) { //Blacksmiths and Mastersmiths skills are unusable when Mado is equipped. [Jobbie]
|
|
case BS_REPAIRWEAPON: case WS_MELTDOWN:
|
|
case BS_REPAIRWEAPON: case WS_MELTDOWN:
|
|
case BS_HAMMERFALL: case WS_CARTBOOST:
|
|
case BS_HAMMERFALL: case WS_CARTBOOST:
|
|
@@ -12261,8 +12264,8 @@ int skill_check_condition_castbegin(struct map_session_data* sd, short skill, sh
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case RETURN_TO_ELDICASTES:
|
|
case RETURN_TO_ELDICASTES:
|
|
- if( sd->sc.option&OPTION_MADOGEAR ) { //Cannot be used if Mado is equipped.
|
|
|
|
- clif_skill_fail(sd,skill,0,0);
|
|
|
|
|
|
+ if( pc_ismadogear(sd) ) { //Cannot be used if Mado is equipped.
|
|
|
|
+ clif_skill_fail(sd,skill,USESKILL_FAIL_LEVEL,0);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
@@ -12363,7 +12366,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, short skill, sh
|
|
* Wug
|
|
* Wug
|
|
**/
|
|
**/
|
|
case ST_WUG:
|
|
case ST_WUG:
|
|
- if( !(sd->sc.option&OPTION_WUG) ) {
|
|
|
|
|
|
+ if( !pc_iswug(sd) ) {
|
|
clif_skill_fail(sd,skill,USESKILL_FAIL_LEVEL,0);
|
|
clif_skill_fail(sd,skill,USESKILL_FAIL_LEVEL,0);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
@@ -12372,7 +12375,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, short skill, sh
|
|
* Riding Wug
|
|
* Riding Wug
|
|
**/
|
|
**/
|
|
case ST_RIDINGWUG:
|
|
case ST_RIDINGWUG:
|
|
- if( !(sd->sc.option&OPTION_WUGRIDER) ){
|
|
|
|
|
|
+ if( !pc_isridingwug(sd) ){
|
|
clif_skill_fail(sd,skill,USESKILL_FAIL_LEVEL,0);
|
|
clif_skill_fail(sd,skill,USESKILL_FAIL_LEVEL,0);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
@@ -12381,7 +12384,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, short skill, sh
|
|
* Mechanic
|
|
* Mechanic
|
|
**/
|
|
**/
|
|
case ST_MADO:
|
|
case ST_MADO:
|
|
- if( !(sd->sc.option&OPTION_MADOGEAR) ) {
|
|
|
|
|
|
+ if( !pc_ismadogear(sd) ) {
|
|
clif_skill_fail(sd,skill,USESKILL_FAIL_LEVEL,0);
|
|
clif_skill_fail(sd,skill,USESKILL_FAIL_LEVEL,0);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|