No guarda objetos en el maletero
#1

Buenas noches, pasa lo siguiente tengo el cуdigo de maleteros bien, abre, cierra, guarda los objetos pero al reiniciar el servidor y volver a encenderlo se borra el objeto del maletero es decir no vuelve a aparecer, acб dejo lo siguiente aver si me pueden echar una mano
Este es de GuardarMaletero
Quote:

forward GuardarMaletero(playerid, vehicleid, mano); //Guardar un objeto en el maletero de un vehнculo
public GuardarMaletero(playerid, vehicleid, mano)
{
if(VehMaletero[vehicleid] == 0){return 1;}
ActualizarManos(playerid);
if(mano == 1)
{
if(PlayerData[playerid][pManoDer] == 0){SendClientMessage(playerid, COLOR_GREY, "No tienes nada en tu mano derecha."); return 1;}
new Mano = PlayerData[playerid][pManoDer];
new Cant = PlayerData[playerid][pManoDerCant];
if(ObjetoInfo[Mano][IDArma] > 0) //Guarda un arma
{
Cant = GetPlayerAmmo(playerid);
RemovePlayerWeapon(playerid, ObjetoInfo[Mano][IDArma]);
}
new string[128];
new BonnetLibre;
for(new x = 0; x < 7; x++) //Coloca el objeto en el primer slot libre del maletero
{
if(CarData[vehicleid][carMaletero][x] == 0)
{
CarData[vehicleid][carMaletero][x] = Mano;
CarData[vehicleid][carMaleteroCant][x] = Cant;
RemovePlayerAttachedObject(playerid, 1);
PlayerData[playerid][pManoDer] = 0;
PlayerData[playerid][pManoDerCant] = 0;
format(string, sizeof(string), "* Guardas u%s (%d) en el maletero.", ObjetoInfo[Mano][NombreObjeto], Cant);
SendClientMessage(playerid, COLOR_GREEN, string);
BonnetLibre = 1;
VehMaleteroPlayer[playerid] = 0;
Car_Save(vehicleid);
return 1;
}
}
if(BonnetLibre == 0){SendClientMessage(playerid, COLOR_GREY, "Todos los huecos del maletero estбn ocupados."); return 1;}
}
else if(mano == 2)
{
if(PlayerData[playerid][pManoIzq] == 0){SendClientMessage(playerid, COLOR_GREY, "No tienes nada en tu mano izquierda."); return 1;}
new Mano = PlayerData[playerid][pManoIzq];
new Cant = PlayerData[playerid][pManoIzqCant];
new string[128];
new BonnetLibre;
for(new x = 0; x < 7; x++) //Coloca el objeto en el primer slot libre que encuentra
{
if(CarData[vehicleid][carMaletero][x] == 0)
{
CarData[vehicleid][carMaletero][x] = Mano;
CarData[vehicleid][carMaleteroCant][x] = Cant;
RemovePlayerAttachedObject(playerid, 2);
PlayerData[playerid][pManoIzq] = 0;
PlayerData[playerid][pManoIzqCant] = 0;
format(string, sizeof(string), "* Guardas u%s (%d) en el maletero.", ObjetoInfo[Mano][NombreObjeto], Cant);
SendClientMessage(playerid, COLOR_GREEN, string);
BonnetLibre = 1;
VehMaleteroPlayer[playerid] = 0;
Car_Save(vehicleid);
return 1;
}
}
if(BonnetLibre == 0){SendClientMessage(playerid, COLOR_GREY, "Todos los huecos del maletero estбn ocupados."); return 1;}
}
return 1;
}

Guardar Vehнculo
Quote:

for(new x = 0; x < 7; x ++)
{
format(query, 3000, "UPDATE `cars` SET `carMaletero%d` = '%d', `carMaleteroCant%d` = '%d' WHERE `carID` = '%d'",
x+1, CarData[carid][carMaletero][x], x+1, CarData[carid][carMaleteroCant][x],
CarData[carid][carID]);
mysql_query(1, query);
}

Cargar Maletero
Quote:

for (new a = 0; a < 7; a ++)
{
format(maletero, sizeof(maletero), "carMaletero%d", a+1);
format(maleterocant, sizeof(maleterocant), "carMaleteroCant%d", a+1);
CarData[i][carMaletero][a] = cache_get_field_content_int(0, maletero);
CarData[i][carMaleteroCant][a] = cache_get_field_content_int(0, maleterocant);
}

Y por ъltimo SS de la DB como guarda en el maletero
http://imgur.com/17SB3P9
Reply
#2

Y cuбndo le indicas al script de dуnde debe obtener los datos?

Код:
SELECT * FROM `cars` WHERE `carID` =  '%d'
Reply
#3

Acб dejo el cуdigo del Car_Save si alguien me podrнa echar una mano como deberia quedar como este que es el Car_Load
Quote:

mysql_tquery(g_iHandle, "SELECT * FROM `cars`", "Car_Load", "&quot;

Car SAve
Quote:

Car_Save(carid)
{
static
query[1024];

format(query, sizeof(query), "UPDATE `cars` SET `carModel` = '%d', `carOwner` = '%d', `carPosX` = '%.4f', `carPosY` = '%.4f', `carPosZ` = '%.4f', `carPosR` = '%.4f', `carColor1` = '%d', `carColor2` = '%d', `carPaintjob` = '%d', `carLocked` = '%d'",
CarData[carid][carModel],
CarData[carid][carOwner],
CarData[carid][carPos][0],
CarData[carid][carPos][1],
CarData[carid][carPos][2],
CarData[carid][carPos][3],
CarData[carid][carColor1],
CarData[carid][carColor2],
CarData[carid][carPaintjob],
CarData[carid][carLocked]
);
for(new x = 0; x < 7; x ++)
{
format(query, 1024, "UPDATE `cars` SET `carMaletero%d` = '%d', `carMaleteroCant%d` = '%d' WHERE `carID` = '%d'",
x+1, CarData[carid][carMaletero][x], x+1, CarData[carid][carMaleteroCant][x],
CarData[carid][carID]);
mysql_query(1, query);
}
format(query, sizeof(query), "%s, `carMod1` = '%d', `carMod2` = '%d', `carMod3` = '%d', `carMod4` = '%d', `carMod5` = '%d', `carMod6` = '%d', `carMod7` = '%d', `carMod8` = '%d'",
query,
CarData[carid][carMods][0],
CarData[carid][carMods][1],
CarData[carid][carMods][2],
CarData[carid][carMods][3],
CarData[carid][carMods][4],
CarData[carid][carMods][5],
CarData[carid][carMods][6],
CarData[carid][carMods][7],
CarData[carid][carMods][8]
);
return mysql_tquery(g_iHandle, query);
}

Reply
#4

por quй es esto? mysql_query(1, query); quй conexiуn estбs usando? imagino que la cero y ahн utilizas el 1 que posiblemente no estб activa.
Reply
#5

Quote:
Код:
for (new a = 0; a < 7; a ++)
{
format(maletero, sizeof(maletero), "carMaletero%d", a+1);
format(maleterocant, sizeof(maleterocant), "carMaleteroCant%d", a+1);
CarData[i][carMaletero][a] = cache_get_field_content_int(0, maletero);
CarData[i][carMaleteroCant][a] = cache_get_field_content_int(0, maleterocant);
}
De entrada aquн arriba la estбs liando, el primer carMaletero va a ser carMaletero1 ya que haces a + 1. ЎMAL! En la foto que pasaste el primer carMaletero es carMaletero0, van del 0 al 6. Entonces el bucle deberнa ser algo como:
PHP код:
for (new 07++)
{
format(maleterosizeof(maletero), "carMaletero%d"a);
format(maleterocantsizeof(maleterocant), "carMaleteroCant%d"a);
CarData[i][carMaletero][a] = cache_get_field_content_int(0maletero);
CarData[i][carMaleteroCant][a] = cache_get_field_content_int(0maleterocant);

El segundo error que encontrй es este: cache_get_field_content_int(0, maletero)
їSabes quй cosa es el 0 que te puse en negrita? Imagino que no... bueno, pues quieto ahн que te lo digo yo. ЎEs la fila de la que se cogen los datos! їSiempre cargas de la fila 0 o quй pasa?

Si sabes lo que hace la siguiente consulta no deberнas cometer fallos de ese tipo:
PHP код:
SELECT FROM `cars/* Carga todos los coches. Si tienes 5 coches te devolverб 5 filas con los нndices 0 - 4. */ 
Entonces tu Car_Load deberнa ser algo como:
PHP код:
mysql_pquery(sql_handle"SELECT * FROM `cars`""Car_Load");
forward Car_Load();
public 
Car_Load()
{
    new 
filas cache_get_row_count();
    for(new 
0filasi++)
    {
        for(new 
07a++)
        {
            
format(maleterosizeof(maletero), "carMaletero%d"a);
            
format(maleterocantsizeof(maleterocant), "carMaleteroCant%d"a);
            
CarData[i][carMaletero][a] = cache_get_field_content_int(imaletero);
            
CarData[i][carMaleteroCant][a] = cache_get_field_content_int(imaleterocant);
        }
    }
    return 
1/* ЎVaciamos el cache! */

Con unos conocimientos bбsicos deberнas entender de sobra lo que hace el cуdigo anterior, de no ser asн, deja el SQL y dedнcate al PAWN.

Aparte del bucle de queries que haces a la base de datos, seguramente tendrбs algъn otro fallo en el cуdigo, pero bueno... te respondн mбs o menos a lo que preguntaste.


Quote:
Originally Posted by _Zume
Посмотреть сообщение
por quй es esto? mysql_query(1, query); quй conexiуn estбs usando? imagino que la cero y ahн utilizas el 1 que posiblemente no estб activa.
La primera connection handle siempre es 1.
Reply
#6

No entiendo para que ayudan a este subnormal si ni siquiera dice gracias
Reply
#7

Quote:
Originally Posted by RIDE2DAY
Посмотреть сообщение
De entrada aquн arriba la estбs liando, el primer carMaletero va a ser carMaletero1 ya que haces a + 1. ЎMAL! En la foto que pasaste el primer carMaletero es carMaletero0, van del 0 al 6. Entonces el bucle deberнa ser algo como:
PHP код:
for (new 07++)
{
format(maleterosizeof(maletero), "carMaletero%d"a);
format(maleterocantsizeof(maleterocant), "carMaleteroCant%d"a);
CarData[i][carMaletero][a] = cache_get_field_content_int(0maletero);
CarData[i][carMaleteroCant][a] = cache_get_field_content_int(0maleterocant);

El segundo error que encontrй es este: cache_get_field_content_int(0, maletero)
їSabes quй cosa es el 0 que te puse en negrita? Imagino que no... bueno, pues quieto ahн que te lo digo yo. ЎEs la fila de la que se cogen los datos! їSiempre cargas de la fila 0 o quй pasa?

Si sabes lo que hace la siguiente consulta no deberнas cometer fallos de ese tipo:
PHP код:
SELECT FROM `cars/* Carga todos los coches. Si tienes 5 coches te devolverб 5 filas con los нndices 0 - 4. */ 
Entonces tu Car_Load deberнa ser algo como:
PHP код:
mysql_pquery(sql_handle"SELECT * FROM `cars`""Car_Load");
forward Car_Load();
public 
Car_Load()
{
    new 
filas cache_get_row_count();
    for(new 
0filasi++)
    {
        for(new 
07a++)
        {
            
format(maleterosizeof(maletero), "carMaletero%d"a);
            
format(maleterocantsizeof(maleterocant), "carMaleteroCant%d"a);
            
CarData[i][carMaletero][a] = cache_get_field_content_int(imaletero);
            
CarData[i][carMaleteroCant][a] = cache_get_field_content_int(imaleterocant);
        }
    }
    return 
1/* ЎVaciamos el cache! */

Con unos conocimientos bбsicos deberнas entender de sobra lo que hace el cуdigo anterior, de no ser asн, deja el SQL y dedнcate al PAWN.

Aparte del bucle de queries que haces a la base de datos, seguramente tendrбs algъn otro fallo en el cуdigo, pero bueno... te respondн mбs o menos a lo que preguntaste.



La primera connection handle siempre es 1.
Hermano vaya manera a responder la tuya. їNo?, si vengo a pedir ayuda acб es por que no entiendo, no es dejar el SQL o el pawn, ademбs al otro usuario que ha comentado que no doy ni las gracias, ni he solucionado el fallo.
Reply
#8

Me da este warning
Quote:

"warning 219: local variable "i" shadows a variable at a preceding level
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase"

Reply
#9

Estas declarando una nueva variable donde ya la tienes creada.

2 Opciones

1. La borras
2. Le cambias el nombre a esa variable
Reply
#10

Quote:
Originally Posted by ThePaul44
Посмотреть сообщение
Hermano vaya manera a responder la tuya. їNo?, si vengo a pedir ayuda acб es por que no entiendo, no es dejar el SQL o el pawn, ademбs al otro usuario que ha comentado que no doy ni las gracias, ni he solucionado el fallo.
No te lo tomes a mal, que no pretendo ofenderte, pero si no entiendes un lenguaje lo suficientemente bien no metas otro de por medio. Si tienes esos fallos en PAWN se nota que no lo controlas mucho.

Aun asн, ya que tienes casi todo el sistema creado... para quitar el warning que te sale cambia la i de Car_Load por otra variable.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)