Salvamento de slots -
Diggie - 14.08.2018
Eu tф quebrando a cabeзa com o salvamento de todos os slots de armas.
Observem o cуdigo:
Код:
SaveArmas(playerid)
new weaponid, ammo, query[150];
for(new i; i < 13; i++) // looping through all weapon slots (0 - 12)
{
GetPlayerWeaponData(playerid, i, weaponid, ammo); // get weaponid and ammo
if(!weaponid) continue; // don't insert if there's no weapon in this slot
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO characters (weapon1, ammo1, weapon2, ammo2, weapon3, ammo3, weapon4, ammo4, weapon5, ammo5, weapon6, ammo6, weapon7, ammo7, weapon8, ammo8, weapon9, ammo9, weapon10, ammo10, weapon11, ammo11, weapon12, ammo12) VALUES (%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)", weaponid, ammo, weaponid, ammo, weaponid, ammo, weaponid, ammo, weaponid, ammo, weaponid, ammo, weaponid, ammo, weaponid, ammo, weaponid, ammo, weaponid, ammo, weaponid, ammo, weaponid, ammo);
mysql_tquery(dbHandle, query); // parallel queries
}
return 1;
}
O meu objetivo й pegar todas as armas de todos os slots (ao todo 13 slots) e salvar na MySQL. Eu jб criei da weapon1/ammo1 atй a weapon12/weapon12 na MySQL, mas eu nгo sei como eu passo do jogo pra db, nгo sei como fazer o uso correto de todos os slots pelo GetPlayerWeaponData
Se alguйm conseguir me dar uma luz, ficarei agradecido.
Re: Salvamento de slots -
Felipealves - 14.08.2018
PHP код:
SaveArmas(playerid){
new weaponid[13], ammo[13], query[150];
for(new i; i < 13; i++) GetPlayerWeaponData(playerid, i, weaponid[i], ammo[i]);
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO characters (weapon1, ammo1, weapon2, ammo2, weapon3, ammo3, weapon4, ammo4, weapon5, ammo5, weapon6, ammo6, weapon7, ammo7, weapon8, ammo8, weapon9, ammo9, weapon10, ammo10, weapon11, ammo11, weapon12, ammo12) VALUES (%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)", weaponid[0], ammo[0], weaponid[1], ammo[1], weaponid[2], ammo[2], weaponid[3], ammo[3], weaponid[4], ammo[4], weaponid[5], ammo[5], weaponid[6], ammo[6], weaponid[7], ammo[7], weaponid[8], ammo[8], weaponid[9], ammo[9], weaponid[10], ammo[10], weaponid[11], ammo[11], weaponid[12], ammo[12]);
mysql_tquery(dbHandle, query);
return 1;
}
Testa assim tambйm
PHP код:
SaveArmas(playerid){
new weaponid[13], ammo[13], query[150];
for(new i; i < 13; i++){
GetPlayerWeaponData(playerid, i, weaponid[i], ammo[i]);
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO characters (weapon%d, ammo%d) VALUES (%d, %d)", i, i, weaponid[i], ammo[i]);
mysql_tquery(dbHandle, query);
}
return 1;
}
Nгo esqueзa que o slot 0 nгo estб sendo salvo, adicione na sua tabela weapon0 e ammo0.
Re: Salvamento de slots -
DelK - 14.08.2018
Use Update man
Re: Salvamento de slots -
Felipealves - 14.08.2018
Quote:
Originally Posted by DelK
Use Update man
|
Mais ele vai atualizar algo que nгo existe '-'
Re: Salvamento de slots -
DelK - 14.08.2018
Quote:
Originally Posted by Felipealves
Mais ele vai atualizar algo que nгo existe '-'
|
Vocк deu a soluзгo para o problema dele:
PHP код:
SaveArmas(playerid){
new weaponid[13], ammo[13], query[150];
for(new i; i < 13; i++){
GetPlayerWeaponData(playerid, i, weaponid[i], ammo[i]);
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO characters (weapon%d, ammo%d) VALUES (%d, %d)", i, i, weaponid[i], ammo[i]);
mysql_tquery(dbHandle, query);
}
return 1;
}
Eu sу dei o nome da funзгo para "atualizar" as armas.
Re: Salvamento de slots -
Felipealves - 14.08.2018
Quote:
Originally Posted by DelK
Eu sу dei o nome da funзгo para "atualizar" as armas.
|
MB men
Re: Salvamento de slots -
Diggie - 14.08.2018
Testei da forma que vocкs falaram e meio que deu certo, o problema й que criava uns 7 characters nulos e nгo salvava a arma no character certo.
Tentei desta forma:
Код:
SaveArmas(playerid){
new weaponid[13], ammo[13], query[150];
for(new i; i < 13; i++){
GetPlayerWeaponData(playerid, i, weaponid[i], ammo[i]);
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO characters (weapon%d, ammo%d) VALUES (%d, %d) WHERE char_name = '%s'", i, i, weaponid[i], ammo[i], PlayerInfo[playerid][pCharacterName]);
mysql_tquery(dbHandle, query);
}
return 1;
}
Mas nгo salvou. Jб tentei em vez de char_name colocar o id, tambйm nгo dб.
Re: Salvamento de slots -
Felipealves - 14.08.2018
PHP код:
CarregarArmas(playerid){
new Query[80];
mysql_format(Conexao, Query, sizeof(Query), "SELECT `nome`, `ID` FROM `SlotArmas` WHERE `nome`='%s'", GetPlayerNome(playerid));
mysql_tquery(Conexao, Query, "VerificarArmas", "i", playerid);
return 1;
}
forward VerificarArmas(playerid);
public VerificarArmas(playerid){
new weaponid[13], ammo[13], query[999]; // defina o query qnt quiser sу alto msm pq quis kjkasdjka
for(new i = 0; i < 13; ++i) GetPlayerWeaponData(playerid, i, weaponid[i], ammo[i]);
if(cache_num_rows() > 0){
// UPDATE
}else{
// CRIA ARMA
mysql_format(Conexao, query, sizeof(query), "INSERT INTO SlotArmas (nome, weapon0, ammo0, weapon1, ammo1, weapon2, ammo2, weapon3, ammo3, weapon4, ammo4, weapon5, ammo5, weapon6, ammo6, weapon7, ammo7, weapon8, ammo8, weapon9, ammo9, weapon10, ammo10, weapon11, ammo11, weapon12, ammo12) VALUES ('%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')",
GetPlayerNome(playerid), weaponid[0], ammo[0], weaponid[1], ammo[1], weaponid[2], ammo[2], weaponid[3], ammo[3], weaponid[4], ammo[4], weaponid[5], ammo[5], weaponid[6], ammo[6], weaponid[7], ammo[7], weaponid[8], ammo[8], weaponid[9], ammo[9], weaponid[10], ammo[10], weaponid[11], ammo[11], weaponid[12], ammo[12]);
mysql_tquery(Conexao, query, "DadosRegistrados", "i", playerid);
}
return 1;
}
forward DadosRegistrados(playerid);
public DadosRegistrados(playerid){
pInfo[playerid][c_bid] = cache_insert_id();
printf("Arma registrada id: %d", pInfo[playerid][c_bid]);
return 1;
}
static GetPlayerNome(playerid)
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
return Nome;
}
Nгo esqueзa quando for passar os parвmetros de usar ' ' ex: '%d'.
Re: Salvamento de slots -
Diggie - 14.08.2018
+rep Felipe Alves, vocк me deu a luz pra conseguir! Deixei assim:
Код:
SaveArmas(playerid){
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new weaponid[13], ammo[13], query[999];
for(new i; i < 13; i++){
GetPlayerWeaponData(playerid, i, weaponid[i], ammo[i]);
if(cache_num_rows() >= 0){
mysql_format(dbHandle, query, sizeof(query), "UPDATE characters SET weapon%d = '%d', ammo%d = '%d' WHERE char_name = '%s'", i, weaponid[i], i, ammo[i], PlayerInfo[playerid][pCharacterName]);
mysql_tquery(dbHandle, query);
}
else
{
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO characters (weapon1, ammo1, weapon2, ammo2, weapon3, ammo3, weapon4, ammo4, weapon5, ammo5, weapon6, ammo6, weapon7, ammo7, weapon8, ammo8, weapon9, ammo9, weapon10, ammo10, weapon11, ammo11, weapon12, ammo12) VALUES ('%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d') WHERE char_name = '%s'",
weaponid[1], ammo[1], weaponid[2], ammo[2], weaponid[3], ammo[3], weaponid[4], ammo[4], weaponid[5], ammo[5], weaponid[6], ammo[6], weaponid[7], ammo[7], weaponid[8], ammo[8], weaponid[9], ammo[9], weaponid[10], ammo[10], weaponid[11], ammo[11], weaponid[12], ammo[12], Nome);
mysql_tquery(dbHandle, query);
}
}
return 1;
}