- Code: Select all
Change bSuperAim to false and botz's will actually turn instead of snapping.
UTNerd24 wrote:I hope one day you'll find a way to replace the botlist so that It could be possible to customize them from the in-game menus rather than having to summon them through the console.
UTNerd24 wrote:Loving it so far! I hope one day you'll find a way to replace the botlist so that It could be possible to customize them from the in-game menus rather than having to summon them through the console.
Chamberly wrote:UTNerd24 wrote:Loving it so far! I hope one day you'll find a way to replace the botlist so that It could be possible to customize them from the in-game menus rather than having to summon them through the console.
You can also customize it in the botz ini as well, if you didn't check.
sektor2111 wrote:MBot is a Bot child not a Player, btw...
Else last version released if I well recall contains a more enhanced INT file allowing some BOT access in "Preferences" which UT doesn't have in default config.
demoix wrote:I noticed that I need a custom engine called XC_Engine v19. But I tried to find it over all internet but can't find it.
//Change where the bot is attracted to based on objective (good for Defering to navigation points)
function Actor ModifyAttraction( Botz Seeker, Actor PathTarget, out byte ForceTarget)
function ModifyPathCosts( Botz Seeker); //Called during route-mapping, allows modification of 'Cost' in order to modify route weights
function Actor SuggestAttack( Botz CheckFor, optional bool bOnlyTest)
local bool bJustSpawned;
//This is set to a low value everytime the bot respawns, used to detect respawns
if ( CheckFor.RespawnTime < 5 )
CheckFor.RespawnTime = Level.TimeSeconds;
bJustSpawned = true;
//********* Attempt to map the path network - ModifyPathCosts called during MapRoutes
if ( !CheckFor.LocateStartAnchor() )
CheckFor.MapRoutes( CheckFor.StartAnchor, CheckFor.CollisionRadius, CheckFor.CollisionHeight, 0, 'GlobalModifyCost');
//********* Validate this objective - can be modified here (kept if True)
//********* If primary objective isn't valid, attempt to use ALT objective if there is one
while ( CheckFor.GameTarget != None )
if ( ValidateObjective( CheckFor) )
CheckFor.GameTarget = CheckFor.GameTargetAlt;
CheckFor.GameTargetAlt = None;
//********* Find new objectives
return SelectObjective( CheckFor, bJustSpawned);
function bool ValidateObjective( Botz CheckFor)
local Inventory Inv;
local NavigationPoint N;
local Pawn P;
if ( CheckFor.GameTarget == None || CheckFor.bDeleteMe )
if ( Inventory(CheckFor.GameTarget) != None ) return ValidateObjInventory( CheckFor, Inventory(CheckFor.GameTarget) );
if ( NavigationPoint(CheckFor.GameTarget) != None ) return ValidateObjNavigation( CheckFor, NavigationPoint(CheckFor.GameTarget) );
if ( Pawn(CheckFor.GameTarget) != None ) return ValidateObjPawn( CheckFor, Pawn(CheckFor.GameTarget) );
return false; //Don't validate other objectives
/* Precaucion: the higher this is the more likely the bot is to take detours to find items
- 1.0 is normal-ish behaviour
- 0.0 means the bot will almost ignore all items
- 2.0 or above mean the bot will try to reach the objective with armor and more than one weapon
function Actor SelectObjective( Botz CheckFor, bool bJustSpawned)
local Actor Result;
if ( bJustSpawned )
CheckFor.Precaucion = 1 - CheckFor.Aggresiveness * FRand();
Result = FindNearbyWeapon( CheckFor, 1500);
if ( Result != None )
//'Or' is a skip operator, if parameter 1 exists, paramater 2 code isn't executed so don't worry about execution speed
if ( CheckFor.Orders == 'Attack' )
CheckFor.Precaucion = 0.6 + FRand() * 0.3;
Result = FindNewItem(CheckFor) Or FindRandomDest(CheckFor);
else if ( CheckFor.Orders == 'Defend' )
CheckFor.Precaucion = 1.0 + FRand() - int(CheckFor.Weapon != None && CheckFor.Weapon.AiRating > 0.5);
if ( (CheckFor.ArmaFavorita != None) && (FRand() < 0.1) && (CheckFor.FindInventoryType(CheckFor.ArmaFavorita) == None) )
Result = FindNearestItemFamily( CheckFor, CheckFor.ArmaFavorita, 5000);
Result = Result Or FindAmbushPoint(CheckFor) Or FindNearbyWeapon(CheckFor) Or FindNewItem(CheckFor);
CheckFor.Precaucion = 1.0 + FRand();
Result = FindNewItem(CheckFor) Or FindAmbushPoint(CheckFor) Or FindRandomDest(CheckFor);
Users browsing this forum: No registered users and 1 guest