summaryrefslogtreecommitdiff
path: root/src/map/skill.h
diff options
context:
space:
mode:
authorshennetsind <ind@henn.et>2013-10-20 21:14:33 -0200
committershennetsind <ind@henn.et>2013-10-20 21:14:33 -0200
commit073023b06ca755644667bb57a34d8d05fba37b57 (patch)
tree9e22156abcca2fb55c50691d2a3774b6eb763998 /src/map/skill.h
parentd02f9afab959909398e8ebff6ab50186084c68c5 (diff)
downloadhercules-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.h7
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 );