diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-03-14 13:38:49 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-03-14 13:38:49 +0000 |
commit | eadab5ba5011a8b999c9a5674081df81c2d0b5a2 (patch) | |
tree | 36193534ec7d6f70ead7ce9420a08552f69813e5 /src | |
parent | 2a4e63d1b98259c768b6691230e889fabcf3cc7a (diff) | |
download | hercules-eadab5ba5011a8b999c9a5674081df81c2d0b5a2.tar.gz hercules-eadab5ba5011a8b999c9a5674081df81c2d0b5a2.tar.bz2 hercules-eadab5ba5011a8b999c9a5674081df81c2d0b5a2.tar.xz hercules-eadab5ba5011a8b999c9a5674081df81c2d0b5a2.zip |
- Fixed player auto-attack not cancelling when dead.
- Some cleanups in skill_unit nooverlapping code.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5595 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r-- | src/map/pc.c | 1 | ||||
-rw-r--r-- | src/map/skill.c | 15 |
2 files changed, 4 insertions, 12 deletions
diff --git a/src/map/pc.c b/src/map/pc.c index e20f15f75..acdf2e62c 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -5311,6 +5311,7 @@ int pc_damage(struct block_list *src,struct map_session_data *sd,int damage) duel_reject(sd->duel_invite, sd);
}
+ pc_stopattack(sd);
pc_stop_walking(sd,0);
skill_castcancel(&sd->bl,0); // 詠唱の中止
skill_stop_dancing(&sd->bl); //You should stop dancing when dead... [Skotlex]
diff --git a/src/map/skill.c b/src/map/skill.c index 0498d04c0..0c689a40f 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -2054,13 +2054,9 @@ int skill_area_sub( struct block_list *bl,va_list ap ) static int skill_check_unit_range_sub( struct block_list *bl,va_list ap )
{
struct skill_unit *unit;
- int *c;
int skillid,g_skillid;
- nullpo_retr(0, bl);
- nullpo_retr(0, ap);
- nullpo_retr(0, unit = (struct skill_unit *)bl);
- nullpo_retr(0, c = va_arg(ap,int *));
+ unit = (struct skill_unit *)bl;
if(bl->prev == NULL || bl->type != BL_SKILL)
return 0;
@@ -2100,14 +2096,11 @@ static int skill_check_unit_range_sub( struct block_list *bl,va_list ap ) break;
}
- (*c)++;
-
return 1;
}
int skill_check_unit_range(int m,int x,int y,int skillid,int skilllv)
{
- int c = 0;
int range = skill_get_unit_range(skillid, skilllv);
int layout_type = skill_get_unit_layout_type(skillid,skilllv);
if (layout_type==-1 || layout_type>MAX_SQUARE_LAYOUT) {
@@ -2117,10 +2110,8 @@ int skill_check_unit_range(int m,int x,int y,int skillid,int skilllv) // とりあえず?ウ方形のユニットレイアウトのみ対応
range += layout_type;
- map_foreachinarea(skill_check_unit_range_sub,m,
- x-range,y-range,x+range,y+range,BL_SKILL,&c,skillid);
-
- return c;
+ return map_foreachinarea(skill_check_unit_range_sub,m,
+ x-range,y-range,x+range,y+range,BL_SKILL,skillid);
}
static int skill_check_unit_range2_sub( struct block_list *bl,va_list ap )
|