구버전 바람 전사 고차승급 스킬 그림자의맹습
@그림자의맹습 {
set @sd, mysd();
set @id, myid();
set @me_x, get_x(@id);
set @me_y, get_y(@id);
callfunc "SPELL_MOMENT";
callfunc "MANA_DELAY", 1950, 0, @sd;
//set_mp @sd, get_mp(@sd)-1950;
set @value, callfunc("calculate_damage", ((get_hp(@sd)+get_mp(@sd))/2)+(get_might(@sd)*100), 3);
set @damage, callfunc("calc_multiply", @value);
switch(get_side(@id))
{
case 0:
for(set @range, 6; @range > 0; set @range, @range-1)
{
set @target_id, obj_getxy(@me_x, @me_y-@range);
if(@target_id <= 0)
{
if(!canmove(@id, @me_x, @me_y-@range))
{
break;
}
}
}
if(@range > 0)
{
set @x1, @me_x-1;
set @x2, @me_x+1;
set @y1, @me_y-(@range-1);
set @y2, @me_y-1;
if(@x1 < 0) { set @x1, 0; }
if(@x2 > get_mapwidth(@sd)-1) { set @x2, get_mapwidth(@sd)-1; }
if(@y1 < 0) { set @y1, 0; }
if(@y2 > get_mapheight(@sd)-1) { set @y2, get_mapheight(@sd)-1; }
for(set @i, @x1; @i <= @x2; set @i, @i+1)
{
for(set @j, @y1; @j <= @y2; set @j, @j+1)
{
set @target_id, obj_getxy(@i, @j);
if(@target_id > 0 && @target_id != @id)
{
if(istype(@target_id) == 1)
{
set @target_sd, id2sd(@target_id);
if(ismapoption(@target_sd, 6) && get_state(@target_sd) != 1)
{
message @target_sd, 3, get_name(@sd) + "님이 그림자의맹습을 가합니다.";
}
effect @target_id, 20;
effect @target_id, 33;
//sound @target_id, 96;
callfunc "ATTACKDAMAGE", @target_id, @damage, 0;
}
else if(istype(@target_id) == 2)
{
effect @target_id, 20;
effect @target_id, 33;
//sound @target_id, 96;
callfunc "ATTACKDAMAGE", @target_id, @damage, 0;
}
}
}
}
for(set @loop, @x1; @loop <= @x2; set @loop, @loop+1)
{
set @target_id, obj_getxy(@me_x-1, @loop);
if(@target_id > 0 && @target_id != @id)
{
if(istype(@target_id) == 2)
{
set_mobtarget @target_id, 0;
mobspellaether @target_id, name2spellid("몹타겟삭제"), 3;
}
}
set @target_id, obj_getxy(@me_x-1, @loop);
if(@target_id > 0 && @target_id != @id)
{
if(istype(@target_id) == 2)
{
set_mobtarget @target_id, 0;
mobspellaether @target_id, name2spellid("몹타겟삭제"), 3;
}
}
}
set_y @id, @me_y-@range;
updatexy @sd;
updatelookpc @sd, 0;
updateallpc @sd;
}
else
{
goto failed;
end;
}
break;
case 1:
for(set @range, 6; @range > 0; set @range, @range-1)
{
set @target_id, obj_getxy(@me_x+@range, @me_y);
if(@target_id <= 0)
{
if(!canmove(@id, @me_x+@range, @me_y))
{
break;
}
}
}
if(@range > 0)
{
set @x1, @me_x+1;
set @x2, @me_x+(@range-1);
set @y1, @me_y-1;
set @y2, @me_y+1;
if(@x1 < 0) { set @x1, 0; }
if(@x2 > get_mapwidth(@sd)-1) { set @x2, get_mapwidth(@sd)-1; }
if(@y1 < 0) { set @y1, 0; }
if(@y2 > get_mapheight(@sd)-1) { set @y2, get_mapheight(@sd)-1; }
for(set @i, @x1; @i <= @x2; set @i, @i+1)
{
for(set @j, @y1; @j <= @y2; set @j, @j+1)
{
set @target_id, obj_getxy(@i, @j);
if(@target_id > 0 && @target_id != @id)
{
if(istype(@target_id) == 1)
{
set @target_sd, id2sd(@target_id);
if(ismapoption(@target_sd, 6) && get_state(@target_sd) != 1)
{
message @target_sd, 3, get_name(@sd) + "님이 그림자의맹습을 가합니다.";
}
effect @target_id, 20;
effect @target_id, 33;
//sound @target_id, 96;
callfunc "ATTACKDAMAGE", @target_id, @damage, 0;
}
else if(istype(@target_id) == 2)
{
effect @target_id, 20;
effect @target_id, 33;
//sound @target_id, 96;
callfunc "ATTACKDAMAGE", @target_id, @damage, 0;
}
}
}
}
for(set @loop, @x1; @loop <= @x2; set @loop, @loop+1)
{
set @target_id, obj_getxy(@loop, @me_y-1);
if(@target_id > 0 && @target_id != @id)
{
if(istype(@target_id) == 2)
{
set_mobtarget @target_id, 0;
mobspellaether @target_id, name2spellid("몹타겟삭제"), 3;
}
}
set @target_id, obj_getxy(@loop, @me_y+1);
if(@target_id > 0 && @target_id != @id)
{
if(istype(@target_id) == 2)
{
set_mobtarget @target_id, 0;
mobspellaether @target_id, name2spellid("몹타겟삭제"), 3;
}
}
}
set_x @id, @me_x+@range;
updatexy @sd;
updatelookpc @sd, 0;
updateallpc @sd;
}
else
{
goto failed;
end;
}
break;
case 2:
for(set @range, 6; @range > 0; set @range, @range-1)
{
set @target_id, obj_getxy(@me_x, @me_y+@range);
if(@target_id <= 0)
{
if(!canmove(@id, @me_x, @me_y+@range))
{
break;
}
}
}
if(@range > 0)
{
set @x1, @me_x-1;
set @x2, @me_x+1;
set @y1, @me_y+1;
set @y2, @me_y+(@range-1);
if(@x1 < 0) { set @x1, 0; }
if(@x2 > get_mapwidth(@sd)-1) { set @x2, get_mapwidth(@sd)-1; }
if(@y1 < 0) { set @y1, 0; }
if(@y2 > get_mapheight(@sd)-1) { set @y2, get_mapheight(@sd)-1; }
for(set @i, @x1; @i <= @x2; set @i, @i+1)
{
for(set @j, @y1; @j <= @y2; set @j, @j+1)
{
set @target_id, obj_getxy(@i, @j);
if(@target_id > 0 && @target_id != @id)
{
if(istype(@target_id) == 1)
{
set @target_sd, id2sd(@target_id);
if(ismapoption(@target_sd, 6) && get_state(@target_sd) != 1)
{
message @target_sd, 3, get_name(@sd) + "님이 그림자의맹습을 가합니다.";
}
effect @target_id, 20;
effect @target_id, 33;
//sound @target_id, 96;
callfunc "ATTACKDAMAGE", @target_id, @damage, 0;
}
else if(istype(@target_id) == 2)
{
effect @target_id, 20;
effect @target_id, 33;
//sound @target_id, 96;
callfunc "ATTACKDAMAGE", @target_id, @damage, 0;
}
}
}
}
for(set @loop, @y1; @loop <= @y2; set @loop, @loop+1)
{
set @target_id, obj_getxy(@me_x-1, @loop);
if(@target_id > 0 && @target_id != @id)
{
if(istype(@target_id) == 2)
{
set_mobtarget @target_id, 0;
mobspellaether @target_id, name2spellid("몹타겟삭제"), 3;
}
}
set @target_id, obj_getxy(@me_x+1, @loop);
if(@target_id > 0 && @target_id != @id)
{
if(istype(@target_id) == 2)
{
set_mobtarget @target_id, 0;
mobspellaether @target_id, name2spellid("몹타겟삭제"), 3;
}
}
}
set_y @id, @me_y+@range;
updatexy @sd;
updatelookpc @sd, 0;
updateallpc @sd;
}
else
{
goto failed;
end;
}
break;
case 3:
for(set @range, 6; @range > 0; set @range, @range-1)
{
set @target_id, obj_getxy(@me_x-@range, @me_y);
if(@target_id <= 0)
{
if(!canmove(@id, @me_x-@range, @me_y))
{
break;
}
}
}
if(@range > 0)
{
set @x1, @me_x-(@range-1);
set @x2, @me_x-1;
set @y1, @me_y-1;
set @y2, @me_y+1;
if(@x1 < 0) { set @x1, 0; }
if(@x2 > get_mapwidth(@sd)-1) { set @x2, get_mapwidth(@sd)-1; }
if(@y1 < 0) { set @y1, 0; }
if(@y2 > get_mapheight(@sd)-1) { set @y2, get_mapheight(@sd)-1; }
for(set @i, @x1; @i <= @x2; set @i, @i+1)
{
for(set @j, @y1; @j <= @y2; set @j, @j+1)
{
set @target_id, obj_getxy(@i, @j);
if(@target_id > 0 && @target_id != @id)
{
if(istype(@target_id) == 1)
{
set @target_sd, id2sd(@target_id);
if(ismapoption(@target_sd, 6) && get_state(@target_sd) != 1)
{
message @target_sd, 3, get_name(@sd) + "님이 그림자의맹습을 가합니다.";
}
effect @target_id, 20;
effect @target_id, 33;
//sound @target_id, 96;
callfunc "ATTACKDAMAGE", @target_id, @damage, 0;
}
else if(istype(@target_id) == 2)
{
effect @target_id, 20;
effect @target_id, 33;
//sound @target_id, 96;
callfunc "ATTACKDAMAGE", @target_id, @damage, 0;
}
}
}
}
for(set @loop, @x1; @loop <= @x2; set @loop, @loop+1)
{
set @target_id, obj_getxy(@loop, @me_y-1);
if(@target_id > 0 && @target_id != @id)
{
if(istype(@target_id) == 2)
{
set_mobtarget @target_id, 0;
mobspellaether @target_id, name2spellid("몹타겟삭제"), 3;
}
}
set @target_id, obj_getxy(@loop, @me_y+1);
if(@target_id > 0 && @target_id != @id)
{
if(istype(@target_id) == 2)
{
set_mobtarget @target_id, 0;
mobspellaether @target_id, name2spellid("몹타겟삭제"), 3;
}
}
}
set_x @id, @me_x-@range;
updatexy @sd;
updatelookpc @sd, 0;
updateallpc @sd;
}
else
{
goto failed;
end;
}
break;
}
if(#Siege_Mapname$ != "")
{
if(get_mapname(@sd) == #Siege_Mapname$ + "의심장")
{
if(get_x(@id) == 20 && get_y(@id) == 10)
runscript @sd, "@신물헌신";
}
}
action @id, 1, 30, 0;
sound @id, 96;
set_hp @sd, get_hp(@sd)/2;
spelldelay @sd, name2spellid("그림자의맹습"), 135;
message @sd, 3, "그림자의맹습을 시전하였습니다.";
end;
failed:
set_hp @sd, get_hp(@sd)/2;
spelldelay @sd, name2spellid("그림자의맹습"), 135;
message @sd, 3, "그림자의맹습 실패!";
}

젠장할 님의 최근 댓글
에구,... 잘못올렸네요 2026 04.04 ㄳㄳ 2017 06.19