mirror of
https://github.com/ineedbots/iw2_bot_warfare.git
synced 2025-07-03 01:31:54 +00:00
bots properally use weapons
This commit is contained in:
@ -6,6 +6,103 @@ init()
|
||||
level.bot_builtins[ "botmovement" ] = ::do_botmovement;
|
||||
level.bot_builtins[ "isbot" ] = ::do_isbot;
|
||||
level.bot_builtins[ "botangles" ] = ::do_botangles;
|
||||
level.bot_builtins[ "botweapon" ] = ::do_botweapon;
|
||||
|
||||
thread setup_weaponid_map();
|
||||
}
|
||||
|
||||
register_weaponid( weap )
|
||||
{
|
||||
if ( !isdefined( level.bot_weaponids[ weap ] ) )
|
||||
{
|
||||
level.bot_weaponids[ weap ] = level.bot_weaponids.size;
|
||||
}
|
||||
}
|
||||
|
||||
setup_weaponid_map()
|
||||
{
|
||||
waittillframeend;
|
||||
|
||||
level.bot_weaponids = [];
|
||||
register_weaponid( "none" );
|
||||
register_weaponid( "defaultweapon_mp" );
|
||||
|
||||
turrets = getentarray( "misc_turret", "classname" );
|
||||
|
||||
for ( i = 0; i < turrets.size; i++ )
|
||||
{
|
||||
if ( !isdefined( turrets[i].weaponinfo ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
register_weaponid( turrets[i].weaponinfo );
|
||||
}
|
||||
|
||||
// in the order of precache
|
||||
switch ( game[ "allies" ] )
|
||||
{
|
||||
case "american":
|
||||
register_weaponid( "frag_grenade_american_mp" );
|
||||
register_weaponid( "smoke_grenade_american_mp" );
|
||||
register_weaponid( "colt_mp" );
|
||||
register_weaponid( "m1carbine_mp" );
|
||||
register_weaponid( "m1garand_mp" );
|
||||
register_weaponid( "thompson_mp" );
|
||||
register_weaponid( "bar_mp" );
|
||||
register_weaponid( "springfield_mp" );
|
||||
register_weaponid( "greasegun_mp" );
|
||||
register_weaponid( "shotgun_mp" );
|
||||
break;
|
||||
|
||||
case "british":
|
||||
register_weaponid( "frag_grenade_british_mp" );
|
||||
register_weaponid( "smoke_grenade_british_mp" );
|
||||
register_weaponid( "webley_mp" );
|
||||
register_weaponid( "enfield_mp" );
|
||||
register_weaponid( "sten_mp" );
|
||||
register_weaponid( "bren_mp" );
|
||||
register_weaponid( "enfield_scope_mp" );
|
||||
register_weaponid( "m1garand_mp" );
|
||||
register_weaponid( "thompson_mp" );
|
||||
register_weaponid( "shotgun_mp" );
|
||||
break;
|
||||
|
||||
case "russian":
|
||||
register_weaponid( "frag_grenade_russian_mp" );
|
||||
register_weaponid( "smoke_grenade_russian_mp" );
|
||||
register_weaponid( "tt30_mp" );
|
||||
register_weaponid( "mosin_nagant_mp" );
|
||||
register_weaponid( "svt40_mp" );
|
||||
register_weaponid( "pps42_mp" );
|
||||
register_weaponid( "ppsh_mp" );
|
||||
register_weaponid( "mosin_nagant_sniper_mp" );
|
||||
register_weaponid( "shotgun_mp" );
|
||||
break;
|
||||
}
|
||||
|
||||
register_weaponid( "frag_grenade_german_mp" );
|
||||
register_weaponid( "smoke_grenade_german_mp" );
|
||||
register_weaponid( "luger_mp" );
|
||||
register_weaponid( "kar98k_mp" );
|
||||
register_weaponid( "g43_mp" );
|
||||
register_weaponid( "mp40_mp" );
|
||||
register_weaponid( "mp44_mp" );
|
||||
register_weaponid( "kar98k_sniper_mp" );
|
||||
register_weaponid( "shotgun_mp" );
|
||||
register_weaponid( "binoculars_mp" );
|
||||
}
|
||||
|
||||
get_weaponid_for_string( weap )
|
||||
{
|
||||
ans = level.bot_weaponids[ weap ];
|
||||
|
||||
if ( !isdefined( ans ) )
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return ans;
|
||||
}
|
||||
|
||||
do_printconsole( s )
|
||||
@ -94,7 +191,7 @@ do_botstop()
|
||||
self setbotstance( "stand" );
|
||||
self setlean( "none" );
|
||||
self setwalkdir( "none" );
|
||||
self switchtoweaponid( 1 ); // libcod needs weapon name to id
|
||||
self switchtoweaponid( get_weaponid_for_string( self getcurrentweapon() ) );
|
||||
|
||||
// self botstop();
|
||||
}
|
||||
@ -138,3 +235,9 @@ do_botangles( angles )
|
||||
self setplayerangles( angles );
|
||||
// self botangles( angles[ 0 ], angles[ 1 ], angles[ 2 ] );
|
||||
}
|
||||
|
||||
do_botweapon( weapon )
|
||||
{
|
||||
self switchtoweaponid( get_weaponid_for_string( weapon ) );
|
||||
// self switchtoweapon( weapon );
|
||||
}
|
||||
|
Reference in New Issue
Block a user