update
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@779 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
095a938fb3
commit
2c64ba96d0
@ -1,5 +1,6 @@
|
|||||||
Date Added
|
Date Added
|
||||||
12/24
|
12/24
|
||||||
|
* Fixed item-dup bug in storage and cart [MouseJstr]
|
||||||
* @skilltree was looking outside of the particular class
|
* @skilltree was looking outside of the particular class
|
||||||
of the char to see if they could do a skill [MouseJstr]
|
of the char to see if they could do a skill [MouseJstr]
|
||||||
* Fixed a calc_skill_tree bug where too many skills were
|
* Fixed a calc_skill_tree bug where too many skills were
|
||||||
|
11
Dev/bugs.txt
11
Dev/bugs.txt
@ -55,17 +55,14 @@ Assigned: N/A
|
|||||||
Progress: 0%
|
Progress: 0%
|
||||||
|
|
||||||
Problem: Item duping bug in storage...
|
Problem: Item duping bug in storage...
|
||||||
Assigned: N/A
|
Assigned: MouseJstr
|
||||||
Progress: 0%
|
Progress: 100%
|
||||||
|
|
||||||
Let's say you have 200 arrows and 100 Rosiotti arrow, you'll put 100 and 50 in storage
|
Let's say you have 200 arrows and 100 Rosiotti arrow, you'll put 100 and 50 in storage
|
||||||
And you should end when you log back in with 100 of each on you and 100 and 50 in storage
|
And you should end when you log back in with 100 of each on you and 100 and 50 in storage
|
||||||
Gain 50
|
Gain 50
|
||||||
Repeat
|
Repeat
|
||||||
|
|
||||||
Lupus: heh i fixid similiar bug in DELITEM script command. i think it's the same bug in other function
|
|
||||||
so i'm in charge
|
|
||||||
|
|
||||||
Problem: ~40+ players connected.. and soon can't re-connect, they can enter password, but never see "select character" screen.
|
Problem: ~40+ players connected.. and soon can't re-connect, they can enter password, but never see "select character" screen.
|
||||||
Assigned: N/A
|
Assigned: N/A
|
||||||
Progress: 0%
|
Progress: 0%
|
||||||
@ -150,5 +147,5 @@ Progress: 0%
|
|||||||
|
|
||||||
Problem: When you have UNNAMED Arrows and Named Arrows in the storage and take some arrows then it change amount of other items.
|
Problem: When you have UNNAMED Arrows and Named Arrows in the storage and take some arrows then it change amount of other items.
|
||||||
It happens because server doesn't recognize Named and Unnamed Stockable items (Elemental Gems, Iron, Steel, Holy Water, Arrows)
|
It happens because server doesn't recognize Named and Unnamed Stockable items (Elemental Gems, Iron, Steel, Holy Water, Arrows)
|
||||||
Assigned: N/A
|
Assigned: MouseJstr
|
||||||
Progress: 0%
|
Progress: 100%
|
||||||
|
@ -2476,3 +2476,15 @@ int do_init(int argc, char *argv[]) {
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int compare_item(struct item *a, struct item *b) {
|
||||||
|
return (
|
||||||
|
(a->nameid == b->nameid) &&
|
||||||
|
(a->identify == b->identify) &&
|
||||||
|
(a->refine == b->refine) &&
|
||||||
|
(a->attribute == b->attribute) &&
|
||||||
|
(a->card[0] == b->card[0]) &&
|
||||||
|
(a->card[1] == b->card[1]) &&
|
||||||
|
(a->card[2] == b->card[2]) &&
|
||||||
|
(a->card[3] == b->card[3]));
|
||||||
|
}
|
||||||
|
@ -695,6 +695,7 @@ void map_deliddb(struct block_list *bl);
|
|||||||
int map_foreachiddb(int (*)(void*,void*,va_list),...);
|
int map_foreachiddb(int (*)(void*,void*,va_list),...);
|
||||||
void map_addnickdb(struct map_session_data *);
|
void map_addnickdb(struct map_session_data *);
|
||||||
struct map_session_data * map_nick2sd(char*);
|
struct map_session_data * map_nick2sd(char*);
|
||||||
|
int compare_item(struct item *a, struct item *b);
|
||||||
|
|
||||||
// gatŠÖ˜A
|
// gatŠÖ˜A
|
||||||
int map_getcell(int,int,int);
|
int map_getcell(int,int,int);
|
||||||
|
@ -3213,9 +3213,7 @@ int pc_additem(struct map_session_data *sd,struct item *item_data,int amount)
|
|||||||
if(!itemdb_isequip2(data)){
|
if(!itemdb_isequip2(data)){
|
||||||
// ? 備品ではないので、?所有品なら個?のみ?化させる
|
// ? 備品ではないので、?所有品なら個?のみ?化させる
|
||||||
for(i=0;i<MAX_INVENTORY;i++)
|
for(i=0;i<MAX_INVENTORY;i++)
|
||||||
if(sd->status.inventory[i].nameid == item_data->nameid &&
|
if(compare_item(&sd->status.inventory[i], item_data)) {
|
||||||
sd->status.inventory[i].card[0] == item_data->card[0] && sd->status.inventory[i].card[1] == item_data->card[1] &&
|
|
||||||
sd->status.inventory[i].card[2] == item_data->card[2] && sd->status.inventory[i].card[3] == item_data->card[3]) {
|
|
||||||
if(sd->status.inventory[i].amount+amount > MAX_AMOUNT)
|
if(sd->status.inventory[i].amount+amount > MAX_AMOUNT)
|
||||||
return 5;
|
return 5;
|
||||||
sd->status.inventory[i].amount+=amount;
|
sd->status.inventory[i].amount+=amount;
|
||||||
@ -3450,9 +3448,7 @@ int pc_cart_additem(struct map_session_data *sd,struct item *item_data,int amoun
|
|||||||
if(!itemdb_isequip2(data)){
|
if(!itemdb_isequip2(data)){
|
||||||
// ? 備品ではないので、?所有品なら個?のみ?化させる
|
// ? 備品ではないので、?所有品なら個?のみ?化させる
|
||||||
for(i=0;i<MAX_CART;i++){
|
for(i=0;i<MAX_CART;i++){
|
||||||
if(sd->status.cart[i].nameid==item_data->nameid &&
|
if(compare_item(&sd->status.cart[i], item_data)) {
|
||||||
sd->status.cart[i].card[0] == item_data->card[0] && sd->status.cart[i].card[1] == item_data->card[1] &&
|
|
||||||
sd->status.cart[i].card[2] == item_data->card[2] && sd->status.cart[i].card[3] == item_data->card[3]){
|
|
||||||
if(sd->status.cart[i].amount+amount > MAX_AMOUNT)
|
if(sd->status.cart[i].amount+amount > MAX_AMOUNT)
|
||||||
return 1;
|
return 1;
|
||||||
sd->status.cart[i].amount+=amount;
|
sd->status.cart[i].amount+=amount;
|
||||||
|
@ -144,12 +144,7 @@ int storage_additem(struct map_session_data *sd,struct storage *stor,struct item
|
|||||||
if(!itemdb_isequip2(data)){
|
if(!itemdb_isequip2(data)){
|
||||||
// 装備品ではないので、既所有品なら個数のみ変化させる
|
// 装備品ではないので、既所有品なら個数のみ変化させる
|
||||||
for(i=0;i<MAX_STORAGE;i++){
|
for(i=0;i<MAX_STORAGE;i++){
|
||||||
if( stor->storage[i].nameid == item_data->nameid &&
|
if( compare_item (&stor->storage[i], item_data)) {
|
||||||
stor->storage[i].identify == item_data->identify &&
|
|
||||||
stor->storage[i].refine == item_data->refine &&
|
|
||||||
stor->storage[i].attribute == item_data->attribute &&
|
|
||||||
stor->storage[i].card[0] == item_data->card[0] && stor->storage[i].card[1] == item_data->card[1] &&
|
|
||||||
stor->storage[i].card[2] == item_data->card[2] && stor->storage[i].card[3] == item_data->card[3]){
|
|
||||||
if(stor->storage[i].amount+amount > MAX_AMOUNT)
|
if(stor->storage[i].amount+amount > MAX_AMOUNT)
|
||||||
return 1;
|
return 1;
|
||||||
stor->storage[i].amount+=amount;
|
stor->storage[i].amount+=amount;
|
||||||
@ -434,9 +429,7 @@ int guild_storage_additem(struct map_session_data *sd,struct guild_storage *stor
|
|||||||
if(!itemdb_isequip2(data)){
|
if(!itemdb_isequip2(data)){
|
||||||
// 装備品ではないので、既所有品なら個数のみ変化させる
|
// 装備品ではないので、既所有品なら個数のみ変化させる
|
||||||
for(i=0;i<MAX_GUILD_STORAGE;i++){
|
for(i=0;i<MAX_GUILD_STORAGE;i++){
|
||||||
if(stor->storage[i].nameid == item_data->nameid &&
|
if(compare_item(&stor->storage[i], item_data)) {
|
||||||
stor->storage[i].card[0] == item_data->card[0] && stor->storage[i].card[1] == item_data->card[1] &&
|
|
||||||
stor->storage[i].card[2] == item_data->card[2] && stor->storage[i].card[3] == item_data->card[3]){
|
|
||||||
if(stor->storage[i].amount+amount > MAX_AMOUNT)
|
if(stor->storage[i].amount+amount > MAX_AMOUNT)
|
||||||
return 1;
|
return 1;
|
||||||
stor->storage[i].amount+=amount;
|
stor->storage[i].amount+=amount;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user