Initial support for newer packet versions (#4944)
Basic support for packets up to April 2020 Changing the default packet version to 2020-04-01 Thanks to everyone involved!
This commit is contained in:
@@ -11733,6 +11733,16 @@ static int8 skill_castend_id_check(struct block_list *src, struct block_list *ta
|
||||
return -1;
|
||||
}
|
||||
|
||||
TIMER_FUNC( skill_keep_using ){
|
||||
struct map_session_data* sd = map_id2sd( id );
|
||||
|
||||
if( sd && sd->skill_keep_using.skill_id ){
|
||||
clif_parse_skill_toid( sd, sd->skill_keep_using.skill_id, sd->skill_keep_using.level, sd->skill_keep_using.target );
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check & process skill to target on castend. Determines if skill is 'damage' or 'nodamage'
|
||||
* @param tid
|
||||
@@ -11959,6 +11969,10 @@ TIMER_FUNC(skill_castend_id){
|
||||
else
|
||||
skill_castend_damage_id(src,target,ud->skill_id,ud->skill_lv,tick,flag);
|
||||
|
||||
if( sd && sd->skill_keep_using.skill_id == ud->skill_id ){
|
||||
sd->skill_keep_using.tid = add_timer( sd->ud.canact_tick + 100, skill_keep_using, sd->bl.id, 0 );
|
||||
}
|
||||
|
||||
sc = status_get_sc(src);
|
||||
if(sc && sc->count) {
|
||||
if (ud->skill_id != RA_CAMOUFLAGE)
|
||||
@@ -12034,7 +12048,7 @@ TIMER_FUNC(skill_castend_id){
|
||||
//sent in ALL cases, even cases where skill_check_condition fails
|
||||
//which would lead to double 'skill failed' messages u.u [Skotlex]
|
||||
if(sd)
|
||||
sd->skillitem = sd->skillitemlv = sd->skillitem_keep_requirement = 0;
|
||||
sd->skillitem = sd->skillitemlv = sd->skillitem_keep_requirement = sd->skill_keep_using.skill_id = 0;
|
||||
else if(md)
|
||||
md->skill_idx = -1;
|
||||
return 0;
|
||||
@@ -16637,7 +16651,7 @@ bool skill_check_condition_castend(struct map_session_data* sd, uint16 skill_id,
|
||||
else if( require.itemid[i] == ITEMID_ANCILLA )
|
||||
clif_skill_fail(sd,skill_id,USESKILL_FAIL_ANCILLA,0); //Ancilla is required.
|
||||
else
|
||||
clif_skill_fail( sd, skill_id, USESKILL_FAIL_NEED_ITEM, ( require.itemid[i] << 16 ) | require.amount[i] ); // [%s] required '%d' amount.
|
||||
clif_skill_fail( sd, skill_id, USESKILL_FAIL_NEED_ITEM, require.amount[i], require.itemid[i] ); // [%s] required '%d' amount.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -17572,11 +17586,11 @@ void skill_weaponrefine(struct map_session_data *sd, int idx)
|
||||
return;
|
||||
}
|
||||
if( item->refine >= sd->menuskill_val || item->refine >= 10 ) {
|
||||
clif_upgrademessage(sd->fd, 2, item->nameid);
|
||||
clif_upgrademessage(sd, 2, item->nameid);
|
||||
return;
|
||||
}
|
||||
if( (i = pc_search_inventory(sd, material [ditem->wlv])) < 0 ) {
|
||||
clif_upgrademessage(sd->fd, 3, material[ditem->wlv]);
|
||||
clif_upgrademessage(sd, 3, material[ditem->wlv]);
|
||||
return;
|
||||
}
|
||||
per = status_get_refine_chance(static_cast<refine_type>(ditem->wlv), (int)item->refine, false);
|
||||
@@ -17596,7 +17610,7 @@ void skill_weaponrefine(struct map_session_data *sd, int idx)
|
||||
pc_unequipitem(sd,idx,3);
|
||||
}
|
||||
clif_delitem(sd,idx,1,3);
|
||||
clif_upgrademessage(sd->fd, 0, item->nameid);
|
||||
clif_upgrademessage(sd, 0, item->nameid);
|
||||
clif_inventorylist(sd);
|
||||
clif_refine(sd->fd,0,idx,item->refine);
|
||||
achievement_update_objective(sd, AG_REFINE_SUCCESS, 2, ditem->wlv, item->refine);
|
||||
@@ -17623,7 +17637,7 @@ void skill_weaponrefine(struct map_session_data *sd, int idx)
|
||||
item->refine = 0;
|
||||
if(item->equip)
|
||||
pc_unequipitem(sd,idx,3);
|
||||
clif_upgrademessage(sd->fd, 1, item->nameid);
|
||||
clif_upgrademessage(sd, 1, item->nameid);
|
||||
clif_refine(sd->fd,1,idx,item->refine);
|
||||
achievement_update_objective(sd, AG_REFINE_FAIL, 1, 1);
|
||||
pc_delitem(sd,idx,1,0,2, LOG_TYPE_OTHER);
|
||||
|
||||
Reference in New Issue
Block a user