diff options
author | Matheus Macabu <mkbu95@gmail.com> | 2015-07-08 08:45:01 -0300 |
---|---|---|
committer | Matheus Macabu <mkbu95@gmail.com> | 2015-07-08 08:45:01 -0300 |
commit | 29f4963673b1f793448a083a21be3e6ae4d69c54 (patch) | |
tree | 8722f2e506fc7ba97070a79739f819f0ade4f03d /src/map/pc.c | |
parent | fb82e87c39227921fc3397a8763f0bdb0921a28b (diff) | |
parent | 7b1293c3caf76b5587aa3abe8df57b1083c2175d (diff) | |
download | hercules-29f4963673b1f793448a083a21be3e6ae4d69c54.tar.gz hercules-29f4963673b1f793448a083a21be3e6ae4d69c54.tar.bz2 hercules-29f4963673b1f793448a083a21be3e6ae4d69c54.tar.xz hercules-29f4963673b1f793448a083a21be3e6ae4d69c54.zip |
Merge branch 'master' of https://github.com/HerculesWS/Hercules
Diffstat (limited to 'src/map/pc.c')
-rw-r--r-- | src/map/pc.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/map/pc.c b/src/map/pc.c index 9e9f993d0..4dac559e2 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -4448,6 +4448,7 @@ int pc_additem(struct map_session_data *sd,struct item *item_data,int amount,e_l if( sd->status.inventory[i].nameid == item_data->nameid && sd->status.inventory[i].bound == item_data->bound && sd->status.inventory[i].expire_time == 0 && + sd->status.inventory[i].unique_id == item_data->unique_id && memcmp(&sd->status.inventory[i].card, &item_data->card, sizeof(item_data->card)) == 0 ) { if( amount > MAX_AMOUNT - sd->status.inventory[i].amount || ( data->stack.inventory && amount > data->stack.amount - sd->status.inventory[i].amount ) ) return 5; @@ -4475,8 +4476,8 @@ int pc_additem(struct map_session_data *sd,struct item *item_data,int amount,e_l clif->additem(sd,i,amount,0); } - if( !itemdb->isstackable2(data) && !item_data->unique_id ) - sd->status.inventory[i].unique_id = itemdb->unique_id(sd); + if( ( !itemdb->isstackable2(data) || data->flag.force_serial || data->type == IT_CASH) && !item_data->unique_id ) + sd->status.inventory[i].unique_id = itemdb->unique_id(sd); logs->pick_pc(sd, log_type, amount, &sd->status.inventory[i],sd->inventory_data[i]); @@ -5028,7 +5029,7 @@ int pc_cart_additem(struct map_session_data *sd,struct item *item_data,int amoun sd->status.cart[i].card[2] == item_data->card[2] && sd->status.cart[i].card[3] == item_data->card[3] ); }; - if( i < MAX_CART ) + if( i < MAX_CART && item_data->unique_id == sd->status.cart[i].unique_id) {// item already in cart, stack it if( amount > MAX_AMOUNT - sd->status.cart[i].amount || ( data->stack.cart && amount > data->stack.amount - sd->status.cart[i].amount ) ) return 2; // no room |