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

Lua Problem with command /t

sidekoolz

New Member
Joined
Feb 28, 2016
Messages
23
Reaction score
0
[9:13:40.765] [Error - TalkAction Interface]
[9:13:40.768] data/talkactions/scripts/teleporttown.lua:eek:nSay
[9:13:40.771] Description:
[9:13:40.772] data/talkactions/scripts/teleporttown.lua:38: attempt to concatenate field '?' (a nil value)
[9:13:40.777] stack traceback:
[9:13:40.778] data/talkactions/scripts/teleporttown.lua:38: in function <data/talkactions/scripts/teleporttown.lua:1>

When I use the command, it doesn't work. What can it be?
 
Solution
Try it

Lua:
function onSay(cid, words, param, channel)
    local master = false
    if(words == '/t') then
        master = true
    elseif(param == '') then
        local str = ""
        for i, town in ipairs(getTownList()) do
            str = str .. town.name .. "\n"
        end

        doShowTextDialog(cid, ITEM_ACTION_BOOK, str)
        return true
    end

    local tid, t = cid, string.explode(param, ",")
    if(t[(master and 1 or 2)]) then
        tid = getPlayerByNameWildcard(t[(master and 1 or 2)])
        if(not tid or (isPlayerGhost(tid) and getPlayerAccess(tid) > getPlayerAccess(cid))) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. t[(master and 1 or 2)] .. " not found.")...
Try it

Lua:
function onSay(cid, words, param, channel)
    local master = false
    if(words == '/t') then
        master = true
    elseif(param == '') then
        local str = ""
        for i, town in ipairs(getTownList()) do
            str = str .. town.name .. "\n"
        end

        doShowTextDialog(cid, ITEM_ACTION_BOOK, str)
        return true
    end

    local tid, t = cid, string.explode(param, ",")
    if(t[(master and 1 or 2)]) then
        tid = getPlayerByNameWildcard(t[(master and 1 or 2)])
        if(not tid or (isPlayerGhost(tid) and getPlayerAccess(tid) > getPlayerAccess(cid))) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. t[(master and 1 or 2)] .. " not found.")
            return true
        end
    end

    local tmp = getPlayerTown(tid)
    if(not master) then
        tmp = t[1]
        if(not tonumber(tmp)) then
            tmp = getTownId(tmp)
            if(not tmp) then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Town " .. t[1] .. " does not exists.")
                return true
            end
        end
    end

    local pos = getTownTemplePosition(tmp)
    if(type(pos) ~= 'table' or isInArray({pos.x, pos.y}, 0)) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Town " .. t[1] .. " does not exists or has invalid temple position.")
        return true
    end

    pos = getClosestFreeTile(tid, pos)
    if(type(pos) ~= 'table' or isInArray({pos.x, pos.y}, 0)) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Destination not reachable.")
        return true
    end

    tmp = getCreaturePosition(tid)
    if(doTeleportThing(tid, pos) and not isPlayerGhost(tid)) then
        doSendMagicEffect(tmp, CONST_ME_POFF)
        doSendMagicEffect(pos, CONST_ME_TELEPORT)
    end

    return true
end
 
Solution
Back
Top