From 23167727ed5e798f12e2b9140b405b83003186e7 Mon Sep 17 00:00:00 2001 From: malufett Date: Sun, 16 Jun 2013 23:48:14 -0700 Subject: Fixed Bug#7381 & #7379 -Reins_of_Mount should now ignore delay(when fail) and sitting condition. --- src/map/pc.c | 7 ++++--- src/map/script.c | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/map/pc.c b/src/map/pc.c index ef70aad97..635f48db5 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -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); } diff --git a/src/map/script.c b/src/map/script.c index 15870aaa7..823febbc6 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -16520,9 +16520,10 @@ BUILDIN(setmounting) { TBL_PC* sd; if( (sd = script_rid2sd(st)) == NULL ) return true; - if( sd->sc.option&(OPTION_WUGRIDER|OPTION_RIDING|OPTION_DRAGON|OPTION_MADOGEAR) ) + if( sd->sc.option&(OPTION_WUGRIDER|OPTION_RIDING|OPTION_DRAGON|OPTION_MADOGEAR) ){ + clif->msgtable(sd->fd, 0X78b); script_pushint(st,0);//can't mount with one of these - else { + }else { if( sd->sc.data[SC_ALL_RIDING] ) status_change_end(&sd->bl, SC_ALL_RIDING, INVALID_TIMER); else -- cgit v1.2.3-70-g09d2