stock GuardarCuenta(playerid)
{
static query[350], Float:pos[4], Float:vida, Float:chaleco;
GetPlayerPos(playerid, posArr{pos});
GetPlayerFacingAngle(playerid, pos[3]);
GetPlayerHealth(playerid, vida);
GetPlayerArmour(playerid, chaleco);
new weapons[13][2];
for(new i; i < 13; ++i)
{
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
mysql_format(g_Handle, query, "UPDATE `Usuarios` SET Vida = %.1f, Chaleco = %.1f, X = %.2f, Y = %.2f, Z = %.1f, A = %.2f, Interior = %d, VW = %d, Skin = %d, Dinero = %d, Nivel = %d, Arma_%i = %i, Municion_%i = %i WHERE `ID` = %d",
vida,
chaleco,
posArrEx{pos},
GetPlayerInterior(playerid),
GetPlayerVirtualWorld(playerid),
GetPlayerSkin(playerid),
GetPlayerMoney(playerid),
GetPlayerScore(playerid),
g_PlayerInfo[playerid][pArma][i],
g_PlayerInfo[playerid][pMunicion][i],
g_PlayerInfo[playerid][pSQLid]
);
mysql_function_query(g_Handle, query, false, "SendQuery", "");
}
return 1;
}
stock GuardarCuenta(playerid)
{
static query[350], Float:pos[4], Float:vida, Float:chaleco;
GetPlayerPos(playerid, posArr{pos});
GetPlayerFacingAngle(playerid, pos[3]);
GetPlayerHealth(playerid, vida);
GetPlayerArmour(playerid, chaleco);
new weapons[13][2];
for(new i; i < 13; ++i)
{
GetPlayerWeaponData(playerid, i, g_PlayerInfo[playerid][pArma][i], g_PlayerInfo[playerid][pMunicion][i]);
mysql_format(g_Handle, query, "UPDATE `Usuarios` SET Vida = %.1f, Chaleco = %.1f, X = %.2f, Y = %.2f, Z = %.1f, A = %.2f, Interior = %d, VW = %d, Skin = %d, Dinero = %d, Nivel = %d, Arma_%i = %i, Municion_%i = %i WHERE `ID` = %d",
vida,
chaleco,
posArrEx{pos},
GetPlayerInterior(playerid),
GetPlayerVirtualWorld(playerid),
GetPlayerSkin(playerid),
GetPlayerMoney(playerid),
GetPlayerScore(playerid),
g_PlayerInfo[playerid][pArma][i],
g_PlayerInfo[playerid][pMunicion][i],
g_PlayerInfo[playerid][pSQLid]
);
mysql_function_query(g_Handle, query, false, "SendQuery", "");
}
return 1;
}
creo que no estas uniendo la variable weapons con la variable parma intenta asi
PHP код:
|
[20:32:12] Error ID: 1064
[20:32:12] Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%i WHERE `ID` = %d' at line 1
[20:32:12] Callback: SendQuery Query: UPDATE `Usuarios` SET Vida = 100.0, Chaleco = 100.0, X = 1854.59, Y = -1387.45, Z = 14.4, A = 111.94, Interior = 0, VW = 0, Skin = 0, Dinero = 0, Nivel = 0, Arma_0 = 73, Municion_1 = %i WHERE `ID` = %d
[20:32:12] Error ID: 1064
[20:32:12] Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%i WHERE `ID` = %d' at line 1
[20:32:12] Callback: SendQuery Query: UPDATE `Usuarios` SET Vida = 100.0, Chaleco = 100.0, X = 1854.59, Y = -1387.45, Z = 14.4, A = 111.94, Interior = 0, VW = 0, Skin = 0, Dinero = 0, Nivel = 0, Arma_0 = 0, Municion_1 = %i WHERE `ID` = %d
[20:32:12] Error ID: 1064
[20:32:12] Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%i WHERE `ID` = %d' at line 1
[20:32:12] Callback: SendQuery Query: UPDATE `Usuarios` SET Vida = 100.0, Chaleco = 100.0, X = 1854.59, Y = -1387.45, Z = 14.4, A = 111.94, Interior = 0, VW = 0, Skin = 0, Dinero = 0, Nivel = 0, Arma_24 = 89, Municion_1 = %i WHERE `ID` = %d
i, // slot
g_PlayerInfo[playerid][pArma][i], // arma
i, // slot
g_PlayerInfo[playerid][pMunicion][i], // balas
Fijate asн:
pawn Код:
|
stock GuardarCuenta(playerid)
{
static query[350], Float:pos[4], Float:vida, Float:chaleco;
GetPlayerPos(playerid, posArr{pos});
GetPlayerFacingAngle(playerid, pos[3]);
GetPlayerHealth(playerid, vida);
GetPlayerArmour(playerid, chaleco);
mysql_format(g_Handle, query, "UPDATE `Usuarios` SET Vida = %.1f, Chaleco = %.1f, X = %.2f, Y = %.2f, Z = %.1f, A = %.2f, \
Interior = %d, VW = %d, Skin = %d, Dinero = %d, Nivel = %d, Arma_0 = %d, Municion_0 = %d , Arma_1 = %d, Municion_1 = %d, Arma_2 = %d, Municion_2 = %d WHERE `ID` = %d",
vida,
chaleco,
posArrEx{pos},
GetPlayerInterior(playerid),
GetPlayerVirtualWorld(playerid),
GetPlayerSkin(playerid),
GetPlayerMoney(playerid),
GetPlayerScore(playerid),
GetPlayerWeapon(playerid),
GetPlayerAmmo(playerid),
GetPlayerWeapon(playerid),
GetPlayerAmmo(playerid),
GetPlayerWeapon(playerid),
GetPlayerAmmo(playerid),
g_PlayerInfo[playerid][pSQLid]
);
mysql_function_query(g_Handle, query, false, "SendQuery", "");
return 1;
}
Asн tengas 3 armas, tenes que recorrer los 13 slots.
Asн estбs modificando 10 datos 13 veces innecesariamente xD, no se que sea mas efectivo pero creo que es mejor 13 sentencias que modificar 130 datos xD PD: GetPlayerWeapon te devuelve el arma de la mano, no te sirve como lo hiciste. |
No hay alguna otra forma para realizar el guardado de las armas sin tener que enviar tantas consultas?
PD: Antes guardaba 1 sola arma con GetPlayerWeapon y GetPlayerAmmo pero por lo que veo solo 1. Muchas gracias. Un saludo. |