• 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 Shortening Scripts

Aleada

Unknown Member
Joined
Mar 14, 2013
Messages
231
Reaction score
7
Heya everyone, I'm trying to make a script and it works fine but if someone is blocking it can add up the "addEvents" pretty quickly:

I added a "Restart" counter to see how many times it adds up and it got to about 86 within 30 seconds :/

I've tried to shorten it / change it so it would only do addEvent one time if something went wrong but I completely failed rofl, I tried to use the "for" loop with no luck of course :/

Anyways, here's the script! If anyone could help, that would be amazing!
Code:
local pos = {
pos1 = {x = 475, y = 560, z = 7},
pos2 = {x = 476, y = 560, z = 7},
pos3 = {x = 477, y = 560, z = 7},
pos4 = {x = 475, y = 558, z = 7},
pos5 = {x = 476, y = 558, z = 7},
pos6 = {x = 477, y = 558, z = 7},
pos7 = {x = 474, y = 557, z = 7}
}

Restart = 0

local function South_Fix()

    if getTileItemById(pos.pos1, 2257).uid > 0 then
    local p = getTopCreature(pos.pos1).uid
        if p == 0 then
            doRemoveItem(getTileItemById(pos.pos1, 2257).uid)
            doCreateItem(1050, 1, pos.pos1)   
        else
            addEvent(South_Fix, 10000)
            Restart = Restart + 1
            doBroadcastMessage("Restarts: " .. Restart .. " times.")
        end
    elseif getTileItemById(pos.pos1, 1050).uid <= 0 then
    local p = getTopCreature(pos.pos1).uid
        if p == 0 then
            doCreateItem(1050, 1, pos.pos1)   
        else
            addEvent(South_Fix, 10000)
            Restart = Restart + 1
            doBroadcastMessage("Restarts: " .. Restart .. " times.")
        end   
    end
   
    if getTileItemById(pos.pos2, 2257).uid > 0 then
    local p = getTopCreature(pos.pos2).uid
        if p == 0 then
            doRemoveItem(getTileItemById(pos.pos2, 2257).uid)
            doCreateItem(1050, 1, pos.pos2)   
        else
            addEvent(South_Fix, 10000)
            Restart = Restart + 1
            doBroadcastMessage("Restarts: " .. Restart .. " times.")
        end       
    elseif getTileItemById(pos.pos2, 1050).uid <= 0 then
    local p = getTopCreature(pos.pos2).uid
        if p == 0 then
            doCreateItem(1050, 1, pos.pos2)   
        else
            addEvent(South_Fix, 10000)
            Restart = Restart + 1
            doBroadcastMessage("Restarts: " .. Restart .. " times.")
        end   
    end
   
    if getTileItemById(pos.pos3, 2257).uid > 0 then
    local p = getTopCreature(pos.pos3).uid
        if p == 0 then
            doRemoveItem(getTileItemById(pos.pos3, 2257).uid)
            doCreateItem(1050, 1, pos.pos3)   
        else
            addEvent(South_Fix, 10000)
            Restart = Restart + 1
            doBroadcastMessage("Restarts: " .. Restart .. " times.")
        end
    elseif getTileItemById(pos.pos3, 1050).uid <= 0 then
    local p = getTopCreature(pos.pos3).uid
        if p == 0 then
            doCreateItem(1050, 1, pos.pos3)   
        else
            addEvent(South_Fix, 10000)
            Restart = Restart + 1
            doBroadcastMessage("Restarts: " .. Restart .. " times.")
        end   
    end
   
    if getTileItemById(pos.pos4, 2257).uid > 0 then
    local p = getTopCreature(pos.pos4).uid
        if p == 0 then
            doRemoveItem(getTileItemById(pos.pos4, 2257).uid)
            doCreateItem(1050, 1, pos.pos4)   
        else
            addEvent(South_Fix, 10000)
            Restart = Restart + 1
            doBroadcastMessage("Restarts: " .. Restart .. " times.")
        end
    elseif getTileItemById(pos.pos4, 1050).uid <= 0 then
    local p = getTopCreature(pos.pos4).uid
        if p == 0 then
            doCreateItem(1050, 1, pos.pos4)   
        else
            addEvent(South_Fix, 10000)
            Restart = Restart + 1
            doBroadcastMessage("Restarts: " .. Restart .. " times.")
        end   
    end
   
    if getTileItemById(pos.pos5, 2257).uid > 0 then
    local p = getTopCreature(pos.pos5).uid
        if p == 0 then
            doRemoveItem(getTileItemById(pos.pos5, 2257).uid)
            doCreateItem(1050, 1, pos.pos5)   
        else
            addEvent(South_Fix, 10000)
            Restart = Restart + 1
            doBroadcastMessage("Restarts: " .. Restart .. " times.")
        end
    elseif getTileItemById(pos.pos5, 1050).uid <= 0 then
    local p = getTopCreature(pos.pos5).uid
        if p == 0 then
            doCreateItem(1050, 1, pos.pos5)   
        else
            addEvent(South_Fix, 10000)
            Restart = Restart + 1
            doBroadcastMessage("Restarts: " .. Restart .. " times.")
        end   
    end
       
    if getTileItemById(pos.pos6, 2257).uid > 0 then
    local p = getTopCreature(pos.pos6).uid
        if p == 0 then
            doRemoveItem(getTileItemById(pos.pos6, 2257).uid)
            doCreateItem(1050, 1, pos.pos6)   
        else
            addEvent(South_Fix, 10000)
            Restart = Restart + 1
            doBroadcastMessage("Restarts: " .. Restart .. " times.")
        end
    elseif getTileItemById(pos.pos6, 1050).uid <= 0 then
    local p = getTopCreature(pos.pos6).uid
        if p == 0 then
            doCreateItem(1050, 1, pos.pos6)   
        else
            addEvent(South_Fix, 10000)
            Restart = Restart + 1
            doBroadcastMessage("Restarts: " .. Restart .. " times.")
        end   
    end
       
    if getTileItemById(pos.pos7, 2244).uid > 0 then
    local p = getTopCreature(pos.pos7).uid
        if p == 0 then   
            doRemoveItem(getTileItemById(pos.pos7, 2244).uid)
        else
            addEvent(South_Fix, 10000)
            Restart = Restart + 1
            doBroadcastMessage("Restarts: " .. Restart .. " times.")
        end
    end       
   
    if getTileItemById(pos.pos7, 2245).uid > 0 then
    local p = getTopCreature(pos.pos7).uid
        if p == 0 then       
            doRemoveItem(getTileItemById(pos.pos7, 2245).uid)
            doCreateItem(7024, 1, pos.pos7)
        else
            addEvent(South_Fix, 10000)
            Restart = Restart + 1
            doBroadcastMessage("Restarts: " .. Restart .. " times.")
        end       
    elseif getTileItemById(pos.pos7, 7024).uid <= 0 then
    local p = getTopCreature(pos.pos7).uid
        if p == 0 then
            doCreateItem(7024, 1, pos.pos7)
        else
            addEvent(South_Fix, 10000)
            Restart = Restart + 1
            doBroadcastMessage("Restarts: " .. Restart .. " times.")
        end           
    end       
end

local function South_Destroy()
    if getTileItemById(pos.pos1, 1050).uid > 0 then
        doSendMagicEffect(pos.pos1, 3)
        doRemoveItem(getTileItemById(pos.pos1, 1050).uid)
        doCreateItem(2257, 1, pos.pos1)
    end
   
    if getTileItemById(pos.pos2, 1050).uid > 0 then
        doSendMagicEffect(pos.pos2, 3)
        doRemoveItem(getTileItemById(pos.pos2, 1050).uid)
        doCreateItem(2257, 1, pos.pos2)
    end   
   
    if getTileItemById(pos.pos3, 1050).uid > 0 then
        doSendMagicEffect(pos.pos3, 3)
        doRemoveItem(getTileItemById(pos.pos3, 1050).uid)
        doCreateItem(2257, 1, pos.pos3)
    end
   
    if getTileItemById(pos.pos4, 1050).uid > 0 then
        doSendMagicEffect(pos.pos4, 3)
        doRemoveItem(getTileItemById(pos.pos4, 1050).uid)
        doCreateItem(2257, 1, pos.pos4)
    end       
   
    if getTileItemById(pos.pos5, 1050).uid > 0 then
        doSendMagicEffect(pos.pos5, 3)
        doRemoveItem(getTileItemById(pos.pos5, 1050).uid)
        doCreateItem(2257, 1, pos.pos5)
    end       
       
    if getTileItemById(pos.pos6, 1050).uid > 0 then
        doSendMagicEffect(pos.pos6, 3)
        doRemoveItem(getTileItemById(pos.pos6, 1050).uid)
        doCreateItem(2257, 1, pos.pos6)
    end   
       
    if getTileItemById(pos.pos7, 7024).uid > 0 then
        doSendMagicEffect(pos.pos7, 2)
        doRemoveItem(getTileItemById(pos.pos7, 7024).uid)
        doCreateItem(2245, 1, pos.pos7)
        doCreateItem(2244, 1, pos.pos7)
    end   
end
   
function onSay(cid, words, param, channel)
    if(param == 'south') then
        South_Destroy()
        addEvent(South_Fix, 10000)
        Restart = Restart + 1
        doBroadcastMessage("Restarts: " .. Restart .. " times.")
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "The " .. param .. " raid has been started.")
    elseif(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to specify the specific raid.")
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "The " .. param .. " raid does not exist.")
    end
end
 
Back
Top