225 lines
6.0 KiB
Plaintext
225 lines
6.0 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
enable_dog_kinect()
|
|
{
|
|
if ( level.script == "enemyhq" )
|
|
speechenablegrammar( "speech/iw6/grammars/en-us_rileyenemyhq.cfg", 1 );
|
|
else if ( level.script == "nml" )
|
|
speechenablegrammar( "speech/iw6/grammars/en-us_rileynml.cfg", 1 );
|
|
|
|
speechenable( 1 );
|
|
setdvar( "show_riley_commands", 0 );
|
|
}
|
|
|
|
disable_dog_kinect()
|
|
{
|
|
speechenable( 0 );
|
|
|
|
if ( level.script == "enemyhq" )
|
|
speechenablegrammar( "speech/iw6/grammars/en-us_rileyenemyhq.cfg", 0 );
|
|
else if ( level.script == "nml" )
|
|
speechenablegrammar( "speech/iw6/grammars/en-us_rileynml.cfg", 0 );
|
|
}
|
|
|
|
speechcommands()
|
|
{
|
|
enable_dog_kinect();
|
|
level.player thread listen_for_dog_kinect_commands( level.dog );
|
|
}
|
|
|
|
listen_for_dog_kinect_commands( var_0 )
|
|
{
|
|
self endon( "death" );
|
|
var_0 endon( "death" );
|
|
|
|
for (;;)
|
|
{
|
|
level.player waittill( "speechCommand", var_1, var_2 );
|
|
|
|
if ( getdvarint( "show_riley_commands" ) == 1 )
|
|
iprintlnbold( "speechCommand: " + var_2 + " at " + var_1 + " confidence." );
|
|
|
|
var_3 = 0.3;
|
|
var_4 = 0.7;
|
|
|
|
switch ( var_2 )
|
|
{
|
|
case "attack":
|
|
if ( var_1 > var_3 )
|
|
{
|
|
if ( isdefined( var_0.controlling_dog ) && var_0 maps\_utility::ent_flag( "pause_dog_command" ) )
|
|
level.player notify( "attack_command" );
|
|
else
|
|
level.player notify( "fired_laser" );
|
|
}
|
|
|
|
break;
|
|
case "cancel":
|
|
if ( var_1 > var_3 )
|
|
var_0 notify( "cancel_dog_attack" );
|
|
|
|
break;
|
|
case "bark":
|
|
if ( var_1 > var_4 )
|
|
{
|
|
if ( isdefined( var_0.controlling_dog ) )
|
|
level.player notify( "LISTEN_ads_button_pressed" );
|
|
}
|
|
|
|
break;
|
|
case "platform":
|
|
if ( var_1 > var_3 )
|
|
{
|
|
var_5 = [ "platform", "ramp", "walkway", "catwalk" ];
|
|
|
|
foreach ( var_7 in var_5 )
|
|
{
|
|
var_8 = findlocation( var_7 );
|
|
|
|
if ( isdefined( var_8 ) )
|
|
{
|
|
laser_designate_target_kinect( var_8 );
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
break;
|
|
case "cart":
|
|
if ( var_1 > var_3 )
|
|
{
|
|
var_10 = [ "cart", "counter", "stand", "conession", "concession" ];
|
|
|
|
foreach ( var_12 in var_10 )
|
|
{
|
|
var_8 = findlocation( var_12 );
|
|
|
|
if ( isdefined( var_8 ) )
|
|
{
|
|
laser_designate_target_kinect( var_8 );
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
break;
|
|
case "vehicle":
|
|
if ( var_1 > var_3 )
|
|
{
|
|
var_14 = [ "car", "van", "bus" ];
|
|
|
|
foreach ( var_16 in var_14 )
|
|
{
|
|
var_8 = findlocation( var_16 );
|
|
|
|
if ( isdefined( var_8 ) )
|
|
{
|
|
laser_designate_target_kinect( var_8 );
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
break;
|
|
case "debris":
|
|
if ( var_1 > var_3 )
|
|
{
|
|
var_18 = [ "debris", "rubble" ];
|
|
|
|
foreach ( var_20 in var_18 )
|
|
{
|
|
var_8 = findlocation( var_20 );
|
|
|
|
if ( isdefined( var_8 ) )
|
|
{
|
|
laser_designate_target_kinect( var_8 );
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
break;
|
|
default:
|
|
if ( var_1 > var_3 )
|
|
{
|
|
var_8 = findlocation( var_2 );
|
|
|
|
if ( isdefined( var_8 ) )
|
|
laser_designate_target_kinect( var_8 );
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
findlocation( var_0 )
|
|
{
|
|
var_1 = anim.bcs_locations;
|
|
|
|
foreach ( var_3 in var_1 )
|
|
{
|
|
if ( isdefined( var_3.locationaliases ) )
|
|
{
|
|
foreach ( var_5 in var_3.locationaliases )
|
|
{
|
|
if ( issubstr( var_5, var_0 ) )
|
|
return var_5;
|
|
}
|
|
}
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
laser_designate_target_kinect( var_0 )
|
|
{
|
|
var_1 = [];
|
|
var_2 = getaiarray( "axis" );
|
|
|
|
foreach ( var_4 in var_2 )
|
|
{
|
|
if ( var_4.type == "dog" )
|
|
continue;
|
|
|
|
var_5 = var_4 gettagorigin( "J_SpineUpper" );
|
|
|
|
if ( maps\_utility::player_looking_at( var_5, 0.8, 1 ) )
|
|
{
|
|
var_6 = var_4 animscripts\battlechatter::get_all_my_locations();
|
|
|
|
foreach ( var_8 in var_6 )
|
|
{
|
|
var_9 = var_8.locationaliases;
|
|
|
|
foreach ( var_11 in var_9 )
|
|
{
|
|
if ( var_11 == var_0 )
|
|
{
|
|
var_1 = common_scripts\utility::array_add( var_1, var_4 );
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var_15 = maps\_dog_control::get_eye();
|
|
|
|
if ( var_1.size > 0 )
|
|
{
|
|
var_1 = sortbydistance( var_1, var_15 );
|
|
|
|
foreach ( var_4 in var_1 )
|
|
{
|
|
if ( !isdefined( var_4.a.doinglongdeath ) )
|
|
{
|
|
var_17 = maps\_dog_control::get_laser_designated_trace();
|
|
self notify( "issue_dog_command", var_17, undefined, var_4 );
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|