- @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.
- Some cleanups... git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8383 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
0e5d9707e7
commit
cb1a6f5bf0
@ -3,6 +3,8 @@ Date Added
|
|||||||
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
|
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.
|
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
||||||
2006/08/20
|
2006/08/20
|
||||||
|
* @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
|
* Reduced the Success Chance of GS_FLING to 10+10*lv% (Playtester told me
|
||||||
that Vicious told him the chance was much lower like that) [Skotlex]
|
that Vicious told him the chance was much lower like that) [Skotlex]
|
||||||
* Fixed some Homunc issues with HR servers (capping some values) [Toms]
|
* Fixed some Homunc issues with HR servers (capping some values) [Toms]
|
||||||
|
@ -7547,6 +7547,7 @@ atcommand_useskill(const int fd, struct map_session_data* sd,
|
|||||||
const char* command, const char* message)
|
const char* command, const char* message)
|
||||||
{
|
{
|
||||||
struct map_session_data *pl_sd = NULL;
|
struct map_session_data *pl_sd = NULL;
|
||||||
|
struct block_list *bl;
|
||||||
int skillnum;
|
int skillnum;
|
||||||
int skilllv;
|
int skilllv;
|
||||||
char target[255];
|
char target[255];
|
||||||
@ -7562,10 +7563,16 @@ atcommand_useskill(const int fd, struct map_session_data* sd,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (skill_get_inf(skillnum)&INF_GROUND_SKILL)
|
if (skillnum >= HM_SKILLBASE && skillnum < HM_SKILLBASE+MAX_HOMUNSKILL
|
||||||
unit_skilluse_pos(&sd->bl, pl_sd->bl.x, pl_sd->bl.y, skillnum, skilllv);
|
&& sd->hd && merc_is_hom_active(sd->hd)) // (If used with @useskill, put the homunc as dest)
|
||||||
|
bl = &sd->hd->bl;
|
||||||
else
|
else
|
||||||
unit_skilluse_id(&sd->bl, pl_sd->bl.id, skillnum, skilllv);
|
bl = &sd->bl;
|
||||||
|
|
||||||
|
if (skill_get_inf(skillnum)&INF_GROUND_SKILL)
|
||||||
|
unit_skilluse_pos(bl, pl_sd->bl.x, pl_sd->bl.y, skillnum, skilllv);
|
||||||
|
else
|
||||||
|
unit_skilluse_id(bl, pl_sd->bl.id, skillnum, skilllv);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -5523,8 +5523,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case HAMI_CASTLE: //[orn]
|
case HAMI_CASTLE: //[orn]
|
||||||
if (src == bl && sd && sd->hd && merc_is_hom_active(sd->hd)) // (If used with @useskill, put the homunc as dest)
|
|
||||||
bl = &sd->hd->bl;
|
|
||||||
if(rand()%100 < 20*skilllv && src != bl)
|
if(rand()%100 < 20*skilllv && src != bl)
|
||||||
{
|
{
|
||||||
int x,y;
|
int x,y;
|
||||||
@ -5549,7 +5547,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
|
|||||||
// Failed
|
// Failed
|
||||||
if (hd)
|
if (hd)
|
||||||
clif_skill_fail(hd->master, skillid, 0, 0);
|
clif_skill_fail(hd->master, skillid, 0, 0);
|
||||||
else
|
else if (sd)
|
||||||
clif_skill_fail(sd, skillid, 0, 0);
|
clif_skill_fail(sd, skillid, 0, 0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -2220,8 +2220,10 @@ int status_calc_homunculus(struct homun_data *hd, int first)
|
|||||||
status->rhw.range = 1 + status->size; //[orn]
|
status->rhw.range = 1 + status->size; //[orn]
|
||||||
status->mode = MD_CANMOVE|MD_CANATTACK|MD_ASSIST|MD_AGGRESSIVE|MD_CASTSENSOR; //[orn]
|
status->mode = MD_CANMOVE|MD_CANATTACK|MD_ASSIST|MD_AGGRESSIVE|MD_CASTSENSOR; //[orn]
|
||||||
status->speed = DEFAULT_WALK_SPEED;
|
status->speed = DEFAULT_WALK_SPEED;
|
||||||
status->def = cap_value(hom->level/10 + status->vit/5, 0, SCHAR_MAX);
|
skill = hom->level/10 + status->vit/5;
|
||||||
status->mdef = cap_value(hom->level/10 + status->int_/5, 0, SCHAR_MAX);
|
status->def = cap_value(skill, 0, 99);
|
||||||
|
skill = hom->level/10 + status->int_/5;
|
||||||
|
status->mdef = cap_value(skill, 0, 99);
|
||||||
|
|
||||||
status->hp = 1;
|
status->hp = 1;
|
||||||
status->sp = 1;
|
status->sp = 1;
|
||||||
@ -2243,10 +2245,7 @@ int status_calc_homunculus(struct homun_data *hd, int first)
|
|||||||
status->max_hp += skill * 2 * status->max_hp / 100;
|
status->max_hp += skill * 2 * status->max_hp / 100;
|
||||||
|
|
||||||
if((skill = merc_hom_checkskill(hd->master,HLIF_BRAIN)) > 0)
|
if((skill = merc_hom_checkskill(hd->master,HLIF_BRAIN)) > 0)
|
||||||
{
|
status->max_sp += (1 +skill/2 -skill/4 +skill/5) * status->max_sp / 100 ;
|
||||||
int p = 1 +skill/2 -skill/4 +skill/5;
|
|
||||||
status->max_sp += p * status->max_sp / 100 ;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (first) {
|
if (first) {
|
||||||
hd->battle_status.hp = hom->hp ;
|
hd->battle_status.hp = hom->hp ;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user