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