summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt1
-rw-r--r--src/map/clif.c6
-rw-r--r--src/map/mercenary.c2
-rw-r--r--src/map/mercenary.h1
4 files changed, 6 insertions, 4 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 2ef321006..1d6704f55 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,7 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/08/09
+ * Fixed homunc skill up bug [Toms]
* Adjusted some the dance/song/encore code so that the source of an
ensemble will always get checked, so that walking out of an ensemble skill
should make it end now. However, it's likely this is not completely solved
diff --git a/src/map/clif.c b/src/map/clif.c
index d1a0f49af..ada55e050 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -1531,7 +1531,7 @@ int clif_homskillinfoblock(struct map_session_data *sd) { //[orn]
WFIFOW(fd,len+8) = skill_get_sp(id,sd->homunculus.hskill[j].lv) ;
WFIFOW(fd,len+10)= skill_get_range2(&sd->hd->bl, id,sd->homunculus.hskill[j].lv) ;
strncpy(WFIFOP(fd,len+12), skill_get_name(id), NAME_LENGTH) ;
- WFIFOB(fd,len+36) = 1;//0;
+ WFIFOB(fd,len+36) = (sd->homunculus.hskill[j].lv < merc_skill_tree_get_max(id, sd->homunculus.class_))?1:0;
len+=37;
c++;
}
@@ -1546,10 +1546,10 @@ void clif_homskillup(struct map_session_data *sd, int skill_num) { //[orn]
int range,fd,skillid;
nullpo_retv(sd);
- skillid = skill_num - HM_SKILLBASE ;
+ skillid = skill_num - HM_SKILLBASE - 1;
fd=sd->fd;
- WFIFOW(fd,0) = 0x10e;
+ WFIFOW(fd,0) = 0x239;
WFIFOW(fd,2) = skill_num;
WFIFOW(fd,4) = sd->homunculus.hskill[skillid].lv;
WFIFOW(fd,6) = skill_get_sp(skill_num,sd->homunculus.hskill[skillid].lv);
diff --git a/src/map/mercenary.c b/src/map/mercenary.c
index f8083455f..47c2ca686 100644
--- a/src/map/mercenary.c
+++ b/src/map/mercenary.c
@@ -186,7 +186,7 @@ int merc_hom_checkskill(struct map_session_data *sd,int skill_id)
return 0;
}
-static int merc_skill_tree_get_max(int id, int b_class){
+int merc_skill_tree_get_max(int id, int b_class){
int i, skillid;
for(i=0;(skillid=hskill_tree[b_class-6001][i].id)>0;i++)
if (id == skillid) return hskill_tree[b_class-6001][i].max;
diff --git a/src/map/mercenary.h b/src/map/mercenary.h
index 41f5540de..2fee6a0c9 100644
--- a/src/map/mercenary.h
+++ b/src/map/mercenary.h
@@ -78,3 +78,4 @@ int merc_natural_heal_timer_delete(struct homun_data *hd);
int read_homunculusdb(void);
int merc_hom_increase_intimacy(struct homun_data * hd, unsigned int value);
int merc_hom_decrease_intimacy(struct homun_data * hd, unsigned int value);
+int merc_skill_tree_get_max(int id, int b_class); \ No newline at end of file