Fixed bugreport:6127 remove the double duration bonus from GC_RESEARCHEWPOISON
Fixed bugreport:6109 GN_CARTBOOST should now give atk bonus and fixed some genetic skills damage ratio and behavior Fixed bugreport:6121 Rolling cutter's counter should now only be removed by walking and Cross Ripper Slasher Fixed bugreport:6100 Cart should now can't be removed when character dies git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16353 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
2c054848be
commit
0e6ba7d3ca
@ -2362,16 +2362,15 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src,struct blo
|
||||
skillratio += 400;
|
||||
break;
|
||||
case GN_CART_TORNADO:
|
||||
if( sd )
|
||||
skillratio += 50 * skill_lv + pc_checkskill(sd, GN_REMODELING_CART) * 100 - 100;
|
||||
RE_LVL_DMOD(100);
|
||||
if( sc && sc->data[SC_GN_CARTBOOST] )
|
||||
skillratio += 10 * sc->data[SC_GN_CARTBOOST]->val1;
|
||||
// ATK [( Skill Level x 50 ) + ( Cart Weight / ( 150 - Caster’s Base STR ))] + ( Cart Remodeling Skill Level x 50 )] %
|
||||
skillratio = 50 * skill_lv;
|
||||
if( sd && sd->cart_weight)
|
||||
skillratio += sd->cart_weight/10 / (150-sstatus->str) + pc_checkskill(sd, GN_REMODELING_CART) * 50;
|
||||
break;
|
||||
case GN_CARTCANNON:
|
||||
if( sd ) skillratio += 250 + 50 * skill_lv + pc_checkskill(sd, GN_REMODELING_CART) * (sstatus->int_ / 2);
|
||||
if( sc && sc->data[SC_GN_CARTBOOST] )
|
||||
skillratio += 10 * sc->data[SC_GN_CARTBOOST]->val1;
|
||||
// ATK [{( Cart Remodeling Skill Level x 50 ) x ( INT / 40 )} + ( Cart Cannon Skill Level x 60 )] %
|
||||
skillratio = 60 * skill_lv;
|
||||
if( sd ) skillratio += pc_checkskill(sd, GN_REMODELING_CART) * 50 * (sstatus->int_ / 40);
|
||||
break;
|
||||
case GN_SPORE_EXPLOSION:
|
||||
skillratio += 200 + 100 * skill_lv;
|
||||
@ -2695,6 +2694,8 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src,struct blo
|
||||
#endif
|
||||
ATK_ADD(20*lv);
|
||||
}
|
||||
if(sc->data[SC_GN_CARTBOOST])
|
||||
ATK_ADD(10*sc->data[SC_GN_CARTBOOST]->val1);
|
||||
}
|
||||
|
||||
//Refine bonus
|
||||
|
@ -403,7 +403,6 @@ int map_moveblock(struct block_list *bl, int x1, int y1, unsigned int tick)
|
||||
if (sc->data[SC_PROPERTYWALK] &&
|
||||
sc->data[SC_PROPERTYWALK]->val3 >= skill_get_maxcount(sc->data[SC_PROPERTYWALK]->val1,sc->data[SC_PROPERTYWALK]->val2) )
|
||||
status_change_end(bl,SC_PROPERTYWALK,INVALID_TIMER);
|
||||
status_change_end(bl, SC_ROLLINGCUTTER, INVALID_TIMER); //If you move, you lose your counters.
|
||||
} else
|
||||
if (bl->type == BL_NPC)
|
||||
npc_unsetcells((TBL_NPC*)bl);
|
||||
|
@ -3373,6 +3373,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
|
||||
case CH_TIGERFIST:
|
||||
case PA_SHIELDCHAIN: // Shield Chain
|
||||
case PA_SACRIFICE:
|
||||
case ASC_EDP:
|
||||
case WS_CARTTERMINATION: // Cart Termination
|
||||
case AS_VENOMKNIFE:
|
||||
case HT_PHANTASMIC:
|
||||
@ -5070,10 +5071,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
|
||||
}
|
||||
break;
|
||||
|
||||
case ASC_EDP:
|
||||
clif_skill_nodamage(src,bl,skillid,skilllv,
|
||||
sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv) + ( sd ? 3000 * pc_checkskill(sd,GC_RESEARCHNEWPOISON) : 0 )));
|
||||
break;
|
||||
case AL_INCAGI:
|
||||
case AL_BLESSING:
|
||||
case MER_INCAGI:
|
||||
@ -11208,7 +11205,7 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns
|
||||
const struct TimerData* td = tsc->data[type]?get_timer(tsc->data[type]->timer):NULL;
|
||||
if( td )
|
||||
sec = DIFF_TICK(td->tick, tick);
|
||||
map_moveblock(bl, src->bl.x, src->bl.y, tick);
|
||||
///map_moveblock(bl, src->bl.x, src->bl.y, tick); // in official server it doesn't behave like this. [malufett]
|
||||
clif_fixpos(bl);
|
||||
sg->val2 = bl->id;
|
||||
} else
|
||||
|
@ -8411,6 +8411,7 @@ int status_change_clear(struct block_list* bl, int type)
|
||||
case SC_MATKPOTION:
|
||||
case SC_S_LIFEPOTION:
|
||||
case SC_L_LIFEPOTION:
|
||||
case SC_PUSH_CART:
|
||||
continue;
|
||||
|
||||
}
|
||||
|
@ -163,6 +163,7 @@ static int unit_walktoxy_timer(int tid, unsigned int tick, int id, intptr_t data
|
||||
y += dy;
|
||||
map_moveblock(bl, x, y, tick);
|
||||
ud->walk_count++; //walked cell counter, to be used for walk-triggered skills. [Skotlex]
|
||||
status_change_end(bl, SC_ROLLINGCUTTER, INVALID_TIMER); //If you move, you lose your counters. [malufett]
|
||||
|
||||
if (bl->x != x || bl->y != y || ud->walktimer != INVALID_TIMER)
|
||||
return 0; //map_moveblock has altered the object beyond what we expected (moved/warped it)
|
||||
|
Loading…
x
Reference in New Issue
Block a user