Re: SmartStockBots mutator
Posted: Fri Nov 11, 2022 10:29 pm
interesting.. but id rather not be dependent on XC_Engine tbh. but good to know. thanks
Updated in first post: viewtopic.php?f=7&t=1540016. FixCTFReturnOnlyAlternatePaths
- Fix select AlternatePaths on map with bReturnOnly AlternatePaths.
As result:
- bots not do dumb runs to inproper spot.
Work only for CTFGame and subclasses of it. Require AlternatePath bReturnOnly actors on map.
17. AvoidMoveToDead
- Remove MoveTarget if it is dead pawn.
As result:
- bots not do dumb runs to invisible dead enemies.
Mind explaining a bit more about #17? Maybe I haven't been paying attention.Buggie wrote: ↑Sun Jan 15, 2023 4:54 am New features:16. FixCTFReturnOnlyAlternatePaths
- Fix select AlternatePaths on map with bReturnOnly AlternatePaths.
As result:
- bots not do dumb runs to inproper spot.
Work only for CTFGame and subclasses of it. Require AlternatePath bReturnOnly actors on map.
17. AvoidMoveToDead
- Remove MoveTarget if it is dead pawn.
As result:
- bots not do dumb runs to invisible dead enemies.
Code: Select all
state FallingState
{
ignores Bump, Hitwall, HearNoise, WarnTarget;
function Landed(vector HitNormal)
{
local float landVol;
log("DBG:" @ AnimSequence @ GetAnimGroup(AnimSequence));
if ( GetAnimGroup(AnimSequence) == 'Dodge' )
{
if (Velocity.Z <= -1100)
{
if ( (Velocity.Z < -2000) && (ReducedDamageType != 'All') )
{
health = -1000; //make sure gibs
Died(None, 'Fell', Location);
}
else if ( Role == ROLE_Authority )
TakeDamage(-0.15 * (Velocity.Z + 1050), None, Location, vect(0,0,0), 'Fell');
}
landVol = Velocity.Z/JumpZ;
landVol = 0.008 * Mass * landVol * landVol;
if ( !FootRegion.Zone.bWaterZone )
PlaySound(Land, SLOT_Interact, FMin(20, landVol));
GotoState('FallingState', 'FinishDodge');
}
else
Super.Landed(HitNormal);
}
FinishDodge:
log("Start wait finish dodge Anim");
FinishAnim();
log("End wait finish dodge Anim");
bCanDuck = true;
Goto('Done');
}
GotoState('FallingState', 'FinishDodge');
Code: Select all
FinishDodge:
log("Start wait finish dodge Anim");
FinishAnim();
log("End wait finish dodge Anim");
bCanDuck = true;
Goto('Done');
Code: Select all
function AnimEnd()
{
PlayInAir();
}
Code: Select all
function PlayInAir()
{
BaseEyeHeight = Default.BaseEyeHeight;
TweenAnim('InAir', 0.4);
}
Code: Select all
// try fix bug with stuck in air OldModels.OldModelssktrooperbot
if (Bot.Physics == PHYS_Walking && Bot.Velocity.Z == 0 && Bot.AnimSequence == 'InAir' && !Bot.bAnimFinished) {
Bot.bAnimFinished = true; // break wait in FinsihAnim
}
if ( GetAnimGroup(AnimSequence) == 'Dodge' )
if ( GetAnimGroup(AnimSequence) == 'Shielded' )
if
never run, so fall in loop not happen. But other related code too not run.Bot.Physics == PHYS_Walking && Bot.Velocity.Z == 0 && Bot.AnimSequence == 'InAir'
Automatically merged
Fixed bug with stuck bot skaarj: viewtopic.php?f=12&t=15653Local use:
After each load UT use Mod menu for activate loader. After that you can play any map (include campaign ladder) with this mutator (except network play on other servers OFC)
Not activate it if wanna play on ACE servers - ACE kick you.
You need reload UT if wanna play on ACE servers if at least once activate loader during this UT run.
Update in first post: https://ut99.org/viewtopic.php?t=1540018. ClearStateOnDeath
- On death bot state cleared. Currently it include some vars for movement code..
As result:
- bots stop try sometimes do dumb run into wall or deadly zone after respawn.
Code: Select all
ScriptWarning: SSBClearBotOnDeath CTF-Face-SE.SSBClearBotOnDeath0 (Function Engine.PlayerPawn.TeamMessage:000A) Accessed None 'Player'
- Fix fall from edge/into hole in some case for dodge.19. ReportEnemyFlagCarrierLocation
- When bot report about "Enemy flag carrier is here." appear second message in form "Enemy flag carrier is here: %Location Name%"
As result:
- bots report to you where actually flag carrier is. Not where they be when see it.