Ir para conteúdo
  • Cadastre-se

Posts Recomendados

  • 1 year later...
  • Respostas 9
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

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 `accou

Olá pessoal, hoje resolvi trazer ao TK uma função muito útil e simples de usar-la, tenho certeza que muitos irão usar-la. Você poderá usar assim: getAccountStorageValue(getPlayerAccountId(cid), key) setAccountStorageValue(getPlayerAccountId(cid), key, value) INSTALAÇÃO Para instala-la é simples, vá até seu banco de dados e execute a seguinte query: CREATE TABLE `account_storage` ( `account_id` int(11) NOT NULL default '0', `key` int(10) unsigned NOT NULL default '0', `value` varchar(255)

legal em reputado

Muito bom! Funcionou ótimamente bem aqui :D

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
Link para o post
Compartilhar em outros sites
  • 2 months later...

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

 

 

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

Quando vou instalar a query no sqlite dá este erro:

 

Cannot execute query on undefined or invalid database.

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizações

 

Link para o post
Compartilhar em outros sites
  • 2 years later...

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

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Estatísticas dos Fóruns

    96844
    Tópicos
    519597
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo