diff --git a/userraw/maps/mp/bots/_bot.gsc b/userraw/maps/mp/bots/_bot.gsc index 94814e5..b3003a2 100644 --- a/userraw/maps/mp/bots/_bot.gsc +++ b/userraw/maps/mp/bots/_bot.gsc @@ -686,6 +686,8 @@ addBots() { level endon("game_ended"); + bot_wait_for_host(); + for(;;) { wait 1.5; diff --git a/userraw/maps/mp/bots/_bot_utility.gsc b/userraw/maps/mp/bots/_bot_utility.gsc index 9008eaf..4d09dd8 100644 --- a/userraw/maps/mp/bots/_bot_utility.gsc +++ b/userraw/maps/mp/bots/_bot_utility.gsc @@ -530,6 +530,64 @@ notifyAfterDelay(delay, not) self notify(not); } +/* + Gets a player who is host +*/ +GetHostPlayer() +{ + for (i = 0; i < level.player.size; i++) + { + player = level.players[i]; + + if (!player is_host()) + continue; + + return player; + } + + return undefined; +} + +/* + Waits for a host player +*/ +bot_wait_for_host() +{ + host = undefined; + + for(i = 0; i < 100; i++) + { + host = GetHostPlayer(); + + if(isDefined(host)) + break; + + wait 0.05; + } + + if(!isDefined(host)) + return; + + for(i = 0; i < 100; i++) + { + if(IsDefined( host.pers[ "team" ] )) + break; + + wait 0.05; + } + + if(!IsDefined( host.pers[ "team" ] )) + return; + + for(i = 0; i < 100; i++) + { + if(host.pers[ "team" ] == "allies" || host.pers[ "team" ] == "axis") + break; + + wait 0.05; + } +} + /* Pezbot's line sphere intersection. http://paulbourke.net/geometry/circlesphere/raysphere.c