FerBotz (new AI, XCGE release 20)

Search, find and discuss about Mutators!

Re: FerBotz (new AI, release 14)

Postby Higor » Tue Jun 24, 2014 7:10 am

Botz have problems if NexGen handles game start, untick that setting in NexGen and try again.

EDIT:
Got them to fire Jets but they don't drive them at all yet (jet crashes on a wall)... and the bots reappear at the location they initially fired instead of dying :loool:
About the unseen things that were needed to get to that point:
- Implementation of a flight profile system (like weapon profiles).
- Implementation of a fast profile loader and checker.
- Secondary path check and validation to see if the bot should start flying.
- Per profile validation, allows each flight item to see if said air path can be taken.
- Derive the navigation, firing (optional) and aiming (optional) code to the flight profile during said state.

EDIT2:
Remove FerBotz from Packages
Higor
Godlike
 
Posts: 1463
Joined: Sun Mar 04, 2012 6:47 pm

Re: FerBotz (new AI, release 14)

Postby [rev]rato.skt » Wed Jun 25, 2014 12:56 am

New's Bugs
bots locking your movement, and are not creating anything or upgrading...
and they are attacking the crystal of own team.

Directlink
Brazilian Server:
1.utbr.org:2017 all classic + combogib
1.utbr.org:2222 custom bt, jb, ra, siege others
1.utbr.org:8888 1on1
1.utbr.org:5555 nali weaponws 3
User avatar
[rev]rato.skt
Experienced
 
Posts: 115
Joined: Mon Aug 16, 2010 1:09 pm

Re: FerBotz (new AI, release 14)

Postby Higor » Sun Jun 29, 2014 8:33 pm

Siege is broken ATM.

Btw in edit mode we can now see the connections made by a Botz path (after map was reloaded).
BotzPathImg.JPG


EDIT:
Also, early tests of the old Quantum Fighter Jets...
BotzJet.JPG
That's not me flying it.
Higor
Godlike
 
Posts: 1463
Joined: Sun Mar 04, 2012 6:47 pm

Re: FerBotz (new AI, release 15)

Postby Higor » Mon Jul 07, 2014 2:29 am

UPDATED FIRST POST

- Changes from this version:
Fixed botz getting stuck near items (InventorySpot too far from item).
Fixed botz not waiting in elevator if jumps towards it.
Fixed botz resetting move state mid air.
Botz now do path shortening mid air.
Added flight navigation base system.
- Support for JetReplaceG.GhandiJetLauncher (crash if you kill bot while flying)
Botz can do pathfinding on destinations that aren't reachable to it's closest path node.
Fixed log spam in Siege games.
Fixed weapon profiles failing to work with custom versions of supported weapons.
Botz will now be forced to attack/perform tasks instead of trying to get items if map has no items (CTF. AS. MH).
Players VS Botz mutator added!
"MUTATE ADDBOTZLIST INDEX=x" now adds the bot number 'x' in the list.
Major code cleanup, removed useless beta waypoint system.
UPDATED: SETTING UP.TXT
================= NATIVE ONLY:
Fixed air nodes not properly connecting with ground nodes


Note: FerBotz.int was updated to display the settings in Advanced Options and the new mutator, you may want to correct your corresponding INT, EST, DET, etc localization file for these additions.
Higor
Godlike
 
Posts: 1463
Joined: Sun Mar 04, 2012 6:47 pm

Re: FerBotz (new AI, release 15)

Postby Emperor » Thu Jul 10, 2014 5:47 am

Well I'm trying version 15 and it works with custom weapons now but over all without their heaven forbid, Translocator Kills, they aint performing much better then regular bots, intended?
User avatar
Emperor
Average
 
Posts: 51
Joined: Wed May 21, 2008 8:56 pm
Location: Australia
Personal rank: The Almighty Dragon

Re: FerBotz (new AI, release 15)

Postby Higor » Fri Jul 11, 2014 11:30 pm

They don't lead translocator shots because it'd make the game unplayable.
They DO switch to translocator very often in normal games to kill you at short distances if possible.

Edit--------------------------- by papercoffee

Snippet time.
Now it's the pathing loop's turn, which happens on each Botz_NavigBase actor after being loaded.

//********************PathCandidates - Runs an automatic path build routine in runtime
native final function PathCandidates();

