Esse é um script muito útil, obrigado por compartilhar.
- Fórum
- OTServ
- Recursos
- Scripting
- Globalevents e Spells
- [TFS 1.x] Removendo House por Tempo OFF
LA
globalevent
[TFS 1.x] Removendo House por Tempo OFF
Por larissaots, 03 de jun. de 2015 em Globalevents e Spells
script
3
1.4k
info
Grupo: Conde
Registrado: 07/04/15
Posts: 962
Reputação: +258
Gênero: Masculino

03 de junho de 2015 às 20:36
info
Grupo: Infante
Registrado: 28/01/12
Posts: 1.6k
Reputação: +262
Gênero: Masculino

05 de junho de 2015 às 23:25
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.


info
Grupo: Banidos
Registrado: 07/04/13
Posts: 648
Reputação: +163
Créditos: luanluciano93 e Cristofer.
Objetivo
Esse script é usada para que o player que fique offline pelo tempo editado, perca a house automaticamente.
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 endA 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:
OBS: Esse script é iniciado junto com o servidor, logo após aparecerá na distro as houses removidas e a quantidade total.