Ayuda Variable Random....
#1

Buenas a todos, necesito ayuda con esto , estoy medio confuso :S XD.

kiero darle una variable a los p layers con un numero random pero kiero ke sea unico , y kiero ke el numero se guarde con . (puntos) entre medio.

si me pueden ayudar se los agradezco.
Desde ya muchas Gracias.

pawn Код:
new NumerosRandom[MAX_PLAYERS];
COMMAND:ejemplo(playerid, params[]) {
    NumerosRandom[playerid]=random(999.999.999);
    return true;
}
Reply
#2

Lo estбs declarando como un nъmero entero, debe de ser una variable Float.

Saludos.
Reply
#3

Quote:
Originally Posted by adri1
Посмотреть сообщение
Lo estбs declarando como un nъmero entero, debe de ser una variable Float.

Saludos.
si, eso fue un descuido mio lo tengo asi.

en lo ke estoy confuso es como detectar si ya existe :S
Reply
#4

No entiendo, creo que te refieres a esto:
pawn Код:
new Float:NumerosRandom[MAX_PLAYERS];

//
//este random, darб desde un numero float al azar desde 0.0 hasta 10.0.
NumerosRandom[playerid] = float(random(100000)/10000);

//y luego no se a que te refieres si ya existe...

if(NumerosRandom[playerid] == ???)

Edit:
Encontrй esta funciуn, quizб te valga
pawn Код:
// by ******
frandom(Float:max, Float:min = 0.0, dp = 4)
{
    new
        // Get the multiplication for storing fractional parts.
        Float:mul = floatpower(10.0, dp),
        // Get the max and min as integers, with extra dp.
        imin = floatround(min * mul),
        imax = floatround(max * mul);
    // Get a random int between two bounds and convert it to a float.
    return float(random(imax - imin) + imin) / mul;
}


//Ejemplos:
new Float:rand = Float:frandom(5.5);

EDIT 2:
Ah lo de detectar si ya existe, es fбcil, pero ya te aseguro que debe ser difнcil de que se repita al ser una Float.

pawn Код:
stock SeRepite(Float:var)
{
for(new i = 0; i != GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
if(NumerosRandom[playerid] == var)
{
return true;
break;
}
}
}
return false;
}
Retorna 1 si se repite, 0 si no se repite.

Esa es, pero ya te digo que es casi imposible de que se repita, un ejemplo serнa:


pawn Код:
volver:
new Float:rand = Float:frandom(5.5);

if(SeRepite(rand))
{
goto volver;
}
Reply
#5

ya esta, era con un bucle y un if XDD, por eso dije ke estaba mediio confundio. jeje.

Gracias por la ayudar, gracias por la funcion .
Solucionado .


PD: tengo ke dejar el porro :P xDD
Reply
#6

Bueno ahн te deje la funciуn en el Edit 2, por si acaso.

Saludos, me alegro por haberte ayudado.
Reply


Forum Jump:


Users browsing this thread: 5 Guest(s)