beenii
Well-Known Member
- Joined
- Jul 26, 2010
- Messages
- 580
- Solutions
- 1
- Reaction score
- 57
Hello, I took the liberty of making a system to give access to exclusive areas.
It is very easy to configure, if you have any idea to improve it, comment it
Features
data/lib/lib.lua
data/lib/tileRequeriments.lua
data/scripts/tileRequeriments.lua
It is very easy to configure, if you have any idea to improve it, comment it
Features
- minimum level to enter
- maximum level to enter
- you can combine minimun and max level to tile
- Storage (if you want give access with quest) (can combine with min and max level)
- customize text, zone name and required quest name
- teleport if you want the tile tp you to another position
data/lib/lib.lua
Lua:
dofile('data/lib/tileRequeriments.lua')
data/lib/tileRequeriments.lua
Lua:
tileRequerimentsConfig = {
---------------------------------------------------------
-- Tile Requeriment example 1
---------------------------------------------------------
[36000] = {
minLevel = 250, -- level req to enter
maxLevel = 300, -- set 0 to disable (set level max to enter)
storageReq = 0, -- set 0 to disable (if player need storage to enter)
storageName = "", -- if you want show quest need to enter (example: you need >demon quest< to join this area)
zoneName = "this area", -- name of your zone or use default
teleport = Position(32346, 32222, 7) -- if you want teleport player put 0 to disable
},
---------------------------------------------------------
-- Example Tiles
---------------------------------------------------------
[36001] = {
minLevel = 500, -- level req to enter
maxLevel = 0, -- set 0 to disable (set level max to enter)
storageReq = 36001, -- set 0 to disable (if player need storage to enter)
storageName = "Quest Retro", -- if you want show quest need to enter (example: you need >demon quest< to join this area)
zoneName = "this area", -- name of your zone or use default
teleport = Position(0, 0, 0) -- if you want teleport player put 0 to disable
},
[36002] = {
minLevel = 50, -- level req to enter
maxLevel = 0, -- set 0 to disable (set level max to enter)
storageReq = 0, -- set 0 to disable (if player need storage to enter)
storageName = "", -- if you want show quest need to enter (example: you need >demon quest< to join this area)
zoneName = "this area", -- name of your zone or use default
teleport = Position(0, 0, 0) -- if you want teleport player put 0 to disable
}
}
data/scripts/tileRequeriments.lua
Lua:
local tileRequeriments = MoveEvent()
function tileRequeriments.onStepIn(creature, item, position, fromPosition)
local player = creature:getPlayer()
if not player then
return true
end
local tileRequeriment = item.actionid
local tileReq = tileRequerimentsConfig[tileRequeriment]
-----------------------------------------------------------------------------------
-- Check if player need storage --
-----------------------------------------------------------------------------------
if tileReq.storageReq > 1 and player:getStorageValue(tileReq.storageReq) < 1 then
player:teleportTo(fromPosition)
player:getPosition():sendMagicEffect(CONST_ME_POFF)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You need "..tileReq.storageName.." to join "..tileReq.zoneName..".")
return true
end
-----------------------------------------------------------------------------------
-- Check if player Max Level --
-----------------------------------------------------------------------------------
if tileReq.maxLevel > 1 and player:getLevel() > tileReq.maxLevel then
player:teleportTo(fromPosition)
player:getPosition():sendMagicEffect(CONST_ME_POFF)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Only players below of level "..tileReq.maxLevel.." to join "..tileReq.zoneName..".")
return true
end
-----------------------------------------------------------------------------------
-- Check if player Min Level --
-----------------------------------------------------------------------------------
if player:getLevel() < tileReq.minLevel then
player:teleportTo(fromPosition)
player:getPosition():sendMagicEffect(CONST_ME_POFF)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You need level "..tileReq.minLevel.." to join "..tileReq.zoneName..".")
return true
end
-----------------------------------------------------------------------------------
-- Check if player Teleport --
-----------------------------------------------------------------------------------
if tileReq.teleport.x > 0 then
player:teleportTo(tileReq.teleport)
player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
end
player:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Welcome to "..tileReq.zoneName..".")
return true
end
tileRequeriments:type("stepin")
for i = 36000, 36100 do
tileRequeriments:aid(i)
end
tileRequeriments:register()
Last edited: