• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

Looking for some kind of rent system

Erexo

Kage
Premium User
Joined
Mar 27, 2010
Messages
743
Solutions
5
Reaction score
200
Location
Pr0land
GitHub
Erexo
Hello,
im looking for script, who clear house when owner didnt login for about 7days.
It delete owner, clear all items and send it to prev owner DP.

I cannot find any good script for this, please help me (tfs 0.3.6pl1).


Erexo :)
 
@up
As i said, it propably just switch owners, but items still be inside.

I Just tried this :

LUA:
local function getLastLoginDiff(name) 
local res = db.getResult("SELECT `lastlogin` FROM `players` WHERE `name` = '"..name.."';") 
    if res:getID() ~= -1 then 
        return os.time()-res:getDataInt('lastlogin') 
    end 
end 

local config = { 
timeInDays = 14, 
buyHouseCommand = "!buyhouse", 
delay = 10, 
delayStorage = 49676 
} 

function onSay(cid, words, param, channel) 
    local pos,s,dir = getPlayerPosition(cid),getPlayerPosition(cid),getCreatureLookDirection(cid) 
    if config.delay ~= 0 and getPlayerStorageValue(cid,config.delayStorage) >= os.time() then 
        return doSendMagicEffect(pos,2) and doPlayerSendCancel(cid,"You can only use this command every " .. config.delay .. " seconds. You have to wait " .. getPlayerStorageValue(cid,config.delayStorage)-os.time() .. " seconds.") 
    end 
    pos.x = dir == 1 and pos.x+1 or dir == 3 and pos.x-1 or pos.x 
    pos.y = dir == 0 and pos.y-1 or dir == 2 and pos.y+1 or pos.y 
    local abuse = config.delay ~= 0 and setPlayerStorageValue(cid,config.delayStorage,os.time()+config.delay) 
     
    local house = getHouseFromPos(pos) 
    if house == false then 
        return doSendMagicEffect(s,2) and doPlayerSendCancel(cid,"This ain't a house tile.") 
    end 
     
    if getHouseOwner(house) == 0 then 
        return doSendMagicEffect(s,2) and doPlayerSendCancel(cid,"This house has no owner. You can buy it on the normal way using " .. config.buyHouseCommand .. ".") 
    end 
     
    local owner = getPlayerNameByGUID(getHouseOwner(house)) 
    if not(getLastLoginDiff(owner) >= config.timeInDays*24*60*60) then 
        return doSendMagicEffect(s,2) and doPlayerSendCancel(cid,owner.." is not inactive.") 
    end 
	
     
    if doPlayerRemoveMoney(cid,getHousePrice(house)) then 
        return doSendMagicEffect(s,13) and setHouseOwner(house, getPlayerGUID(cid)) and doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,owner .. " has been inactive for more than " .. config.timeInDays .. " days.\nYou bought " .. getHouseName(house) .. " for " .. getHousePrice(house) .. ".") 
    else 
        return doSendMagicEffect(s,2) and doPlayerSendCancel(cid,"You need "..getHousePrice(house).." gold coins to buy " .. getHouseName(house) .. ".") 
    end 
end

And it clean the house, works fine.
 
Back
Top