VO
globalevent

House Clean

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

script
41
8.1k
VodkartV
08 de julho de 2012 às 12:56

Descrição: É para deletar house de players inativos, ou seja, o player que não loga em "X" dias perde a sua house!

 

 

 

houseclean.lua

function onTimer()
local days = 15*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

 

globalevents.xml

<globalevent name="HouseClean" time="03:00" event="script" value="houseclean.lua"/>

 

na tag está para executar o script as 3 da manhã se quiser alterar só mudar essa parte:

 

time="03:00"

 

para configurar os dias que o player que não logar em "X" dias É aqui:

 

local days = 15*24*60*60

 

no caso está para o jogador que não logar em 15 dias perder a house.</globalevent>

Editado Julho 18 por Vodkart

08 de julho de 2012 às 15:41

haha, fizemos um script semelhante no globalwar esses tempos.

 

quando vc usa a função setHouseOwner(houseid, 0, true) vc não precisa usar o cleanHouse(houseid), porque o true da função setHouseOwner faz os itens da casa irem para o dp do antigo dono.

 

enfim, parabéns pelo código, falo.

VodkartV
08 de julho de 2012 às 17:57

hmmmm valeu por avisar, vou remover aquela linha já '-'

abraços

joao33J
08 de julho de 2012 às 23:53

Vodkart o meu distro é tfs 0.4 ( acho q isso)

 

ele da error no globalevents.xml quando eu adiciono esse script caso eu ponha assim sera que funciona?

 

 

<globalevent name="houseclean" type="start" event="script" value="houseclean.lua"/>

VodkartV
09 de julho de 2012 às 14:08

@up

 

mas nesse caso só vai executar o script quando o server abrir

 

tenta colocar o por interval mesmo então, n esquece de mudar a função main no script

 

abraços

BeekiB
09 de julho de 2012 às 14:21

Tiago é possível fazer um script mande os itens pra o depot do antigo dono? assim evitando prejuízos e players revoltados.

09 de julho de 2012 às 14:28

quem sabe vc lê o meu post

2 semanas depois...
noobpregoN
18 de julho de 2012 às 17:20

Ficou com um erro na sintaxe amigo.

 

 

<globalevent name="HouseClean" time="03:00" event="script" value="houseclean.lua">

Aqui faltou fechar a função:

 

<globalevent name="HouseClean" time="03:00" event="script" value="houseclean.lua\">

Tirando isso ficou ótimo.

VodkartV
18 de julho de 2012 às 20:49

Obrigado amigo, acho que o fórum que bugou, outra coisa é que é pra direita em vez da esquerda o "/"

vlw

19 de julho de 2012 às 03:41

eu não lembro bem como é pra fechar a tag (e to com preguiça de ver aqui), mas com certeza o \ ou / não fica dentro da string do nome do arquivo.

Editado Julho 19 por Demonbholder

VodkartV
19 de julho de 2012 às 17:42

que eu saiba a barra tem um padrão, e é para direita

19 de julho de 2012 às 18:01

acho que é isso mesmo

1 mês depois...
cs007C
05 de agosto de 2012 às 04:40

Belo script vou testar aqui vê se vai pegar certinho...Valeu Vodkart =)

 

Uma pequena duvida..Eu tenho um script que limpa players, account, itens e tals,,,so que ele só pega quando liga, se eu quiser por ele para rodar com um horario igual esse da house eu posso? Valeu

Editado Agosto 5 por cs007

2 semanas depois...
RajasR
14 de agosto de 2012 às 13:56

uma ideia quando execulta o script bem que podia kickar todos os players que estive online menos os da staff

VodkartV
14 de agosto de 2012 às 14:56

Belo script vou testar aqui vê se vai pegar certinho...Valeu Vodkart =)

 

Uma pequena duvida..Eu tenho um script que limpa players, account, itens e tals,,,so que ele só pega quando liga, se eu quiser por ele para rodar com um horario igual esse da house eu posso? Valeu

 

sim, pode.

 

 

uma ideia quando execulta o script bem que podia kickar todos os players que estive online menos os da staff

 

qual a finalidade disso?