mirror of
https://github.com/ineedbots/iw5_bot_warfare.git
synced 2025-04-25 23:29:12 +00:00
Fix up child vars
This commit is contained in:
parent
d78a9c4afd
commit
091527e6a6
@ -15,7 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
init()
|
init()
|
||||||
{
|
{
|
||||||
level.bw_VERSION = "1.0.0";
|
level.bw_VERSION = "2.0.1";
|
||||||
|
|
||||||
if(getDvar("bots_main") == "")
|
if(getDvar("bots_main") == "")
|
||||||
setDvar("bots_main", true);
|
setDvar("bots_main", true);
|
||||||
@ -161,6 +161,7 @@ init()
|
|||||||
level thread addNotifyOnAirdrops();
|
level thread addNotifyOnAirdrops();
|
||||||
level thread watchScrabler();
|
level thread watchScrabler();
|
||||||
level thread watchRadar();
|
level thread watchRadar();
|
||||||
|
level thread auditModels();
|
||||||
|
|
||||||
level thread handleBots();
|
level thread handleBots();
|
||||||
|
|
||||||
@ -310,6 +311,40 @@ fixKoth()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Audits all the important models cause iw5 script is kek
|
||||||
|
*/
|
||||||
|
auditModels()
|
||||||
|
{
|
||||||
|
level.vest_boxes = [];
|
||||||
|
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
wait 0.05;
|
||||||
|
|
||||||
|
level.vest_boxes = array_removeUndefined(level.vest_boxes);
|
||||||
|
|
||||||
|
s_models = getEntArray("script_model", "classname");
|
||||||
|
|
||||||
|
for (i = s_models.size - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
model = s_models[i];
|
||||||
|
|
||||||
|
if (!isDefined(model))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (isDefined(model.bot_audit_model))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (model.model == "com_deploy_ballistic_vest_friend_world")
|
||||||
|
{
|
||||||
|
model.bot_audit_model = true;
|
||||||
|
level.vest_boxes[level.vest_boxes.size] = model;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Watches radars
|
Watches radars
|
||||||
*/
|
*/
|
||||||
|
@ -2941,7 +2941,7 @@ bot_equipment_kill_think()
|
|||||||
dist = 512*512;
|
dist = 512*512;
|
||||||
target = undefined;
|
target = undefined;
|
||||||
|
|
||||||
// check legacy nades
|
// check legacy nades, c4 and claymores
|
||||||
for ( i = 0; i < grenades.size; i++ )
|
for ( i = 0; i < grenades.size; i++ )
|
||||||
{
|
{
|
||||||
item = grenades[i];
|
item = grenades[i];
|
||||||
@ -2952,11 +2952,11 @@ bot_equipment_kill_think()
|
|||||||
if ( !IsDefined( item.name ) )
|
if ( !IsDefined( item.name ) )
|
||||||
continue;
|
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")
|
if (item.name != "c4_mp" && item.name != "claymore_mp")
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if ( IsDefined( item.owner ) && ((level.teamBased && item.owner.team == self.team) || item.owner == self) )
|
||||||
|
continue;
|
||||||
|
|
||||||
if(!hasSitrep && !bulletTracePassed(myEye, item.origin, false, item))
|
if(!hasSitrep && !bulletTracePassed(myEye, item.origin, false, item))
|
||||||
continue;
|
continue;
|
||||||
@ -2970,8 +2970,10 @@ bot_equipment_kill_think()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
grenades = undefined; // clean up, reduces child1 vars
|
||||||
|
|
||||||
// check for TIs
|
// check for player stuff, tis and throphys and radars
|
||||||
if ( !IsDefined( target ) )
|
if ( !IsDefined( target ) )
|
||||||
{
|
{
|
||||||
for ( i = 0; i < level.players.size; i++ )
|
for ( i = 0; i < level.players.size; i++ )
|
||||||
@ -2987,43 +2989,228 @@ bot_equipment_kill_think()
|
|||||||
if ( level.teamBased && player.team == myteam )
|
if ( level.teamBased && player.team == myteam )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
ti = player.setSpawnPoint;
|
// check for thorphys
|
||||||
if(!isDefined(ti))
|
if (isDefined(player.trophyArray))
|
||||||
continue;
|
{
|
||||||
|
for (h = 0; h < player.trophyArray.size; h++)
|
||||||
if(!isDefined(ti.bots))
|
{
|
||||||
ti.bots = 0;
|
item = player.trophyArray[h];
|
||||||
|
|
||||||
if(ti.bots >= 2)
|
if (!isDefined(item))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if(!hasSitrep && !bulletTracePassed(myEye, ti.origin, false, ti))
|
if (isDefined(item.damageTaken) && isDefined(item.maxHealth))
|
||||||
continue;
|
{
|
||||||
|
if (item.damageTaken >= item.maxHealth)
|
||||||
if(getConeDot(ti.origin, self.origin, myAngles) < 0.6)
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isDefined(item.bots))
|
||||||
|
item.bots = 0;
|
||||||
|
|
||||||
|
if (item.bots >= 2)
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// check for ti
|
||||||
|
if (!isDefined(target))
|
||||||
|
{
|
||||||
|
for (h = 0; h < 1; h++)
|
||||||
|
{
|
||||||
|
item = player.setSpawnPoint;
|
||||||
|
if(!isDefined(item))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (isDefined(item.damageTaken) && isDefined(item.maxHealth))
|
||||||
|
{
|
||||||
|
if (item.damageTaken >= item.maxHealth)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isDefined(item.bots))
|
||||||
|
item.bots = 0;
|
||||||
|
|
||||||
|
if(item.bots >= 2)
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// check for radar
|
||||||
|
if (!isDefined(target))
|
||||||
|
{
|
||||||
|
for (h = 0; h < 1; h++)
|
||||||
|
{
|
||||||
|
item = player.deployedPortableRadar;
|
||||||
|
if(!isDefined(item))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (isDefined(item.damageTaken) && isDefined(item.maxHealth))
|
||||||
|
{
|
||||||
|
if (item.damageTaken >= item.maxHealth)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isDefined(item.bots))
|
||||||
|
item.bots = 0;
|
||||||
|
|
||||||
|
if(item.bots >= 2)
|
||||||
|
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))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// check for ims
|
||||||
|
if ( !IsDefined( target ) )
|
||||||
|
{
|
||||||
|
imsKeys = getArrayKeys(level.ims);
|
||||||
|
|
||||||
|
for (i = 0; i < imsKeys.size; i++)
|
||||||
|
{
|
||||||
|
item = level.ims[imsKeys[i]];
|
||||||
|
|
||||||
|
if (!isDefined(item))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ( DistanceSquared( ti.origin, self.origin ) < dist )
|
if (isDefined(item.damageTaken) && isDefined(item.maxHealth))
|
||||||
{
|
{
|
||||||
target = ti;
|
if (item.damageTaken >= item.maxHealth)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( IsDefined( item.owner ) && ((level.teamBased && item.owner.team == self.team) || item.owner == self) )
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
imsKeys = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
// check for vest
|
||||||
|
if ( !IsDefined( target ) )
|
||||||
|
{
|
||||||
|
for (i = 0; i < level.vest_boxes.size; i++)
|
||||||
|
{
|
||||||
|
item = level.vest_boxes[i];
|
||||||
|
|
||||||
|
if (!isDefined(item))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (isDefined(item.damageTaken) && isDefined(item.maxHealth))
|
||||||
|
{
|
||||||
|
if (item.damageTaken >= item.maxHealth)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( IsDefined( item.owner ) && ((level.teamBased && item.owner.team == self.team) || item.owner == self) )
|
||||||
|
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;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//check for iw5 nades
|
// check for jammers
|
||||||
if (!isDefined(target))
|
if ( !IsDefined( target ) )
|
||||||
{
|
{
|
||||||
ents = GetEntArray("script_model", "classname");
|
for (i = 0; i < level.scramblers.size; i++)
|
||||||
|
|
||||||
for ( i = 0; i < ents.size; i++ )
|
|
||||||
{
|
{
|
||||||
item = ents[i];
|
item = level.scramblers[i];
|
||||||
|
|
||||||
if (!isDefined(item))
|
if (!isDefined(item))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (item.model != "weapon_radar" && item.model != "mp_trophy_system" && item.model != "weapon_jammer" && item.model != "projectile_bouncing_betty_grenade" && item.model != "com_deploy_ballistic_vest_friend_world" && item.model != "ims_scorpion_body")
|
if (isDefined(item.damageTaken) && isDefined(item.maxHealth))
|
||||||
|
{
|
||||||
|
if (item.damageTaken >= item.maxHealth)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( IsDefined( item.owner ) && ((level.teamBased && item.owner.team == self.team) || item.owner == self) )
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// check for mines
|
||||||
|
if ( !IsDefined( target ) )
|
||||||
|
{
|
||||||
|
for (i = 0; i < level.mines.size; i++)
|
||||||
|
{
|
||||||
|
item = level.mines[i];
|
||||||
|
|
||||||
|
if (!isDefined(item))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (isDefined(item.damageTaken) && isDefined(item.maxHealth))
|
if (isDefined(item.damageTaken) && isDefined(item.maxHealth))
|
||||||
@ -3052,6 +3239,7 @@ bot_equipment_kill_think()
|
|||||||
if ( !IsDefined( target ) )
|
if ( !IsDefined( target ) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
// must be ti
|
||||||
if (isDefined(target.enemyTrigger) && !self HasScriptGoal() && !self.bot_lock_goal)
|
if (isDefined(target.enemyTrigger) && !self HasScriptGoal() && !self.bot_lock_goal)
|
||||||
{
|
{
|
||||||
self SetScriptGoal(target.origin, 64);
|
self SetScriptGoal(target.origin, 64);
|
||||||
@ -3399,8 +3587,7 @@ bot_turret_think()
|
|||||||
{
|
{
|
||||||
wait( 1 );
|
wait( 1 );
|
||||||
|
|
||||||
turrets = level.turrets;
|
turretsKeys = getArrayKeys(level.turrets);
|
||||||
turretsKeys = getArrayKeys(turrets);
|
|
||||||
if ( turretsKeys.size == 0 )
|
if ( turretsKeys.size == 0 )
|
||||||
{
|
{
|
||||||
wait( randomintrange( 3, 5 ) );
|
wait( randomintrange( 3, 5 ) );
|
||||||
@ -3417,7 +3604,7 @@ bot_turret_think()
|
|||||||
turret = undefined;
|
turret = undefined;
|
||||||
for (i = turretsKeys.size - 1; i >= 0; i--)
|
for (i = turretsKeys.size - 1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
tempTurret = turrets[turretsKeys[i]];
|
tempTurret = level.turrets[turretsKeys[i]];
|
||||||
|
|
||||||
if (!isDefined(tempTurret))
|
if (!isDefined(tempTurret))
|
||||||
continue;
|
continue;
|
||||||
@ -3435,6 +3622,7 @@ bot_turret_think()
|
|||||||
|
|
||||||
turret = tempTurret;
|
turret = tempTurret;
|
||||||
}
|
}
|
||||||
|
turretsKeys = undefined;
|
||||||
|
|
||||||
if (!isDefined(turret))
|
if (!isDefined(turret))
|
||||||
continue;
|
continue;
|
||||||
@ -3518,18 +3706,14 @@ bot_box_think()
|
|||||||
box = undefined;
|
box = undefined;
|
||||||
|
|
||||||
dist = 2048*2048;
|
dist = 2048*2048;
|
||||||
ents = GetEntArray("script_model", "classname");
|
|
||||||
|
|
||||||
for ( i = 0; i < ents.size; i++ )
|
for ( i = 0; i < level.vest_boxes.size; i++ )
|
||||||
{
|
{
|
||||||
item = ents[i];
|
item = level.vest_boxes[i];
|
||||||
|
|
||||||
if (!isDefined(item))
|
if (!isDefined(item))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (item.model != "com_deploy_ballistic_vest_friend_world")
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (isDefined(item.damageTaken) && isDefined(item.maxHealth))
|
if (isDefined(item.damageTaken) && isDefined(item.maxHealth))
|
||||||
{
|
{
|
||||||
if (item.damageTaken >= item.maxHealth)
|
if (item.damageTaken >= item.maxHealth)
|
||||||
@ -3730,6 +3914,8 @@ bot_crate_think()
|
|||||||
crate = tempCrate;
|
crate = tempCrate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
crates = undefined;
|
||||||
|
|
||||||
if (!isDefined(crate))
|
if (!isDefined(crate))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -3991,6 +4177,7 @@ bot_target_vehicle()
|
|||||||
|
|
||||||
target = tempTarget;
|
target = tempTarget;
|
||||||
}
|
}
|
||||||
|
targets = undefined;
|
||||||
|
|
||||||
if (!isDefined(target))
|
if (!isDefined(target))
|
||||||
continue;
|
continue;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user