void Bot::AttachToUser (void) { // SyPB Pro P.29 - small change if (GetGameMod () != 0) return; /* // SyPB Pro P.15 if (!FNullEnt (m_moveTargetEntity)) return; */ // this function forces bot to join to user Array <edict_t *> foundUsers; // search friends near us for (int i = 0; i < engine->GetMaxClients (); i++) { if (!(g_clients[i].flags & CFLAG_USED) || !(g_clients[i].flags & CFLAG_ALIVE) || g_clients[i].team != GetTeam (GetEntity ()) || g_clients[i].ent == GetEntity ()) continue; if (EntityIsVisible (g_clients[i].origin) && !IsValidBot (g_clients[i].ent)) foundUsers.Push (g_clients[i].ent); } if (foundUsers.IsEmpty ()) return; m_targetEntity = foundUsers.GetRandomElement (); ChatterMessage (Chatter_LeadOnSir); PushTask (TASK_FOLLOWUSER, TASKPRI_FOLLOWUSER, -1, 0.0, true); }
Bot *BotControl::FindOneValidAliveBot (void) { // this function finds one bot, alive bot :) Array <int> foundBots; for (int i = 0; i < engine->GetMaxClients (); i++) { if (m_bots[i] != null && IsAlive (m_bots[i]->GetEntity ())) foundBots.Push (i); } if (!foundBots.IsEmpty ()) return m_bots[foundBots.GetRandomElement ()]; return null; }