Getting Frikbot to shoot an entity
Getting Frikbot to shoot an entity
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?
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!
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:
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;
}
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!
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/
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/
Great! Thanks a lot, guys, it works fine now
Neurotic Conversions - New location: Update your bookmarks!
...
/me tiptoes out of the thread...
... but trips on his own screenshot
... ouch!
Neurotic Conversions - New location: Update your bookmarks!
Re: Getting Frikbot to shoot an entity
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.
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
Re: Getting Frikbot to shoot an entity
Try Electro's method instead?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.
or wrap a counter there instead, like if c > 256 break;
Re: Getting Frikbot to shoot an entity
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
Re: Getting Frikbot to shoot an entity
any other help?
Welcome to the Overlook Hotel: The-Overlook-Hotel.game-server.cc
Re: Getting Frikbot to shoot an entity
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).
Re: Getting Frikbot to shoot an entity
Thx Spike. I'll look into it.
Welcome to the Overlook Hotel: The-Overlook-Hotel.game-server.cc
Re: Getting Frikbot to shoot an entity
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)
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
Re: Getting Frikbot to shoot an entity
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.
ok look up the function
priority_for_thing
add the classname and a priority to that function, might help.