summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/map/clif.c7
-rw-r--r--src/map/pc.c3
2 files changed, 6 insertions, 4 deletions
diff --git a/src/map/clif.c b/src/map/clif.c
index e0f65155a..863c6cfbb 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -9593,6 +9593,7 @@ void clif_parse_DropItem(int fd, struct map_session_data *sd) {
*------------------------------------------
*/
void clif_parse_UseItem(int fd, struct map_session_data *sd) {
+ int n;
RFIFOHEAD(fd);
if (pc_isdead(sd)) {
@@ -9622,7 +9623,11 @@ void clif_parse_UseItem(int fd, struct map_session_data *sd) {
//Whether the item is used or not is irrelevant, the char ain't idle. [Skotlex]
sd->idletime = last_tick;
- if (!pc_useitem(sd,RFIFOW(fd,packet_db[sd->packet_ver][RFIFOW(fd,0)].pos[0])-2))
+ n = RFIFOW(fd,packet_db[sd->packet_ver][RFIFOW(fd,0)].pos[0])-2;
+
+ if(n <0 || n >= MAX_INVENTORY)
+ return 0;
+ if (!pc_useitem(sd,n))
clif_useitemack(sd,n,0,0); //Send an empty ack packet or the client gets stuck.
}
diff --git a/src/map/pc.c b/src/map/pc.c
index 2730baa79..1517cb17c 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -2814,9 +2814,6 @@ int pc_useitem(struct map_session_data *sd,int n)
nullpo_retr(0, sd);
- if(n <0 || n >= MAX_INVENTORY)
- return 0;
-
if(sd->status.inventory[n].nameid <= 0 ||
sd->status.inventory[n].amount <= 0)
return 0;