[page=Introduction]
Hello!
Today, I'll be sharing with you a code I made for monsters to fight each other. Wether you like the Stroggos, or hate them, it'll be fun!
[page=The Code.]
Here we go!
Go to FindTarget. Above it, add this new function.
edict_t *FindMonster (edict_t *self)
{
edict_t *ent = NULL;
edict_t *best = NULL;
while ((ent = findradius(ent, self->s.origin, 1024)) != NULL)
{
if (ent == self)
continue;
if (!(ent->svflags & SVF_MONSTER))
continue;
if (!ent->health)
continue;
if (ent->health < 1)
continue;
if (!visible(self, ent))
continue;
if (!best)
{
best = ent;
continue;
}
if (ent->max_health <= best->max_health)
continue;
best = ent;
}
return best;
}
That will look for monsters. (Similar to the Medic's check for deaddies ;))
Now, go to FindTarget, change the beginning to this:
qboolean FindTarget (edict_t *self)
{
edict_t *client;
qboolean heardit;
int r;
edict_t *monster;
if (self->monsterinfo.aiflags & AI_GOOD_GUY)
{
if (self->goalentity && self->goalentity->inuse && self->goalentity->classname)
{
if (strcmp(self->goalentity->classname, "target_actor") == 0)
return false;
}
return false;
}
//Look for monsters!
monster = FindMonster(self);
if (monster)
{
self->enemy = monster;
FoundTarget (self);
return true;
}
(the rest......)
..Have fun!
You can just run around them and then they shoot each-other. Not saying that is pointless.