Postado Janeiro 22, 2017 8 anos Olá galera, estou desenvolvendo pro meu servidor um sistema o qual não faz diferença dizer qual é, onde engalhei numa parte e gostaria de ver se alguém poderia me ajudar. Preciso de uma função que checa na minha database, se existe algum player que tenha o valor X na storage Y. Por exemplo: Citar function verificar(10023, 54) -- storage, valor if existe alguém com o valor 54 na storage 10023 then return true else return false end end Como sou péssimo quando se fala de query, não consegui fazer essa função, alguém poderia por favor me ajudar? Se possível, retornar o nome do jogador que possui tal valor na storage. Obs: Servidor SQlite Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
Postado Janeiro 22, 2017 8 anos function getPlayersFromStorage(storage, value) local query,t = db.getResult("SELECT `player_id` FROM `player_storage` WHERE `key` = ".. storage .." AND `value` = ".. value),{} if (query:getID() ~= -1) then repeat t[#t+1] = query:getDataInt("player_id") until not(query:next()) query:free() end return t end retorna uma tabela com os id dos players mas n tem erro a query é basica local storage,value = 178901,5 local query = db.getResult("SELECT `player_id` FROM `player_storage` WHERE `key` = ".. storage .." AND `value` = ".. value) if (query:getID() ~= -1) then ... [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Janeiro 22, 2017 8 anos Autor Acho que não entendi muito bem.... Irei explicar como vou usar: Estaria criando essa função em uma lib, para um NPC chamar ela de acordo com o numero que o player der por exempo: verificar(10023, ".. numero do player ..") Se já existir algum player com esse numero na storage 10023, a função retorna o nome do player, se não existir, a função retorna false para que o NPC prossiga e registre esse número no player, ou seja, nunca poderá ter 2 players com o mesmo valor nessa storage. @Vodkart eu tentei assim, mas não funciona: function jatem(sto, valor) local query = db.getResult("SELECT `player_id` FROM `player_storage` WHERE `key` = "..sto.." AND 'value' = "..valor.."") local aa = getPlayerNameByGUID(query:getDataString("player_id")) if aa then bb = getPlayerNameByGUID(query:getDataString("player_id")) else bb = false end return bb end Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
Postado Janeiro 22, 2017 8 anos Solução function getPlayersFromStorage(storage, value) local query = db.getResult("SELECT `player_id` FROM `player_storage` WHERE `key` = ".. storage .." AND `value` = ".. value) if (query:getID() ~= -1) then return getPlayerNameByGUID(query:getDataInt("player_id")) end return false end ai pode usar local x = getPlayersFromStorage(10023, getPlayerGUID(cid)) if not x then print("nenhum jogador com este value") else print(x) end Editado Janeiro 22, 2017 8 anos por Vodkart nenhum (veja o histórico de edições) [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Janeiro 22, 2017 8 anos Autor 8 minutos atrás, Vodkart disse: function getPlayersFromStorage(storage, value) local query = db.getResult("SELECT `player_id` FROM `player_storage` WHERE `key` = ".. storage .." AND `value` = ".. value) if (query:getID() ~= -1) then return getPlayerNameByGUID(query:getDataString("player_id")) end return false end ai pode usar local x = getPlayersFromStorage(10023, getPlayerGUID(cid)) if not x then print("nenhum jogador com este value") else print(x) end Funcionou cara! Vlw mesmo! Obs: você cometeu um pequeno erro ali rsrs local x = getPlayersFromStorage(10023, getPlayerGUID(cid)) seria local x = getPlayersFromStorage(10023, 53) Mas funcionou bem como eu precisava! Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.