Accesing element at negative index -1 -
matias770 - 06.12.2016
Buenas, hoy estaba haciendo un sistema de Muebles cosa que nunca habнa hecho antes, todo perfecto carga los datos que necesito desde la base MySQL y puedo poner como yo quiera las cosas, el problema radica al guardar un objeto que acabo de editar.
Usando Crashdetect y unos cuantos print termine dбndome cuenta que el error radica en 'GuardarMuebles(i)', dado que sacando eso del cуdigo todo va perfecto, no puedo entender en que momento la variable toma un valor negativo o que salga de mi MAX_MUEBLES, їquй me falta/me salte?
Код:
#define MAX_MUEBLES 30
enum InfoMuebles
{
mmID,
mCasaID,
mModelo,
Float:mMuebleX,
Float:mMuebleY,
Float:mMuebleZ,
Float:mMuebleRX,
Float:mMuebleRY,
Float:mMuebleRZ,
mMuebleINT,
mMuebleVW
}
new Mueble[MAX_MUEBLES][InfoMuebles];
GuardarMueble(idx)
{
new sql[512];
format(sql, sizeof(sql), "UPDATE `muebles` SET `id_mueble`='%d',`casa`='%d',`modelo`='%d',`x`='%f',`y`='%f',`z`='%f',`xx`='%f',`yy`='%f',`zz`='%f',`interior`='%d',`virtualworld`='%d' WHERE `id`='%d'",
Mueble[idx][mCasaID],
Mueble[idx][mModelo],
Mueble[idx][mMuebleX],
Mueble[idx][mMuebleY],
Mueble[idx][mMuebleZ],
Mueble[idx][mMuebleRX],
Mueble[idx][mMuebleRY],
Mueble[idx][mMuebleRZ],
Mueble[idx][mMuebleINT],
Mueble[idx][mMuebleVW],
Mueble[idx][mmID]);
mysql_query(database, sql, false);
return 1;
}
public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
{
if(EditandoMueble[playerid] == 1)
{
new casa = EstaEnCasa[playerid];
if(response == EDIT_RESPONSE_FINAL)
{
if(PlayerToPoint(playerid, 50.0, CasaInfo[casa][cxx], CasaInfo[casa][cyy], CasaInfo[casa][czz]))
{
for(new i = 0; i < sizeof(Mueble); i++)
{
if(PlayerToPoint(playerid, 7.0, Mueble[i][mMuebleX], Mueble[i][mMuebleY], Mueble[i][mMuebleZ]))
{
EditandoMueble[playerid] = 0;
new mensaje[128];
format(mensaje, sizeof(mensaje), "* Has editado el objeto.");
SendClientMessage(playerid, CELESTE, mensaje);
Mueble[i][mMuebleX] = x; Mueble[i][mMuebleY] = y; Mueble[i][mMuebleZ] = z;
Mueble[i][mMuebleRX] = rx; Mueble[i][mMuebleRY] = ry; Mueble[i][mMuebleRZ] = rz;
GuardarMueble(i); // Acб
return 1;
}
}
}
SendClientMessage(playerid, ROJO_OSCURO, "Debes estar dentro de la casa para terminar de editar el objeto");
}
}
}
Respuesta: Accesing element at negative index -1 -
Tirael - 08.12.2016
pawn Код:
format(sql, sizeof(sql), "UPDATE `muebles` SET `id_mueble`='%d',`casa`='%d',`modelo`='%d',`x`='%f',`y`='%f',`z`='%f',`xx`='%f',`yy`='%f',`zz`='%f',`interior`='%d',`virtualworld`='%d' WHERE `id`='%d'",
Mueble[idx][mCasaID],
Mueble[idx][mModelo],
Mueble[idx][mMuebleX],
Mueble[idx][mMuebleY],
Mueble[idx][mMuebleZ],
Mueble[idx][mMuebleRX],
Mueble[idx][mMuebleRY],
Mueble[idx][mMuebleRZ],
Mueble[idx][mMuebleINT],
Mueble[idx][mMuebleVW],
Mueble[idx][mmID]);
Segъn el format estбs guardando 12 variables pero solo indicas 11 ademas que guardas mal las variables.
Код:
Si te fijas:
`id_mueble`='%d', serнa Mueble[idx][mCasaID],
`casa`='%d', serнa Mueble[idx][mModelo],
`modelo`='%d', serнa Mueble[idx][mModelo] pero lo guardas como Mueble[idx][mMuebleX]
Respuesta: Accesing element at negative index -1 -
matias770 - 08.12.2016
Ya lo arregle, me fije en eso en su momento tambiйn, aunque no afectaba en el error que puse aunque si es necesario para que funcione bien.
SOLUCIONADO
Respuesta: Accesing element at negative index -1 -
Tirael - 09.12.2016
De nada...