Ir para conteúdo
  • Cadastre-se

Ajuda consertar global event


Posts Recomendados

Eu tento usar esse script no meu servidor e da erro , ele funcionaria da seguinte forma 30 mim deslogado enche-se 30 mim de stamina (não adianta o stamina do meu config.lua está bugado tem que ser por aqui)

Script:

function onThink(interval, lastExecution, thinkInterval)

local stamina = db.getResult("SELECT `id`, `stamina` FROM `players` WHERE `group_id` <= 2;")

local stamina_hour = 1800000 -- 0.5 hras de stamina, o tempo é calculado em milesegundos. Exemplo: 1 min = 600000 mileseg.

repeat

if stamina:getID() == -1 then

break

end

id, stamina_now = stamina:getDataInt("id"), stamina:getDataInt("stamina")

if stamina_now < 75600000 then

stamina_verifica = 75600000 - stamina_now

if stamina_verifica < stamina_hour then

db.executeQuery("UPDATE `players` SET `stamina` = '"..stamina_now+stamina_verifica.."' WHERE `id` == '"..id.."';")

else

db.executeQuery("UPDATE `players` SET `stamina` = '"..stamina_now+stamina_hour.."' WHERE `id` == '"..id.."';")

end

end

until stamina:next() == false

return true

end

Erro:

[21:25:11.450] mysql_real_query<>: UPDATE 'players' SET 'stamina' = '16772485' WHERE 'id' == '9'; - MYSQL ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '== '9'' at line 1 <1064>

Link para o post
Compartilhar em outros sites

Mude isso:

db.executeQuery("UPDATE `players` SET `stamina` = '"..stamina_now+stamina_hour.."' WHERE `id` == '"..id.."';")
Para isso:
db.executeQuery("UPDATE `players` SET `stamina` = "..stamina_now+stamina_hour.." WHERE `id` = "..id..";")