Code: Select all
void ABotz_NavigBase::execPathCandidates(FFrame &Stack, RESULT_DECL)
{
   RegisterNames();

   guard(ABotz_NavigBase::execPathCandidates);
   P_FINISH;

   ANavigationPoint *N = Level->NavigationPointList;
   FLOAT dist = MaxDistance * MaxDistance;
   ABotz_NavigBase *B;
   UClass *BaseClass = ABotz_NavigBase::StaticClass();

   if ( N == this )
      N = N->nextNavigationPoint;

   while ( N )
   {
      if ( (FVector(Location - N->Location).SizeSquared() <= dist) && (FindExistingDest(this, N) < 0) && (FindPrunedDest(this, N) < 0) )
      {
         BYTE pathType = 0;
         if ( N->IsA( BaseClass) ) //Logic for NavigBase <> NavigBase
         {
            B = (ABotz_NavigBase*)N;
            if ( CanTakeIncomingPath( B, this) && CanSendOutgoingPath(this, N) ) //This path will check back in it's own PathCandidates function, safe to deny here
            {
               pathType = B->eventIsCandidateTo( this);
               if ( pathType == PM_Normal )
                  pathType = eventOtherIsCandidate( N);
            }
         }
         else //Logic for NavigBase <> NavigationPoint
         {
            B = NULL;
            if ( CanSendOutgoingPath(this, N) )
               pathType = eventOtherIsCandidate( N);
         }

         if ( pathType )
         {
            if (_CountFreeSlots( &Paths[0] ) > ReservePaths )
               eventAddPathHere( this, N, pathType == PM_Forced );
            if ( B == NULL && (_CountFreeSlots( &upstreamPaths[0] ) > ReserveUpstreamPaths) && (FindExistingDest(N, this) < 0)/* && (FindPrunedDest(N,this) < 0) */) //We just make sure we didn't apply a 2 way path here
               eventAddPathHere( N, this, pathType == PM_Forced ); //Removed conditions... because older Navigbases won't connect with newer ones otherwise
         }
      }

      N = N->nextNavigationPoint;
      if ( N == this )
         N = N->nextNavigationPoint;
   }

   eventFinishedPathing();
   unguard;
}


Code: Select all
inline INT _CountFreeSlots( int *Elem)
{
   INT j = 0;
   for ( int i=0 ; i<16 ; i++ )
      if ( *(Elem+i) == -1 )
         j++;
   return j;
}
Higor
Godlike
 
Posts: 1463
Joined: Sun Mar 04, 2012 6:47 pm

Re: FerBotz (new AI, release 15)

Postby papercoffee » Sat Jul 12, 2014 12:17 am

@ Higor ...it's the same for you, please avoid double posts. :wink:
User avatar
papercoffee
Godlike
 
Posts: 7796
Joined: Wed Jul 15, 2009 11:36 am
Location: Cologne, the city with the big cathedral.
Personal rank: coffee addicted !!!

Re: FerBotz (new AI, release 15)

Postby gust » Thu Jul 31, 2014 1:21 pm

Last edited by gust on Fri Aug 01, 2014 9:37 am, edited 1 time in total.
User avatar
gust
Novice
 
Posts: 13
Joined: Thu Jul 31, 2014 1:16 pm

Re: FerBotz (new AI, release 15)

Postby Chamberly » Thu Jul 31, 2014 6:44 pm

Wow Hello gust! :) Nice to see you here!

(Sorry for off topic, he a cool guy haha)

Will take a look at the file. :)
Image
Image
irc.globalgamers.net #uscript
http://irc.lc/globalgamers/uscript
Image
User avatar
Chamberly
Godlike
 
Posts: 1502
Joined: Sat Sep 17, 2011 4:32 pm
Location: Tennessee, USA
Personal rank: Dame. Vandora

Re: FerBotz (new AI, release 15)

Postby Higor » Fri Aug 01, 2014 7:43 pm

I could have sworn the AssaultBackup actor had the new navigation methods implemented, my repository was messed up.

On a different note, added on main Botz repository.
gust:
- AimPoint actor is now spawned during PreBeginPlay(), no need to do sanity checks on it anymore.
- AirState was completely removed for next release, instead i'm using a temporary movetarget to alter destinations or chain movements.
- CombatState's DescribeSpec error was fixed, it was me being dumb enough to call that function in a reference that's NEVER up at that movement (oops).
- PreventDeath check added on Died() function.

Will take a look at the new file...
EDIT: Can you point out the Class/State/Function to look at? I don't use a Diff app :(
Higor
Godlike
 
