Ir para conteúdo
  • 0

Account Storage Value


rorix

Pergunta

Galera, estou querendo adicionar no meu server a seguinte função:

getAccountStorageValue(getPlayerAccountId(cid), key)setAccountStorageValue(getPlayerAccountId(cid), key, value)

que é uma função para setar storage em accounts, mas eu segui alguns tutoriais e deu erro na hora de executar isso no sql:

CREATE TABLE `account_storage` (`account_id` int(11) NOT NULL default '0',`key` int(10) unsigned NOT NULL default '0',`value` varchar(255) NOT NULL default '0',UNIQUE KEY `account_id_2` (`account_id`,`key`),KEY `account_id` (`account_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

sempre fica dando de sintax e eu não sei resolver, alguem poderia ajudar?

 

Aqui segue uma segunda dúvida parecida com essa, se alguem souber: http://www.xtibia.com/forum/topic/241578-doplayeropenchannelcid-channel_private/

 

edit: lembrando que a source que estou usando é para tibia 7.72

Editado por rorix
Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

data/lib/function.lua

 

function getAccountStorageValue(accidkey)
  
local value db.getResult("SELECT `value` FROM `account_storage` WHERE `account_id` = " .. accid .. " and `key` = " .. key .. " LIMIT 1;")
   if(
value:getID() ~= -1then
    
return value:getDataInt("value")
   else
    return -
1
   end
   value
:free()
 
end
 
 
 
function setAccountStorageValue(accidkeyvalue)
  
local getvalue db.getResult("SELECT `value` FROM `account_storage` WHERE `account_id` = " .. accid .. " and `key` = " .. key .. " LIMIT 1;")
   if(
getvalue:getID() ~= -1then
   db
.executeQuery("UPDATE `account_storage` SET `value` = " .. accid .. " WHERE `key`=" .. key .. " 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

 

 

database

 

CREATE TABLE `account_storage` (
  `
account_idint(11NOT NULL default '0',
  `
keyint(10unsigned NOT NULL default '0',
  `
valuevarchar(255NOT NULL default '0',
  
UNIQUE KEY `account_id_2` (`account_id`,`key`),
  
KEY `account_id` (`account_id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

eu testei e funfo normal !

 

credito azi

Link para o comentário
Compartilhar em outros sites

  • 0

Mano, colei certinho na database e apareceu esse erro:

edit: lembrando que a source que estou usando é para tibia 7.72

 Error while executing query: near "unsigned": syntax error<simple query executor>

 

Editado por rorix
Link para o comentário
Compartilhar em outros sites

  • 0
8 horas atrás, Poccnn disse:

Remove essa sentença do codigo.

 

 

removi, ai da esse erro

Error while executing query: near "KEY": syntax error<simple query executor>

 

Link para o comentário
Compartilhar em outros sites

  • 0

Temos um erro de sintaxe.

para sql, todas as palavras chaves sao escritas em maiusculos.

'and' tem que ser escrito 'AND'

Muda todas as palavras chaves usadas pelo sql para maiusculos.

Link para o comentário
Compartilhar em outros sites

  • 0
2 minutos atrás, Poccnn disse:

Temos um erro de sintaxe.

para sql, todas as palavras chaves sao escritas em maiusculos.

'and' tem que ser escrito 'AND'

Muda todas as palavras chaves usadas pelo sql para maiusculos.

 

tentei assim

CREATE TABLE `account_storage` (  `account_id` INT(11) NOT NULL default '0',  `key` INT(10) UNSIGNED NOT NULL default '0',  `value` VARCHAR(255) NOT NULL default '0',  UNIQUE KEY `account_id_2` (`account_id`,`key`),  KEY `account_id` (`account_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

mas gerou o mesmo error

 Error while executing query: near "unsigned": syntax error<simple query executor>

 

sera que pq ta dando isso?

Link para o comentário
Compartilhar em outros sites

  • 0

estranho, eu testei no sql e da error de syntax, quanto eu boto no site pelo mysql e testo lá ele vai normal, o que pode ser?

coloquei unsigned minusculo e deu mesmo error

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...