Ir para conteúdo

[TFS 1.x] Removendo House por Tempo OFF


larissaots

Posts Recomendados

Créditos: luanluciano93 e Cristofer.

7HSLPUH.png

 

Objetivo

Esse script é usada para que o player que fique offline pelo tempo editado, perca a house automaticamente.

 

7HSLPUH.png

 

Tutorial
Em globalevents/scripts/ crie um arquivo chamado doCheckHouses.lua e coloque esse código dentro:

-- <globalevent type="startup" name="doCheckHouses" script="doCheckHouses.lua" />

local function doCheckHouses()

    local dias = 3
    local tempo = os.time() - (dias * 24 * 60 * 60)
    local registros = db.storeQuery("SELECT `houses`.`owner`, `houses`.`id` FROM `houses`,`players` WHERE `houses`.`owner` != 0 AND `houses`.`owner` = `players`.`id` AND `players`.`lastlogin` <= " .. tempo .. ";")
    
    if registros ~= false then
    
        local count = 0
        
        print('house leave code')
        
        repeat
            count = count + 1
            
            local owner = result.getNumber(registros, "owner")
            local houseId = result.getNumber(registros, "id")
            local house = House(houseId)
            
            if house and (owner > 0) then
                print(house:getName())
                house:setOwnerGuid(0)
            end
            
        until not result.next(registros)
        
        print('house leave house count:' .. count)
        
        result.free(registros)
    end
end

function onStartup()
    addEvent(doCheckHouses, 60 * 1000)
    
    return true
end

A tag do globalevents.xml esta no script como comentário, é só adiciona-lá.

Para editar o tempo (em dias) que se o jogador ficar offline ele perderá a house é nessa linha:

local dias = 3

OBS: Esse script é iniciado junto com o servidor, logo após aparecerá na distro as houses removidas e a quantidade total.

Link para o comentário
Compartilhar em outros sites

Aqui deu esse erro:

[05/06/2015 23:23:53] house leave code

[05/06/2015 23:23:53] [Error - GlobalEvent Interface] 
[05/06/2015 23:23:53] In a timer event called from: 
[05/06/2015 23:23:53] data/globalevents/scripts/doCheckHouses.lua:onStartup
[05/06/2015 23:23:53] Description: 
[05/06/2015 23:23:53] data/globalevents/scripts/doCheckHouses.lua:16: attempt to call field 'getNumber' (a nil value)
[05/06/2015 23:23:53] stack traceback:
[05/06/2015 23:23:53] 	data/globalevents/scripts/doCheckHouses.lua:16: in function <data/globalevents/scripts/doCheckHouses.lua:1>

Assim que o servidor fica online, o erro aparece.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...