VO
globalevent

House Clean

Por Vodkart, 08 de jul. de 2012 em Globalevents e Spells

script
41
8.1k
BloxxB
18 de agosto de 2012 às 11:50

@Vodkart, muito bom o seu script, muito util para otservs com alto numero de players on e q tenham poucas houses, muito bem elaborado...Parabéns!

Por Isso, NO preocupação!

 

APROVADO!

SubwatS
18 de agosto de 2012 às 21:29

oloko nao funcionou aki.

AnonyA
20 de agosto de 2012 às 01:50

Está dando Event OnTime not found, oque poderia ser?

cs007C
20 de agosto de 2012 às 03:18

No meu também de o mesmo erro que o cara ai de cima.

hellcoreotH
20 de agosto de 2012 às 07:18

coloque isso no globalevents.xml

<globalevent name="housecleaner" type="startup" event="script" value="housecleaner.lua"/>

 

e mude isso:

function onTimer()

 

por isso no script:

 

function onStartup()

 

 

 

Agora quando der ss quando o serv ligar dnv as houses são deletadas sem erro.

VodkartV
20 de agosto de 2012 às 09:10

para quem está com esse erro:

 

Event OnTime not found

 

É porque em servidores mais recentes não existe mais a função onTimer()

 

então usem dessa forma:

 

 

function onThink(interval, lastExecution)
local days = 15*24*60*60
if tostring(os.date("%X")):sub(1, 5) == "00:00" then
doSaveServer()
local query = db.getResult("SELECT `owner`,`id` FROM `houses`;")
if (query:getID() ~= -1) then
while true do
local own,houseid = query:getDataInt("owner"),query:getDataInt("id")
local qry = db.getResult("SELECT `lastlogin`  FROM `players` WHERE `id` = "..own)
if(qry:getID() ~= -1) then
last = tonumber(qry:getDataInt("lastlogin"))
if last < os.time() - days then
setHouseOwner(houseid, NO_OWNER_PHRASE,true)
end
end
if not(query:next()) then
break
end
end
query:free()
end
end
return true
end

 

globalevents.xml

<globalevent name="HouseClean" interval="60" event="script" value="houseclean.lua"/>

 

obs: está para executar as "00:00"

qualquer coisa só mudar o horário, por exemplo:

 

"22:00"

bitten14B
21 de agosto de 2012 às 05:09

Cara, excelente script, mas eu acho que atualmente é desnecessario...

Os OT´s atuais ja vem com a função no config.lua:

houseCleanOld = xxxx

que é exatamente pra isso, ou eu estou enganado ?

VodkartV
23 de agosto de 2012 às 16:51

Cara, excelente script, mas eu acho que atualmente é desnecessario...

Os OT´s atuais ja vem com a função no config.lua:

houseCleanOld = xxxx

que é exatamente pra isso, ou eu estou enganado ?

 

Bah não sei cara, vou ficar te devendo essa...

Irei dar uma olhada nessa função no config.lua

obrigado por compartilhar!

RHCPR
29 de agosto de 2012 às 15:57

Cara, excelente script, mas eu acho que atualmente é desnecessario...

Os OT´s atuais ja vem com a função no config.lua:

houseCleanOld = xxxx

que é exatamente pra isso, ou eu estou enganado ?

 

Se não me falha a memória, é pra limpar as houses, dai você coloca essa parte em segundos.

 

@Vodkart

O seu sistema, caso a house seja limpa, os players perdem os items?

VodkartV
29 de agosto de 2012 às 16:36

Cara, excelente script, mas eu acho que atualmente é desnecessario...

Os OT´s atuais ja vem com a função no config.lua:

houseCleanOld = xxxx

que é exatamente pra isso, ou eu estou enganado ?

 

Se não me falha a memória, é pra limpar as houses, dai você coloca essa parte em segundos.

 

@Vodkart

O seu sistema, caso a house seja limpa, os players perdem os items?

os items vao para o dp

rhamerR
29 de agosto de 2012 às 23:16

ei amigo script perfeito mas tipo se o sv cair dentro deses 15 dias a contagem zera?

VodkartV
29 de agosto de 2012 às 23:39

ei amigo script perfeito mas tipo se o sv cair dentro deses 15 dias a contagem zera?

 

não, isso depende de quanto tempo o jogador ficar offline, se o server cair não tem problema.

rhamerR
30 de agosto de 2012 às 13:41

nossa perfeito então cara.

pensei que eu tinha que deixar o sv 15 dias direto online.

agora posso por online agora desligar e atualizar e o tempo continua contando sem reseta coreto?

 

(so nao dou outro rep+ pq ja dei hoje)

VodkartV
30 de agosto de 2012 às 13:45

tempo continua contando sim

1 mês depois...
GodalonexDG
07 de setembro de 2012 às 18:11

no lugar de onTimer()

 

eu coloquei onTime(), pois com R tava dando erro de event alguma coisa.. nao me lembro.

 

ficou assim

 

function onTime()

local days = 7*24*60*60

doSaveServer()

local query = db.getResult("SELECT `owner`,`id` FROM `houses`;")

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

while true do

local own,houseid = query:getDataInt("owner"),query:getDataInt("id")

local qry = db.getResult("SELECT `lastlogin` FROM `players` WHERE `id` = "..own)

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

last = tonumber(qry:getDataInt("lastlogin"))

if last < os.time() - days then

setHouseOwner(houseid, NO_OWNER_PHRASE,true)

end

end

if not(query:next()) then

break

end

end

query:free()

end

return true

end

 

nao testei ainda se ta indo pro dp os items.

Meu servidor é globalful 9.60