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

[TFS 1.3+] Donation Castle House System

Marko999x

999x era
Premium User
Joined
Dec 14, 2017
Messages
2,864
Solutions
82
Reaction score
1,967
Location
Germany
This script will give you a castle and will give all empty houses to admin

Lua:
local config = {
    adminGuid = 7, -- Admin char id
    levelToUse = 1, -- Level to use item
    townId = 2, -- Castle town id
    castleItem = 2299, -- Castle item
}
local castles_Globalevent = GlobalEvent("castles_Globalevent")
function castles_Globalevent.onThink()
    local castles = Game.getHouses()
    for _,castle in pairs(castles) do
        if castle:getTown() and castle:getTown():getId() == config.townId then
            if castle:getOwnerGuid() == 0 then
                castle:setOwnerGuid(config.adminGuid)
            end
        end
    end
    return true
end
castles_Globalevent:interval(5000)
castles_Globalevent:register()
-------------------------------------------------------------------------------------------------
local castles_Onuse = Action()
function castles_Onuse.onUse(player, item, fromPosition, target, toPosition, isHotkey)
    if player:getLevel() < config.levelToUse then
        return player:sendCancelMessage('You have to be at least Level ' .. config.levelToUse .. ' to get a castle.')
    end
    if player:getZone() ~= ZONE_PROTECTION then
        return player:sendCancelMessage('You cannot use this while PZlocked.')
    end
    local playerGuid = player:getGuid()
    local selectedCastle = nil
    local castles = Game.getHouses()
    for _,castle in pairs(castles) do
        if castle:getTown() and castle:getTown():getId() == townId then
            local owner = castle:getOwnerGuid()
            if owner == playerGuid then
                return player:sendCancelMessage('Your character already owns a castle.')
            elseif owner == 0 or owner == config.adminGuid then
                if selectedCastle == nil then
                    selectedCastle = castle
                end
            end
        end
    end
    if selectedCastle == nil then
        return player:sendCancelMessage('There are no castles available at this moment.')
    end
    selectedCastle:setOwnerGuid(playerGuid)
    player:sendTextMessage(MESSAGE_EVENT_ADVANCE,'Welcome to your new home, ' .. selectedCastle:getName().. '!')
    player:teleportTo(selectedCastle:getExitPosition(),true)
    item:remove(1)
    return true
end
castles_Onuse:id(config.castleItem)
castles_Onuse:register()
 
Last edited:
Back
Top