diff options
author | protimus <protimus@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-01-28 01:00:16 +0000 |
---|---|---|
committer | protimus <protimus@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-01-28 01:00:16 +0000 |
commit | fa2020be43ddc026460896a3bb8b1d0f425265b2 (patch) | |
tree | e7250f9f77f7996a0789def85f7ea66142e564ed /src/map/skill.c | |
parent | 07d2f44209ada71361f6c3b10fb67f5d7d44ccc7 (diff) | |
download | hercules-fa2020be43ddc026460896a3bb8b1d0f425265b2.tar.gz hercules-fa2020be43ddc026460896a3bb8b1d0f425265b2.tar.bz2 hercules-fa2020be43ddc026460896a3bb8b1d0f425265b2.tar.xz hercules-fa2020be43ddc026460896a3bb8b1d0f425265b2.zip |
Fix to Storm Gust work around Land Protector.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15523 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 3458e2dca..267f19324 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -12861,6 +12861,13 @@ int skill_unit_timer_sub_onplace (struct block_list* bl, va_list ap) if( !(skill_get_inf2(group->skill_id)&(INF2_SONG_DANCE|INF2_TRAP|INF2_NOLP)) && map_getcell(bl->m, bl->x, bl->y, CELL_CHKLANDPROTECTOR) ) return 0; //AoE skills are ineffective. [Skotlex] + if(group->skill_id==WZ_STORMGUST){ + int i,o; + for(i=-1;i<2;i++) + for(o=-1;o<2;o++) + if(map_getcell(bl->m, bl->x+i, bl->y+o, CELL_CHKLANDPROTECTOR)) + return 0; // Storm Gust can be hitted around Land Protector. [Protimus] + } if( battle_check_target(&unit->bl,bl,group->target_flag) <= 0 ) return 0; @@ -14147,7 +14154,7 @@ int skill_split_atoi (char *str, int *val) */ void skill_init_unit_layout (void) { - int i,j,size,pos = 0; + int i,j,z,size,pos = 0; memset(skill_unit_layout,0,sizeof(skill_unit_layout)); @@ -14163,6 +14170,21 @@ void skill_init_unit_layout (void) // afterwards add special ones pos = i; + for(z=0;z<=5;z++){ + pos++; + size = 7+z; + for (j=0; j<size*size; j++) { + skill_unit_layout[pos].dx[j] = j%size - size/2; + skill_unit_layout[pos].dy[j] = j/size - size/2 + 1; + } + skill_unit_layout[pos].count = size*size; + skill_db[SA_LANDPROTECTOR].unit_layout_type[z] = pos; + skill_db[SA_LANDPROTECTOR].unit_layout_type[++z] = pos; + } + for (;z<MAX_SKILL_LEVEL;z++) + skill_db[SA_LANDPROTECTOR].unit_layout_type[z] = pos; + + pos++; for (i=0;i<MAX_SKILL_DB;i++) { if (!skill_db[i].unit_id[0] || skill_db[i].unit_layout_type[0] != -1) continue; |