diff options
-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; |