Portal SAMP
[Ajuda] Posições não se repetirem - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Posições não se repetirem (/showthread.php?tid=538)



Posições não se repetirem - SkolPlay - 21/12/2020

Como faz para as posições randomicas não repetir os lugares?


RE: Posições não se repetirem - SkolPlay - 22/12/2020

UP, UP!


RE: Posições não se repetirem - Dr Editor - 22/12/2020

Código-base funcional.
Retorna -1 caso todas as posição estejam ocupadas e caso retorne acima de -1 então este é o novo index da posição aleatória que ainda não foi ocupada.
 
Código:
new Float:pos[][] =
{
{ 0.0, 0.0, 0.0 },
{ 0.0, 0.0, 0.0 },
{ 0.0, 0.0, 0.0 },
{ 0.0, 0.0, 0.0 },
{ 0.0, 0.0, 0.0 },
{ 0.0, 0.0, 0.0 }
};
new bool:usedPos[sizeof(pos)];

stock GetRandomAvaliablePos()
{
new maxp = sizeof(usedPos);
new maxPos = maxp;
new rndPos = random(maxp);

while(usedPos[rndPos] && maxPos > -1)
{
rndPos = random(maxp);
maxPos --;
}

if(maxPos > -1)
{
usedPos[rndPos] = true;
return rndPos;
}
else
return -1;
}



RE: Posições não se repetirem - SkolPlay - 22/12/2020

Tá funcionando, +REP.