Hi
Request: http://otland.net/f132/getting-house-83042/ by Sherlok
Script by me. ;d
Just stay infront of a house like with !buyhouse and if the owner is inactive for more than x days you will be able to buy the house.
Features:
•Anti abuse (you can set waiting period between uses of the command)
•if house owner is inactive for more than x days you can buy the house for real price.
•Feel free to remove the messages like: ^^
doPlayerSendCancel(cid,"This ain't a house tile.")
Script:
Talkactions.xml:
Config:
timeInDays => Time in days the owner needs to be inactive
buyHouseCommand => the command which is used for buying house, because it is used in the script's messages
delay => anti abuse. the time the player needs to wait between using this command (can be turned of by setting it to 0)
delayStorage => unused storage value for anti abuse, isn't needed if delay is = 0
Have fun with the script.
Feel free to
Rep+
~Rhux
Request: http://otland.net/f132/getting-house-83042/ by Sherlok
Script by me. ;d
Just stay infront of a house like with !buyhouse and if the owner is inactive for more than x days you will be able to buy the house.
Features:
•Anti abuse (you can set waiting period between uses of the command)
•if house owner is inactive for more than x days you can buy the house for real price.
•Feel free to remove the messages like: ^^
doPlayerSendCancel(cid,"This ain't a house tile.")
Script:
PHP:
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
Talkactions.xml:
HTML:
<talkaction words="/inactive" event="script" value="inactivehouses.lua"/>
Config:
timeInDays => Time in days the owner needs to be inactive
buyHouseCommand => the command which is used for buying house, because it is used in the script's messages
delay => anti abuse. the time the player needs to wait between using this command (can be turned of by setting it to 0)
delayStorage => unused storage value for anti abuse, isn't needed if delay is = 0
Have fun with the script.
Feel free to
Rep+
~Rhux