UPD:
Yep, this script crashing. Well, lets look at this...
Ah! Well. I know whats up...
Code: Select all
Void SpawnBotPlayer(Integer _Clan, Integer _Armor, CSmLandmark _BotSpawn, Integer _Time, Integer _Difficulty)
{
declare BotPlayer = CreateBotPlayer(ModelId, _Clan, _Armor, _BotSpawn, _Time);
assert (BotPlayer != Null && BotPlayer.Driver != Null);
BotPlayer.Driver.Behaviour = CSmPlayerDriver::ESmDriverBehaviour::Patrol;
BotPlayer.Driver.ShootPeriodMin = C_BotShootPeriodMin;
BotPlayer.Driver.ShootPeriodMax = C_BotShootPeriodMax;
BotPlayer.Driver.Accuracy = C_BotAccuracy;
BotPlayer.Driver.ReactionTime = C_BotReactionTime;
BotPlayer.Driver.RocketAnticipation = C_BotRocketAnticipation;
BotPlayer.Driver.DisengageDistance = C_BotDisengageDistance;
BotPlayer.Driver.AggroRadius = C_BotAggroRadius;
BotPlayer.EnergyLevel = 0.;
BotPlayer.SpeedPower = C_Levels_SpeedPower[_Difficulty];
}

Code: Select all
assert (BotPlayer != Null && BotPlayer.Driver != Null);

Well, I have something like this:
Code: Select all
Void SpawnBotPlayer(Integer _Clan, Integer _Armor, CSmLandmark _BotSpawn, Integer _Time, Integer _Difficulty)
{
declare BotPlayer = CreateBotPlayer(ModelId, _Clan, _Armor, _BotSpawn, _Time);
if (BotPlayer != Null && BotPlayer.Driver != Null)
{
BotPlayer.Driver.Behaviour = CSmPlayerDriver::ESmDriverBehaviour::Patrol;
BotPlayer.Driver.ShootPeriodMin = C_BotShootPeriodMin;
BotPlayer.Driver.ShootPeriodMax = C_BotShootPeriodMax;
BotPlayer.Driver.Accuracy = C_BotAccuracy;
BotPlayer.Driver.ReactionTime = C_BotReactionTime;
BotPlayer.Driver.RocketAnticipation = C_BotRocketAnticipation;
BotPlayer.Driver.DisengageDistance = C_BotDisengageDistance;
BotPlayer.Driver.AggroRadius = C_BotAggroRadius;
BotPlayer.EnergyLevel = 0.;
BotPlayer.SpeedPower = C_Levels_SpeedPower[_Difficulty];
}
}