Como titulo, podrias poner 'Problema con razonamiento nivel/experiencia'

Escribe bien
MONSTRUOS, por dios!
1.- Para seleccionar al azar se usa mysql_query("SELECT... ORDER BY RAND()");
Para lo de la dificultad, tengo un metodo que iba a usar en mi propio juego, aunque no se si hará un bucle infinito... xD
El tema es guardar el % de posibilidades que tiene de salir (de 1 a 100 obviamente, aunque 100... mejor no, como mucho 60/70)
Sacar los monstruos, en tu caso, con la query y ordenarlos en un array asi: array('id' => array('PORCIENTOKNECESITA', 'ACIERTOSKLLEVA');
El PORCIENTOKNECESITA es 100 MENOS el porciento de la db (no me acuerdo como razoné esto :S)
Con un bucle se van aciendo rands y se suman a ACIERTOSKLLEVA, cuando alguno tenga los aciertos k necesita, se coge ese:
Kedaria asi:
$query = mysql_query...;
while($monstruos = my...) { // un while para fetch normal
$mons = array($monstruos['id'] => array(100-$monstruos['porcientodeladb'], 0);
}
// este while es para crear el array de los monstruos ($mons);
while(1>0) { // es un array k se cumple si 1 es mayor de 0... es infinito
$rand = array_rand($mons, 1); // Esta funcion devuelve un elemento del array aleatoriamente (uno, porqu lo puse asi en el 2º parametro)
$mons[$rand][1]++; // Sumamos 1 a los aciertos
if($mons[$rand][0] == $mons[$rand][1]) {
//$rand es tu id, haz aki o fuera del while lo k kieras, tras el "break" todo parará... (ha sonado misterioso? :P)
break; // Para el while
}
}
Ya me contaras si funciona, da error o te jode el internet (dudo lo ultimo xD)
La he hecho sobre la marcha, solo tenia la idea xD
2.- No entiendo nada :S segun el nivel de k? si es de la gente, en el WHERE de la query añades:
WHERE nivelnecesario = '".$niveldeluser."'
(nivelnecesario es un campo de la tabla monstruos)
3.- Puedes separar por comas sus IDS, con explode las separas y con foreach podrias recorrerlo y sacar cada monstruo