58 lines
7.2 KiB
Plaintext
58 lines
7.2 KiB
Plaintext
#using scripts\codescripts\struct;
|
|
|
|
#using scripts\shared\callbacks_shared;
|
|
#using scripts\shared\system_shared;
|
|
|
|
|
|
|
|
#namespace serverfaceanim;
|
|
|
|
function autoexec __init__sytem__() { system::register("serverfaceanim",&__init__,undefined,undefined); }
|
|
|
|
function __init__()
|
|
{
|
|
if ( !( isdefined( level._use_faceanim ) && level._use_faceanim ) )
|
|
{
|
|
return;
|
|
}
|
|
callback::on_spawned( &init_serverfaceanim );
|
|
}
|
|
|
|
function init_serverfaceanim()
|
|
{
|
|
self.do_face_anims = true;
|
|
|
|
if( !isdefined( level.face_event_handler ) )
|
|
{
|
|
level.face_event_handler = SpawnStruct();
|
|
level.face_event_handler.events = [];
|
|
level.face_event_handler.events["death"] = "face_death";
|
|
level.face_event_handler.events["grenade danger"] = "face_alert";
|
|
level.face_event_handler.events["bulletwhizby"] = "face_alert";
|
|
level.face_event_handler.events["projectile_impact"] = "face_alert";
|
|
level.face_event_handler.events["explode"] = "face_alert";
|
|
level.face_event_handler.events["alert"] = "face_alert";
|
|
level.face_event_handler.events["shoot"] = "face_shoot_single";
|
|
level.face_event_handler.events["melee"] = "face_melee";
|
|
level.face_event_handler.events["damage"] = "face_pain";
|
|
|
|
level thread wait_for_face_event();
|
|
}
|
|
}
|
|
|
|
function wait_for_face_event()
|
|
{
|
|
while( true )
|
|
{
|
|
level waittill( "face", face_notify, ent );
|
|
|
|
if( isdefined( ent ) && isdefined( ent.do_face_anims ) && ent.do_face_anims )
|
|
{
|
|
if( isdefined( level.face_event_handler.events[face_notify] ) )
|
|
{
|
|
ent SendFaceEvent( level.face_event_handler.events[face_notify] );
|
|
}
|
|
}
|
|
}
|
|
}
|