Fixed bugreport:7010 where r17014 missing status_change check that may cause map server crash.
Fixed bugreport:6953 where RK_WINDCUTTER don't have skill effect. Fixed bugreport:6701 change RK_CRUSHTRIKE to self target skill. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17026 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
3f6e0b89e5
commit
5ebe5a4b31
@ -1093,7 +1093,7 @@
|
||||
//-- RK_MILLENNIUMSHIELD
|
||||
2011,0,1000,0,180000,0,60000
|
||||
//-- RK_CRUSHSTRIKE
|
||||
2012,0,0,0,0,0,30000
|
||||
2012,0,0,0,180000,0,30000
|
||||
//-- RK_REFRESH
|
||||
2013,0,0,0,60000,0,120000
|
||||
//-- RK_GIANTGROWTH
|
||||
|
@ -689,7 +689,7 @@
|
||||
2009,0,6,4,0,0x3,3:4:5:6:7,5,1,yes,0,0,0,weapon,0, RK_DRAGONHOWLING,Dragon Howling
|
||||
2010,0,0,0,0,0,0,10,0,no,0,0,0,none,0, RK_RUNEMASTERY,Rune Mastery
|
||||
2011,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0, RK_MILLENNIUMSHIELD,Millenium Shield
|
||||
2012,1,6,1,-1,0,0x8,1,1,yes,0,0,0,weapon,0, RK_CRUSHSTRIKE,Crush Strike
|
||||
2012,1,6,4,-1,0,0x8,1,1,yes,0,0,0,weapon,0, RK_CRUSHSTRIKE,Crush Strike
|
||||
2013,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0, RK_REFRESH,Refresh
|
||||
2014,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0, RK_GIANTGROWTH,Giant Growth
|
||||
2015,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0, RK_STONEHARDSKIN,Stone Hard Skin
|
||||
|
@ -1094,7 +1094,7 @@
|
||||
//-- RK_MILLENNIUMSHIELD
|
||||
2011,0,1000,0,180000,0,60000,0
|
||||
//-- RK_CRUSHSTRIKE
|
||||
2012,0,0,0,0,0,30000,1000
|
||||
2012,0,0,0,180000,0,30000,1000
|
||||
//-- RK_REFRESH
|
||||
2013,0,0,0,60000,0,120000,1000
|
||||
//-- RK_GIANTGROWTH
|
||||
|
@ -689,7 +689,7 @@
|
||||
2009,0,6,4,0,0x3,3:4:5:6:7,5,1,yes,0,0,0,weapon,0, RK_DRAGONHOWLING,Dragon Howling
|
||||
2010,0,0,0,0,0,0,10,0,no,0,0,0,none,0, RK_RUNEMASTERY,Rune Mastery
|
||||
2011,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0, RK_MILLENNIUMSHIELD,Millenium Shield
|
||||
2012,1,6,1,-1,0,0x8,1,1,yes,0,0,0,weapon,0, RK_CRUSHSTRIKE,Crush Strike
|
||||
2012,1,6,4,-1,0,0x8,1,1,yes,0,0,0,weapon,0, RK_CRUSHSTRIKE,Crush Strike
|
||||
2013,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0, RK_REFRESH,Refresh
|
||||
2014,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0, RK_GIANTGROWTH,Giant Growth
|
||||
2015,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0, RK_STONEHARDSKIN,Stone Hard Skin
|
||||
|
@ -4775,7 +4775,13 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t
|
||||
skill_get_time(MO_CALLSPIRITS, tsc->data[SC_GT_ENERGYGAIN]->val1),
|
||||
tsc->data[SC_GT_ENERGYGAIN]->val1);
|
||||
}
|
||||
|
||||
if( sc && sc->data[SC_CRUSHSTRIKE] ){
|
||||
int skilllv = sc->data[SC_CRUSHSTRIKE]->val1;
|
||||
status_change_end(src, SC_CRUSHSTRIKE, INVALID_TIMER);
|
||||
if( skill_attack(BF_WEAPON,src,src,target,RK_CRUSHSTRIKE,skilllv,tick,0) )
|
||||
return ATK_DEF;
|
||||
return ATK_MISS;
|
||||
}
|
||||
}
|
||||
|
||||
if(tsc && tsc->data[SC_KAAHI] && tsc->data[SC_KAAHI]->val4 == INVALID_TIMER && tstatus->hp < tstatus->max_hp)
|
||||
|
@ -1473,7 +1473,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
|
||||
if( sc->data[SC_WILD_STORM_OPTION] )
|
||||
skill = sc->data[SC_WILD_STORM_OPTION]->val2;
|
||||
else if( sc->data[SC_UPHEAVAL_OPTION] )
|
||||
skill = sc->data[SC_WILD_STORM_OPTION]->val2;
|
||||
skill = sc->data[SC_UPHEAVAL_OPTION]->val2;
|
||||
else if( sc->data[SC_TROPIC_OPTION] )
|
||||
skill = sc->data[SC_TROPIC_OPTION]->val3;
|
||||
else if( sc->data[SC_CHILLY_AIR_OPTION] )
|
||||
@ -7518,6 +7518,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
|
||||
case RK_GIANTGROWTH:
|
||||
case RK_VITALITYACTIVATION:
|
||||
case RK_ABUNDANCE:
|
||||
case RK_CRUSHSTRIKE:
|
||||
if( sd )
|
||||
{
|
||||
int lv = 1; // RK_GIANTGROWTH
|
||||
@ -7525,6 +7526,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
|
||||
lv = 2;
|
||||
else if( skillid == RK_ABUNDANCE )
|
||||
lv = 6;
|
||||
else if( skillid == RK_CRUSHSTRIKE )
|
||||
lv = 7;
|
||||
if( pc_checkskill(sd,RK_RUNEMASTERY) >= lv )
|
||||
clif_skill_nodamage(src,bl,skillid,skilllv,sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
|
||||
}
|
||||
@ -10004,11 +10007,12 @@ int skill_castend_pos2(struct block_list* src, int x, int y, int skillid, int sk
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case RK_WINDCUTTER:
|
||||
clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6);
|
||||
case NC_COLDSLOWER:
|
||||
case NC_ARMSCANNON:
|
||||
case RK_DRAGONBREATH:
|
||||
case RK_WINDCUTTER:
|
||||
case WM_LULLABY_DEEPSLEEP:
|
||||
i = skill_get_splash(skillid,skilllv);
|
||||
map_foreachinarea(skill_area_sub,src->m,x-i,y-i,x+i,y+i,splash_target(src),
|
||||
@ -13380,6 +13384,28 @@ int skill_consume_requirement( struct map_session_data *sd, short skill, short l
|
||||
if( itemid_isgemstone(req.itemid[i]) && skill != HW_GANBANTEIN && sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_WIZARD )
|
||||
continue; //Gemstones are checked, but not substracted from inventory.
|
||||
|
||||
switch( skill ){
|
||||
case SA_SEISMICWEAPON:
|
||||
if( sc && sc->data[SC_UPHEAVAL_OPTION] && rnd()%100 < 50 )
|
||||
continue;
|
||||
break;
|
||||
case SA_FLAMELAUNCHER:
|
||||
case SA_VOLCANO:
|
||||
if( sc && sc->data[SC_TROPIC_OPTION] && rnd()%100 < 50 )
|
||||
continue;
|
||||
break;
|
||||
case SA_FROSTWEAPON:
|
||||
case SA_DELUGE:
|
||||
if( sc && sc->data[SC_CHILLY_AIR_OPTION] && rnd()%100 < 50 )
|
||||
continue;
|
||||
break;
|
||||
case SA_LIGHTNINGLOADER:
|
||||
case SA_VIOLENTGALE:
|
||||
if( sc && sc->data[SC_WILD_STORM_OPTION] && rnd()%100 < 50 )
|
||||
continue;
|
||||
break;
|
||||
}
|
||||
|
||||
if( (n = pc_search_inventory(sd,req.itemid[i])) >= 0 )
|
||||
pc_delitem(sd,n,req.amount[i],0,1,LOG_TYPE_CONSUME);
|
||||
}
|
||||
@ -13524,25 +13550,6 @@ struct skill_condition skill_get_requirement(struct map_session_data* sd, short
|
||||
if( i < 3 )
|
||||
continue;
|
||||
break;
|
||||
case SA_SEISMICWEAPON:
|
||||
if( sc->data[SC_UPHEAVAL_OPTION] && rnd()%100 < 50 )
|
||||
continue;
|
||||
break;
|
||||
case SA_FLAMELAUNCHER:
|
||||
case SA_VOLCANO:
|
||||
if( sc->data[SC_TROPIC_OPTION] && rnd()%100 < 50 )
|
||||
continue;
|
||||
break;
|
||||
case SA_FROSTWEAPON:
|
||||
case SA_DELUGE:
|
||||
if( sc->data[SC_CHILLY_AIR_OPTION] && rnd()%100 < 50 )
|
||||
continue;
|
||||
break;
|
||||
case SA_LIGHTNINGLOADER:
|
||||
case SA_VIOLENTGALE:
|
||||
if( sc && sc->data[SC_WILD_STORM_OPTION] && rnd()%100 < 50 )
|
||||
continue;
|
||||
break;
|
||||
}
|
||||
|
||||
req.itemid[i] = skill_db[j].itemid[i];
|
||||
|
@ -557,6 +557,7 @@ void initChangeTables(void) {
|
||||
set_sc( RK_VITALITYACTIVATION, SC_VITALITYACTIVATION, SI_VITALITYACTIVATION, SCB_REGEN );
|
||||
set_sc( RK_FIGHTINGSPIRIT , SC_FIGHTINGSPIRIT , SI_FIGHTINGSPIRIT , SCB_WATK|SCB_ASPD );
|
||||
set_sc( RK_ABUNDANCE , SC_ABUNDANCE , SI_ABUNDANCE , SCB_NONE );
|
||||
set_sc( RK_CRUSHSTRIKE , SC_CRUSHSTRIKE , SI_CRUSHSTRIKE , SCB_NONE );
|
||||
/**
|
||||
* GC Guillotine Cross
|
||||
**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user