Jump to content

Ajuda pra resolver warning em mod


Recommended Posts

Eu estava arrumando no servidor local, um  mod para policias poderem colocar cones e barreiras para fazerem blitz e para deletar os cones ou barreiras teria que digitar /apagar (ai aparece a seta na tela) dai seleciona o objeto que quer apagar e pronto. O mod funciona normalmente, mais caso digitar /apagar e clicar em outro lugar da tela que não seja algum objeto criado pelo mod, aparece isso no debugscript: mod-blitz/blitz.lua:20: Bad argument @ 'getElementType' [Expected element at argument 1, got nil]. Eu não liguei muito a principio, pois acontecia apenas quando clicava em um lugar errado na hora de apagar um objeto, mais ai quando coloquei o mod na host e fui testar no servidor, começou a dar esse mesmo warning SEM PARAR, ai desativei o mod e coloquei novamente no servidor local pra tentar arrumar, mas quando o mod ta no servidor local, ele so da esse warning quando clica errado no /apagar, e ja na host da toda hora sem parar, alguém pode me ajudar a resolver isso ai?

 

``----------------------------------------Ativar modo blitz----------------------------------------
function modoBlitz(source)
    if (getElementData(source, "Modo:Blitz")) == false then
        setElementData(source, "Modo:Blitz", true)
        outputChatBox(" ", source)
        outputChatBox("#00ff00[SUCESSO] #FFFFFFVocê entrou no modo blitz, use /objetos para ver todos os objetos disponiveis.", source, 255,255,255, true)
        outputChatBox(" ", source)
    else
        setElementData(source, "Modo:Blitz", false)
        outputChatBox(" ", source)
        outputChatBox("#00ff00[SUCESSO] #FFFFFFVocê saiu do modo blitz.", source, 255,255,255, true)
        outputChatBox(" ", source)
    end
end
addCommandHandler("blitz", modoBlitz) 

----------------------------------------Apagar objetos----------------------------------------
function quandoClicar(mouseButton, buttonState, clickedElement, worldPosX, worldPosY, worldPosZ, screenPosX, screenPosY)
    
    if (mouseButton == "left") and (buttonState == "down") and (getElementType(clickedElement) == "object") and (getElementType(source) == "player") and (getElementModel(clickedElement) == 1237 or 3091 or 1228 or 1427) then
        
        if (getElementData(source, "Modo:Blitz")) == true then
            
            if (getDistanceBetweenElements(source, clickedElement) < 100) then
                if (getDistanceBetweenElements(source, clickedElement) > 80) then
                
                    outputChatBox(" ", source)
                    outputChatBox("#ff0000[ERRO] #FFFFFFVocê está muito longe do objeto selecionado!", source, 255,255,255, true)
                    outputChatBox(" ", source)
                    
                else
                
                    local conta = getPlayerAccount(source)
                    saberDono = getElementData(clickedElement, "Blitz:DonoDoCone")
                    
                    if (saberDono == conta) then
                        destroyElement(clickedElement)
                    end
                end
            end
        else
            outputChatBox(" ", source)
            outputChatBox("#ff0000[ERRO] #FFFFFFPara colocar objetos, você precisa estar com o modo blitz ativo, use #00FF00/blitz.", source, 255,255,255, true)
            outputChatBox(" ", source)
        end
    end
end
addEventHandler("onPlayerClick", getRootElement(), quandoClicar)

function getDistanceBetweenElements(arg1, arg2)
    local element1 = Vector3(getElementPosition( arg1 ))
    local element2 = Vector3(getElementPosition( arg2 ))
    local distance = getDistanceBetweenPoints3D( element1,element2 )
    return distance
end

--Objetos:

----------------------------------------Cone----------------------------------------
function criarBlitz(source)

    if (getElementData(source, "Modo:Blitz")) == true then
        if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("EBCMD")) or isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("BOPECMD")) then
            
            local x,y,z = getElementPosition(source)
            cone = createObject(1237, x, y, z-1)
            setElementPosition(source, x+1,y,z)
            
            local conta = getPlayerAccount(source)
            setElementData(cone, "Blitz:DonoDoCone", conta)
            
            outputChatBox(" ", source)
            outputChatBox("#00ff00[SUCESSO] #FFFFFFCone criado com sucesso! Para exclui-lo digite /apagar e clique em cima do objeto.", source, 255,255,255, true)
            outputChatBox(" ", source)
            
        else
        
            outputChatBox(" ", source)
            outputChatBox("#ff0000[ERRO] #FFFFFFVocê não é um policial para executar este comando.", source, 255,255,255, true)
            outputChatBox(" ", source)
        end
        
    else
        
        outputChatBox(" ", source)
        outputChatBox("#ff0000[ERRO] #FFFFFFPara colocar objetos da blitz, você precisa estar com o modo blitz ativo, use #00FF00/blitz.", source, 255,255,255, true)
        outputChatBox(" ", source)
    end
end
addCommandHandler("cone", criarBlitz)
----------------------------------------Barreira1----------------------------------------

function criarBarreira(source)

    if (getElementData(source, "Modo:Blitz")) == true then
        if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("EBCMD")) or isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("BOPECMD")) then
            
            local x,y,z = getElementPosition(source)
            barreira = createObject(3091, x, y, z-1)
            setElementPosition(source, x+1,y,z)
            
            local conta = getPlayerAccount(source)
            setElementData(barreira, "Blitz:DonoDoCone", conta)
            
            outputChatBox(" ", source)
            outputChatBox("#00ff00[SUCESSO]#FFFFFF Barreira criada com sucesso! Para exclui-lo digite /apagar e clique em cima do objeto.", source, 255,255,255, true)
            outputChatBox(" ", source)
            
        else
        
            outputChatBox(" ", source)
            outputChatBox("#ff0000[ERRO]#FFFFFF Comando disponivel apenas para policiais! ", source, 255,255,255, true)
            outputChatBox(" ", source)
        end
        
    else
        
        outputChatBox(" ", source)
        outputChatBox("#FFD700[AVISO]#FFFFFF Você precisa estar no modo blitz para colocar objetos, use /blitz.", source, 255,255,255, true)
        outputChatBox(" ", source)
        
    end
end
addCommandHandler("barreira", criarBarreira)
----------------------------------------Barreira2----------------------------------------

function criarBarreira2(source)

    if (getElementData(source, "Modo:Blitz")) == true then
        if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("EBCMD")) or isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("BOPECMD")) then
            
            local x,y,z = getElementPosition(source)
            barreira2 = createObject(1228, x, y, z-1)
            setElementPosition(source, x+1,y,z)
            
            local conta = getPlayerAccount(source)
            setElementData(barreira2, "Blitz:DonoDoCone", conta)
            
            outputChatBox(" ", source)
            outputChatBox("#00ff00[SUCESSO]#FFFFFF Barreira2 criada com sucesso! Para exclui-lo digite /apagar e clique em cima do objeto.", source, 255,255,255, true)
            outputChatBox(" ", source)
            
        else
        
            outputChatBox(" ", source)
            outputChatBox("#ff0000[ERRO]#FFFFFF Comando disponivel apenas para policiais! ", source, 255,255,255, true)
            outputChatBox(" ", source)
        end
        
    else
        
        outputChatBox(" ", source)
        outputChatBox("#FFD700[AVISO]#FFFFFF Você precisa estar no modo blitz para colocar objetos, use /blitz.", source, 255,255,255, true)
        outputChatBox(" ", source)
        
    end
end
addCommandHandler("barreira2", criarBarreira2)
----------------------------------------Barreira3----------------------------------------

function criarBarreira3(source)

    if (getElementData(source, "Modo:Blitz")) == true then
        if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("EBCMD")) or isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("BOPECMD")) then
            
            local x,y,z = getElementPosition(source)
            barreira3 = createObject(1427, x, y, z-1)
            setElementPosition(source, x+1,y,z)
            
            local conta = getPlayerAccount(source)
            setElementData(barreira3, "Blitz:DonoDoCone", conta)
            
            outputChatBox(" ", source)
            outputChatBox("#00ff00[SUCESSO]#FFFFFF Barreira3 criada com sucesso! Para exclui-lo digite /apagar e clique em cima do objeto.", source, 255,255,255, true)
            outputChatBox(" ", source)
            
        else
        
            outputChatBox(" ", source)
            outputChatBox("#ff0000[ERRO]#FFFFFF Comando disponivel apenas para policiais! ", source, 255,255,255, true)
            outputChatBox(" ", source)
        end
        
    else
        
        outputChatBox(" ", source)
        outputChatBox("#FFD700[AVISO]#FFFFFF Você precisa estar no modo blitz para colocar objetos, use /blitz.", source, 255,255,255, true)
        outputChatBox(" ", source)
        
    end
end
addCommandHandler("barreira3", criarBarreira3) ``

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...