• 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 Inq Teleport

dunnish

New Member
Joined
Jun 18, 2009
Messages
277
Solutions
1
Reaction score
3
Hello!

i have a problem when i kill the boss the teleport dossnt spawn.
and doesn't get the aid 1001

im useing tfs 1.0
creaturescripts.xml
XML:
    <event type="kill" name="inquisitionPortals" script="Inquisition.lua"/>

creaturescripts Inquisition.lua

LUA:
local config = {
        timeToRemove = 180, -- seconds
        message = "You now have 3 minutes to exit this room through the teleporter. It will bring you to the next room only during his time or the teleporter will disappear",
        teleportId = 9773,
        bosses = { -- Monster Name,  Teleport Position
                ["Ushuriel"] = {  pos={ x=237, y=348, z=12, stackpos=1 }, aid=1001 },
                ["Zugurosh"] = {  pos={ x=314, y=474, z=13, stackpos=1 }, aid=1002},
                ["Madareth"] = {  pos={ x=287, y=365, z=13, stackpos=1 }, aid=1003},
                ["Annihilon"] = {  pos={ x=294, y=681, z=13, stackpos=1 }, aid=1005},
                ["Hellgorak"] = {  pos={ x=255, y=467, z=13, stackpos=1 }, aid=1006}
                },
        brothers ={
        ["Golgordan"] = {pos={ x=408, y=413, z=13, stackpos=1 },aid=1004, brother = "Latrivan"},
        ["Latrivan"] = {pos={ x=408, y=413, z=13, stackpos=1 },aid=1004, brother = "Golgordan"},
        brothersArea ={
                fromPos = {x = 497, y = 339, z = 13},
                toPos = {x = 513, y = 351, z = 13}    }    }
}
local function removal(position)
    doRemoveThing(getTileItemById(position, config.teleportId).uid, 1)
    return TRUE
end

function onKill(cid, target, lastHit)
    if(config.bosses[getCreatureName(target)]) then
        local t = config.bosses[getCreatureName(target)]
        local teleport = doCreateItem(config.teleportId, t.pos)
        local position = t.pos
        doItemSetAttribute(teleport, "aid", t.aid)
        doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1)
        addEvent(removal, config.timeToRemove * 1000, position)
    elseif(config.brothers[getCreatureName(target)]) then
        local t = config.brothers[getCreatureName(target)]
        local brother = getCreatureByName(t.brother)
        if(isMonster(brother) == true) then
            if(isInRange(getCreaturePosition(brother), config.brothers.brothersArea.fromPos, config.brothers.brothersArea.toPos) == true) then
                return TRUE
            end
        else
            local teleport = doCreateItem(config.teleportId, t.pos)
            local position = t.pos
            doItemSetAttribute(teleport, "aid", t.aid)
            doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1)
            addEvent(removal, config.timeToRemove * 1000, position)
        end
    end
    return TRUE
end


Movements.xml
XML:
    <movevent type="StepIn" fromaid="1001" toaid="1006" event="script" value="inq.lua"/>
    <movevent type="StepIn" fromaid="2001" toaid="2005" event="script" value="inq.lua"/>
    <movevent type="StepIn" fromaid="3000" toaid="3010" event="script" value="inq.lua"/>

Movements inq.lua
LUA:
local config = {
    bosses={---aid of portal, position where it sends, value it sets, text it shows
        [1001] = {pos={x=172, y=560, z=13, stackpos=1}, value=1, text="Entering The Crystal Caves"},
        [1002] = {pos={x=313, y=473, z=13, stackpos=1}, value=2, text="Entering The Blood Halls"},
        [1003] = {pos={x=287, y=364, z=13, stackpos=1}, value=3, text="Entering The Vats"},
        [1004] = {pos={x=409, y=413, z=13, stackpos=1}, value=4, text="Entering The Arcanum"},
        [1005] = {pos={x=296, y=681, z=13, stackpos=1}, value=5, text="Entering The Hive"},
        [1006] = {pos={x=256, y=467, z=13, stackpos=1}, value=6, text="Entering The Shadow Nexus"}
        },
    mainroom={---aid, position, lowest value that can use this portal, text
        [2001] = {pos={x=172, y=560, z=13, stackpos=1}, value=1, text="Entering The Crystal Caves"},
        [2002] = {pos={x=313, y=473, z=13, stackpos=1}, value=2, text="Entering The Blood Halls"},
        [2003] = {pos={x=287, y=364, z=13, stackpos=1}, value=3, text="Entering The Vats"},
        [2004] = {pos={x=409, y=413, z=13, stackpos=1}, value=4, text="Entering The Arcanum"},
        [2005] = {pos={x=296, y=681, z=13, stackpos=1}, value=5, text="Entering The Hive"}    },
    portals={---aid, position, text
        [3000] = {pos={x=177, y=438, z=14}, text="Escaping back to the Retreat!"},
        [3001] = {pos={x=238, y=351, z=12}, text="Entering The Ward of Ushuriel"},
        [3002] = {pos={x=274, y=530, z=13}, text="Entering The Undersea Kingdom"},
        [3003] = {pos={x=382, y=525, z=13}, text="Entering The Ward of Zugurosh"},
        [3004] = {pos={x=300, y=448, z=10}, text="Entering The Foundry"},
        [3005] = {pos={x=340, y=466, z=13}, text="Entering The Ward of Madareth"},
        [3006] = {pos={x=390, y=348, z=13}, text="Entering The Battlefield"},
        [3007] = {pos={x=505, y=350, z=13}, text="Entering The Ward of The Demon Twins"},
        [3008] = {pos={x=577, y=409, z=13}, text="Entering The Soul Wells"},
        [3009] = {pos={x=637, y=479, z=13}, text="Entering The Ward of Annihilon"},
        [3010] = {pos={x=296, y=681, z=13}, text="Entering The Ward of Hellgorak"}    },
    storage=56123,---storage used in boss and mainroom portals
    e={}    }----dunno whats this but have to be like this to make doCreatureSayWithDelay working, DON'T TOUCH}
function onStepIn(cid, item, position, fromPosition)
    if isPlayer(cid) == TRUE then
        if(config.bosses[item.actionid]) then
            local t= config.bosses[item.actionid]
            if getPlayerStorageValue(cid, config.storage)< t.value then
                setPlayerStorageValue(cid, config.storage, t.value)
            end
            doTeleportThing(cid, t.pos)
            doSendMagicEffect(getCreaturePosition(cid),10)
            doCreatureSay(cid,t.text,19,1, config.e)
        elseif(config.mainroom[item.actionid]) then
            local t= config.mainroom[item.actionid]
            if getPlayerStorageValue(cid, config.storage)>=t.value then
                doTeleportThing(cid, t.pos)
                doSendMagicEffect(getCreaturePosition(cid),10)
                doCreatureSay(cid,t.text,19,1,config.e)
            else
                doTeleportThing(cid, fromPosition)
                doSendMagicEffect(getCreaturePosition(cid),10)
                doCreatureSay(cid, 'You don\'t have enough energy to enter this portal', TALKTYPE_ORANGE_1)
            end
        elseif(config.portals[item.actionid]) then
            local t= config.portals[item.actionid]
            doTeleportThing(cid, t.pos)
            doSendMagicEffect(getCreaturePosition(cid),10)
            doCreatureSay(cid,t.text,19,1,config.e)
        end
    end
end
 
Back
Top