32 lines
707 B
Plaintext
32 lines
707 B
Plaintext
![]() |
extern void object::Attack( )
|
|||
|
{
|
|||
|
int enemy;
|
|||
|
object p;
|
|||
|
float dist, prox;
|
|||
|
point dest;
|
|||
|
|
|||
|
errmode(0); // ne stoppe pas si erreur
|
|||
|
while ( ismovie() != 0 ) wait(1);
|
|||
|
|
|||
|
enemy = WheeledGrabber;
|
|||
|
|
|||
|
while ( true )
|
|||
|
{
|
|||
|
p = radar(enemy); // cherche cible
|
|||
|
if ( p == null )
|
|||
|
{
|
|||
|
wait(2);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
dist = distance(p.position, position);
|
|||
|
prox = dist/2; // on se rapproche
|
|||
|
if ( prox < 2.5 ) prox = 2.5; // pas trop tout de m<>me
|
|||
|
dest.x = (position.x-p.position.x)*prox/dist + p.position.x;
|
|||
|
dest.y = (position.y-p.position.y)*prox/dist + p.position.y;
|
|||
|
dest.z = (position.z-p.position.z)*prox/dist + p.position.z;
|
|||
|
goto(dest); // va sur la cible
|
|||
|
}
|
|||
|
}
|
|||
|
}
|