draw_sight(x,y,sight view,angle, distance between points,sight range,color,outline width,alpha)

for(i=0 i<argument2 i+=argument4) {var uzaklik,uzaklik2; uzaklik=0 uzaklik2=0 do{uzaklik+=2 } until(collision_line(x,y,x+lengthdir_x(uzaklik,i-argument2/2+argument3),y+lengthdir_y(uzaklik,i-argument2/2+argument3),argument6,1,0) or uzaklik>argument5) do{uzaklik2+=2 } until(collision_line(x,y,x+lengthdir_x(uzaklik2,i-(argument2/2-argument4)+argument3),y+lengthdir_y(uzaklik2,i-(argument2/2-argument4)+argument3),argument6,1,0) or uzaklik2>argument5) draw_line_width_color(x+lengthdir_x(min(argument5,uzaklik-3),i-argument2/2+argument3),y+lengthdir_y(min(argument5,uzaklik-3),i-argument2/2+argument3),x+lengthdir_x(min(argument5,uzaklik2-3),i-(argument2/2-argument4)+argument3),y+lengthdir_y(min(argument5,uzaklik2-3),i-(argument2/2-argument4)+argument3),argument8,argument7,argument7) draw_set_alpha(argument9) draw_triangle_color(x,y,x+lengthdir_x(min(argument5,uzaklik),i-argument2/2+argument3),y+lengthdir_y(min(argument5,uzaklik),i-argument2/2+argument3),x+lengthdir_x(min(argument5,uzaklik2),i-(argument2/2-argument4)+argument3),y+lengthdir_y(min(argument5,uzaklik2),i-(argument2/2-argument4)+argument3),argument7,argument7,argument7,0) draw_set_alpha(1) if i=0 {draw_line_width_color(x,y,x+lengthdir_x(uzaklik-3,-argument2/2+argument3),y+lengthdir_y(uzaklik-3,-argument2/2+argument3),argument8,argument7,argument7) } if i=argument2-argument4 { draw_line_width_color(x,y,x+lengthdir_x(uzaklik2-3,+argument2/2+argument3),y+lengthdir_y(uzaklik2-3,+argument2/2+argument3),argument8,argument7,argument7) } }

example

draw_sight(x,y,80,direction,5,150,obj_wall,c_red,0,0.8)

---

http://speedy.sh/8b73e/draw-sight.gmk