summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-01-20 08:14:40 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-01-20 08:14:40 +0000
commit8f1cae217b2ddf1d893ab4dd7456f8c7f4f5dcac (patch)
treede6ff214d370dd184eb07386393ca1dc19ca8e2e
parentce4bf096296c2e96d506901a6273a3a47071f74c (diff)
downloadhercules-8f1cae217b2ddf1d893ab4dd7456f8c7f4f5dcac.tar.gz
hercules-8f1cae217b2ddf1d893ab4dd7456f8c7f4f5dcac.tar.bz2
hercules-8f1cae217b2ddf1d893ab4dd7456f8c7f4f5dcac.tar.xz
hercules-8f1cae217b2ddf1d893ab4dd7456f8c7f4f5dcac.zip
- Updated merc_reset_stats to handle resetting skill tree and points as well.
- Updated @homshuffle so that the skill tree and current skill points are not messed up. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9678 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--Changelog-Trunk.txt3
-rw-r--r--src/map/atcommand.c7
-rw-r--r--src/map/mercenary.c2
3 files changed, 11 insertions, 1 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index c3f91b712..13cf456bf 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -3,6 +3,9 @@ Date Added
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
+2007/01/20
+ * Updated @homshuffle so that the skill tree and current skill points are
+ not messed up.
2007/01/19
* Fixed the label dup code, it now works correctly with const.txt switch
labels.
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index f4be3b421..4f821d3f1 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -10012,8 +10012,9 @@ int atcommand_homshuffle(
const char* command, const char* message)
{
struct homun_data *hd;
- int lv, i;
+ int lv, i, skillpts;
unsigned int exp;
+ struct skill b_skill;
TBL_PC* tsd = sd;
nullpo_retr(-1, sd);
@@ -10042,6 +10043,8 @@ int atcommand_homshuffle(
lv = hd->homunculus.level;
exp = hd->homunculus.exp;
+ memcpy(&b_skill, &hd->homunculus.hskill, sizeof(b_skill));
+ skillpts = hd->homunculus.skillpts;
//Reset values to level 1.
merc_reset_stats(hd);
//Level it back up
@@ -10050,6 +10053,8 @@ int atcommand_homshuffle(
merc_hom_levelup(hd);
}
hd->homunculus.exp = exp;
+ memcpy(&hd->homunculus.hskill, &b_skill, sizeof(b_skill));
+ hd->homunculus.skillpts = skillpts;
status_calc_homunculus(hd,0);
status_percent_heal(&hd->bl, 100, 100);
clif_misceffect2(&hd->bl,568);
diff --git a/src/map/mercenary.c b/src/map/mercenary.c
index 61df02132..b776ed4b5 100644
--- a/src/map/mercenary.c
+++ b/src/map/mercenary.c
@@ -748,6 +748,8 @@ void merc_reset_stats(struct homun_data *hd)
hom->luk = db->baseLUK*10;
hom->exp = 0;
hd->exp_next = hexptbl[0];
+ memset(&hd->homunculus.hskill, 0, sizeof hd->homunculus.hskill);
+ hd->homunculus.skillpts = 0;
}
int read_homunculusdb(void)