• 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!

Inactive house command! Need Help Rep++

warhawk

New Member
Joined
Jan 13, 2009
Messages
44
Reaction score
0
Location
Sweden
Hey i have a Script for Buy inactive houses but it dont look if you alredy have a house so if somone is inactive for 14 days you can buy his house so you can have more than one house :(

so i need a funktion some look if you have a house or not

Code:
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

- - - Updated - - -

Bump!
 
Last edited:
Code:
	if getHouseByPlayerGUID(getPlayerGUID(cid)) then
		doSendMagicEffect(s, CONST_ME_POFF)
		doPlayerSendCancel(cid, 'You already own a house.')
		return true
	end
 
Back
Top