diff options
author | momacabu <momacabu@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-11-10 05:06:39 +0000 |
---|---|---|
committer | momacabu <momacabu@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-11-10 05:06:39 +0000 |
commit | 6557fcf9fa5d484b2d3c9ce24acd52d565c5c4a8 (patch) | |
tree | e85d1ee569b0a5ffbc93621682243dec332af1ce | |
parent | 7726e501b5156319a2940601ea1ef3ccfd7326fc (diff) | |
download | hercules-6557fcf9fa5d484b2d3c9ce24acd52d565c5c4a8.tar.gz hercules-6557fcf9fa5d484b2d3c9ce24acd52d565c5c4a8.tar.bz2 hercules-6557fcf9fa5d484b2d3c9ce24acd52d565c5c4a8.tar.xz hercules-6557fcf9fa5d484b2d3c9ce24acd52d565c5c4a8.zip |
- Fixed bugreport:6816, bugreport:6818, bugreport:6843, buying a Pet Egg is now working. Special thanks to Ind;
- Fixed a bug where pet egg was not deleted properly after clearing the floor.
- Adjusted comment from msg_athena.conf, these IDs are being used!
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16897 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r-- | conf/msg_athena.conf | 2 | ||||
-rw-r--r-- | src/map/map.c | 14 | ||||
-rw-r--r-- | src/map/npc.c | 13 |
3 files changed, 17 insertions, 12 deletions
diff --git a/conf/msg_athena.conf b/conf/msg_athena.conf index d625472ba..c330c9f21 100644 --- a/conf/msg_athena.conf +++ b/conf/msg_athena.conf @@ -418,7 +418,7 @@ //chrif related 408: Need disconnection to perform change-sex request... 409: Your sex has been changed (need disconnection by the server)... -//410-411 free +//410-411 used by cash shop 412: Your account has 'Unregistered'. 413: Your account has an 'Incorrect Password'... 414: Your account has expired. diff --git a/src/map/map.c b/src/map/map.c index e187c2625..880428084 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -1301,23 +1301,23 @@ int map_get_new_object_id(void) int map_clearflooritem_timer(int tid, unsigned int tick, int id, intptr_t data) { struct flooritem_data* fitem = (struct flooritem_data*)idb_get(id_db, id); - if( fitem==NULL || fitem->bl.type!=BL_ITEM || (!data && fitem->cleartimer != tid) ) + + if (fitem == NULL || fitem->bl.type != BL_ITEM || (!data && fitem->cleartimer != tid)) { ShowError("map_clearflooritem_timer : error\n"); return 1; } - if(data) + if (data) delete_timer(fitem->cleartimer,map_clearflooritem_timer); - else - if(fitem->item_data.card[0] == CARD0_PET) // pet egg - intif_delete_petdata( MakeDWord(fitem->item_data.card[1],fitem->item_data.card[2]) ); - clif_clearflooritem(fitem,0); + if (search_petDB_index(fitem->item_data.nameid, PET_EGG) >= 0) + intif_delete_petdata(MakeDWord(fitem->item_data.card[1], fitem->item_data.card[2])); + + clif_clearflooritem(fitem, 0); map_deliddb(&fitem->bl); map_delblock(&fitem->bl); map_freeblock(&fitem->bl); - return 0; } diff --git a/src/map/npc.c b/src/map/npc.c index 7389808c5..65f5ee577 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -1536,11 +1536,16 @@ int npc_buylist(struct map_session_data* sd, int n, unsigned short* item_list) int amount = item_list[i*2+0]; struct item item_tmp; - memset(&item_tmp,0,sizeof(item_tmp)); - item_tmp.nameid = nameid; - item_tmp.identify = 1; + if (itemdb_type(nameid) == IT_PETEGG) + pet_create_egg(sd, nameid); + else + { + memset(&item_tmp,0,sizeof(item_tmp)); + item_tmp.nameid = nameid; + item_tmp.identify = 1; - pc_additem(sd,&item_tmp,amount,LOG_TYPE_NPC); + pc_additem(sd,&item_tmp,amount,LOG_TYPE_NPC); + } } // custom merchant shop exp bonus |