JDB
OtLand Veteran
- Joined
- Jun 1, 2009
- Messages
- 4,145
- Solutions
- 2
- Reaction score
- 115
READ:
The item you use must be usable, eg. Star Tear. You use this and click the ground.
actions/actions.xml
actions/scripts/teleport.lua
The item you use must be usable, eg. Star Tear. You use this and click the ground.
actions/actions.xml
PHP:
<action itemid="7735" event="script" value="teleport.lua"/>
actions/scripts/teleport.lua
Code:
local cfg = {
time = 15, -- Time the teleport is open.
exhausted = 60, -- Time you are exhausted.
storage = 1337, -- Storage used for "exhaust."
to = { x = 100, y = 100, z = 7 } -- Where the teleport takes you.
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
if(getPlayerStorageValue(cid, cfg.storage) > os.time()) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You must wait another " .. getPlayerStorageValue(cid, cfg.storage) - os.time() .. ' second' .. ((getPlayerStorageValue(cid, cfg.storage) - os.time()) == 1 and "" or "s") .. " to create another teleport.")
elseif(getTilePzInfo(getCreaturePosition(cid)) == true) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You cannot create a teleport in a protection zone.")
elseif(getCreatureCondition(cid, CONDITION_INFIGHT) == true) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You may not create a teleport while fighting.")
elseif(hasProperty(getThingFromPos(toPosition).uid, CONST_PROP_BLOCKSOLID) == true) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You cannot create a teleport here.")
else
local function deleteTeleport()
local teleport = getTileItemById(toPosition, 1387).uid
if(teleport > 0) then
doRemoveItem(teleport)
doSendMagicEffect(toPosition, CONST_ME_POFF)
doSendAnimatedText(toPosition, "Closed", TEXTCOLOR_RED)
end
return true
end
for x = 1, cfg.time do
local n = cfg.time - x
addEvent(doSendAnimatedText, x * 1000, toPosition, n > 0 and tostring(n), TEXTCOLOR_WHITE)
end
doCreateTeleport(1387, cfg.to, toPosition)
doSendMagicEffect(toPosition, CONST_ME_ENERGYAREA)
addEvent(deleteTeleport, cfg.time * 1000)
setPlayerStorageValue(cid, cfg.storage, os.time() + cfg.exhausted)
end
return true
end
Last edited: