From 703867fcfd5e4040c354d39b9a850789ed3de812 Mon Sep 17 00:00:00 2001 From: skotlex Date: Mon, 13 Feb 2006 20:55:09 +0000 Subject: - Pet eggs won't be deleted upon selection for hatching, but on pet data retrieval now. - Added check to pc_readdb to printout if a certain job is missing it's experience table. - Added Job_Wedding to db/const.txt git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5272 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 4 ++++ db/const.txt | 1 + src/map/pc.c | 9 +++++++++ src/map/pet.c | 22 +++++++++++++++++----- 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 47d519334..5abcf9927 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -5,6 +5,10 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EV GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS 2006/02/13 + * Pet eggs will now not be deleted from the inventory until they arrive + from the char-server. [Skotlex] + * pc_readdb will now print if any classes are missing their exp tables. + Only exception are JOB_WEDDING and JOB_XMAS. [Skotlex] * Made the NPC_BREAK* skills attack skills again, their chance of equipment breaking code was moved to skill_additional_effect. [Skotlex] * Now when the exp table does not has enough data to reach the max level diff --git a/db/const.txt b/db/const.txt index b6669a621..7257783f8 100644 --- a/db/const.txt +++ b/db/const.txt @@ -20,6 +20,7 @@ Job_Alchem 18 Job_Bard 19 Job_Dancer 20 Job_Crusader2 21 +Job_Wedding 22 Job_SuperNovice 23 Job_Gunslinger 24 Job_Ninja 25 diff --git a/src/map/pc.c b/src/map/pc.c index 11fe0d53c..e4085c48f 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -8164,6 +8164,15 @@ int pc_readdb(void) } } fclose(fp); + for (i = 0; i < MAX_PC_CLASS; i++) { + if (!pcdb_checkid(i)) continue; + if (i == JOB_WEDDING || i == JOB_XMAS) + continue; //Classes that do not need exp tables. + if (!max_level[i][0]) + ShowWarning("Class %s (%d) does not has a base exp table.\n", job_name(i), i); + if (!max_level[i][1]) + ShowWarning("Class %s (%d) does not has a job exp table.\n", job_name(i), i); + } ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n","exp.txt"); // スキルツリ? diff --git a/src/map/pet.c b/src/map/pet.c index 28f5898f8..5d80f978d 100644 --- a/src/map/pet.c +++ b/src/map/pet.c @@ -1032,9 +1032,23 @@ int pet_recv_petdata(int account_id,struct s_pet *p,int flag) return 1; } memcpy(&sd->pet,p,sizeof(struct s_pet)); - if(sd->pet.incuvate == 1) - pet_birth_process(sd); - else { + if(sd->pet.incuvate == 1) { + if (!pet_birth_process(sd)) + { + int i; + //Delete egg from inventory. [Skotlex] + for (i = 0; i < MAX_INVENTORY; i++) { + if(sd->status.inventory[i].card[0] == (short)0xff00 && + p->pet_id == MakeDWord(sd->status.inventory[i].card[1], sd->status.inventory[i].card[2])) + { + pc_delitem(sd,i,1,0); + break; + } + } + if(i >= MAX_INVENTORY && battle_config.error_log) + ShowError("pet_recv_petdata: Hatched pet (%d:%s), but couldn't find egg in inventory for removal!\n",p->pet_id, p->name); + } + } else { pet_data_init(sd); if(sd->pd && sd->bl.prev != NULL) { map_addblock(&sd->pd->bl); @@ -1065,8 +1079,6 @@ int pet_select_egg(struct map_session_data *sd,short egg_index) if(battle_config.error_log) ShowError("wrong egg item inventory %d\n",egg_index); } - pc_delitem(sd,egg_index,1,0); - return 0; } -- cgit v1.2.3-70-g09d2