Ir para conteúdo

Featured Replies

Postado

.Qual servidor ou website você utiliza como base? 

Rev3777 Fir3 Element TFS 0.4

Qual o motivo deste tópico? 

estou com um problema com o script do remove slot system.

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

o script informa que precisa fechar a função com mais um 'end' da linha 93 a linha 333:

 

[10:9:59.742] [Error - LuaInterface::loadFile] data/actions/scripts/resetSlot.lua:333: 'end' expected (to close 'function' at line 93) near '<eof>'
[10:9:59.746] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/resetSlot.lua)
[10:9:59.749] data/actions/scripts/resetSlot.lua:333: 'end' expected (to close 'function' at line 93) near '<eof>'

 

porém ao dar reload actions depois de colocar esse end ele acusa outro erro na linha 51:

 

[10:27:39.007] data/actions/scripts/resetSlot.lua
[10:27:39.009] Description:
[10:27:39.012] data/actions/scripts/resetSlot.lua:51: attempt to index global 'itemEx' (a nil value)
[10:27:39.014] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/resetSlot.lua)

 

Você tem o código disponível? Se tiver publique-o aqui: 

Citar

--[[
Slot system 100% by mock \o
]]
---Config
local conf = {
maxSlotCount=2,
ignoredIds={}
}
--End
function choose(...) --- Function by mock.
    local arg = {...}
    return arg[math.random(1,#arg)]
end
if not getItemAttack then
    function getItemAttack(uid)
        return getItemAttribute(uid,'attack')
    end
    function getItemDefense(uid)
        return getItemAttribute(uid,'defense')
    end
end
local function isArmor(uid) -- Function by Mock the bear.
    if (getItemInfo(uid.itemid).armor ~= 0) and (getItemWeaponType(uid.uid) == 0) then
        return true
    end
    return false
end
local function isWeapon(uid) -- Function by Mock the bear.
    uid = uid or 0
    local f = getItemWeaponType(uid)
    if f == 1 or f == 2 or f == 3 then
        return true
    end
    return false
end
local function isShield(uid) -- Function by Mock the bear.
    uid = uid or 0
    if getItemWeaponType(uid) == 4 then
        return true
    end
    return false
end
local function isBow(uid) -- Function by Mock the bear.
    uid = uid or 0
    if getItemWeaponType(uid) == 5 and not isItemStackable(uid) then
        return true
    end
    return false
end

local nam = getItemName(itemEx.uid)

local removeUpgrade = {
    [8306] = "last", -- "all", "last" or "first"
}
---------------------------------------------
----local function getper()
        -----local n = math.random(4,10)
       ----- return n
   ---- end
---------------------------------------------
local function getper()
        local n = 1
        for i=1,10 do
            n = n+math.random(0,10)
            if n < 8*i then
                break
            end
        end
        return n
    end

-----------------
local function getSlotCount(nam)
        local c = 0
        for _ in nam:gmatch('%[(.-)%]') do
            c = c+1
        end
        return c
end

local function getSlots(nam)
    local cx = {}
    for slot in nam:gmatch('%[(.-)%]') do
        table.insert(cx, slot)
    end
    return cx
end
----------------   

-------------------------------------INBUIMENT ROMOVER--------------------------------

function onUse(cid, item, fromPosition, itemEx, toPosition) -- Script by mock the bear (MTB)
    if removeUpgrade[item.itemid] then
        if item.uid == 0 or item.itemid == 0 then return false end
        toPosition.stackpos = 255
        if isInArray(conf.ignoredIds, itemEx.itemid)
        or (not getItemWeaponType(itemEx.uid) or getItemWeaponType(itemEx.uid) > 5)
        or (getItemWeaponType(itemEx.uid) == 0 and not isArmor(itemEx))
        or itemEx.itemid == 0 or itemEx.type > 1 or isItemStackable(itemEx.uid) then
            doPlayerSendTextMessage(cid, 24,"You cannot remove a slot from this item. #")
            return true
        end
        if isCreature(itemEx.uid) then
            return false
        end
 
        
        if getSlotCount(nam) >= 1 then
            local slots = getSlots(nam)
            local newName = getItemInfo(itemEx.itemid).name
            for ix = 1, #slots do
                if removeUpgrade[item.itemid] ~= "all" and (not((removeUpgrade[item.itemid] == "first" and ix == 1) or (removeUpgrade[item.itemid] == "last" and ix == #slots))) then
                    newName = newName .. ' [' .. slots[ix] .. ']'
                end
        end

            doSendMagicEffect(toPosition,30)
            doSendAnimatedText(toPosition,'SLOT REMOVED',120)
            doItemSetAttribute(itemEx.uid,'name', newName)
            doRemoveItem(item.uid, 1)
        else
            doPlayerSendTextMessage(cid, 24,"You cannot remove a slot here.")
    end
end 
--------------------------END INBUIMENT REMOVER-----------checar ultimo end y el return antes del ultimo end-----------------

function onUse(cid, item, fromPosition, itemEx, toPosition) -- Script by mock the bear (MTB)
    if item.itemid ==8299 then
    if item.uid == 0 or item.itemid == 0 then return false end
    toPosition.stackpos = 255
    if item.uid == 0 or item.itemid == 0 then return false end
    toPosition.stackpos = 255
    if isInArray(conf.ignoredIds, itemEx.itemid)
        or (not getItemWeaponType(itemEx.uid) or getItemWeaponType(itemEx.uid) > 5)
        or (getItemWeaponType(itemEx.uid) == 0 and not isArmor(itemEx))
        or itemEx.itemid == 0 or itemEx.type > 1 or isItemStackable(itemEx.uid) then
        doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
        return TRUE
    end
    if isCreature(itemEx.uid) then
        return FALSE
    end

    if getSlotCount(nam) < conf.maxSlotCount then
        local mlv = choose('ml','ml')
        local pml = getper()

        doSendMagicEffect(toPosition,30)
        nam = nam..' ['..mlv..'.+'..pml..'%]'
        doSendAnimatedText(toPosition,mlv..' '..pml..'%',120)
        doItemSetAttribute(itemEx.uid,'name',nam)
        doRemoveItem(item.uid,1)
    else
        doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
    end
    end
    if item.itemid ==8301 then
    if item.uid == 0 or item.itemid == 0 then return false end
    toPosition.stackpos = 255
    if item.uid == 0 or item.itemid == 0 then return false end
    toPosition.stackpos = 255
    if isInArray(conf.ignoredIds, itemEx.itemid)
        or (not getItemWeaponType(itemEx.uid) or getItemWeaponType(itemEx.uid) > 5)
        or (getItemWeaponType(itemEx.uid) == 0 and not isArmor(itemEx))
        or itemEx.itemid == 0 or itemEx.type > 1 or isItemStackable(itemEx.uid) then
        doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
        return TRUE
    end
    if isCreature(itemEx.uid) then
        return FALSE
    end

    if getSlotCount(nam) < conf.maxSlotCount then
        local hpts = choose('hp','hp')
        local php = getper()

        doSendMagicEffect(toPosition,30)
        nam = nam..' ['..hpts..'.+'..php..'%]'
        doSendAnimatedText(toPosition,hpts..' '..php..'%',120)
        doItemSetAttribute(itemEx.uid,'name',nam)
        doRemoveItem(item.uid,1)
    else
        doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
    end
    end
    if item.itemid ==8310 then
    if item.uid == 0 or item.itemid == 0 then return false end
    toPosition.stackpos = 255
    if item.uid == 0 or item.itemid == 0 then return false end
    toPosition.stackpos = 255
    if isInArray(conf.ignoredIds, itemEx.itemid)
        or (not getItemWeaponType(itemEx.uid) or getItemWeaponType(itemEx.uid) > 5)
        or (getItemWeaponType(itemEx.uid) == 0 and not isArmor(itemEx))
        or itemEx.itemid == 0 or itemEx.type > 1 or isItemStackable(itemEx.uid) then
        doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
        return TRUE
    end
    if isCreature(itemEx.uid) then
        return FALSE
    end

    if getSlotCount(nam) < conf.maxSlotCount then
        local mpts = choose('mp','mp')
        local pmp = getper()

        doSendMagicEffect(toPosition,30)
        nam = nam..' ['..mpts..'.+'..pmp..'%]'
        doSendAnimatedText(toPosition,mpts..' '..pmp..'%',120)
        doItemSetAttribute(itemEx.uid,'name',nam)
        doRemoveItem(item.uid,1)
    else
        doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
    end
    end
    if item.itemid ==8300 then
    if item.uid == 0 or item.itemid == 0 then return false end
    toPosition.stackpos = 255
    if item.uid == 0 or item.itemid == 0 then return false end
    toPosition.stackpos = 255
    if isInArray(conf.ignoredIds, itemEx.itemid)
        or (not getItemWeaponType(itemEx.uid) or getItemWeaponType(itemEx.uid) > 5)
        or (getItemWeaponType(itemEx.uid) == 0 and not isArmor(itemEx))
        or itemEx.itemid == 0 or itemEx.type > 1 or isItemStackable(itemEx.uid) then
        doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
        return TRUE
    end
    if isCreature(itemEx.uid) then
        return FALSE
    end

    if getSlotCount(nam) < conf.maxSlotCount then
        local casw = choose('sword axe','sword axe')
        local pcas = getper()

        doSendMagicEffect(toPosition,30)
        nam = nam..' ['..casw..'.+'..pcas..'%]'
        doSendAnimatedText(toPosition,casw..' '..pcas..'%',120)
        doItemSetAttribute(itemEx.uid,'name',nam)
        doRemoveItem(item.uid,1)
    else
        doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
    end
    end
    if item.itemid ==8302 then
    if item.uid == 0 or item.itemid == 0 then return false end
    toPosition.stackpos = 255
    if item.uid == 0 or item.itemid == 0 then return false end
    toPosition.stackpos = 255
    if isInArray(conf.ignoredIds, itemEx.itemid)
        or (not getItemWeaponType(itemEx.uid) or getItemWeaponType(itemEx.uid) > 5)
        or (getItemWeaponType(itemEx.uid) == 0 and not isArmor(itemEx))
        or itemEx.itemid == 0 or itemEx.type > 1 or isItemStackable(itemEx.uid) then
        doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
        return TRUE
    end
    if isCreature(itemEx.uid) then
        return FALSE
    end

    if getSlotCount(nam) < conf.maxSlotCount then
        local casw = choose('knuckle daggers','knuckle daggers')
        local pcas = getper()

        doSendMagicEffect(toPosition,30)
        nam = nam..' ['..casw..'.+'..pcas..'%]'
        doSendAnimatedText(toPosition,casw..' '..pcas..'%',120)
        doItemSetAttribute(itemEx.uid,'name',nam)
        doRemoveItem(item.uid,1)
    else
        doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
    end
    end
    if item.itemid ==8303 then
    if item.uid == 0 or item.itemid == 0 then return false end
    toPosition.stackpos = 255
    if item.uid == 0 or item.itemid == 0 then return false end
    toPosition.stackpos = 255
    if isInArray(conf.ignoredIds, itemEx.itemid)
        or (not getItemWeaponType(itemEx.uid) or getItemWeaponType(itemEx.uid) > 5)
        or (getItemWeaponType(itemEx.uid) == 0 and not isArmor(itemEx))
        or itemEx.itemid == 0 or itemEx.type > 1 or isItemStackable(itemEx.uid) then
        doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
        return TRUE
    end
    if isCreature(itemEx.uid) then
        return FALSE
    end

    if getSlotCount(nam) < conf.maxSlotCount then
        local dis = choose('dist','dist')
        local pdist = getper()

        doSendMagicEffect(toPosition,30)
        nam = nam..' ['..dis..'.+'..pdist..'%]'
        doSendAnimatedText(toPosition,dis..' '..pdist..'%',120)
        doItemSetAttribute(itemEx.uid,'name',nam)
        doRemoveItem(item.uid,1)
    else
        doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
    end
    end
    if item.itemid ==8298 then
    if item.uid == 0 or item.itemid == 0 then return false end
    toPosition.stackpos = 255
    if item.uid == 0 or item.itemid == 0 then return false end
    toPosition.stackpos = 255
    if isInArray(conf.ignoredIds, itemEx.itemid)
        or (not getItemWeaponType(itemEx.uid) or getItemWeaponType(itemEx.uid) > 5)
        or (getItemWeaponType(itemEx.uid) == 0 and not isArmor(itemEx))
        or itemEx.itemid == 0 or itemEx.type > 1 or isItemStackable(itemEx.uid) then
        doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
        return TRUE
    end
    if isCreature(itemEx.uid) then
        return FALSE
    end

    if getSlotCount(nam) < conf.maxSlotCount then
        local shi = choose('shield','shield')
        local pshield = getper()

        doSendMagicEffect(toPosition,30)
        nam = nam..' ['..shi..'.+'..pshield..'%]'
        doSendAnimatedText(toPosition,shi..' '..pshield..'%',120)
        doItemSetAttribute(itemEx.uid,'name',nam)
        doRemoveItem(item.uid,1)
    else
        doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
    end
    end
    return true
end

 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

j64MZGI.png

 

ERRO.png

Editado por rheynkhen (veja o histórico de edições)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo