17.10.2014, 02:42
Bueno mi error es el siguiente, yo compro un auto y en la tabla de vehнculos estб, pero compro otro y el anterior ya no estб si no que se sobrescriben los valores y nunca aparecen mбs de 2 autos en la tabla, reinicio el server y se va todo, їalguien me ayuda?.
Gracias!
pawn Код:
if(strcmp("/comprarveh", cmd, true) == 0) //Comprar vehнculos
{
if(!GetPlayerConcesionario(playerid)){SendClientMessage(playerid, Rojo, "* No estбs en un concesionario."); return 1;}
if(GetPlayerConcesionario(playerid) == 7 && PlayerInfo[playerid][pLicNavegacion] == 0){SendClientMessage(playerid, Rojo, "* Necesitas licencia de navegaciуn para comprar vehнculos aquн."); return 1;}
if(GetPlayerConcesionario(playerid) == 6 && PlayerInfo[playerid][pLicAviacion] == 0){SendClientMessage(playerid, Rojo, "* Necesitas licencia de aviaciуn para comprar vehнculos aquн."); return 1;}
if((GetPlayerConcesionario(playerid) >= 1 && GetPlayerConcesionario(playerid) <= 5) && PlayerInfo[playerid][pLicConduccion] == 0){SendClientMessage(playerid, Rojo, "* Necesitas licencia de conducciуn para comprar vehнculos aquн."); return 1;}
cmd = strtok(cmdtext,idx);
if(!strlen(cmd))
{
SendClientMessage(playerid, Naranja, "* /Comprarveh [VehнculoID] [Color1] [Color2]");
SendClientMessage(playerid, Naranja, "Puedes ver la lista de colores en el foro.");
return 1;
}
if(EnCatalogoVeh[playerid] != NOEXISTE){SendClientMessage(playerid, Rojo, "* Sal del catбlogo primero."); return 1;}
//GetPlayerPos(playerid, PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z]);
new tmpcar;
tmpcar = strval(cmd);
if(datacar[tmpcar][dcNivel] > PlayerInfo[playerid][pNivel])
{
SendClientMessage(playerid, Rojo, "* Nivel insuficiente.");
return 1;
}
new EspacioLibre;
for(new x = 0; x < 5; x++)
{
if(PlayerInfo[playerid][pLlaveCoche][x] == 0){EspacioLibre = 1; break;}
}
if(EspacioLibre == 0){SendClientMessage(playerid, Rojo, "* Ya tienes todos los slots de llaves propias ocupados."); return 1;}
if(datacar[tmpcar][dcConcesionario] != GetPlayerConcesionario(playerid))
{
SendClientMessage(playerid, Rojo, "* No disponemos de ese modelo, deberбs buscar en otro concesionario.");
return 1;
}
new Conce2 = GetPlayerConcesionarioEx(playerid);
for(new i=0; i <= TotalVeh; i++)
{
if(IsVehicleInRangeOfPoint(10.0, i, Concesionarios[Conce2][ctX], Concesionarios[Conce2][ctY], Concesionarios[Conce2][ctZ]))
{
SendClientMessage(playerid, Rojo, "* Hay un vehнculo en el punto de entrega.");
return 1;
}
}
if(GetPlayerMoney(playerid) < datacar[tmpcar][dcPrecio] && PlayerInfo[playerid][pDineroBanco] < datacar[tmpcar][dcPrecio])
{
SendClientMessage(playerid, Rojo, "* No tienes suficiente dinero ni en mano ni en el banco.");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, Naranja, "* /Comprarveh [VehнculoID] [Color1] [Color2]");
SendClientMessage(playerid, Naranja, "Puedes ver la lista de colores en el foro.");
return 1;
}
new color1;
color1 = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, Naranja, "* /Comprarveh [VehнculoID] [Color1] [Color2]");
SendClientMessage(playerid, Naranja, "Puedes ver la lista de colores en el foro.");
return 1;
}
new color2;
color2 = strval(tmp);
for(new x; x < 5; x++)
{
if(PlayerInfo[playerid][pLlaveCoche][x] == 0)
{
PlayerInfo[playerid][pLlaveCoche][x] = CodigoLlave;
break;
}
}
SendClientMessage(playerid, Verde, "* Has comprado un nuevo vehнculo.");
SendClientMessage(playerid, Amarillo, "* El vendedor te ha entregado las llaves (/cuenta).");
new Conce = datacar[tmpcar][dcConcesionario]-1;
if(GetPlayerMoney(playerid) >= datacar[tmpcar][dcPrecio]){GivePlayerMoneyAC(playerid, -datacar[tmpcar][dcPrecio]);}
else if(PlayerInfo[playerid][pDineroBanco] >= datacar[tmpcar][dcPrecio]){PlayerInfo[playerid][pDineroBanco] -= datacar[tmpcar][dcPrecio];}
else{return 1;}
new Coche = CreateVehicle(datacar[tmpcar][dcIDModel], Concesionarios[Conce][ctX], Concesionarios[Conce][ctY], Concesionarios[Conce][ctZ], 30.0, color1, color2, 3000000);
CarInfo[Coche][cID] = Coche;
CarInfo[Coche][cLlave] = CodigoLlave;
CarInfo[Coche][cModelo] = datacar[tmpcar][dcIDModel];
CarInfo[Coche][cPosX] = Concesionarios[Conce][ctX];
CarInfo[Coche][cPosY] = Concesionarios[Conce][ctY];
CarInfo[Coche][cPosZ] = Concesionarios[Conce][ctZ];
CarInfo[Coche][cZAngle] = 30.0;
CarInfo[Coche][cColor1] = color1;
CarInfo[Coche][cColor2] = color2;
CarInfo[Coche][cComprado] = 1;
format(CarInfo[Coche][cDueno], MAX_PLAYER_NAME, "%s", PlayerInfo[playerid][pNombre]);
format(CarInfo[Coche][cNombreModelo], MAX_PLAYER_NAME, "%s", datacar[tmpcar][dcNombre]);
CarInfo[Coche][cValor] = datacar[tmpcar][dcPrecio];
CarInfo[Coche][cGas] = 50;
CarInfo[Coche][cMaxMaletero] = 7;
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(Coche, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(Coche, 0, 0, alarm, doors, bonnet, boot, objective);
SetVehicleMatricula(Coche);
format(string,sizeof(string),"INSERT INTO vehiculos (Llave, Modelo) VALUES ('%d','%d')",CarInfo[Coche][cLlave],CarInfo[Coche][cModelo]);
mysql_query(1, string);
new ccount;
new sql[80], row[512];
format(sql, sizeof(sql), "SELECT SQLID FROM vehiculos ORDER BY SQLID DESC");
mysql_query(1, sql);
mysql_store_result();
mysql_fetch_row(row);
ccount = strval(row);
mysql_free_result();
CarInfo[Coche][cSQLID] = ccount;
SaveCar(Coche);
CodigoLlave ++;
TotalVeh ++;
return 1;
}
pawn Код:
forward SaveCar(idx); //Guardar coches -IMPORTANTE NO BORRAR NI UN SOLO VEHНCULO DE LA DB-
public SaveCar(idx)
{
if(CarInfo[idx][cLlave] != 0 && CarInfo[idx][cModelo] != 0)
{
GetVehiclePos(idx, CarInfo[idx][cPosX], CarInfo[idx][cPosY], CarInfo[idx][cPosZ]);
GetVehicleZAngle(idx, CarInfo[idx][cZAngle]);
GetVehicleDamageStatus(idx, CarInfo[idx][cPanels], CarInfo[idx][cDoors], CarInfo[idx][cLights], CarInfo[idx][cTires]);
GetVehicleHealth(idx, CarInfo[idx][cDamage]);
CarInfo[idx][cVirtualWorld] = GetVehicleVirtualWorld(idx);
new sql[1024];
format(sql, 1024, "UPDATE vehiculos SET ID=%d,Llave=%d,Modelo=%d,PosX=%f,PosY=%f,PosZ=%f,ZAngle=%f,Color1=%d,Color2=%d,Comprado=%d,Dueno='%s',NombreModelo='%s',Valor=%d,Cerrado=%d,Gas=%d,EnDeposito=%d,MaxMaletero=%d WHERE SQLID=%d",
CarInfo[idx][cID], //ID en SAMP
CarInfo[idx][cLlave], //Llave del vehнculo
CarInfo[idx][cModelo], //Modelo del vehнculo
CarInfo[idx][cPosX], //Posiciуn X
CarInfo[idx][cPosY], //Posiciуn Y
CarInfo[idx][cPosZ], //Posiciуn Z
CarInfo[idx][cZAngle], //Бngulo
CarInfo[idx][cColor1], //Color 1
CarInfo[idx][cColor2], //Color 2
CarInfo[idx][cComprado], //Si tiene propietario
CarInfo[idx][cDueno], //Nombre del propietario
CarInfo[idx][cNombreModelo], //Nombre del modelo
CarInfo[idx][cValor], //Coste del vehнculo
CarInfo[idx][cCerrado], //Si estб cerrado
CarInfo[idx][cGas], //Combustible
CarInfo[idx][cEnDeposito], //Si estб en el depуsito
CarInfo[idx][cMaxMaletero], //Nъmero de slots que el maletero podrб tener
CarInfo[idx][cSQLID]); //ID en DB
mysql_query(1, sql);
for(new x=0; x<CarInfo[idx][cMaxMaletero]; x++)
{
format(sql, 1024, "UPDATE vehiculos SET Maletero%d=%d,MaleteroCant%d=%d WHERE SQLID=%d",
x+1, CarInfo[idx][cMaletero][x], x+1, CarInfo[idx][cMaleteroCant][x],
CarInfo[idx][cSQLID]);
mysql_query(1, sql);
}
format(sql, 1024, "UPDATE vehiculos SET Panels=%d,Doors=%d,Lights=%d,Tires=%d,Damage=%f,VirtualWorld=%d,Interior=%d WHERE SQLID=%d",
CarInfo[idx][cPanels], //Daсo superficies
CarInfo[idx][cDoors], //Daсo puertas
CarInfo[idx][cLights], //Daсo luces
CarInfo[idx][cTires], //Ruedas pinchadas
CarInfo[idx][cDamage], //Daсo del vehнculo
CarInfo[idx][cVirtualWorld],
CarInfo[idx][cInterior],
CarInfo[idx][cSQLID]);
mysql_query(1, sql);
}
return 1;
}