home *** CD-ROM | disk | FTP | other *** search
- extern void object::Attack( )
- {
- int enemy;
- object p;
- float dist;
- point nav1, nav2, nav3, nav4, dest;
-
- errmode(0); // ne stoppe pas si erreur
- while ( ismovie() != 0 ) wait(1);
-
- // enemy = WheeledGrabber;
- enemy = WingedOrgaShooter;
-
- while ( true )
- {
- p = radar(enemy, 0, 360, 0, 50);
- if ( p == null )
- {
- nav1.x = position.x+2.5;
- nav1.y = position.y+2.5;
- nav2.x = position.x+2.5;
- nav2.y = position.y-2.5;
- nav3.x = position.x-2.5;
- nav3.y = position.y-2.5;
- nav4.x = position.x-2.5;
- nav4.y = position.y+2.5;
-
- while ( true )
- {
- goto(nav1);
- p = radar(enemy, 0, 360, 0, 50);
- if ( p != null ) break;
-
- goto(nav2);
- p = radar(enemy, 0, 360, 0, 50);
- if ( p != null ) break;
-
- goto(nav3);
- p = radar(enemy, 0, 360, 0, 50);
- if ( p != null ) break;
-
- goto(nav4);
- p = radar(enemy, 0, 360, 0, 50);
- if ( p != null ) break;
- }
- }
- else
- {
- dist = distance(p.position, position);
- if ( dist <= 7.5 )
- {
- fire();
- }
- else
- {
- dest.x = (position.x+p.position.x)/2;
- dest.y = (position.y+p.position.y)/2;
- dest.z = (position.z+p.position.z)/2;
- goto(dest);
- }
- }
- }
- }
-