diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 2ef3210060..1d6704f553 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 d1a0f49af7..ada55e050e 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 f8083455f4..47c2ca686f 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 41f5540de7..2fee6a0c9c 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