await BaseScript.Delay(msec);
also, a random example of random spawns (in an onClientGameTypeStart
event handler):
// force navmesh to be loaded so we can get safe ped coords
AddNavmeshRequiredRegion(1952.271f, 3887.118f, 1500.0f);
while (!IsNavmeshLoadedInArea(1952.271f, 3887.118f, 0.0f, 2052.271f, 4287.118f, 100.0f))
{
await Delay(0);
}
// set up spawning
Exports["spawnmanager"].setAutoSpawn(true);
Exports["spawnmanager"].setAutoSpawnCallback(new Action(() =>
{
var rnd = new Random();
bool success = false;
Vector3 pos = Vector3.Zero;
int tries = 0;
do
{
var randX = rnd.Next(1142, 2117);
var randY = rnd.Next(3387, 4323);
var randZ = rnd.Next(10, 60);
success = GetSafeCoordForPed(randX, randY, randZ, false, ref pos, 16);
++tries;
if (tries > 10)
{
pos = Vector3.Zero;
break;
}
} while (!success);
Exports["spawnmanager"].spawnPlayer(new
{
x = pos.X,
y = pos.Y,
z = pos.Z,
heading = 189.5f,
model = "mp_m_freemode_01"
}, new Action(() =>
{
PlayerSpawned?.Invoke();
}));
}));
Exports["spawnmanager"].forceRespawn();