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

Solved Help with teleport script

Legoland

Legoland OT
Joined
Mar 3, 2013
Messages
75
Reaction score
4
Location
Sweden
Hello! :D

I saw this uniqe multi - teleport scroll i wanted to use on my own server.

Developed By.. J.Dre / Sonik / Fallen / Shinmaru
Link: http://otland.net/threads/teleport-scroll-unique-version.137262/

So far in this script you can only get teleported to a few common locations made for everybody so
I want to edit the .Lua script and add "houses", which mean you get teleported to your OWN house, like a house teleportation scroll. (House tp scroll and tp scroll in one)

How do i add a function like that in this .lua Creature script?

PHP:
local t = {
["Temple"] = {pos = {x = 3000, y = 2098, z = 7}, storage = 1337, time = 30},
["Teleports"] = {pos = {x = 2815, y = 2025, z = 7}, storage = 1338, time = 30},
["Addons"] = {pos = {x = 1266, y = 880, z = 7}, storage = 1339, time = 30},
["Addon Bosses"] = {pos = {x = 1127, y = 907,z = 6}, storage = 1340, time = 30},
["Trainers"] = {pos = {x = 2877, y = 2005, z = 7}, storage = 1341, time = 30},
["Donation Quest"] = {pos = {x = 3160, y = 1572, z = 7}, storage = 1342, time = 30},
["Shops"] = {pos = {x = 2940, y = 2075, z = 7}, storage = 1343, time = 30},
["Sailors Quarter"] = {pos = {x = 3010, y = 2192, z = 6}, storage = 1344, time = 30}
}
function onTextEdit(cid, item, newText)
if item.itemid == 1949 then
if isPlayerPzLocked(cid) then
doCreatureSay(cid, "You are in a battle!", TALKTYPE_MONSTER)
return false
end
if isInArray({'locations', 'places', 'place'}, newText) then
local i = ''
for text, x in pairs(t) do
i = i .. "\n[" .. text .. "]"
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Current Teleportation Locations: " .. i)
else
local p = t[newText]
if not p then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Invalid location")
return false
end
local st = p.storage
if getCreatureStorage(cid, st) > os.time() then
doCreatureSay(cid, "You must wait another " .. getCreatureStorage(cid, st) - os.time() .. ' second' .. (getCreatureStorage(cid, st) - os.time() == 1 and "" or "s") .. " to travel there again.", TALKTYPE_MONSTER)
return true
end
local ti = p.time
local pos = p.pos
doTeleportThing(cid, pos, true)
doSendMagicEffect(pos, CONST_ME_TELEPORT)
doCreatureSetStorage(cid, st, os.time() + ti)
doCreatureSay(cid, "You have been teleported!", TALKTYPE_MONSTER)
end
end
return true
end

Thank you for reading my thread, Hope you guys can help me! :D


Solution:

PHP:
function onTextEdit(cid, item, newText)
local t = {
["temple"] = {pos = {x = 1000, y = 1000, z = 7}, storage = 1440, time = 300},
["hunts"] = {pos = {x = 892, y = 1030, z = 7}, storage = 1441, time = 300},
["quests"] = {pos = {x = 862, y = 1025, z = 6}, storage = 1442, time = 300},
["trainers"] = {pos = {x = 1194, y = 1080, z = 7}, storage = 1444, time = 300}
}
if item.itemid == 1948 then
if hasCondition(cid,CONDITION_INFIGHT) then
doCreatureSay(cid, "You are in a battle!", TALKTYPE_MONSTER)
return false
end
if isInArray({'locations', 'places', 'place'}, newText) then
local i = ''
for text, x in pairs(t) do
i = i .. "\n[" .. text .. "]"
end

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Current Teleportation Locations: " .. i)
else
for i,v in pairs(t) do
if getCreatureStorage(cid, v.storage) > os.time() then
doCreatureSay(cid, "You must wait another " .. getCreatureStorage(cid,v.storage) - os.time() .. ' second' .. (getCreatureStorage(cid, v.storage) - os.time() == 1 and "" or "s") .. " to travel there again.", TALKTYPE_MONSTER)
return true
end
end

