Ver Mensaje Individual
  #4 (permalink)  
Antiguo 20/06/2013, 16:32
SeaPirates
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: ¿Porqué siempre me coge la misma id?

Hola, si es un juego.

Lo que pasa es que esta función la utilizo para cuando inicio el servidor para que se reestablezcan todos los objetos en cada mapa.

La variable "object" proviene de una función, te paso el codigo completo:

Código Javascript:
Ver original
  1. client.query("SELECT id FROM world_areas", function(errors, rows) {
  2.     for(var i = 0;i < rows.length; i++) {
  3.         var map = rows[i].id;
  4.    
  5.         client.query('SELECT * FROM objects WHERE regeneration = "1"', function(errors, rows) {
  6.            
  7.             for(var e = 0;e < rows.length; e++) {
  8.            
  9.                 var max_objects = rows[e].max_objects;
  10.                 var name = rows[e].name;
  11.                 var ammount = rows[e].ammount;
  12.                 var type = rows[e].id;
  13.                 client.query('SELECT id FROM world_objects WHERE type = "' + type + '" AND map = "' + map + '"', function(errors, rows) {
  14.                     var dif = parseInt(max_objects)-rows.length;
  15.                     var a = 0;
  16.                     do {
  17.                         var x = 1100 + Math.floor(Math.random() * 3600);
  18.                         var y = 1100 + Math.floor(Math.random() * 3600);
  19.                         client.query('INSERT INTO world_objects (name, type, map, x, y) VALUES ("' + name + '", "' + type + '", "' + map + '", "' + x + '", "' + y + '")');
  20.                         a++;
  21.                         console.log('OBJETO[' + a + '] => ' + type );
  22.                     }while(a < dif);
  23.                            
  24.                 });
  25.                
  26.             }
  27.         });
  28.    
  29.    
  30.        
  31.         console.log(' [' + date + '] -> GENERADOS OBJETOS EN EL MAPA ' + rows[0].id);
  32.     }
  33. });

Funcionar funciona, porque lee cada mapa, y lee cada objeto.

Si pongo un console.log con la id dentro del for de la tabla objetos me devuelve las id correctamente, pero si coloco en console.log dentro del do, me devuelve la misma id todo el rato

Es como si se estuviera sobrescribiendo la id por el ultimo registro

Última edición por SeaPirates; 20/06/2013 a las 17:00