cod5-sdk/raw/maps/_guide.gsc

115 lines
2.1 KiB
Plaintext

#include maps\_utility;
main()
{
thread lastshottime();
array_thread(getentarray("showpath","script_noteworthy"), ::showpath);
array_thread(getentarray("brush_guide","targetname"), ::brush_guide);
}
showpath_trigger(path)
{
while(1)
{
self waittill ("trigger");
path notify ("showpath");
}
}
showpath()
{
array_thread(getentarray(self.targetname,"target"),::showpath_trigger,self);
while(1)
{
self waittill ("showpath");
level notify ("newtrigger");
self thread leadshowstuff();
level waittill ("newtrigger");
}
}
leadshowstuff()
{
level endon ("newtrigger");
while(1)
{
waitforrecentfire();
wait .5;
thread leadshowstuff_path(self,1);
}
}
leadshowstuff_path(position,arrowtime)
{
level endon ("newtrigger");
if(isdefined(position.target))
targ = getent(position.target,"targetname");
else
targ = undefined;
lasttarg = position;
while(isdefined(targ))
{
waitforrecentfire();
if(isdefined(targ.target))
targ = getent(targ.target,"targetname");
else
return;
if(!isdefined(targ))
return;
realarrowtime = distance(lasttarg.origin,targ.origin)/1000;
// if(distance(level.player.origin,targ.origin) < 5000)
draw_arrow_time (lasttarg.origin, targ.origin, (0,0,1), realarrowtime);
wait realarrowtime;
lasttarg = targ;
}
}
waitforrecentfire()
{
while(!level.hasfiredrecently)
wait .05;
}
lastshottime()
{
level.hasfiredrecently = true;
lastshottime = 0;
while(1)
{
// SCRIPTER_MOD
// JesseS (3/20/2007): added players get array and check on player[0] for usebutton
// since this is a adebug script
players = get_players();
if(players[0] usebuttonpressed())
{
lastshottime = 0;
}
else
{
lastshottime += .05;
}
if(lastshottime > 4)
{
level.hasfiredrecently = false;
}
else
{
level.hasfiredrecently = true;
}
wait .05;
}
}
brush_guide()
{
while(1)
{
self hide();
while(!level.hasfiredrecently)
wait .05;
self show();
while(level.hasfiredrecently)
wait .05;
}
}