if getCreatureStorage(cid,1443) > os.time() then
doCreatureSay(cid, "You must wait another " .. getCreatureStorage(cid, 1443) - os.time() .. ' second' .. (getCreatureStorage(cid, st) - os.time() == 1 and "" or "s") .. " to travel there again.", TALKTYPE_MONSTER)
return true
end
if newText == "temple" then
doTeleportThing(cid, {x = 1000, y = 1000, z = 7})
doCreatureSetStorage(cid, 1440, os.time() + 300)
doSendMagicEffect({x = 1000, y = 1000, z = 7}, CONST_ME_TELEPORT)
doCreatureSay(cid, "You have been teleported!", TALKTYPE_MONSTER)
elseif newText == "hunts" then
doTeleportThing(cid, {x = 892, y = 1030, z = 7})
doCreatureSetStorage(cid, 1441, os.time() + 300)
doSendMagicEffect({x = 892, y = 1030, z = 7}, CONST_ME_TELEPORT)
doCreatureSay(cid, "You have been teleported!", TALKTYPE_MONSTER)
elseif newText == "quests" then
doTeleportThing(cid, {x = 862, y = 1025, z = 6})
doCreatureSetStorage(cid, 1442, os.time() + 300)
doSendMagicEffect({x = 862, y = 1025, z = 6}, CONST_ME_TELEPORT)
doCreatureSay(cid, "You have been teleported!", TALKTYPE_MONSTER)
elseif newText == "house" then
doTeleportThing(cid, getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid))), true)
doCreatureSetStorage(cid, 1443, os.time() + 300)
doSendMagicEffect(getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid))), CONST_ME_TELEPORT)
doCreatureSay(cid, "You have been teleported!", TALKTYPE_MONSTER)
elseif newText == "trainers" then
doTeleportThing(cid, {x = 1194, y = 1080, z = 7})
doCreatureSetStorage(cid, 1444, os.time() + 300)
doSendMagicEffect({x = 1194, y = 1080, z = 7}, CONST_ME_TELEPORT)
doCreatureSay(cid, "You have been teleported!", TALKTYPE_MONSTER)
end
return true
end
end
return true
end
 
Last edited:
Just Say

house


Code:
local t = {
["Temple"] = {pos = {x = 3000, y = 2098, z = 7}, storage = 1337, time = 30},
["Teleports"] = {pos = {x = 2815, y = 2025, z = 7}, storage = 1338, time = 30},
["Addons"] = {pos = {x = 1266, y = 880, z = 7}, storage = 1339, time = 30},
["Addon Bosses"] = {pos = {x = 1127, y = 907,z = 6}, storage = 1340, time = 30},
["Trainers"] = {pos = {x = 2877, y = 2005, z = 7}, storage = 1341, time = 30},
["Donation Quest"] = {pos = {x = 3160, y = 1572, z = 7}, storage = 1342, time = 30},
["Shops"] = {pos = {x = 2940, y = 2075, z = 7}, storage = 1343, time = 30},
["Sailors Quarter"] = {pos = {x = 3010, y = 2192, z = 6}, storage = 1344, time = 30}
}

function onTextEdit(cid, item, newText)
if item.itemid == 1949 then
if isPlayerPzLocked(cid) then
doCreatureSay(cid, "You are in a battle!", TALKTYPE_MONSTER)
return false
end
if isInArray({'locations', 'places', 'place'}, newText) then
local i = ''
for text, x in pairs(t) do
i = i .. "\n[" .. text .. "]"
end

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Current Teleportation Locations: " .. i)
else
local p = t[newText]
if not p then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Invalid location")
return false
end

local st = p.storage
if getCreatureStorage(cid, st) > os.time() then
doCreatureSay(cid, "You must wait another " .. getCreatureStorage(cid, st) - os.time() .. ' second' .. (getCreatureStorage(cid, st) - os.time() == 1 and "" or "s") .. " to travel there again.", TALKTYPE_MONSTER)
return true
end

