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()
|
||||
{
|
||||
level.bw_VERSION = "1.0.0";
|
||||
level.bw_VERSION = "2.0.1";
|
||||
|
||||
if(getDvar("bots_main") == "")
|
||||
setDvar("bots_main", true);
|
||||
@ -161,6 +161,7 @@ init()
|
||||
level thread addNotifyOnAirdrops();
|
||||
level thread watchScrabler();
|
||||
level thread watchRadar();
|
||||
level thread auditModels();
|
||||
|
||||
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
|
||||
*/
|
||||
|
@ -2941,7 +2941,7 @@ bot_equipment_kill_think()
|
||||
dist = 512*512;
|
||||
target = undefined;
|
||||
|
||||
// check legacy nades
|
||||
// check legacy nades, c4 and claymores
|
||||
for ( i = 0; i < grenades.size; i++ )
|
||||
{
|
||||
item = grenades[i];
|
||||
@ -2952,10 +2952,10 @@ bot_equipment_kill_think()
|
||||
if ( !IsDefined( item.name ) )
|
||||
continue;
|
||||
|
||||
if ( IsDefined( item.owner ) && ((level.teamBased && item.owner.team == self.team) || item.owner == self) )
|
||||
if (item.name != "c4_mp" && item.name != "claymore_mp")
|
||||
continue;
|
||||
|
||||
if (item.name != "c4_mp" && item.name != "claymore_mp")
|
||||
if ( IsDefined( item.owner ) && ((level.teamBased && item.owner.team == self.team) || item.owner == self) )
|
||||
continue;
|
||||
|
||||
if(!hasSitrep && !bulletTracePassed(myEye, item.origin, false, item))
|
||||
@ -2971,7 +2971,9 @@ bot_equipment_kill_think()
|
||||
}
|
||||
}
|
||||
|
||||
// check for TIs
|
||||
grenades = undefined; // clean up, reduces child1 vars
|
||||
|
||||
// check for player stuff, tis and throphys and radars
|
||||
if ( !IsDefined( target ) )
|
||||
{
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
@ -2987,43 +2989,228 @@ bot_equipment_kill_think()
|
||||
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 )
|
||||
// check for thorphys
|
||||
if (isDefined(player.trophyArray))
|
||||
{
|
||||
target = ti;
|
||||
for (h = 0; h < player.trophyArray.size; h++)
|
||||
{
|
||||
item = player.trophyArray[h];
|
||||
|
||||
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 iw5 nades
|
||||
// check for ti
|
||||
if (!isDefined(target))
|
||||
{
|
||||
ents = GetEntArray("script_model", "classname");
|
||||
|
||||
for ( i = 0; i < ents.size; i++ )
|
||||
for (h = 0; h < 1; h++)
|
||||
{
|
||||
item = ents[i];
|
||||
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;
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// check for jammers
|
||||
if ( !IsDefined( target ) )
|
||||
{
|
||||
for (i = 0; i < level.scramblers.size; i++)
|
||||
{
|
||||
item = level.scramblers[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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// check for mines
|
||||
if ( !IsDefined( target ) )
|
||||
{
|
||||
for (i = 0; i < level.mines.size; i++)
|
||||
{
|
||||
item = level.mines[i];
|
||||
|
||||
if (!isDefined(item))
|
||||
continue;
|
||||
|
||||
if (isDefined(item.damageTaken) && isDefined(item.maxHealth))
|
||||
@ -3052,6 +3239,7 @@ bot_equipment_kill_think()
|
||||
if ( !IsDefined( target ) )
|
||||
continue;
|
||||
|
||||
// must be ti
|
||||
if (isDefined(target.enemyTrigger) && !self HasScriptGoal() && !self.bot_lock_goal)
|
||||
{
|
||||
self SetScriptGoal(target.origin, 64);
|
||||
@ -3399,8 +3587,7 @@ bot_turret_think()
|
||||
{
|
||||
wait( 1 );
|
||||
|
||||
turrets = level.turrets;
|
||||
turretsKeys = getArrayKeys(turrets);
|
||||
turretsKeys = getArrayKeys(level.turrets);
|
||||
if ( turretsKeys.size == 0 )
|
||||
{
|
||||
wait( randomintrange( 3, 5 ) );
|
||||
@ -3417,7 +3604,7 @@ bot_turret_think()
|
||||
turret = undefined;
|
||||
for (i = turretsKeys.size - 1; i >= 0; i--)
|
||||
{
|
||||
tempTurret = turrets[turretsKeys[i]];
|
||||
tempTurret = level.turrets[turretsKeys[i]];
|
||||
|
||||
if (!isDefined(tempTurret))
|
||||
continue;
|
||||
@ -3435,6 +3622,7 @@ bot_turret_think()
|
||||
|
||||
turret = tempTurret;
|
||||
}
|
||||
turretsKeys = undefined;
|
||||
|
||||
if (!isDefined(turret))
|
||||
continue;
|
||||
@ -3518,18 +3706,14 @@ bot_box_think()
|
||||
box = undefined;
|
||||
|
||||
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))
|
||||
continue;
|
||||
|
||||
if (item.model != "com_deploy_ballistic_vest_friend_world")
|
||||
continue;
|
||||
|
||||
if (isDefined(item.damageTaken) && isDefined(item.maxHealth))
|
||||
{
|
||||
if (item.damageTaken >= item.maxHealth)
|
||||
@ -3730,6 +3914,8 @@ bot_crate_think()
|
||||
crate = tempCrate;
|
||||
}
|
||||
|
||||
crates = undefined;
|
||||
|
||||
if (!isDefined(crate))
|
||||
continue;
|
||||
|
||||
@ -3991,6 +4177,7 @@ bot_target_vehicle()
|
||||
|
||||
target = tempTarget;
|
||||
}
|
||||
targets = undefined;
|
||||
|
||||
if (!isDefined(target))
|
||||
continue;
|
||||
|
Loading…
x
Reference in New Issue
Block a user