Posts: 1463
Joined: Sun Mar 04, 2012 6:47 pm

Re: FerBotz (new AI, global release 16)

Postby Higor » Fri Aug 15, 2014 11:23 pm

Updated first post

- V16 changelog:
Botz can now properly roam in DeathMatch and TeamGamePlus (Instagib Ready!).
Increased stability in flight code (not yet usable).
Simplified navigation code.
Enhanced obstruction evasion code during navigation.
Fixed bad export in DM and TGP plugins, won't crash linux clients.
Fixed outdated DM-Oblivion plugin crashing all clients.
Fixed botz disregarding Mutator's PreventDeath.
Fixed bug in 'retreat' combat substate.
Fixed some more log warnings.
Updated Setting up.txt
================= NATIVE ONLY:
Linux build included.
Full source code included.
Higor
Godlike
 
Posts: 1463
Joined: Sun Mar 04, 2012 6:47 pm

Re: FerBotz (new AI, global release 16)

Postby gust » Sat Aug 16, 2014 1:05 pm

User avatar
gust
Novice
 
Posts: 13
Joined: Thu Jul 31, 2014 1:16 pm

Re: FerBotz (new AI, global release 16.1)

Postby Higor » Sat Aug 16, 2014 10:33 pm

Updated first post

- Critical update changelog
Fixed bug making botz attempt to translocate without translocator.
Fixed debug actors being visible showing up on normal games.
Included updated SiegeIV profile and lots of map navigation files.
================= NATIVE ONLY:
High jump and high transloc nodes now do properly path generation.
Fixed error in Nav file loading.


=================================
gust

No longer needed:
Code: Select all
               if( aN[1] != None )
               {
                  aN[1].describeSpec( aN[0].Paths[ i[1] ], aS, aE, h, k);
               }


AimPoint extra sanity checks (spawned in Botz's PreBeginPlay)
Higor
Godlike
 
Posts: 1463
Joined: Sun Mar 04, 2012 6:47 pm

Re: FerBotz (new AI, global release 16.1)

Postby gust » Sun Aug 17, 2014 12:02 pm

User avatar
gust
Novice
 
Posts: 13
Joined: Thu Jul 31, 2014 1:16 pm

Re: FerBotz (new AI, global release 17)

Postby Higor » Tue Oct 14, 2014 7:11 am

Updated first post

- Changes from this version:
Updated client interface to Ferbotz_cl_3 >>>>>>>> CHECK YOUR BOTZDEFAULT.INI FOR CL_2 REFERENCES
Dummy pawn creation should no longer cause issues with player count in servers (credits to Gust).
Fixed Bug in path cost adder, loooots of log spam removed.
Fixed bots getting stuck on pickup locations.
Botz plugins may now select which AI state botz should use.
Fixed Siege plugin, following players supported now.
Fixed bots resetting state while traversing between very distant points (ty Red_fist).
Fixed bug causing bots to fall when jumping between very thin platforms.
================= NATIVE ONLY:
Fixed bug causing base Botz nodes to connect to other high, unreachable nodes.
Basic Botz nodes now respect each other's MaxDistance when connecting each other, makes simple one-ways possible.
Moved more functions to native code.



EXTRA NOTES:

Replaced ThisOrThat function with a native operator.
This allows very simple conditional multi-object operations, and is a skip expression, meaning that if A exists B never gets executed.
Example:
- Target = Enemy Or OldEnemy Or FindEnemy();
This sets the target to Enemy if exists, else to OldEnemy, else to FindEnemy().

Uscript:
Code: Select all
//***************************** << - Returns B if A doesn't exist
native static final operator(22) Actor Or (Actor A, skip Actor B);


Native:
Code: Select all
void ABotz::execOr_ActorActor(FFrame &Stack, RESULT_DECL)
{
   P_GET_ACTOR(A);
   P_GET_SKIP_OFFSET(W);
   if( !A )
   {
      P_GET_ACTOR(B);
      *(AActor**)Result = B;
      Stack.Code++; //SAME AS P_FINISH
   }
   else
   {
      *(AActor**)Result = A;
      Stack.Code += W;
   }
}


You may check these out on the source code.
Higor
Godlike
 
Posts: 1463
Joined: Sun Mar 04, 2012 6:47 pm

PreviousNext

Return to Mutators

Who is online

Users browsing this forum: No registered users and 1 guest