if newText = "house" and getHouseByPlayerGUID(getPlayerGUID(cid)) then
doTeleportThing(cid, getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid))))
doCreatureSetStorage(cid, st, os.time() + 30)
doCreatureSay(cid, "You have been teleported!", TALKTYPE_MONSTER)
else
doCreatureSay(cid, "You Don't Have A House", TALKTYPE_MONSTER)
return true
end

local ti = p.time
local pos = p.pos
doTeleportThing(cid, pos, true)
doSendMagicEffect(pos, CONST_ME_TELEPORT)
doCreatureSetStorage(cid, st, os.time() + ti)
doCreatureSay(cid, "You have been teleported!", TALKTYPE_MONSTER)
end
end
return true
end
 
@tetra20
Code:
[21/01/2014 20:56:24] [Error - CreatureEvent::configureEvent] No valid type for creature event.teleportpaper
[21/01/2014 20:56:24] [Warning - BaseEvents::loadFromXml] Cannot configure an event

I use: The Forgotten Server - Edited By Cyko V8, version 0.3.6 - Edited By Cyko V8 (Crying Damson - Edited By Cyko V8)

do you know whats wrong? :S
 
Login.lua
PHP:
local config = {
    loginMessage = getConfigValue('loginMessage'),
    useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))
}

function onLogin(cid)
    if (getConfigValue("accountManager") == FALSE and getCreatureName(cid) == "Account Manager") then
        return false
    end

    local loss = getConfigValue('deathLostPercent')
    if(loss ~= nil) then
        doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
    end

    local accountManager = getPlayerAccountManager(cid)
    if(accountManager == MANAGER_NONE) then
        local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
        if(lastLogin > 0) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
            str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
        else
            str = str .. " Please choose your outfit."
            doPlayerSendOutfitWindow(cid)
        end

        doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
    elseif(accountManager == MANAGER_NAMELOCK) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
    elseif(accountManager == MANAGER_ACCOUNT) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
    end

    if(not isPlayerGhost(cid)) then
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
    end

    registerCreatureEvent(cid, "Mail")
        registerCreatureEvent(cid,'SpellUp')
        registerCreatureEvent(cid, "partyAndGuildProtection")
    registerCreatureEvent(cid, "GuildMotd")
    registerCreatureEvent(cid, "Idle")
    if(config.useFragHandler) then
        registerCreatureEvent(cid, "SkullCheck")
    end
    registerCreatureEvent(cid, "ReportBug")
    registerCreatureEvent(cid, "expRate")
    registerCreatureEvent(cid, "levelUp")
    registerCreatureEvent(cid, "ZombieAttack")
    registerCreatureEvent(cid, "AdvanceSave")
    registerCreatureEvent(cid, "LMSSummon")
    registerCreatureEvent(cid, "LMSAttack")
    registerCreatureEvent(cid, "LMSTarget")
    registerCreatureEvent(cid, "Firstitems")
registerCreatureEvent(cid, "pvpsystem")
registerCreatureEvent(cid, "VipCheck")
    registerCreatureEvent(cid, "GuildMotd")
    registerCreatureEvent(cid, "Bounty")
    registerCreatureEvent(cid, "KillingInTheNameOf")
    registerCreatureEvent(cid, "fragz")
    registerCreatureEvent(cid, "PvPReward")
    registerCreatureEvent(cid, "teleportpaper")
        return true
end

creature.xml
Code:
<event type="teleportpaper" name="teleportpaper" event="script" value="teleportpaper.lua"/>

creaturescripts/script/teleportpaper.lua
PHP:
local t = {
["temple"] = {pos = {x = 1000, y = 1000, z = 7}, storage = 1337, time = 300},
["hunts"] = {pos = {x = 892, y = 1030, z = 7}, storage = 1338, time = 300},
["quests"] = {pos = {x = 862, y = 1025, z = 6}, storage = 1339, time = 300},
["trainers"] = {pos = {x = 1194, y = 1080, z = 7}, storage = 1340, time = 300}
}

function onTextEdit(cid, item, newText)
if item.itemid == 1948 then
if isPlayerPzLocked(cid) then
doCreatureSay(cid, "You are in a battle!", TALKTYPE_MONSTER)
return false
end
if isInArray({'locations', 'places', 'place'}, newText) then
local i = ''
for text, x in pairs(t) do
i = i .. "\n[" .. text .. "]"
end

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Current Teleportation Locations: " .. i)
else
local p = t[newText]
if not p then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Invalid location")
return false
end

local st = p.storage
if getCreatureStorage(cid, st) > os.time() then
doCreatureSay(cid, "You must wait another " .. getCreatureStorage(cid, st) - os.time() .. ' second' .. (getCreatureStorage(cid, st) - os.time() == 1 and "" or "s") .. " to travel there again.", TALKTYPE_MONSTER)
return true
end

if newText = "house" and getHouseByPlayerGUID(getPlayerGUID(cid)) then
doTeleportThing(cid, getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid))))
doCreatureSetStorage(cid, st, os.time() + 30)
doCreatureSay(cid, "You have been teleported!", TALKTYPE_MONSTER)
else
doCreatureSay(cid, "You Don't Have A House", TALKTYPE_MONSTER)
return true
end

local ti = p.time
local pos = p.pos
doTeleportThing(cid, pos, true)
doSendMagicEffect(pos, CONST_ME_TELEPORT)
doCreatureSetStorage(cid, st, os.time() + ti)
doCreatureSay(cid, "You have been teleported!", TALKTYPE_MONSTER)
end
end
return true
end


is it possible to edit the teleport scroll so you see the text: temple, hunts,quests,trainers and house in default chat and write for example "house" to get teleported to your house?
 
Code:
[21/01/2014 21:15:04] [Error - LuaScriptInterface::loadFile] data/creaturescripts/scripts/teleportpaper.lua:34: 'then' expected near '='
[21/01/2014 21:15:04] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/teleportpaper.lua)
[21/01/2014 21:15:04] data/creaturescripts/scripts/teleportpaper.lua:34: 'then' expected near '='

now this! gaaah! hahah :p
 
5
5


i click on my scroll and type: "hunts" but it wont work. it says i dont have a house... :p

i tried with temple and quests aswell.. still the same respons! "you dont have a house"

any1 knows why? :/

Pictures:
http://sv.tinypic.com/r/2ibkda9/5
http://sv.tinypic.com/r/2ziy9zd/5
 
Last edited:
Sorry For The Bug
Code:
local t = {
["temple"] = {pos = {x = 1000, y = 1000, z = 7}, storage = 1337, time = 300},
["hunts"] = {pos = {x = 892, y = 1030, z = 7}, storage = 1338, time = 300},
["quests"] = {pos = {x = 862, y = 1025, z = 6}, storage = 1339, time = 300},
["house"] = {pos = getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid))), storage = 1341, time = 300},
["trainers"] = {pos = {x = 1194, y = 1080, z = 7}, storage = 1340, time = 300}
}

function onTextEdit(cid, item, newText)
if item.itemid == 1948 then
if isPlayerPzLocked(cid) then
doCreatureSay(cid, "You are in a battle!", TALKTYPE_MONSTER)
return false
end
if isInArray({'locations', 'places', 'place'}, newText) then
local i = ''
for text, x in pairs(t) do
i = i .. "\n[" .. text .. "]"
end

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Current Teleportation Locations: " .. i)
else
local p = t[newText]
if not p then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Invalid location")
return false
end

local st = p.storage
if getCreatureStorage(cid, st) > os.time() then
doCreatureSay(cid, "You must wait another " .. getCreatureStorage(cid, st) - os.time() .. ' second' .. (getCreatureStorage(cid, st) - os.time() == 1 and "" or "s") .. " to travel there again.", TALKTYPE_MONSTER)
return true
end

local ti = p.time
local pos = p.pos
doTeleportThing(cid, pos, true)
doSendMagicEffect(pos, CONST_ME_TELEPORT)
doCreatureSetStorage(cid, st, os.time() + ti)
doCreatureSay(cid, "You have been teleported!", TALKTYPE_MONSTER)
end
end
return true
end
 
Code:
[21/01/2014 21:50:56] [Error - CreatureScript Interface]
[21/01/2014 21:50:56] data/creaturescripts/scripts/teleportpaper.lua
[21/01/2014 21:50:56] Description:
[21/01/2014 21:50:56] (internalGetPlayerInfo) Player not found when requesting player info #18

[21/01/2014 21:50:56] [Error - CreatureScript Interface]
[21/01/2014 21:50:56] data/creaturescripts/scripts/teleportpaper.lua
[21/01/2014 21:50:56] Description:
[21/01/2014 21:50:56] (luaGetHouseInfo) House not found

[21/01/2014 21:50:56] [Error - CreatureScript Interface]
[21/01/2014 21:50:56] data/creaturescripts/scripts/teleportpaper.lua
[21/01/2014 21:50:56] Description:
[21/01/2014 21:50:56] data/lib/050-function.lua:203: attempt to index a boolean value
[21/01/2014 21:50:56] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/teleportpaper.lua)

new problem..
 
Last edited:
Code:
function onTextEdit(cid, item, newText)
local t = {
["temple"] = {pos = {x = 1000, y = 1000, z = 7}, storage = 1337, time = 300},
["hunts"] = {pos = {x = 892, y = 1030, z = 7}, storage = 1338, time = 300},
["quests"] = {pos = {x = 862, y = 1025, z = 6}, storage = 1339, time = 300},
["house"] = {pos = getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid))), storage = 1341, time = 300},
["trainers"] = {pos = {x = 1194, y = 1080, z = 7}, storage = 1340, time = 300}
}
if item.itemid == 1948 then
if isPlayerPzLocked(cid) then
doCreatureSay(cid, "You are in a battle!", TALKTYPE_MONSTER)
return false
end
if isInArray({'locations', 'places', 'place'}, newText) then
local i = ''
for text, x in pairs(t) do
i = i .. "\n[" .. text .. "]"
end

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Current Teleportation Locations: " .. i)
else
local p = t[newText]
if not p then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Invalid location")
return false
end

local st = p.storage
if getCreatureStorage(cid, st) > os.time() then
doCreatureSay(cid, "You must wait another " .. getCreatureStorage(cid, st) - os.time() .. ' second' .. (getCreatureStorage(cid, st) - os.time() == 1 and "" or "s") .. " to travel there again.", TALKTYPE_MONSTER)
return true
end

local ti = p.time
local pos = p.pos
doTeleportThing(cid, pos, true)
doSendMagicEffect(pos, CONST_ME_TELEPORT)
doCreatureSetStorage(cid, st, os.time() + ti)
doCreatureSay(cid, "You have been teleported!", TALKTYPE_MONSTER)
end
end
return true
end
 
Code:
[21/01/2014 22:15:40] [Error - CreatureScript Interface]
[21/01/2014 22:15:40] data/creaturescripts/scripts/teleportpaper.lua:onTextEdit
[21/01/2014 22:15:40] Description:
[21/01/2014 22:15:40] (luaGetHouseInfo) House not found

[21/01/2014 22:15:40] [Error - CreatureScript Interface]
[21/01/2014 22:15:40] data/creaturescripts/scripts/teleportpaper.lua:onTextEdit
[21/01/2014 22:15:40] Description:
[21/01/2014 22:15:40] data/lib/050-function.lua:203: attempt to index a boolean value
[21/01/2014 22:15:40] stack traceback:
[21/01/2014 22:15:40]    data/lib/050-function.lua:203: in function 'getHouseEntry'
[21/01/2014 22:15:40]    data/creaturescripts/scripts/teleportpaper.lua:6: in function <data/creaturescripts/scripts/teleportpaper.lua:1>

copy-pasted the last .lua script you wrote.. this came up :(
 
Last edited:
Back
Top