Posted by Farrax on October 08, 1998 at 12:09:38:
In Reply to: Outsmarted by my cog posted by Nightmare on October 08, 1998 at 10:55:29:
symbols message entered thing bomber linkid=7 // the bomber template tiebomb // the template for the bombs vector vel0 // the velocity for the bombs // sector triggersector linkid=4 surface switch linkid=2 sound enginewhine flex firerate int delay int bmrsnd local end #====================================================================== code #====================================================================== arrived: if(GetSenderID() != 7) return; curframe=curframe+1; if(curframe == lastframe) #====================================================================== pulse: if(waiting==1) // entered: if(GetSenderID() == 7) return; if(GetSenderID() < 3) damaged: if(waiting==1) return; if(getsenderid()==bomber) dummy=CreateThing(smoke, bomber); damage=getparam(0); if(health>0) return; dummy=CreateThing(bomberboom, bomber); } return; #====================================================================== timer: working=0; return; #====================================================================== reset: if(bombing==1) return; #====================================================================== end# Jedi Knight Cog Script
#
# bomber2.cog
#
# A cog to control a TIE Bomber and it's bombs
#
# 10/4/98 Nightmare
#
# This cog is not made or supported in any way by LEC
message arrived
message pulse
message timer
message activated
message damaged
message reset
thing genpos
thing console linkid=1 // a thing console that can be used to trigger the run when activated
template bomberboom=+tieb_exp
template smoke=+heavysmoke
sound beep
flex speed
int startframe
int endframe
int lastframe
int health=120
int working local
int damage local
int dummy local
int bombing local
int waiting local
int curframe local
int gotoframe local
{
curframe=-1;
call reset;
}
if(curframe >lastframe)
{
gotoframe=curframe + 1;
MoveToFrame(bomber, gotoframe, bomberspeed);
return;
if(curframe==startframe)
{
bombing=1;
SetPulse(firerate);
}
if(curframe==endframe)
{
SetPulse(0);
bombing=0;
}
return;
}
return;
{
SetPulse(0);
return;
}
CreateThingAtPos(tiebomb, GetThingSector(bomber), GetThingPos(bomber), vel0);
return;
#======================================================================
activated:
{
working=1;
waiting=0;
if(GetSenderID() == 2)
{
PlaySoundPos(beep, SurfaceCenter(switch), 1.0, -1, -1, 0);
SetWallCel(switch, 1);
}
if(GetSenderID() == 1)
{
PlaySoundThing(beep, console, 1.0, -1, -1, 0);
}
bmrsnd = PlaySoundThing(enginewhine, bomber, 10.0, -1, -1, 0x41);
SkipToFrame(bomber, 0, speed);
curframe=0;
return;
#======================================================================
{
health=health-damage;
call reset;
return;
{
SetPulse(0);
bombing=0;
}
StopSound(bmrsnd, 0);
TeleportThing(bomber, genpos);
SetTimer(delay);
waiting=1;