summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorprotimus <protimus@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-01-28 01:00:16 +0000
committerprotimus <protimus@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-01-28 01:00:16 +0000
commitfa2020be43ddc026460896a3bb8b1d0f425265b2 (patch)
treee7250f9f77f7996a0789def85f7ea66142e564ed /src/map
parent07d2f44209ada71361f6c3b10fb67f5d7d44ccc7 (diff)
downloadhercules-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')
-rw-r--r--src/map/skill.c24
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;