diff options
author | shennetsind <ind@henn.et> | 2013-10-20 21:14:33 -0200 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2013-10-20 21:14:33 -0200 |
commit | 073023b06ca755644667bb57a34d8d05fba37b57 (patch) | |
tree | 9e22156abcca2fb55c50691d2a3774b6eb763998 /src/map/skill.h | |
parent | d02f9afab959909398e8ebff6ab50186084c68c5 (diff) | |
download | hercules-073023b06ca755644667bb57a34d8d05fba37b57.tar.gz hercules-073023b06ca755644667bb57a34d8d05fba37b57.tar.bz2 hercules-073023b06ca755644667bb57a34d8d05fba37b57.tar.xz hercules-073023b06ca755644667bb57a34d8d05fba37b57.zip |
Bug:7723 and Skill Cooldowns
Fixed 7723, skill cooldowns are no longer have concurrent duplicates, when adding cooldown for a skill already in cooldown the timer is modified instead.
http://hercules.ws/board/tracker/issue-7723-skill-blockpc-end-error
Special Thanks to Haru, Wend and Beret.
Also fixed skill cooldown duration/total display for characters that relog with a skill cooldown on clients 20120604 or higher
Signed-off-by: shennetsind <ind@henn.et>
Diffstat (limited to 'src/map/skill.h')
-rw-r--r-- | src/map/skill.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/map/skill.h b/src/map/skill.h index 720865a1f..c968eebde 100644 --- a/src/map/skill.h +++ b/src/map/skill.h @@ -1747,10 +1747,11 @@ struct s_skill_magicmushroom_db { struct skill_cd_entry { int duration;//milliseconds #if PACKETVER >= 20120604 - int total; + int total;/* used for display on newer clients */ #endif short skidx;//the skill index entries belong to - unsigned int started; + unsigned int started;/* gettick() of when it started, used vs duration to measure how much left upon logout */ + int timer;/* timer id */ uint16 skill_id;//skill id }; @@ -1934,7 +1935,7 @@ struct skill_interface { int (*castend_nodamage_id) ( struct block_list *src, struct block_list *bl,uint16 skill_id,uint16 skill_lv,unsigned int tick,int flag ); int (*castend_damage_id) ( struct block_list* src, struct block_list *bl,uint16 skill_id,uint16 skill_lv,unsigned int tick,int flag ); int (*castend_pos2) ( struct block_list *src, int x,int y,uint16 skill_id,uint16 skill_lv,unsigned int tick,int flag); - int (*blockpc_start) (struct map_session_data *sd, uint16 skill_id, int tick, bool load); + int (*blockpc_start) (struct map_session_data *sd, uint16 skill_id, int tick); int (*blockhomun_start) (struct homun_data *hd, uint16 skill_id, int tick); int (*blockmerc_start) (struct mercenary_data *md, uint16 skill_id, int tick); int (*attack) ( int attack_type, struct block_list* src, struct block_list *dsrc,struct block_list *bl,uint16 skill_id,uint16 skill_lv,unsigned int tick,int flag ); |