enum SpawnLocation
{
Spawnname[256],
Float:SpawnX,
Float:SpawnY,
Float:SpawnZ,
Float:SpawnAngle
}
new const TruckerSpawn[][SpawnLocation] =
{
// Positions, (Spawnname, X, Y, Z and Facing Angle)
//{"Tierra Robada",-1278.0699,2709.5935,50.2663,299.5070},
//{"Shady Creeks",-1561.4307,-2733.6567,48.7435,236.4525},
{"UNKOWN Spawn_Name", 2269.3945,-2343.9868,13.5469,314.4856}
};
//regular code
new rand = random(sizeof(TruckerSpawn));
SetPlayerPos(playerid, TruckerSpawn[rand][SpawnX], TruckerSpawn[rand][SpawnY], TruckerSpawn[rand][SpawnZ]);
SetPlayerFacingAngle(playerid, TruckerSpawn[rand][SpawnAngle]);
SetCameraBehindPlayer(playerid);
// code added
static last,current;
while( last == current)
{
current = random(sizeof(TruckerSpawn));
}
SendClientMessageToAll(-1, TruckerSpawn[current]);
last = current;
static last,current;
while( last == current)
{
current = random(sizeof(TruckerSpawn));
}
SetPlayerPos(playerid, TruckerSpawn[current][SpawnX], TruckerSpawn[current][SpawnY], TruckerSpawn[current][SpawnZ]);
SetPlayerFacingAngle(playerid, TruckerSpawn[current][SpawnAngle]);
SetCameraBehindPlayer(playerid);
last = current;
static last[MAX_PLAYERS],current[MAX_PLAYERS];
while( last[playerid] == current[playerid])
{
current[playerid] = random(sizeof(TruckerSpawn));
}
SetPlayerPos(playerid, TruckerSpawn[current[playerid]][SpawnX], TruckerSpawn[current[playerid]][SpawnY], TruckerSpawn[current[playerid]][SpawnZ]);
SetPlayerFacingAngle(playerid, TruckerSpawn[current[playerid]][SpawnAngle]);
SetCameraBehindPlayer(playerid);
last[playerid] = current[playerid];
|
Like this
PHP код:
NOTE:Iit might not work for a per player purpose for that you need to make a per player array of current and last. |
|
What about second one?(Also i dont have any problem with first one)
|
new rand = random(sizeof(TruckerSpawn));
static last[MAX_PLAYERS],current[MAX_PLAYERS];
while( last[playerid] == current[playerid])
{
current[playerid] = random(sizeof(TruckerSpawn));
}
SetPlayerPos(playerid, TruckerSpawn[current[playerid]][SpawnX], TruckerSpawn[current[playerid]][SpawnY], TruckerSpawn[current[playerid]][SpawnZ]);
SetPlayerFacingAngle(playerid, TruckerSpawn[current[playerid]][SpawnAngle]);
SetCameraBehindPlayer(playerid);
last[playerid] = current[playerid];
new rand = random(sizeof(TruckerSpawn));
static last[MAX_PLAYERS],current[MAX_PLAYERS];
new i;
while( last[playerid] == current[playerid])
{
printf("iteration = %d ",i++);
current[playerid] = random(sizeof(TruckerSpawn));
printf("current = %d ",current[playerid]);
}
SetPlayerPos(playerid, TruckerSpawn[current[playerid]][SpawnX], TruckerSpawn[current[playerid]][SpawnY], TruckerSpawn[current[playerid]][SpawnZ]);
SetPlayerFacingAngle(playerid, TruckerSpawn[current[playerid]][SpawnAngle]);
SetCameraBehindPlayer(playerid);
last[playerid] = current[playerid];
enum SpawnLocation
{
Spawnname[256],
Float:SpawnX,
Float:SpawnY,
Float:SpawnZ,
Float:SpawnAngle
}
static const TruckerSpawn[][SpawnLocation] =
{
// Positions, (Spawnname, X, Y, Z and Facing Angle)
//{"Tierra Robada",-1278.0699,2709.5935,50.2663,299.5070},
//{"Shady Creeks",-1561.4307,-2733.6567,48.7435,236.4525},
{"UNKOWN Spawn_Name", 2269.3945,-2343.9868,13.5469,314.4856}
};
|
you may not have initialized the array is this part on your code?you probably forgot it.That is the only probability of giving random() always zero.
Код:
enum SpawnLocation
{
Spawnname[256],
Float:SpawnX,
Float:SpawnY,
Float:SpawnZ,
Float:SpawnAngle
}
static const TruckerSpawn[][SpawnLocation] =
{
// Positions, (Spawnname, X, Y, Z and Facing Angle)
//{"Tierra Robada",-1278.0699,2709.5935,50.2663,299.5070},
//{"Shady Creeks",-1561.4307,-2733.6567,48.7435,236.4525},
{"UNKOWN Spawn_Name", 2269.3945,-2343.9868,13.5469,314.4856}
};
|
static const TruckerSpawn[][SpawnLocation] =
{
// Positions, (Spawnname, X, Y, Z and Facing Angle)
{"Tierra Robada",-1278.0699,2709.5935,50.2663,299.5070},
{"Shady Creeks",-1561.4307,-2733.6567,48.7435,236.4525},
{"UNKOWN Spawn_Name", 2269.3945,-2343.9868,13.5469,314.4856}
};
|
Crap i didn't notice you put a comment line (//) on each element making only 1 element that made size 1 and random(1) is always zero.(thats why php tags better than code)
PHP код:
|
[21:22:35] iteration = 0 [21:22:35] current = 0 [21:22:35] iteration = 1 [21:22:35] current = 1