diff options
author | shennetsind <ind@henn.et> | 2013-06-19 08:47:00 -0300 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2013-06-19 08:47:00 -0300 |
commit | 75c34fa8b87126aaf2b998ef429efe253ce5d105 (patch) | |
tree | 8e0d1ccd07905b7c6212ef68e2d270b5edba9d83 /src/map/pc.c | |
parent | 1edc31980be653e6482e4920862ac5d6ab0dd916 (diff) | |
parent | bd95eccf047bda9d72abcea0724ad34b31131ab0 (diff) | |
download | hercules-75c34fa8b87126aaf2b998ef429efe253ce5d105.tar.gz hercules-75c34fa8b87126aaf2b998ef429efe253ce5d105.tar.bz2 hercules-75c34fa8b87126aaf2b998ef429efe253ce5d105.tar.xz hercules-75c34fa8b87126aaf2b998ef429efe253ce5d105.zip |
Merge branch 'master' of https://github.com/HerculesWS/Hercules
Diffstat (limited to 'src/map/pc.c')
-rw-r--r-- | src/map/pc.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/map/pc.c b/src/map/pc.c index ef70aad97..b7644f2fb 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -4255,7 +4255,7 @@ int pc_useitem(struct map_session_data *sd,int n) nullpo_ret(sd); - if( sd->npc_id ){ + if( sd->npc_id || sd->state.workinprogress&1 ){ /* TODO: add to clif->messages enum */ #ifdef RENEWAL clif->msg(sd, 0x783); // TODO look for the client date that has this message. @@ -4295,8 +4295,8 @@ int pc_useitem(struct map_session_data *sd,int n) return 0; /* Items with delayed consume are not meant to work while in mounts except reins of mount(12622) */ - if( sd->inventory_data[n]->flag.delay_consume ) { - if( nameid != ITEMID_REINS_OF_MOUNT && sd->sc.data[SC_ALL_RIDING] ) + if( sd->inventory_data[n]->flag.delay_consume && nameid != ITEMID_REINS_OF_MOUNT ) { + if( sd->sc.data[SC_ALL_RIDING] ) return 0; else if( pc_issit(sd) ) return 0; @@ -4323,7 +4323,8 @@ int pc_useitem(struct map_session_data *sd,int n) } else {// not yet used item (all slots are initially empty) sd->item_delay[i].nameid = nameid; } - sd->item_delay[i].tick = tick + sd->inventory_data[n]->delay; + if( !(nameid == ITEMID_REINS_OF_MOUNT && sd->sc.option&(OPTION_WUGRIDER|OPTION_RIDING|OPTION_DRAGON|OPTION_MADOGEAR)) ) + sd->item_delay[i].tick = tick + sd->inventory_data[n]->delay; } else {// should not happen ShowError("pc_useitem: Exceeded item delay array capacity! (nameid=%d, char_id=%d)\n", nameid, sd->status.char_id); } |