- Added clif_skill_fail for homunc to skill_castend_id & skill_castend_pos ('skill has failed' will may be appear 2 times)

- Fixed homunc skill 8016 not considered as homunc skill


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8386 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
toms 2006-08-20 20:24:13 +00:00
parent 4287b2a50c
commit e67db33d16
5 changed files with 20 additions and 9 deletions

View File

@ -3,6 +3,8 @@ 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.
2006/08/20
* Added clif_skill_fail for homunc to skill_castend_id & skill_castend_pos [Toms]
* Fixed homunc skill 8016 not considered as homunc skill [Toms]
* @useskill will now cause your homun to use the skill instead of you if
the skill is a Homun skill and you have an active homunculus. [Skotlex]
* Reduced the Success Chance of GS_FLING to 10+10*lv% (Playtester told me

View File

@ -7563,7 +7563,7 @@ atcommand_useskill(const int fd, struct map_session_data* sd,
return -1;
}
if (skillnum >= HM_SKILLBASE && skillnum < HM_SKILLBASE+MAX_HOMUNSKILL
if (skillnum >= HM_SKILLBASE && skillnum <= HM_SKILLBASE+MAX_HOMUNSKILL
&& sd->hd && merc_is_hom_active(sd->hd)) // (If used with @useskill, put the homunc as dest)
bl = &sd->hd->bl;
else
@ -9867,7 +9867,7 @@ int atcommand_homfriendly(
return -1;
friendly = atoi(message);
if (sd->status.hom_id > 0 && sd->hd) {
if (merc_is_hom_active(sd->hd)) {
if (friendly > 0 && friendly <= 1000) {
sd->homunculus.intimacy = friendly * 100 ;
clif_send_homdata(sd,SP_INTIMATE,friendly);

View File

@ -9754,7 +9754,7 @@ void clif_parse_UseSkillToId(int fd, struct map_session_data *sd) {
//Whether skill fails or not is irrelevant, the char ain't idle. [Skotlex]
sd->idletime = last_tick;
if (skillnum >= HM_SKILLBASE && skillnum < HM_SKILLBASE+MAX_HOMUNSKILL) {
if (skillnum >= HM_SKILLBASE && skillnum <= HM_SKILLBASE+MAX_HOMUNSKILL) {
clif_parse_UseSkillToId_homun(sd->hd, sd, tick, skillnum, skilllv, target_id);
return;
}

View File

@ -5814,13 +5814,19 @@ int skill_castend_id (int tid, unsigned int tick, int id, int data)
clif_slide(src,src->x,src->y);
clif_skill_damage(src,target,tick,sd->battle_status.amotion,0,0,1,ud->skillid, ud->skilllv, 5);
}
clif_skill_fail(sd,ud->skillid,0,0);
}
}
ud->skillid = ud->skilllv = ud->skilltarget = 0;
ud->canact_tick = tick;
if(sd) sd->skillitem = sd->skillitemlv = -1;
if(md) md->skillidx = -1;
if(sd)
{
sd->skillitem = sd->skillitemlv = -1;
clif_skill_fail(sd, ud->skillid, 0, 0);
}
else if (hd)
clif_skill_fail(hd->master, ud->skillid, 0, 0);
else if(md)
md->skillidx = -1;
return 0;
}
@ -5935,7 +5941,10 @@ int skill_castend_pos (int tid, unsigned int tick, int id, int data)
clif_skill_fail(sd,ud->skillid,0,0);
sd->skillitem = sd->skillitemlv = -1;
}
if(md) md->skillidx = -1;
else if (hd)
clif_skill_fail(hd->master, ud->skillid, 0, 0);
else if(md)
md->skillidx = -1;
return 0;
}

View File

@ -733,9 +733,9 @@ int unit_skilluse_id2(struct block_list *src, int target_id, int skill_num, int
if(status_isdead(src))
return 0; // 死んでいないか
if( BL_CAST( BL_PC, src, sd ) ) {
if( BL_CAST( BL_PC, src, sd ) )
ud = &sd->ud;
} else
else
ud = unit_bl2ud(src);
if(ud == NULL) return 0;