From 36125b1e1d1a55663e478d22bcaa8ef9c8e213b2 Mon Sep 17 00:00:00 2001 From: skotlex Date: Mon, 27 Nov 2006 19:32:51 +0000 Subject: - Some cleanups on the trade_additem function. When specifying a qty of 0, an ack will be returned to the client so it doesn't gets stuck. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9331 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/trade.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'src/map') diff --git a/src/map/trade.c b/src/map/trade.c index 78c630a32..02eb454d3 100644 --- a/src/map/trade.c +++ b/src/map/trade.c @@ -294,7 +294,13 @@ void trade_tradeadditem(struct map_session_data *sd, int index, int amount) { trade_tradecancel(sd); return; } - + + if (amount == 0) + { //Why do this.. ~.~ just send an ack, the item won't display on the trade window. + clif_tradeitemok(sd, index, 0); + return; + } + if (index == 0) { //Adding Zeny if (amount >= 0 && amount <= sd->status.zeny && // check amount @@ -302,14 +308,14 @@ void trade_tradeadditem(struct map_session_data *sd, int index, int amount) { { //Check Ok sd->deal.zeny = amount; clif_tradeadditem(sd, target_sd, 0, amount); - } else //Cancel Transaction - clif_tradeitemok(sd, 0, 1); //Send overweight when trying to add too much zeny? Hope they get the idea... + } else //Send overweight when trying to add too much zeny? Hope they get the idea... + clif_tradeitemok(sd, 0, 1); return; } - //Add an Item + index = index -2; //Why the actual index used is -2? //Item checks... - if (index < 0 || index > MAX_INVENTORY) + if (index < 0 || index >= MAX_INVENTORY) return; if (amount < 0 || amount > sd->status.inventory[index].amount) return; @@ -332,7 +338,10 @@ void trade_tradeadditem(struct map_session_data *sd, int index, int amount) { break; } if (trade_i >= 10) //No space left + { + clif_tradeitemok(sd, index+2, 1); return; + } trade_weight = sd->inventory_data[index]->weight * amount; if (target_sd->weight + sd->deal.weight + trade_weight > target_sd->max_weight) -- cgit v1.2.3-70-g09d2