Globalevents De Stamina

lucas502
em Scripts

lucas502

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 31/03/07Posts: 122

Ola galera blz?

 

Então, já que o meu server tem um bug na stamina (mesmo eu editando o rateStaminaGain no config.lua, a stamina recupera muito lentamente, mas muito mesmo!)

 

Eu pensei em fazer um globalevent que, a cada tanto tempo, adicionasse tanto de stamina pra todos os players.

 

 

Talvez em db.excutequery pra adicionar a stamina, ou algum outro jeito que o pessoal conheça ai, desde que adicione tanto X stamina a tanto X tempo pra todos os players.

 

 

 

Vlw galera. Aguardo!

hellcoreot

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 12/08/11Posts: 110

Você pode tirar o sistema de stamina tbm assim:

 

rateStaminaLoss = 0

rateStaminaGain = 3

rateStaminaAboveNormal = 1.0

rateStaminaUnderNormal = 0.0

lucas502

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 31/03/07Posts: 122

ja pensei nisso também, mas não quero deixar infinita, quero que funcione normalmente

jhon992

Dono JhonBot
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/06/11Posts: 631Char no Tibia: Warrior of Mort

Vai em data/globalevents/scripts, cria um arquivo chamado "stamina" sem as aspas e nele cole:

function onThink(interval, lastExecution, thinkInterval)
local stamina = db.getResult("SELECT `id`, `stamina` FROM `players` WHERE `group_id` <= 2;")
local stamina_hour = 3600000 -- 1 hra 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 < 151200000 then
	stamina_verifica = 151200000 - 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

 

Agora em globalevents.xml a tag:

<globalevent name="stamina" interval="1800" event="script" value="stamina.lua"/>

 

O interval no xml é o tempo em segundos para executar o script.

O script funciona da seguinte maneira, cada vez que ele executar esta configurado no stamina.lua para ser adicionado 1 hra de stamina pra quem ta offline.

 

Caso seu pedido tenha sido resolvido, reporte para um moderador clicando em "Denunciar" logo abaixo do post para que o tópico seja movido para resolvidos.

dragonfight

Sometimes I can't believe it
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 12/09/10Posts: 249

Jhon eu vou usar seu sistema tb, vlw por compartilhar reputado.

tumblr_mbtch9L7iC1r2wtdzo1_500.jpg

lucas502

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 31/03/07Posts: 122

Boa Jhon, sempre tu nos ajudando aqui cara, vlw msmo ;)

 

então, vou testar, se tiver funcionando ou tiver algum problema, eu volto pra reportar o topico

 

Já foi reputado ;)

 

A proposito, eu vi ali que você colocou pra checkar se a stamina está menos do que 42:00 certo?

 

eu ia falar isso, por que se o script sempre adicionasse, não ia ter um limite né?

 

Vlw ;)

 

edit --

 

cara, não sei se foi só comigo, mas agora quando o player morre, a stamina desce pra 0:00 !

 

o.O

 

 

será algum problema no script ou nada a ver? (não tava assim..)

 

e se não for no script, pode ser onde?

 

vlw, aguardo

jhon992

Dono JhonBot
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/06/11Posts: 631Char no Tibia: Warrior of Mort

Creio que não tenha nada a ver com o script. Ve se em algum creaturescript "onDeath", "prepareDeath" ou "onLogin" tem algum setPlayerStamina ou um doPlayerAddStamina, se tiver, remova, se não tiver então não sei onde pode ser o problema.

lucas502

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 31/03/07Posts: 122

Pronto, o seu script de stamina ai ta funcionando direitinho.

 

 

Valeu, topico reportado ;)