X~7;KǥL-X ( @ (//(  0/80@0?/8 0( ?G@POWOXOP?H0@/7@O_``h_hPX 0(P_oppxow_g@O/8'' 7p`o?G/7 0??H/8`/o?GOX@H0?/pOW?H/8 7OP?G/7( P0@PX@O0@ 0O @H/@' 00@@P0?'_OP@H( 7/7' ^^^^^^^^^^^^^^^^^^^^^^^^^^TeeBBBBeTT^^^^^^^eBDJ33333JJDBeZ^^^^TD33==#####==3JDBT^^^^eJ=###=3DeZ^^TB3# #=3JBZ^^T3#  #=JBT^^J# Sll #=JBZ^T# %,68??86,/@A*< ##45('.6787-9%:;*<=#$+&,--.,/01)2 3 $%&&'%($!)* ##  !"#     ??PsichiXd 8@BCreate with example: Sight Field by PsichiX spr_wall  xn0閡le X"u ԥJo>BrؘA~P0|}GtC󆻯ۗ4oMsVF'٘$ݧYSf%p LM~\UGsZj-p Kqr lͣ|]ͷ2I8-䁵5L<>[V!e|p(A/zpkb$Qs>rr_<~u3򲦜"|"__k?K,+]'JgJ\,w[ Viy:_ʦ]\Y/YE BTqn5\sA>Z^mΧ_\:T Ąb ٥*556PtLVK.1ב]?&#hz}W% %-`W0ߋA~XG'U`,~ܖZE^{N%uKƿ; rcz}цP 4)$f! |M R'.&4^էF/ qۗhOS?)E܌snOƆ: ( .צ<g, 7쏒$V g%3 VPD7jX&wkK^Il[fAs&[IAG^}fmKҚ46t/FiWE~M,}ۭ?V2Q xr@Igc;`R8J&Ut) 7H!Gar *q.g+o}y<&U2zHr.u~>Y$mҬ%6Y5"/>6 +(ܤy ?G KCnj4Xxs b/&u{6_";b>Kp@)KY~M9dx̢&Xh>]܃#ي}+eGq\?|WFT\HGFM]^mum>tMuI~G.`TyE0MBηq~j<An|PzB ŅA2+YBi󝋪pVb;_uJ,\Jjߣ6Y|= btNK |ȭ)z~_.<|g<);85rT(ĵ&__)#女_G|cp<f8evQ xV;N0 HI]%Xj#*t78Ge<^Hx<O<{y;yw)jLy~(߿*vw(x5zTݪ`_xAj/$@v^UVkRfvo(dLRdح|0 MPq!Xr3>me7}h\P7HlZ8(pƚʮRvmi| _6f{<.[x,Z@!c -B؄S_ix9S:Җ` +blߋC\@ɭqg~p?3qW9"d\'xc(?x4e5,g bgwxgr:1 ^{R/ Ъ^x|IIr |JIpo.AQspr_hero xsecf3 b~(fd_`b $ \q, M ^HC QPB6HFL@I`>8W x܏ çzRkb*0>)f spr_enemy  xsecf3 b~(fd_`b $ \qƆB`00ʐ^HS/D%Ap-`Ysss7xDbyyyd@I`H{pGCG@t⋁E~HMog spr_alert exs5cf3 b(fdH@QTDP ] T €d Bb,Z)FׂM=DHazRCyXHMoDgVspr_cur  xՕ FcN?z)b> xg"/!.!}h8>,I b`?XT!D(vhowueo`( ѹ>gLR3QCG|zpg#|o46=%9 \(0? ap>Xkw7ڶ%wall [*image_speed=0 image_index=choose(0,1,2,3)0000000hero [Winstance_create(x,y,cursor) // predkosc hero step=2 // info przykladu show_info()0000000[$direction=point_direction(x,y,mouse_x,mouse_y) if(keyboard_check(ord('W'))) // ord('W') - kod klawisza z litera W { x+=lengthdir_x(step,direction) y+=lengthdir_y(step,direction) } if(keyboard_check(ord('S'))) // ord('S') - kod klawisza z litera S { x+=lengthdir_x(step,direction+180) y+=lengthdir_y(step,direction+180) } if(keyboard_check(ord('A'))) // ord('A') - kod klawisza z litera A { x+=lengthdir_x(step,direction+90) y+=lengthdir_y(step,direction+90) } if(keyboard_check(ord('D'))) // ord('D') - kod klawisza z litera D { x+=lengthdir_x(step,direction-90) y+=lengthdir_y(step,direction-90) } // jesli koliduje z solidem to wraca na poprzednia pozycje if!(place_free(x,y)) { x=xprevious y=yprevious } // kierunek sprite'a taki sam jak direction image_angle=direction0000000enemy [}// pokazywanie linii linie=false // okresla czy enemi sie komunikuja miedzy soba com=false // miejsce docelowe do ktorego idzie px=x py=y // predkosc enemi step=2 // odleglosc na jaka enemi podchodza do hero dis=32 // promien naszego hero hero_range=(hero.sprite_width+hero.sprite_height)/4 see=false // to ponizej to po to by nie bylo bledu na starcie, czyli inicjacja potrzebnych zmiennych temp_dir=point_direction(hero.x,hero.y,x,y) temp_r=hero_range temp_x1=lengthdir_x(temp_r,temp_dir+90) temp_y1=lengthdir_y(temp_r,temp_dir+90) temp_x2=lengthdir_x(temp_r,temp_dir-90) temp_y2=lengthdir_y(temp_r,temp_dir-90)0000000[>see=false // ustawienie skali scian tak by nie przepuszczala 'promieni' temp_xs=wall.image_xscale temp_ys=wall.image_yscale wall.image_xscale=temp_xs*1.05 wall.image_yscale=temp_ys*1.05 // wykrycie punktow widzialnych temp_dir=point_direction(hero.x,hero.y,x,y) temp_r=hero_range temp_x1=lengthdir_x(temp_r,temp_dir+90) temp_y1=lengthdir_y(temp_r,temp_dir+90) temp_x2=lengthdir_x(temp_r,temp_dir-90) temp_y2=lengthdir_y(temp_r,temp_dir-90) if!(collision_line(x,y,hero.x,hero.y,wall,0,0)) { if!(global.alert)global.alert=true if!(see)see=true } if!(collision_line(x,y,hero.x+temp_x1,hero.y+temp_y1,wall,0,0)) { if!(global.alert)global.alert=true if!(see)see=true } if!(collision_line(x,y,hero.x+temp_x2,hero.y+temp_y2,wall,0,0)) { if!(global.alert)global.alert=true if!(see)see=true } // przywrocenie skali scian wall.image_xscale=temp_xs wall.image_yscale=temp_ys // AI (skape, ale zawsze) if(see) { px=hero.x py=hero.y if(com) { enemy.px=hero.x enemy.py=hero.y } } if(point_distance(x,y,px,py)>dis) mp_potential_step(px,py,step,0)0000000[Jdraw_sprite_ext(sprite_index,0,x,y,1,1,direction,c_white,1) // jesli widzi hero to mowi: 'I see you!' if(see) { draw_set_color(c_black) draw_text(x-1,y-1,'I see you!') draw_text(x+1,y-1,'I see you!') draw_text(x-1,y+1,'I see you!') draw_text(x+1,y+1,'I see you!') draw_set_color(c_white) draw_text(x,y,'I see you!') }0000000 obj_alert [global.alert=false0000000[Oglobal.alert=false; if(keyboard_check_pressed(ord('C')))enemy.com=!enemy.com0000000[if(global.alert)draw_sprite_ext(spr_alert,0,x,y,1,1,0,c_red,1) else draw_sprite_ext(spr_alert,0,x,y,1,1,0,c_green,1) // wyswietla stan komunikacji if(enemy.com) { draw_set_color(c_black) draw_text(x-1,y-1-20-sprite_height/2,'COM') draw_text(x+1,y-1-20-sprite_height/2,'COM') draw_text(x-1,y+1-20-sprite_height/2,'COM') draw_text(x+1,y+1-20-sprite_height/2,'COM') draw_set_color(c_white) draw_text(x,y-20-sprite_height/2,'COM') }0000000cursor [!window_set_cursor(cr_none) rot=00000000[window_set_cursor(cr_default)0000000[Qx=mouse_x y=mouse_y draw_sprite_ext(spr_cur,0,x,y,1,1,rot,c_white,0.75) rot+=30000000room0        \0PpƆĆņ0ƆP׆P؆pچۆ܆݆ކ߆pP0Pp0PPpPPP0PPPPPPPpPPPpPP P0 P 0  pP0pPP0PPPpP0"#$%&0'P(p)/1`2 4PP. 0-4XGame InformationX:{\rtf1\ansi\ansicpg1250\deff0\deflang1045{\fonttbl{\f0\fnil\fcharset238{\*\fname Arial;}Arial CE;}{\f1\fnil Arial;}} {\colortbl ;\red255\green255\blue255;\red0\green0\blue0;} \viewkind4\uc1\pard\qc\cf1\b\i\f0\fs64 Sight Field\i0\fs24 \par \fs28 by PsichiX \par \cf2\b0\fs24 \par \par \cf1 Pole widzenia jednostki oraz komunikacja wszystkich jednostek (przekazywanie pozycji hero). \par Alarm w prawym gornym rogu informuje czy ktos nas widzi. Kolor zielony - nikt nie widzi, kolor czerwony - ktos nas widzi. Gdy jestesmy w polu widzenia jednostki, wtedy nad nia ukazuje sie napis: 'I see you!' oraz jednostka podaza za nami. Jesli wlaczona jest komunikacja, to gdy zobaczy nas jedna jednostka, to przesyla nasza pozycje reszcie i podazaja za nami wszystkie jednostki. \par \par \i WSAD\i0 - ruch hero \par \i MOUSE\i0 - kierunek \par \i C\i0 - wlaczenie / wylaczenie komunikacji enemy \par \par \ul\b Jesli chcesz wykorzystac ten przyklad, umiesc mnie w Autorach / Credits lub innym odpowiednim do tego miejscu.\cf2\ulnone\b0\f1 \par }  nglobal.mg_mynumber = 0; global.mg_player_ws = 900000; global.mg_non_player_ws = 800000; global.mg_logs = 0;Spritesspr_wallspr_hero spr_enemy spr_alertspr_curSounds BackgroundsPathsScripts Fonts Time LinesObjectswallheroenemy obj_alertcursorRoomsroom0 Game Information Global Game Settings