home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Games Machine 76
/
XENIATGM66.iso
/
Messiah
/
data1.cab
/
Program_Executable_Files
/
messiahscripts
/
Enemies
/
rat.hxx
< prev
next >
Wrap
Text File
|
1999-11-29
|
2KB
|
128 lines
Action(movefast)
{
trigger(_allDIR);
move(0,0,-5);
//loopframes(10,20); //loopstartframe,loopendframe
}
Action(moveslow)
{
trigger(_allDIR);
move(0,0,-1);
//loopframes(10,20); //loopstartframe,loopendframe
}
Action(nomove)
{
trigger(_allDIR);
//loopframes(10,20); //loopstartframe,loopendframe
}
Actor(rat)
{
file(RatHeader);
rank(_RankSergeantL);
startstate(statenormal);
startaction(nomove);
float(_declare,RandomRatSound,0);
if(VState==StateDead)
{
killactor();
}
else
{
if(VAICon==0)
{
CallSub(BackGroundTriggerChecks);
}
//random ratty noises
if(RandomRatSound<=0)
{
float(_rnd2,RandomRatSound,100);
float(_add,RandomRatSound,100);
if(vrnd<50)
{
sample(SFXrat3,-1);
}
else
{
sample(SFXrat6,-1);
}
}
else
{
float(_sub,RandomRatSound,1);
}
if(vaicon!=0)
{
Direction(_clr,_DIRaiRemoveFlags);
if(VAIhaspath==0)
{
call(PickNewNode);
}
call(AIPickdest,10);
if(vtrigger==_DIRtempflag)
{
call(PickNewNode);
}
CallSub(Sub_AI1WayAlignToPickDestAngle);
if(VTrigger==_DIRleft)
{
turn(0,-40,0);
}
elseif(VTrigger==_DIRright)
{
turn(0,40,0);
}
if(vpickdestanglecorr>512 || vpickdestanglecorr<-512) //might need bigger numbers
{
move(0,0,-1);
}
else
{
move(0,0,-10);
}
}
else
{
if(vtrigger==_DIRpossesion)
{
Camera(rat_camera_distance,rat_camera_angle);
Target(rat_camera_Tdistance,rat_camera_Tangle);
callsub(Sub_InitPossesion,NoMove,NoMove,NoMove);
FirstPerson(1);
}
elseif(vtrigger==_DIRdepossesion)
{
callsub(Sub_InitDepossesion,MoveSlow,MoveSlow,MoveSlow);
FirstPerson(0);
}
if(vtrigger==_DIRforward)
{
move(0,0,-10);
}
elseif(vtrigger==_DIRbackward)
{
move(0,0,5);
}
}
if(VHealth<=0)
{
callsub(Sub_DieBitch);
}
}
}