P43tous Posted December 17, 2018 Share Posted December 17, 2018 Alguém pode me ajudar com um script? eu consegui criar um veiculo para a acl "admin" através do comando "carro". Porém não consigo fazer para que respawne apenas um carro por vez. Toda vez que digita o comando "carro" ele continua spawnando o veiculo um do lado do outro. function veiculodayz(thePlayer) accountname = getAccountName(getPlayerAccount(thePlayer)) if isObjectInACLGroup("user." .. accountname, aclGetGroup("Admin")) then do local x, y, z = getElementPosition(thePlayer) veh = createVehicle(489, x+3, y, z) setVehicleColor(veh,0,0,0) vehCol = createColSphere(x, y, z, 2.5) attachElements( vehCol, veh, 0, 0, 0 ) setElementData(vehCol,"parent",veh) setElementData(veh,"parent",vehCol) setElementData(vehCol,"vehicle",true) setElementData(vehCol,"Tire_inVehicle",4) setElementData(vehCol,"Engine_inVehicle",1) setElementData(vehCol,"Parts_inVehicle",1) setElementData(vehCol,"fuel",10000) end end end addCommandHandler("carro", veiculodayz) Link to comment
Other Languages Moderators Lord Henry Posted December 17, 2018 Other Languages Moderators Share Posted December 17, 2018 accountname está sendo usado em outro script ou outra função? Se não estiver, deixe ela como variável local. Aquele do não faz sentido nenhum. Corrija a indentação do código. Existe um end em excesso. 1 Link to comment
P43tous Posted December 17, 2018 Author Share Posted December 17, 2018 (edited) Lord Henry, como disse, porém minha duvida é como escrever para respawnar somente um veiculo toda vez que acionado o comando. consegue me ajudar? https://uploaddeimagens.com.br/imagens/mta-screen_2018-12-17_16-23-48-png function veiculodayz(thePlayer) local accountname = getAccountName(getPlayerAccount(thePlayer)) if isObjectInACLGroup("user." .. accountname, aclGetGroup("Admin")) then local x, y, z = getElementPosition(thePlayer) veh = createVehicle(411, x+3, y, z) setVehicleColor(veh,255,255,255) vehCol = createColSphere(x, y, z, 2.5) attachElements( vehCol, veh, 0, 0, 0 ) setElementData(vehCol,"parent",veh) setElementData(veh,"parent",vehCol) setElementData(vehCol,"vehicle",true) setElementData(vehCol,"Tire_inVehicle",4) setElementData(vehCol,"Engine_inVehicle",1) setElementData(vehCol,"Parts_inVehicle",1) setElementData(vehCol,"fuel",10000) end end addCommandHandler("carro", veiculodayz) Edited December 17, 2018 by P43tous adição de screen! Link to comment
Other Languages Moderators Lord Henry Posted December 17, 2018 Other Languages Moderators Share Posted December 17, 2018 Quando vc arrumar os erros do código atual, dai consigo te ajudar. A propósito, sua imagem é essa: Spoiler 1 Link to comment
Jonas^ Posted December 17, 2018 Share Posted December 17, 2018 Desculpa me meter, mas parece que a print que ele enviou não parece combinar com esse código, tem output's que não se encontram no código mas na print contém. 1 Link to comment
P43tous Posted December 17, 2018 Author Share Posted December 17, 2018 Lord Henry Arrumei o código como me propôs, esta funcionando! Ele criar o veiculo ao lado do player. Minha duvida é como escrever que ao dar o comando "carro" novamente ele destrua o veiculo original e recria outro ao lado. Os output's encontrados na imagem não leve em consideração pois era uma resource que eu estava testando mas ja desativei! Link to comment
Other Languages Moderators Lord Henry Posted December 17, 2018 Other Languages Moderators Share Posted December 17, 2018 Como ficou o código arrumado? 1 Link to comment
P43tous Posted December 17, 2018 Author Share Posted December 17, 2018 function veiculodayz(thePlayer) local accountname = getAccountName(getPlayerAccount(thePlayer)) if isObjectInACLGroup("user." .. accountname, aclGetGroup("Admin")) then local x, y, z = getElementPosition(thePlayer) veh = createVehicle(411, x+3, y, z) setVehicleColor(veh,255,255,255) vehCol = createColSphere(x, y, z, 2.5) attachElements( vehCol, veh, 0, 0, 0 ) setElementData(vehCol,"parent",veh) setElementData(veh,"parent",vehCol) setElementData(vehCol,"vehicle",true) setElementData(vehCol,"Tire_inVehicle",4) setElementData(vehCol,"Engine_inVehicle",1) setElementData(vehCol,"Parts_inVehicle",1) setElementData(vehCol,"fuel",10000) end end addCommandHandler("carro", veiculodayz) Link to comment
brunob22 Posted December 17, 2018 Share Posted December 17, 2018 function veiculodayz(thePlayer) local accountname = getAccountName(getPlayerAccount(thePlayer)) if isObjectInACLGroup("user." .. accountname, aclGetGroup("Admin")) then if veh then DestroyElement(veh) DestroyElement(vehCol) end local x, y, z = getElementPosition(thePlayer) veh = createVehicle(411, x+3, y, z) setVehicleColor(veh,255,255,255) vehCol = createColSphere(x, y, z, 2.5) attachElements( vehCol, veh, 0, 0, 0 ) setElementData(vehCol,"parent",veh) setElementData(veh,"parent",vehCol) setElementData(vehCol,"vehicle",true) setElementData(vehCol,"Tire_inVehicle",4) setElementData(vehCol,"Engine_inVehicle",1) setElementData(vehCol,"Parts_inVehicle",1) setElementData(vehCol,"fuel",10000) end end addCommandHandler("carro", veiculodayz) 1 Link to comment
P43tous Posted December 17, 2018 Author Share Posted December 17, 2018 Brunob22 , este código funcionou! não duplica mais itens, porém se o jogador said do veiculo e se distanciar, ele não ira conseguir chamar o veiculo novamente. Tem como mudar isso? Link to comment
brunob22 Posted December 17, 2018 Share Posted December 17, 2018 1 minute ago, P43tous said: Brunob22 , este código funcionou! não duplica mais itens, porém se o jogador said do veiculo e se distanciar, ele não ira conseguir chamar o veiculo novamente. Tem como mudar isso? não entendi 1 Link to comment
P43tous Posted December 17, 2018 Author Share Posted December 17, 2018 (edited) 6 minutes ago, brunob22 said: não entendi Um exemplo: 1 - O player aciona o comando "carro" e o veiculo desova ao lado do player! Correto? 2- O player deixa o veiculo e começa a se distanciar do veiculo. 3- Se o player quiser chamar o veiculo novamente ele não consegue. Ou ele volta e pega o veiculo ou ele explode o veiculo. 4- Minha pergunta é, ha possibilidade de quando o player acionar o comando "carro" o veiculo spawnar perto dele novamente sem criar duplicidade, ou seja somente puxar o veiculo pra perto do player? Edited December 17, 2018 by P43tous Link to comment
brunob22 Posted December 17, 2018 Share Posted December 17, 2018 1 minute ago, P43tous said: Um exemplo: 1 - O player aciona o comando "carro" e o veiculo desova ao lado do player! Correto? 2- O player deixa o veiculo e começa a se distanciar do veiculo. 3- Se o player quiser chamar o veiculo novamente ele não consegue. Ou ele volta e pega o veiculo ou ele explode o veiculo. 4- Minha pergunta é, ha possibilidade de quando o player acionar o comando "carro" o veiculo spawnar perto dele novamente sem criar duplicidade, ou seja somente puxar o veiculo pra perto do player? tenta isso veh = {} vehCol = {} function veiculodayz(thePlayer) local accountname = getAccountName(getPlayerAccount(thePlayer)) if isObjectInACLGroup("user." .. accountname, aclGetGroup("Admin")) then if veh[thePlayer] then DestroyElement(veh[thePlayer]) DestroyElement(vehCol[thePlayer]) end local x, y, z = getElementPosition(thePlayer) veh[thePlayer] = createVehicle(411, x+3, y, z) setVehicleColor(veh[thePlayer],255,255,255) vehCol[thePlayer] = createColSphere(x, y, z, 2.5) attachElements( vehCol, veh, 0, 0, 0 ) setElementData(vehCol[thePlayer],"parent",veh) setElementData(veh[thePlayer],"parent",vehCol) setElementData(vehCol[thePlayer],"vehicle",true) setElementData(vehCol[thePlayer],"Tire_inVehicle",4) setElementData(vehCol[thePlayer],"Engine_inVehicle",1) setElementData(vehCol[thePlayer],"Parts_inVehicle",1) setElementData(vehCol[thePlayer],"fuel",10000) end end addCommandHandler("carro", veiculodayz) não testei 1 Link to comment
P43tous Posted December 17, 2018 Author Share Posted December 17, 2018 Não funcionou, ele continua do mesmo jeito e ainda não le as configurações de tires, engines, e parts. 6 minutes ago, brunob22 said: tenta isso veh = {} vehCol = {} function veiculodayz(thePlayer) local accountname = getAccountName(getPlayerAccount(thePlayer)) if isObjectInACLGroup("user." .. accountname, aclGetGroup("Admin")) then if veh[thePlayer] then DestroyElement(veh[thePlayer]) DestroyElement(vehCol[thePlayer]) end local x, y, z = getElementPosition(thePlayer) veh[thePlayer] = createVehicle(411, x+3, y, z) setVehicleColor(veh[thePlayer],255,255,255) vehCol[thePlayer] = createColSphere(x, y, z, 2.5) attachElements( vehCol, veh, 0, 0, 0 ) setElementData(vehCol[thePlayer],"parent",veh) setElementData(veh[thePlayer],"parent",vehCol) setElementData(vehCol[thePlayer],"vehicle",true) setElementData(vehCol[thePlayer],"Tire_inVehicle",4) setElementData(vehCol[thePlayer],"Engine_inVehicle",1) setElementData(vehCol[thePlayer],"Parts_inVehicle",1) setElementData(vehCol[thePlayer],"fuel",10000) end end addCommandHandler("carro", veiculodayz) não testei Link to comment
Other Languages Moderators Lord Henry Posted December 17, 2018 Other Languages Moderators Share Posted December 17, 2018 Pronto. veh = {} vehCol = {} function veiculodayz (thePlayer) local accountname = getAccountName (getPlayerAccount (thePlayer)) -- accountname recebe o nome da conta do jogador que usou o comando. if isObjectInACLGroup ("user."..accountname, aclGetGroup ("Admin")) then -- Se o nome da conta estiver na ACL Group Admin, então: local x, y, z = getElementPosition (thePlayer) -- x, y, z recebem a posição do jogador que usou o comando. if isElement (veh[thePlayer]) then -- Se já existe o veh[thePlayer] criado, então: spawnVehicle (veh[thePlayer], x+3, y, z) -- Spawna ele perto do jogador, sem criar outro. setElementData (vehCol[thePlayer], "parent", veh[thePlayer]) -- Reseta as datas do colider. setElementData (veh[thePlayer], "parent", vehCol[thePlayer]) setElementData (vehCol[thePlayer], "vehicle", true) setElementData (vehCol[thePlayer], "Tire_inVehicle", 4) setElementData (vehCol[thePlayer], "Engine_inVehicle", 1) setElementData (vehCol[thePlayer], "Parts_inVehicle", 1) setElementData (vehCol[thePlayer], "fuel", 10000) else -- Se não existe um veh[thePlayer] criado, então: veh[thePlayer] = createVehicle (489, x+3, y, z) -- Cria o veh[thePlayer]. setVehicleColor (veh[thePlayer], 0, 0, 0) -- Coloca ele na cor preta. if isElement (vehCol[thePlayer]) then -- Se já existe o colider (veículo foi deletado e o colider ficou lá), então: attachElements (vehCol[thePlayer], veh[thePlayer], 0, 0, 0) -- Anexa o colider novamente ao veh[thePlayer]. else -- Se não existe colider nenhum, então: vehCol[thePlayer] = createColSphere (x, y, z, 2.5) -- Cria o colider. attachElements (vehCol[thePlayer], veh[thePlayer], 0, 0, 0) -- Anexa ele ao veh[thePlayer]. end setElementData (vehCol[thePlayer], "parent", veh[thePlayer]) -- Seta as datas no veh[thePlayer] e no colider. setElementData (veh[thePlayer], "parent", vehCol[thePlayer]) setElementData (vehCol[thePlayer], "vehicle", true) setElementData (vehCol[thePlayer], "Tire_inVehicle", 4) setElementData (vehCol[thePlayer], "Engine_inVehicle", 1) setElementData (vehCol[thePlayer], "Parts_inVehicle", 1) setElementData (vehCol[thePlayer], "fuel", 10000) end end end addCommandHandler ("carro", veiculodayz) 1 Link to comment
P43tous Posted December 17, 2018 Author Share Posted December 17, 2018 Lord Henry Deu certo meu brother!!! Porém só tive que excluir , 25. end e acrescentar , 36. end para fechar a função da linha 4. Muito obrigado pela ajuda meu brother!!!! veh = {} vehCol = {} function veiculodayz (thePlayer) local accountname = getAccountName (getPlayerAccount (thePlayer)) -- accountname recebe o nome da conta do jogador que usou o comando. if isObjectInACLGroup ("user."..accountname, aclGetGroup ("Admin")) then -- Se o nome da conta estiver na ACL Group Admin, então: local x, y, z = getElementPosition (thePlayer) -- x, y, z recebem a posição do jogador que usou o comando. if isElement (veh[thePlayer]) then -- Se já existe o veh[thePlayer] criado, então: spawnVehicle (veh[thePlayer], x+3, y, z) -- Spawna ele perto do jogador, sem criar outro. setElementData (vehCol[thePlayer], "parent", veh[thePlayer]) -- Reseta as datas do colider. setElementData (veh[thePlayer], "parent", vehCol[thePlayer]) setElementData (vehCol[thePlayer], "vehicle", true) setElementData (vehCol[thePlayer], "Tire_inVehicle", 4) setElementData (vehCol[thePlayer], "Engine_inVehicle", 1) setElementData (vehCol[thePlayer], "Parts_inVehicle", 1) setElementData (vehCol[thePlayer], "fuel", 10000) else -- Se não existe um veh[thePlayer] criado, então: veh[thePlayer] = createVehicle (489, x+3, y, z) -- Cria o veh[thePlayer]. setVehicleColor (veh[thePlayer], 0, 0, 0) -- Coloca ele na cor preta. if isElement (vehCol[thePlayer]) then -- Se já existe o colider (veículo foi deletado e o colider ficou lá), então: attachElements (vehCol[thePlayer], veh[thePlayer], 0, 0, 0) -- Anexa o colider novamente ao veh[thePlayer]. else -- Se não existe colider nenhum, então: vehCol[thePlayer] = createColSphere (x, y, z, 2.5) -- Cria o colider. attachElements (vehCol[thePlayer], veh[thePlayer], 0, 0, 0) -- Anexa ele ao veh[thePlayer]. setElementData (vehCol[thePlayer], "parent", veh[thePlayer]) -- Seta as datas no veh[thePlayer] e no colider. setElementData (veh[thePlayer], "parent", vehCol[thePlayer]) setElementData (vehCol[thePlayer], "vehicle", true) setElementData (vehCol[thePlayer], "Tire_inVehicle", 4) setElementData (vehCol[thePlayer], "Engine_inVehicle", 1) setElementData (vehCol[thePlayer], "Parts_inVehicle", 1) setElementData (vehCol[thePlayer], "fuel", 10000) end end end end addCommandHandler ("carro", veiculodayz) brunob22 Obrigado pela ajuda meu brother deu certo aqui conforme sugestão do Lord Henry abraço!! 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