Marko999x
999x HIGHExP
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: