Maaster Posted December 8, 2020 Share Posted December 8, 2020 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
Other Languages Moderators Lord Henry Posted December 9, 2020 Other Languages Moderators Share Posted December 9, 2020 if not (clickedElement) then return end Coloque isso no começo da função de clique de apagar objetos. E da próxima vez não crie um tópico duplicado. 1 Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now