FE
tfs 0.3.6

Erro Estranho

Por FelipeXT, 08 de set. de 2015 em Scripts

erro
13
1.3k
FelipeXTF
08 de setembro de 2015 às 19:22

Estou com um erro estranho na database quando mato monstros, alguem sabe uque e e como resolver?

 

Print:

sgl7h2.jpg

gonorreiaswatG
08 de setembro de 2015 às 19:30

É porque sua database não tem as tabelas que estão sendo citadas, como:

player_advances, killed_monsters, etc..

 

Estás usando MySql?

 

Terá que executar um comando para adicioná-las, vou ver se encontro para você.

 

 

EDIT:

Para corrigir os erros, segue o código para cada um:

 

players_advances:

 

 

CREATE TABLE IF NOT EXISTS `player_advances` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cid` int(11) DEFAULT NULL,
`skill` int(11) DEFAULT NULL,
`oldlevel` int(11) DEFAULT NULL,
`newlevel` int(11) DEFAULT NULL,
`time` int(11) DEFAULT NULL,
UNIQUE KEY `id` (`id`),
KEY `cid` (`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3337 ;

 

 

 

killed_monsters: EDITADO

 

 

CREATE TABLE `killed_monsters` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`date` BIGINT UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3337;

 

 

 

Pronto, ambas tabelas estão acima.

 

Boa sorte.

Editado Setembro 8 por Adriano Swatt

zipter98Z
08 de setembro de 2015 às 19:30

Você provavelmente está usando um creatureevent executado quando um monstro morre, com uma de suas características a modificação de valores em duas tabelas da database que estão faltando no seu servidor (killed_monsters e player_advances). Talvez seja um onDeath ou um onKill. Recomendaria dar uma olhada nos códigos de data/creaturescripts/scripts e procurar por aqueles que ou chamam a função db.executeQuery ou db.query. Se você não os estiver usando, basta deletá-los que o erro não mais acontecerá. Caso contrário, responda a pergunta do Adriano.

Editado Setembro 8 por zipter98

FelipeXTF
08 de setembro de 2015 às 20:01

Estou usando Sqlite!

 

Playeradvance

 

function onAdvance(cid, skill, oldLevel, newLevel)

db.executeQuery("INSERT INTO player_advances (cid, skill, oldlevel, newlevel, time) VALUES ('" .. getPlayerGUID(cid) .. "', '" .. skill .."', '" .. oldLevel .."', '" .. newLevel .."', '" .. os.time() .. "' )")

return true
end

 

Preparedeath

 

local function sendLetter(p)
local pos = p.pos
local letter = p.letter
doSendAnimatedText(pos, letter, TEXTCOLOR_WHITE)
end

function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)
local letters = {"Morreu!"}
for i = 1, #letters do
addEvent(sendLetter, i * 150, {pos = getCreaturePosition(cid), letter = letters})
end
return true
end

 

 

 

 

gonorreiaswatG
08 de setembro de 2015 às 20:11

Certo, então para reparar o erro você terá que executar o código que te passei em seu SqlEditor com sua database carregada.

 

Para isso, abra seu Sqlite Studio e carregue sua database.

Logo em seguida, clique em "Open SQL query editor" e verá que vai abrir uma janela em branco onde você poderá digitar.

Sendo assim, coloque o código que passei na postagem lá em cima e clique no botão de Ok/Executar.

 

Ele criará a tabela que falta, porém irá faltar a "killed_monsters" que vou ver se encontro para você.

 

EDIT:

Pronto, adicionei o código para criar a tabela "killed_monsters" também, basta executar os dois códigos como disse acima.

 

 

Boa sorte.

Editado Setembro 8 por Adriano Swatt

FelipeXTF
08 de setembro de 2015 às 20:20

Ocorreu o seguinte erro: Error while executing query: near "AUTO_INCREMENT": syntax error

gonorreiaswatG
08 de setembro de 2015 às 20:30

Ocorreu o seguinte erro: Error while executing query: near "AUTO_INCREMENT": syntax error

 

Algum deles funcionou?

Testou ambos?

FelipeXTF
08 de setembro de 2015 às 20:41

Ocorreu o mesmo erro!

gonorreiaswatG
08 de setembro de 2015 às 20:44
Melhor resposta

Em todos os dois códigos deu o mesmo erro?

 

Adicionou ele no campo de códigos e apertou "F9"?

FelipeXTF
08 de setembro de 2015 às 20:52

Sim!

gonorreiaswatG
08 de setembro de 2015 às 22:27

Boa noite,

 

Conseguiu resolver?

LumusL
08 de setembro de 2015 às 22:41

Usuário marcou como melhor resposta. Tópico movido.

FelipeXTF
08 de setembro de 2015 às 22:52

Sim!