• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

Problem ze skryptem

Julek12

Member
Joined
Feb 19, 2008
Messages
167
Reaction score
5
Location
Universe -> Milky Way -> Solar System -> Earth ->
Witam,
Nie działa mi ten skrypt wie ktoś może dlaczego i jak to naprawić?
PHP:
local starting= {x = XXX, y = YYY, z = ZZZ} -- edit this to the top left sqm of ur annhilator room
local ending= {x = XXX, y = YYY, z = ZZZ} -- edit this to the bottom right sqm of ur annhilator room

local playerPosition = { -- oldPositions; positions of players before they get teleported.
    {x = XXX, y = YYY, z = ZZZ},
    {x = XXX, y = YYY, z = ZZZ},
    {x = XXX, y = YYY, z = ZZZ},
    {x = XXX, y = YYY, z = ZZZ}
}

local newPlayerPosition = { -- Positions for where players should be teleported, make sure it's in the same order as oldPositions
    {x = XXX, y = YYY, z = ZZZ},
    {x = XXX, y = YYY, z = ZZZ},
    {x = XXX, y = YYY, z = ZZZ},
    {x = XXX, y = YYY, z = ZZZ}
}
       
local creaturePosition = { -- Name and position of monsters to summon.
    {"Demon", {x = XXX, y = YYY, z = ZZZ}},
    {"Demon", {x = XXX, y = YYY, z = ZZZ}},
    {"Demon", {x = XXX, y = YYY, z = ZZZ}},
    {"Demon", {x = XXX, y = YYY, z = ZZZ}},
    {"Demon", {x = XXX, y = YYY, z = ZZZ}},
    {"Demon", {x = XXX, y = YYY, z = ZZZ}}
}

if(#playerPosition ~= #newPlayerPosition) then
    error("Annhilator has not been properly configured.")
end
--- Preferably, do not edit anything below this line unless you know exactly what you are doing.
local player = {}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    if(item.uid == 5000) then --- change to different item.uid according to ur mapeditor
        if(item.itemid == 1945) then
            for i, position in ipairs(playerPosition) do -- add player id's to table
                player[i] = getTopCreature(pos)
            end
            local ret, players = checkPlayers(cid)
            if(ret) then
                local ret, player = checkLevel(100)
                if(ret) then
                    local ret, player = checkStorage(100)
                    if(ret) then
                        summonCreatures(creaturePosition)
                        teleportPlayers(2, 10) -- 2 stands for the effect on old position, 10 for the effect on new position.
                        doTransformItem(item.uid, 1946)
                    else
                        sendPlayersText(players, getPlayerName(player) .. " has already done this quest.")
                    end
                else
                    sendPlayersText(players, getPlayerName(player) .. " is too low.")
                end
            else
                sendPlayersText(players, "You need " .. #playerPosition .. " players to do this quest.")
            end
        elseif(item.itemid == 1946) then -- preferably, to be the id of the lever added by mapeditor.
            if(cleanArea()) then
                doTransformItem(item.uid, 1945)
            else
                return FALSE
            end
        end
        return TRUE
    --- Chests.
    elseif(item.uid == 5001) then -- demon armor
        return questChestPrize(cid, 2494, 100)
    elseif(item.uid == 5002) then -- magic sword
        return questChestPrize(cid, 2400, 100)
    elseif(item.uid == 5003) then -- stonecutter's axe
        return questChestPrize(cid, 2431, 100)
    elseif(item.uid == 5004) then -- present box
        return questChestPrize(cid, 1990, 100)             
    end
end

function sendPlayersText(players, text)
    for _, player in ipairs(players) do
        doPlayerSendCancel(player, text)
    end
end

function questChestPrize(cid, itemid, storage)
    if(getPlayerStorageValue(cid, storage) < TRUE) then
        doPlayerAddItem(cid, itemid, 1)
        setPlayerStorageValue(cid, storage, TRUE)
        local item = getItemDescriptions(itemid)
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found " .. item.article .. " " .. item.name .. "")
    else
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.")
    end
    return TRUE
end

function checkLevel(minLevel)
    for _, player in ipairs(player) do
        if(getPlayerLevel(player) < minLevel) then
            return false, player
        end
    end
    return true
end

function checkStorage(storageValue)
    for _, player in ipairs(player) do
        if(getPlayerStorageValue(player, storageValue) ~= TRUE) then
            return false, player
        end
    end
    return true
end

function cleanArea()
    local checking= {x = starting.x, y = starting.y, z = starting.z, stackpos = 253}
    local monster = {}
    while(checking.y <= ending.y) do
        local creature = getTopCreature(checking)
        if(isCreature(creature) == TRUE) then
            if(isPlayer(creature) == TRUE) then
                return false
            else
                table.insert(monster, creature)
            end
        end
        if(checking.x == ending.x) then
            checking.x = starting.x
            checking.y = checking.y + 1
        end
        checking.x = checking.x + 1
    end
    for i, c in ipairs(monster) do
        doRemoveCreature(c)
    end
    return true
end

function summonCreatures(parameters)
    for _, monster in ipairs(parameters) do
        doCreateMonster(monster[1], monster[2])
    end
end

function teleportPlayers(effect1, effect2)
    for currentPlayer = 1, table.getn(player) do
        doTeleportThing(player[currentPlayer], newPlayerPosition[currentPlayer])
        doSendMagicEffect(playerPosition[currentPlayer], effect1) -- send animation after teleport, players teleported won't see it anyways
        doSendMagicEffect(newPlayerPosition[currentPlayer], effect2)
    end
end

function checkPlayers(cid)
    local ret = {}
    table.insert(ret, cid)
    for _, curPlayer in ipairs(player) do
        if(isPlayer(curPlayer) == TRUE) then
            if(curPlayer ~= cid) then
                table.insert(ret, curPlayer)
            end
        else   
            return false, ret
        end
    end
    return true, ret
end
 
local starting= {x = XXX, y = YYY, z = ZZZ} -- edit this to the top left sqm of ur annhilator room
local ending= {x = XXX, y = YYY, z = ZZZ} -- edit this to the bottom right sqm of ur annhilator room,
Pozmienials na swoja pozycje?
 
local starting= {x = XXX, y = YYY, z = ZZZ} -- edit this to the top left sqm of ur annhilator room
local ending= {x = XXX, y = YYY, z = ZZZ} -- edit this to the bottom right sqm of ur annhilator room,
Pozmienials na swoja pozycje?

To nic nie da, ten skrypt jest gdzieś pieprznięty. Spróbuj kodu Aziego, tu nie chce mi się nawet szukać błędu ;)
http://otland.net/f81/advanced-annihilator-15035/
 
Back
Top