mirror of
https://github.com/JezuzLizard/t4sp_bot_warfare.git
synced 2025-04-22 14:35:44 +00:00
Handle different bones for dogs and gibbed zombies.
Readd difficulty settings.
This commit is contained in:
parent
dbf6ce6f3e
commit
c7558faa47
@ -545,12 +545,18 @@ target_loop()
|
|||||||
targetAnkleLeft = enemy getTagOrigin( "j_ankle_le" );
|
targetAnkleLeft = enemy getTagOrigin( "j_ankle_le" );
|
||||||
targetAnkleRight = enemy getTagOrigin( "j_ankle_ri" );
|
targetAnkleRight = enemy getTagOrigin( "j_ankle_ri" );
|
||||||
}
|
}
|
||||||
else
|
else if ( !enemy targetIsGibbed() )
|
||||||
{
|
{
|
||||||
targetHead = enemy getTagOrigin( "j_head" );
|
targetHead = enemy getTagOrigin( "j_head" );
|
||||||
targetAnkleLeft = enemy getTagOrigin( "j_ankle_le" );
|
targetAnkleLeft = enemy getTagOrigin( "j_ankle_le" );
|
||||||
targetAnkleRight = enemy getTagOrigin( "j_ankle_ri" );
|
targetAnkleRight = enemy getTagOrigin( "j_ankle_ri" );
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
targetHead = enemy getTagOrigin( "j_spinelower" );
|
||||||
|
targetAnkleLeft = enemy getTagOrigin( "j_spinelower" );
|
||||||
|
targetAnkleRight = enemy getTagOrigin( "j_spinelower" );
|
||||||
|
}
|
||||||
|
|
||||||
traceHead = bulletTrace( myEye, targetHead, false, enemy );
|
traceHead = bulletTrace( myEye, targetHead, false, enemy );
|
||||||
traceAnkleLeft = bulletTrace( myEye, targetAnkleLeft, false, enemy );
|
traceAnkleLeft = bulletTrace( myEye, targetAnkleLeft, false, enemy );
|
||||||
@ -676,12 +682,16 @@ target()
|
|||||||
selectBoneForTarget( enemy, bones )
|
selectBoneForTarget( enemy, bones )
|
||||||
{
|
{
|
||||||
if ( enemy targetIsDog() )
|
if ( enemy targetIsDog() )
|
||||||
|
{
|
||||||
|
return "j_head";
|
||||||
|
}
|
||||||
|
else if ( !enemy targetIsGibbed() )
|
||||||
{
|
{
|
||||||
return PickRandom( bones );
|
return PickRandom( bones );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return PickRandom( bones );
|
return "j_spineupper";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
added()
|
added()
|
||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
|
|
||||||
|
self set_diff();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -272,6 +274,62 @@ difficulty()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Sets the bot difficulty.
|
||||||
|
*/
|
||||||
|
set_diff()
|
||||||
|
{
|
||||||
|
rankVar = GetDvarInt( "bots_skill" );
|
||||||
|
|
||||||
|
switch ( rankVar )
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
self.pers["bots"]["skill"]["base"] = Round( random_normal_distribution( 3.5, 1.75, 1, 7 ) );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 8:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 9:
|
||||||
|
self.pers["bots"]["skill"]["base"] = randomIntRange( 1, 7 );
|
||||||
|
self.pers["bots"]["skill"]["aim_time"] = 0.05 * randomIntRange( 1, 20 );
|
||||||
|
self.pers["bots"]["skill"]["init_react_time"] = 50 * randomInt( 100 );
|
||||||
|
self.pers["bots"]["skill"]["reaction_time"] = 50 * randomInt( 100 );
|
||||||
|
self.pers["bots"]["skill"]["no_trace_ads_time"] = 50 * randomInt( 100 );
|
||||||
|
self.pers["bots"]["skill"]["no_trace_look_time"] = 50 * randomInt( 100 );
|
||||||
|
self.pers["bots"]["skill"]["remember_time"] = 50 * randomInt( 100 );
|
||||||
|
self.pers["bots"]["skill"]["fov"] = randomFloatRange( -1, 1 );
|
||||||
|
|
||||||
|
randomNum = randomIntRange( 500, 25000 );
|
||||||
|
self.pers["bots"]["skill"]["dist_start"] = randomNum;
|
||||||
|
self.pers["bots"]["skill"]["dist_max"] = randomNum * 2;
|
||||||
|
|
||||||
|
self.pers["bots"]["skill"]["spawn_time"] = 0.05 * randomInt( 20 );
|
||||||
|
self.pers["bots"]["skill"]["help_dist"] = randomIntRange( 500, 25000 );
|
||||||
|
self.pers["bots"]["skill"]["semi_time"] = randomFloatRange( 0.05, 1 );
|
||||||
|
self.pers["bots"]["skill"]["shoot_after_time"] = randomFloatRange( 0.05, 1 );
|
||||||
|
self.pers["bots"]["skill"]["aim_offset_time"] = randomFloatRange( 0.05, 1 );
|
||||||
|
self.pers["bots"]["skill"]["aim_offset_amount"] = randomFloatRange( 0.05, 1 );
|
||||||
|
self.pers["bots"]["skill"]["bone_update_interval"] = randomFloatRange( 0.05, 1 );
|
||||||
|
self.pers["bots"]["skill"]["bones"] = "j_head,j_spineupper,j_ankle_ri,j_ankle_le";
|
||||||
|
|
||||||
|
self.pers["bots"]["behavior"]["strafe"] = randomInt( 100 );
|
||||||
|
self.pers["bots"]["behavior"]["nade"] = randomInt( 100 );
|
||||||
|
self.pers["bots"]["behavior"]["sprint"] = randomInt( 100 );
|
||||||
|
self.pers["bots"]["behavior"]["camp"] = randomInt( 100 );
|
||||||
|
self.pers["bots"]["behavior"]["follow"] = randomInt( 100 );
|
||||||
|
self.pers["bots"]["behavior"]["crouch"] = randomInt( 100 );
|
||||||
|
self.pers["bots"]["behavior"]["switch"] = randomInt( 100 );
|
||||||
|
self.pers["bots"]["behavior"]["class"] = randomInt( 100 );
|
||||||
|
self.pers["bots"]["behavior"]["jump"] = randomInt( 100 );
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
self.pers["bots"]["skill"]["base"] = rankVar;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
When the bot spawned, after the difficulty wait. Start the logic for the bot.
|
When the bot spawned, after the difficulty wait. Start the logic for the bot.
|
||||||
*/
|
*/
|
||||||
|
@ -993,7 +993,18 @@ getRandomGoal()
|
|||||||
return PickRandom( level.waypointsInPlayableArea ).origin;
|
return PickRandom( level.waypointsInPlayableArea ).origin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Checks if target is dog
|
||||||
|
*/
|
||||||
targetIsDog()
|
targetIsDog()
|
||||||
{
|
{
|
||||||
return isDefined( self.targetname ) && self.targetname == "zombie_dog";
|
return isDefined( self.targetname ) && self.targetname == "zombie_dog";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Checks if target is gibbed
|
||||||
|
*/
|
||||||
|
targetIsGibbed()
|
||||||
|
{
|
||||||
|
return isDefined( self.gibbed ) && self.gibbed;
|
||||||
|
}
|
@ -223,13 +223,14 @@ addBot()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// guy.killingAll = true;
|
// guy.killingAll = true;
|
||||||
weapon = "zombie_thompson";
|
weapon = "ray_gun";
|
||||||
guy giveWeapon( weapon ); // ptrs41_zombie zombie_doublebarrel
|
guy giveWeapon( weapon ); // ptrs41_zombie zombie_doublebarrel
|
||||||
guy switchToWeapon( weapon ); // colt_dirty_harry
|
guy switchToWeapon( weapon ); // colt_dirty_harry
|
||||||
|
|
||||||
//guy thread walk_to_player();
|
//guy thread walk_to_player();
|
||||||
//guy thread do_move();
|
//guy thread do_move();
|
||||||
|
|
||||||
|
/*
|
||||||
while ( isDefined( guy ) )
|
while ( isDefined( guy ) )
|
||||||
{
|
{
|
||||||
if ( isDefined( level.isPlayerDead ) && [[level.isPlayerDead]]( guy ) )
|
if ( isDefined( level.isPlayerDead ) && [[level.isPlayerDead]]( guy ) )
|
||||||
@ -243,6 +244,7 @@ addBot()
|
|||||||
|
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
onPlayerConnect()
|
onPlayerConnect()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user