summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDennis Friis <peavey@placid.dk>2008-04-02 15:17:26 +0000
committerDennis Friis <peavey@placid.dk>2008-04-02 15:17:26 +0000
commitee1220b0ca4b8d4e4b10ec1f758284bf79fe8061 (patch)
tree0b2cabf8217a20105d069a72db24ab218da33270
parent97bb21a79949779df76269b087f3bce7ef8179ee (diff)
downloadtmwa-ee1220b0ca4b8d4e4b10ec1f758284bf79fe8061.tar.gz
tmwa-ee1220b0ca4b8d4e4b10ec1f758284bf79fe8061.tar.bz2
tmwa-ee1220b0ca4b8d4e4b10ec1f758284bf79fe8061.tar.xz
tmwa-ee1220b0ca4b8d4e4b10ec1f758284bf79fe8061.zip
patch derived from stable ea, that fixes duping and zero stacking
-rw-r--r--src/map/pc.c6
-rw-r--r--src/map/trade.c6
2 files changed, 12 insertions, 0 deletions
diff --git a/src/map/pc.c b/src/map/pc.c
index 4e702c0..f5458e4 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -2908,6 +2908,12 @@ int pc_dropitem(struct map_session_data *sd,int n,int amount)
{
nullpo_retr(1, sd);
+ if(n < 0 || n >= MAX_INVENTORY)
+ return 0;
+
+ if(amount <= 0)
+ return 0;
+
if (sd->status.inventory[n].nameid <= 0 ||
sd->status.inventory[n].amount < amount ||
sd->trade_partner != 0 || sd->vender_id != 0 ||
diff --git a/src/map/trade.c b/src/map/trade.c
index da43d67..8bf2cb2 100644
--- a/src/map/trade.c
+++ b/src/map/trade.c
@@ -27,6 +27,12 @@ void trade_traderequest(struct map_session_data *sd,int target_id)
return;
}
}
+ if (target_sd->npc_id)
+ {
+ //Trade fails if you are using an NPC.
+ clif_tradestart(sd, 2);
+ return;
+ }
if((target_sd->trade_partner !=0) || (sd->trade_partner !=0)) {
trade_tradecancel(sd); //person is in another trade
}