diff options
author | Kenpachi Developer <Kenpachi.Developer@gmx.de> | 2020-06-25 08:07:51 +0200 |
---|---|---|
committer | Kenpachi Developer <Kenpachi.Developer@gmx.de> | 2020-06-25 08:07:51 +0200 |
commit | 7da438ed9885aa05f4d2748e655ad889b4d39c85 (patch) | |
tree | 9582925467a669e69b335c15ef4a6a9ab6afb767 /src/map/clif.c | |
parent | d6622f54398a780d9c007c75855971ebb2a19ea1 (diff) | |
download | hercules-7da438ed9885aa05f4d2748e655ad889b4d39c85.tar.gz hercules-7da438ed9885aa05f4d2748e655ad889b4d39c85.tar.bz2 hercules-7da438ed9885aa05f4d2748e655ad889b4d39c85.tar.xz hercules-7da438ed9885aa05f4d2748e655ad889b4d39c85.zip |
Enable vending shop features while Megaphone input box is present
Diffstat (limited to 'src/map/clif.c')
-rw-r--r-- | src/map/clif.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index deb53bccb..715e829f0 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -13330,7 +13330,7 @@ static void clif_parse_NpcStringInput(int fd, struct map_session_data *sd) __att /// 01d5 <packet len>.W <npc id>.L <string>.?B static void clif_parse_NpcStringInput(int fd, struct map_session_data *sd) { - if ((sd->state.trading != 0 && sd->state.using_megaphone == 0) || pc_isdead(sd) || pc_isvending(sd)) + if (((sd->state.trading != 0 || pc_isvending(sd)) && sd->state.using_megaphone == 0) || pc_isdead(sd)) return; int len = RFIFOW(fd, 2); @@ -14597,7 +14597,7 @@ static void clif_parse_CloseVending(int fd, struct map_session_data *sd) __attri /// 012e static void clif_parse_CloseVending(int fd, struct map_session_data *sd) { - if (sd->npc_id || sd->state.buyingstore || sd->state.trading) + if ((sd->npc_id != 0 && sd->state.using_megaphone == 0) || sd->state.buyingstore != 0 || sd->state.trading != 0) return; vending->close(sd); @@ -14608,12 +14608,9 @@ static void clif_parse_VendingListReq(int fd, struct map_session_data *sd) __att /// 0130 <account id>.L static void clif_parse_VendingListReq(int fd, struct map_session_data *sd) { - if (pc_istrading(sd) || pc_isdead(sd)) + if (pc_istrading_except_npc(sd) || (sd->npc_id != 0 && sd->state.using_megaphone == 0) || pc_isdead(sd)) return; - if( sd->npc_id ) {// using an NPC - return; - } vending->list(sd,RFIFOL(fd,2)); } @@ -14675,8 +14672,10 @@ static void clif_parse_OpenVending(int fd, struct map_session_data *sd) __attrib /// 1 = open static void clif_parse_OpenVending(int fd, struct map_session_data *sd) { - if (pc_istrading(sd) || pc_isdead(sd) || sd->state.vending || sd->state.buyingstore) + if (pc_istrading_except_npc(sd) || (sd->npc_id != 0 && sd->state.using_megaphone == 0) + || pc_isdead(sd) || sd->state.vending != 0 || sd->state.buyingstore != 0) { return; + } int len = (int)RFIFOW(fd, 2) - 85; |