Postado Outubro 11, 2015 9 anos Muito bom! Funcionou ótimamente bem aqui Pra quem quiser usar para dar dias de premium grátis, deixo aqui um script já usando essa nova função... function onLogin(cid) local storage = 55550 local days = 2 if getAccountStorageValue(getPlayerAccountId(cid), storage) <= 0 then if getPlayerPremiumDays(cid) >= 360 then return false else doPlayerAddPremiumDays(cid, days) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You received "..days.." days of premium account.") end setAccountStorageValue(getPlayerAccountId(cid), storage, 1) end return true end
Postado Dezembro 24, 2015 9 anos Desculpa reviver o tópico, porém eu estava criando o evento de natal, e fui utilizar a função, e reparei que quando ela seta a primeira storage, vai tudo beleza, mas quando usa UPDATE na função, a logica e a sintaxe está incorreta: db.executeQuery("UPDATE `account_storage` SET `value` = " .. accid .. " WHERE `key`=" .. key .. " LIMIT 1');") Aonde o certo é: db.executeQuery("UPDATE `account_storage` SET `value` = " .. value .. " WHERE `key`=" .. key .. " AND `account_id` = " .. accid .. " LIMIT 1;") Repare que removi um ') do final e troquei o valor do campo value por value, antes estava accid e adicionei um AND onde filtra pela conta do player. Segue a função corrigida para os preguiçosos: function setAccountStorageValue(accid, key, value) local getvalue = db.getResult("SELECT `value` FROM `account_storage` WHERE `account_id` = " .. accid .. " and `key` = " .. key .. " LIMIT 1;") if(getvalue:getID() ~= -1) then db.executeQuery("UPDATE `account_storage` SET `value` = " .. value .. " WHERE `key`=" .. key .. " AND `account_id` = " .. accid .. " LIMIT 1;") getvalue:free() return 1 else db.executeQuery("INSERT INTO `account_storage` (`account_id`, `key`, `value`) VALUES (" .. accid .. ", " .. key .. ", '"..value.."');") return 1 end end
Postado Janeiro 2, 2016 9 anos Quando vou instalar a query no sqlite dá este erro: Cannot execute query on undefined or invalid database.
Postado Agosto 26, 2018 6 anos Estou tentando utilizar este código, porém estou com o seguinte problema: quando utilizo o código informado, o server da vário erros e não abre function getAccountStorageValue(accid, key) local value = db.getResult("SELECT `value` FROM `account_storage` WHERE `account_id` = " .. accid .. " and `key` = " .. key .. " LIMIT 1;") if(value:getID() ~= -1) then return value:getDataInt("value") else return -1 end value:free() end quando utilizo este que adaptei, ele só me retorna o valor -1 e nunca o valor da key, poderia ajudar? function getAccountStorageValue(accid, key) local resultId = db.storeQuery("SELECT `value` FROM `account_storage` WHERE `account_id` = " .. accid .. " and `key` = " .. key) if resultId ~= false then local val = result.getInt(resultId, "value") result.free(resultId) return val end return -1 end Problema solucionado
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.