Editado por Kimoszin (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Tava funcionado e tal,mas qnd eu loguei um char e o script tava on ao msm tempo deu um erro q n paro de da no meu distro,tipo só funcionou com todos off qnd tinha um logado aconteceu isso:

mysql_realquert<>: UPDATE 'players' SET 'stamina'75600000' WHERE 'id' == '9'; - MSQL ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=='9'' at line 1<1064>

Link para o post
Compartilhar em outros sites
function onThink(interval, lastExecution, thinkInterval)

local stamina_hour = 1800000 -- 0.5 hras de stamina, o tempo é calculado em milesegundos. Exemplo: 1 min = 600000 mileseg.

local query = db.getResult("SELECT `id`, `stamina` FROM `players` WHERE `id` > 6 AND `group_id` < 3;")

local stamina_verifica = 0

if (query:getID() ~= -1) then

while true do

id, stamina_now = query:getDataInt("id"), query:getDataInt("stamina")

if stamina_now < 75600000 then

local stamina_verifica = 75600000 - stamina_now

local x = stamina_verifica < stamina_hour and stamina_now+stamina_verifica or stamina_now+stamina_hour

db.executeQuery("UPDATE `players` SET `stamina` = "..x.." WHERE `id` == '"..id.."';")

end

if not(query:next()) then 

break 

end 

end 

query:free() 

end

return true

end

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

function onThink(interval, lastExecution, thinkInterval)

local stamina_hour = 1800000 -- 0.5 hras de stamina, o tempo é calculado em milesegundos. Exemplo: 1 min = 600000 mileseg.

local query = db.getResult("SELECT `id`, `stamina` FROM `players` WHERE `id` > 6 AND `group_id` < 3;")

local stamina_verifica = 0

if (query:getID() ~= -1) then

while true do

id, stamina_now = query:getDataInt("id"), query:getDataInt("stamina")

if stamina_now < 75600000 then

local stamina_verifica = 75600000 - stamina_now

local x = stamina_verifica < stamina_hour and stamina_now+stamina_verifica or stamina_now+stamina_hour

db.executeQuery("UPDATE `players` SET `stamina` = "..x.." WHERE `id` == '"..id.."';")

end

if not(query:next()) then

break

end

end

query:free()

end

return true

end

mysql_real_query<>: UPDATE 'players' SET 'stamina' = 75600000 WHERE that corresponds to your MySQL server version for the right syntax to use near '=='9'' at line 1 <1064>

Link para o post
Compartilhar em outros sites

esqueci de tirar o "==", tenta:


function onThink(interval, lastExecution, thinkInterval)

local stamina_hour = 1800000 -- 0.5 hras de stamina, o tempo é calculado em milesegundos. Exemplo: 1 min = 600000 mileseg.

local query = db.getResult("SELECT `id`, `stamina` FROM `players` WHERE `id` > 6 AND `group_id` < 3;")

local stamina_verifica = 0

if (query:getID() ~= -1) then

while true do

id, stamina_now = query:getDataInt("id"), query:getDataInt("stamina")

if stamina_now < 75600000 then

local stamina_verifica = 75600000 - stamina_now

local x = stamina_verifica < stamina_hour and stamina_now+stamina_verifica or stamina_now+stamina_hour

db.executeQuery("UPDATE `players` SET `stamina` = "..x.." WHERE `id` = "..id..";")

end

if not(query:next()) then

break

end

end

query:free()

end

return true

end

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

esqueci de tirar o "==", tenta:


function onThink(interval, lastExecution, thinkInterval)

local stamina_hour = 1800000 -- 0.5 hras de stamina, o tempo é calculado em milesegundos. Exemplo: 1 min = 600000 mileseg.

local query = db.getResult("SELECT `id`, `stamina` FROM `players` WHERE `id` > 6 AND `group_id` < 3;")

local stamina_verifica = 0

if (query:getID() ~= -1) then

while true do

id, stamina_now = query:getDataInt("id"), query:getDataInt("stamina")

if stamina_now < 75600000 then

local stamina_verifica = 75600000 - stamina_now

local x = stamina_verifica < stamina_hour and stamina_now+stamina_verifica or stamina_now+stamina_hour

db.executeQuery("UPDATE `players` SET `stamina` = "..x.." WHERE `id` = "..id..";")

end

if not(query:next()) then

break

end

end

query:free()

end

return true

end

+ rep pela atenção , não ta dando mais nenhum bug, mas também não ta enchendo a stamina

Editado por tiagoduuarte (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

deve ser por causa dos número que tem aí, eu não entendi nada.

você quer colocar a cada meia hora encher qnto de stamina?

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

deve ser por causa dos número que tem aí, eu não entendi nada.

você quer colocar a cada meia hora encher qnto de stamina?

De meia em meia hora encher 30 minutos de stamina

Link para o post
Compartilhar em outros sites

rapaz tava dando uma olhada na db e seu calculo está errado.

cálculo é esse:

151200000 = 42 hrs

3600000 = 1 hr

1800000 = 30 minutos

function onThink(interval, lastExecution, thinkInterval)

local total,minutes = 151200000,1800000

local query = db.getResult("SELECT `id`, `stamina` FROM `players` WHERE `id` > 6 AND `group_id` < 3;")

if (query:getID() ~= -1) then

while true do

local id, stamina_now = query:getDataInt("id"), query:getDataInt("stamina")

if stamina_now < (total-minutes) then

db.executeQuery("UPDATE `players` SET `stamina` = "..stamina_now+minutes.." WHERE `id` = "..id)

end

if not(query:next()) then

break

end

end

query:free()

end

return true

end

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

rapaz tava dando uma olhada na db e seu calculo está errado.

cálculo é esse:

151200000 = 42 hrs

3600000 = 1 hr

1800000 = 30 minutos

function onThink(interval, lastExecution, thinkInterval)

local total,minutes = 151200000,1800000

local query = db.getResult("SELECT `id`, `stamina` FROM `players` WHERE `id` > 6 AND `group_id` < 3;")

if (query:getID() ~= -1) then

while true do

local id, stamina_now = query:getDataInt("id"), query:getDataInt("stamina")

if stamina_now < (total-minutes) then

db.executeQuery("UPDATE `players` SET `stamina` = "..stamina_now+minutes.." WHERE `id` = "..id)

end

if not(query:next()) then

break

end

end

query:free()

end

return true

end

Script em testes , se funcionar edito com seu +REP

Link para o post
Compartilhar em outros sites

caso seu pedido tenha sido sanado me avise para que eu dê o tópico como resolvido.

abraços

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

caso seu pedido tenha sido sanado me avise para que eu dê o tópico como resolvido.

abraços

Estou realizando uns testes aqui com o servidor online

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo