mirror of
https://github.com/ineedbots/iw4_bot_warfare.git
synced 2025-04-22 22:05:44 +00:00
equip kill
This commit is contained in:
parent
a77c24ba9b
commit
3d4e7c5b0d
@ -566,7 +566,7 @@ moveHack()
|
||||
}
|
||||
|
||||
if (self _hasPerk("specialty_lightweight"))
|
||||
moveSpeed *= 1.15;
|
||||
moveSpeed *= 1.07;
|
||||
|
||||
moveSpeed *= (getdvarfloat("g_speed")/190.0);
|
||||
moveSpeed *= self.moveSpeedScaler;
|
||||
|
@ -1088,6 +1088,138 @@ onBotSpawned()
|
||||
self thread bot_revenge_think();
|
||||
self thread bot_uav_think();
|
||||
self thread bot_listen_to_steps();
|
||||
self thread bot_equipment_kill_think();
|
||||
}
|
||||
}
|
||||
|
||||
bot_equipment_kill_think()
|
||||
{
|
||||
self endon( "death" );
|
||||
self endon( "disconnect" );
|
||||
level endon ( "game_ended" );
|
||||
|
||||
myteam = self.pers[ "team" ];
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
wait( RandomIntRange( 1, 3 ) );
|
||||
|
||||
if(self HasScriptEnemy())
|
||||
continue;
|
||||
|
||||
hasSitrep = self _HasPerk( "specialty_detectexplosive" );
|
||||
grenades = getEntArray( "grenade", "classname" );
|
||||
myEye = self getEye();
|
||||
myAngles = self getPlayerAngles();
|
||||
dist = 512*512;
|
||||
target = undefined;
|
||||
|
||||
for ( i = 0; i < grenades.size; i++ )
|
||||
{
|
||||
item = grenades[i];
|
||||
|
||||
if ( !IsDefined( item.name ) )
|
||||
continue;
|
||||
|
||||
if ( IsDefined( item.owner ) && ((level.teamBased && item.owner.team == self.team) || item.owner == self) )
|
||||
continue;
|
||||
|
||||
if (item.name != "c4_mp" && item.name != "claymore_mp")
|
||||
continue;
|
||||
|
||||
if(!hasSitrep && !bulletTracePassed(myEye, item.origin, false, item))
|
||||
continue;
|
||||
|
||||
if(getConeDot(item.origin, self.origin, myAngles) < 0.6)
|
||||
continue;
|
||||
|
||||
if ( DistanceSquared( item.origin, self.origin ) < dist )
|
||||
{
|
||||
target = item;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( !IsDefined( target ) )
|
||||
{
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
|
||||
if ( player == self )
|
||||
continue;
|
||||
|
||||
if(!isDefined(player.team))
|
||||
continue;
|
||||
|
||||
if ( level.teamBased && player.team == myteam )
|
||||
continue;
|
||||
|
||||
ti = player.setSpawnPoint;
|
||||
if(!isDefined(ti))
|
||||
continue;
|
||||
|
||||
if(!isDefined(ti.bots))
|
||||
ti.bots = 0;
|
||||
|
||||
if(ti.bots >= 2)
|
||||
continue;
|
||||
|
||||
if(!hasSitrep && !bulletTracePassed(myEye, ti.origin, false, ti))
|
||||
continue;
|
||||
|
||||
if(getConeDot(ti.origin, self.origin, myAngles) < 0.6)
|
||||
continue;
|
||||
|
||||
if ( DistanceSquared( ti.origin, self.origin ) < dist )
|
||||
{
|
||||
target = ti;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( !IsDefined( target ) )
|
||||
continue;
|
||||
|
||||
if (isDefined(target.enemyTrigger))
|
||||
{
|
||||
if ( self.bot_lock_goal || self HasScriptGoal() )
|
||||
continue;
|
||||
|
||||
self thread bot_inc_bots(target, true);
|
||||
self SetScriptGoal(target.origin, 16);
|
||||
self thread bots_watch_touch_obj( target );
|
||||
|
||||
path = self waittill_any_return("bad_path", "goal");
|
||||
|
||||
self ClearScriptGoal();
|
||||
|
||||
if (path != "goal")
|
||||
continue;
|
||||
|
||||
target.enemyTrigger notify("trigger", self);
|
||||
continue;
|
||||
}
|
||||
|
||||
self SetScriptEnemy( target );
|
||||
self bot_equipment_attack(target);
|
||||
self ClearScriptEnemy();
|
||||
}
|
||||
}
|
||||
|
||||
bot_equipment_attack(equ)
|
||||
{
|
||||
wait_time = RandomIntRange( 7, 10 );
|
||||
|
||||
for ( i = 0; i < wait_time; i++ )
|
||||
{
|
||||
wait( 1 );
|
||||
|
||||
if ( !IsDefined( equ ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1217,7 +1349,7 @@ bot_uav_think()
|
||||
continue;
|
||||
|
||||
dist = self.pers["bots"]["skill"]["help_dist"];
|
||||
dist *= 8;
|
||||
dist *= dist * 8;
|
||||
|
||||
for ( i = level.players.size - 1; i >= 0; i-- )
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user