Forum

Getting Frikbot to shoot an entity

Discuss Artificial Intelligence and Bot programming.

Moderator: InsideQC Admins

Getting Frikbot to shoot an entity

Postby CocoT » Thu Jul 05, 2007 10:06 pm

Hi! :)
I'm playing around with a little something here and was wondering if there was an easy way to make a Frikbot shoot an entity that is not a player or a monster. Basically, I'm making the player create an entity and would like bots to shoot at it (while shooting at each other and/or the player). I've tried a couple of things but can't seem to make it work. Any suggestions? :)
Neurotic Conversions - New location: Update your bookmarks!
User avatar
CocoT
 
Posts: 695
Joined: Tue Dec 14, 2004 5:39 pm
Location: Belly-Gum

Postby Orion » Thu Jul 05, 2007 11:45 pm

Yes! :)

You can do it pretty easily, search fot bot_dodge_stuff() at bot_fight.qc and add this in the (else) after (if (coop)) statement:

Code: Select all
local entity head;
head = findradius(self.origin, 9999);
while(head)
{
   if(head.classname == "something")
   {
      if(head.health > 0)
      {
         tsz = bot_size_player(head) + vlen(head.origin - self.origin) * 0.5;
         if (tsz < foesz)
         {
            if (fov(head) || head.b_sound > time || self.b_skill == 3)
            {
               if (fisible(head))
               {
                  self.enemy = head;
                  foesz = tsz;
               }
            }
         }
      }
   }
   head = head.chain;
}
User avatar
Orion
 
Posts: 476
Joined: Fri Jan 12, 2007 6:32 pm
Location: Brazil

Postby Electro » Fri Jul 06, 2007 12:11 am

If you really want to shove things down its throat you could always just do:

self.enemy = targetentity;

at the end of BotAI

BotAI is called pretty often, so if it's an entity you already know.. should be fine, but you don't want to be doing a find here methinks.

Really depends on what you're using it for! :)
Benjamin Darling
http://www.bendarling.net/

Reflex - In development competitive arena fps combining modern tech with the speed, precision and freedom of 90's shooters.
http://www.reflexfps.net/
Electro
 
Posts: 312
Joined: Wed Dec 29, 2004 11:25 pm
Location: Brisbane, Australia

Postby CocoT » Fri Jul 06, 2007 9:38 am

Great! Thanks a lot, guys, it works fine now :D
Neurotic Conversions - New location: Update your bookmarks!
User avatar
CocoT
 
Posts: 695
Joined: Tue Dec 14, 2004 5:39 pm
Location: Belly-Gum

Postby FrikaC » Fri Jul 06, 2007 2:25 pm

Wait. FrikBot....shooting entities....I don't see how that fits with either InfraRed or SpaceWalk.....
FrikaC
Site Admin
 
Posts: 1026
Joined: Fri Oct 08, 2004 11:19 pm

Postby Entar » Fri Jul 06, 2007 3:09 pm

Who said he's working on one of those two? CocoT seems to have a certain aptitude for working on multiple mods at a time... dum dum DUM!
User avatar
Entar
 
Posts: 439
Joined: Fri Nov 05, 2004 7:27 pm
Location: At my computer

Postby CocoT » Fri Jul 06, 2007 8:00 pm

:shock:

...

/me tiptoes out of the thread...

... but trips on his own screenshot

Image

... ouch!
Neurotic Conversions - New location: Update your bookmarks!
User avatar
CocoT
 
Posts: 695
Joined: Tue Dec 14, 2004 5:39 pm
Location: Belly-Gum

Re: Getting Frikbot to shoot an entity

Postby redrum » Tue Aug 05, 2014 1:51 am

I tried implementing the above code, but get this error message:

INDIRECT 13454(FOE)ENTITY 0 13077(_NEXT)._NEXT 13454(FOE)
BOT_FIGHT.QC : BOT_DODGE_STUFF
BOT_AI.QC : BOTAI
BOT_PHYS.QC : POSTPHYSICS
(NO FUNCTION)
RUNAWAY LOOP ERROR

The code compiles with no warnings.
Welcome to the Overlook Hotel: The-Overlook-Hotel.game-server.cc
User avatar
redrum
 
Posts: 410
Joined: Wed Mar 28, 2007 11:35 pm
Location: Long Island, New York

Re: Getting Frikbot to shoot an entity

Postby r00k » Tue Aug 05, 2014 3:38 am

BotAI is called pretty often, so if it's an entity you already know.. should be fine, but you don't want to be doing a find here methinks.

Try Electro's method instead?

or wrap a counter there instead, like if c > 256 break;
r00k
 
Posts: 1108
Joined: Sat Nov 13, 2004 10:39 pm

Re: Getting Frikbot to shoot an entity

Postby redrum » Tue Aug 05, 2014 1:37 pm

Yea...that was getting errors as well. I tried that first. I have no idea what you said after that
or wrap a counter there instead, like if c > 256 break;
Welcome to the Overlook Hotel: The-Overlook-Hotel.game-server.cc
User avatar
redrum
 
Posts: 410
Joined: Wed Mar 28, 2007 11:35 pm
Location: Long Island, New York

Re: Getting Frikbot to shoot an entity

Postby redrum » Wed Aug 06, 2014 1:47 pm

any other help?
Welcome to the Overlook Hotel: The-Overlook-Hotel.game-server.cc
User avatar
redrum
 
Posts: 410
Joined: Wed Mar 28, 2007 11:35 pm
Location: Long Island, New York

Re: Getting Frikbot to shoot an entity

Postby Spike » Wed Aug 06, 2014 4:18 pm

make sure you are not recursively calling findradius. it can potentially mess up the .next chain resulting in infinite loops (at least in dp where the order isn't guarenteed, but its a potential problem in any engine).
Spike
 
Posts: 2881
Joined: Fri Nov 05, 2004 3:12 am
Location: UK

Re: Getting Frikbot to shoot an entity

Postby redrum » Wed Aug 06, 2014 9:06 pm

Thx Spike. I'll look into it.
Welcome to the Overlook Hotel: The-Overlook-Hotel.game-server.cc
User avatar
redrum
 
Posts: 410
Joined: Wed Mar 28, 2007 11:35 pm
Location: Long Island, New York

Re: Getting Frikbot to shoot an entity

Postby redrum » Fri Aug 08, 2014 8:27 pm

When using Electros method of adding self.enemy = targetentity; at the end of BotAI().

I get an error while compiling: "Unknown value targetentity" and "type mismatch for = (pointer and _variant)
Welcome to the Overlook Hotel: The-Overlook-Hotel.game-server.cc
User avatar
redrum
 
Posts: 410
Joined: Wed Mar 28, 2007 11:35 pm
Location: Long Island, New York

Re: Getting Frikbot to shoot an entity

Postby r00k » Mon Aug 11, 2014 9:50 pm

i think he means target1, target2, target3, self.enemy etc. for targetentity.

ok look up the function

priority_for_thing

add the classname and a priority to that function, might help.
r00k
 
Posts: 1108
Joined: Sat Nov 13, 2004 10:39 pm


Return to Artificial Intelligence

Who is online

Users browsing this forum: No registered users and 1 guest