|
@@ -14485,81 +14485,6 @@ uint8 pc_itemcd_check(map_session_data *sd, struct item_data *id, t_tick tick, u
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-/**
|
|
|
|
-* Clear the dmglog data from player
|
|
|
|
-* @param sd
|
|
|
|
-* @param md
|
|
|
|
-**/
|
|
|
|
-static void pc_clear_log_damage_sub(uint32 char_id, struct mob_data *md)
|
|
|
|
-{
|
|
|
|
- uint8 i;
|
|
|
|
- ARR_FIND(0,DAMAGELOG_SIZE,i,md->dmglog[i].id == char_id);
|
|
|
|
- if (i < DAMAGELOG_SIZE) {
|
|
|
|
- md->dmglog[i].id = 0;
|
|
|
|
- md->dmglog[i].dmg = 0;
|
|
|
|
- md->dmglog[i].dmg_tanked = 0;
|
|
|
|
- md->dmglog[i].flag = 0;
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
-* Add log to player's dmglog
|
|
|
|
-* @param sd
|
|
|
|
-* @param id Monster's GID
|
|
|
|
-**/
|
|
|
|
-void pc_damage_log_add(map_session_data *sd, int32 id)
|
|
|
|
-{
|
|
|
|
- uint8 i = 0;
|
|
|
|
-
|
|
|
|
- if (!sd || !id)
|
|
|
|
- return;
|
|
|
|
-
|
|
|
|
- //Only store new data, don't need to renew the old one with same id
|
|
|
|
- ARR_FIND(0, DAMAGELOG_SIZE_PC, i, sd->dmglog[i] == id);
|
|
|
|
- if (i < DAMAGELOG_SIZE_PC)
|
|
|
|
- return;
|
|
|
|
-
|
|
|
|
- for (i = 0; i < DAMAGELOG_SIZE_PC; i++) {
|
|
|
|
- if (sd->dmglog[i] == 0) {
|
|
|
|
- sd->dmglog[i] = id;
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
-* Clear dmglog data from player
|
|
|
|
-* @param sd
|
|
|
|
-* @param id Monster's id
|
|
|
|
-**/
|
|
|
|
-void pc_damage_log_clear(map_session_data *sd, int32 id)
|
|
|
|
-{
|
|
|
|
- uint8 i;
|
|
|
|
- struct mob_data *md = nullptr;
|
|
|
|
-
|
|
|
|
- if (!sd)
|
|
|
|
- return;
|
|
|
|
-
|
|
|
|
- if (!id) {
|
|
|
|
- for (i = 0; i < DAMAGELOG_SIZE_PC; i++) {
|
|
|
|
- if( !sd->dmglog[i] ) //skip the empty value
|
|
|
|
- continue;
|
|
|
|
-
|
|
|
|
- if ((md = map_id2md(sd->dmglog[i])))
|
|
|
|
- pc_clear_log_damage_sub(sd->status.char_id,md);
|
|
|
|
- sd->dmglog[i] = 0;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- else {
|
|
|
|
- if ((md = map_id2md(id)))
|
|
|
|
- pc_clear_log_damage_sub(sd->status.char_id,md);
|
|
|
|
-
|
|
|
|
- ARR_FIND(0,DAMAGELOG_SIZE_PC,i,sd->dmglog[i] == id); // find the id position
|
|
|
|
- if (i < DAMAGELOG_SIZE_PC)
|
|
|
|
- sd->dmglog[i] = 0;
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* Status change data arrived from char-server
|
|
* Status change data arrived from char-server
|
|
* @param sd: Player data
|
|
* @param sd: Player data
|