Jump to content

Boechat

Members
  • Posts

    213
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by Boechat

  1. Trabalhos = { {"Pescaria", 0, "Nenhuma"}, -- Emprego, Level, Habilitação {"Lixeiro", 0, "Nenhuma"}, -- Emprego, Level, Habilitação {"Carregador", 5, "Nenhuma"}, -- Emprego, Level, Habilitação {"Sedex", 10, "B"}, -- Emprego, Level, Habilitação {"Pizzaboy", 15, "A"}, -- Emprego, Level, Habilitação {"Uber", 20, "B"}, -- Emprego, Level, Habilitação {"Caminhoneiro", 25, "D"}, -- Emprego, Level, Habilitação {"Mecanico", 35, "C"}, {"Mineirador", 50, "Nenhuma"}, {"Detran", 70, "C"}, {"SAMU", 100, "C"}, {"PMESP", 200, "Nenhuma"}, {"PRF", 300, "Nenhuma"}, } Faltou vírgula depois do fecha chaves em todos os empregos abaixo do caminhoneiro
  2. Como assim? Quer proteger do que exatamente? Quer restringir o acesso usando mysql? Explique melhor por favor
  3. Não, essa função somente um exemplo que chama a função que roda o vídeo passando os argumentos. No seu código deve conter isso que eu postei e a função que você postou.
  4. Para parar o som: stopSound Quando o player logar: onPlayerLogin Exemplo: addEventHandler("onPlayerLogin", root, function() stopSound (som) --Som = variável que representa a música end )
  5. Acontece que você criou a função mas não está chamando-a. Para funcionar, em algum momento você deve chamá-la passando os argumentos, por exemplo: local x, y = guiGetScreenSize() function defaultFunction () playVideo (0, 0, x, y, "https://www.youtube.com/embed/rRjY8SOZ9Uo?autoplay=1&showinfo=0&rel=0&controls=0&disablekb=1", 12500, true, false) end addCommandHandler ("intro", defaultFunction) Ao dar o comando "intro", vai rodar um videozinho. Para saber mais sobre a função dá uma lida na página da wiki dela: playVideo
  6. Tente assim e veja se vai funcionar: local intervalo = 3600000 --Intervalo que deve esperar para dominar novamente local timer = getTickCount () - intervalo function Dominar(player, matchingDimension) if getTickCount () < timer + intervalo then return outputChatBox("#00FFFF[ Aviso ] Favela ainda não disponível para dominar #00FFFF[ Aviso ]", player, 255, 255, 255, true) end if isElementWithinMarker(player, theMarker) then if isObjectInACLGroup ( "user." .. getAccountName(getPlayerAccount(player)), aclGetGroup( "ComandosGang" )) then if getElementType(player) == "player" then outputChatBox ( "#00FFFF[ Aviso ] #F5FFFA A FAVELA FOI DOMINADA PELO JOGADOR #FF0000 "..getPlayerName(player).." #00FFFF[ Aviso ]", getRootElement(), 255, 0, 0, true ) outputChatBox("#00FFFF[ Aviso ] Você dominou a favela #00FFFF[ Aviso ]", player, 255, 255, 255, true) setRadarAreaFlashing ( hillRadar, true ) timer = getTickCount () end else outputChatBox("Você não é membro de GANG", player, 255, 0, 0, true) end end end addCommandHandler("dominar", Dominar) *Crie as variáveis timer e intervalo fora da função mesmo. *Só modifiquei essa função, não quer dizer que deva retirar as demais. Só substitua a "Dominar" pela que eu te passei. *Com getTickCount () seu código fica mais bem otimizado do que com setTimer.
  7. Recomendo que use setAccountData em vez de ACL, é mais leve pro seu servidor e fácil de trabalhar. function Pegar_Emprego (playerSource) local account = getPlayerAccount ( playerSource ) if not getAccountData (account, 'Emprego', 'UBER') then setAccountData (account, 'Emprego', 'UBER' ) outputChatBox ("Parabéns! Agora você está trabalhando de UBER!", playerSource, 0, 255, 0,true) else outputChatBox ("Você já está trabalhando de UBER!", playerSource, 0, 255, 0,true) end end addEvent("DNL:Pegar_Emprego", true) addEventHandler("DNL:Pegar_Emprego", root, Pegar_Emprego) function Sair_ACL (playerSource) local account = getPlayerAccount ( playerSource ) if getAccountData (account, 'Emprego', 'UBER') then setAccountData (account, 'Emprego', nil) outputChatBox ("Você se demitiu do emprego de UBER!", playerSource, 0, 255, 0,true) else outputChatBox ("Você não está trabalhando de UBER!", playerSource, 0, 255, 0,true) end end addEvent("DNL:Pedir_Demissao", true) addEventHandler("DNL:Pedir_Demissao", root, Sair_ACL)
  8. Nas linhas 307 e 308 do seu código está dando erro pra importar o arquivo de animação da arma (ped.ifp). Pode ser algum erro de codificação ou o arquivo em si pode estar corrompido ou com algum problema.
  9. O que é for? Assim como while ou do...while, o for é uma estrutura de repetição, que serve pra que? Repetir as coisas xd Por exemplo: local vehicles = getElementsByType("vehicle") Essa parte do seu código retorna uma tabela de veículos, contendo vários veículos que você deseja destruir. Não existe uma função nativa do MTA que destrói todos os carros, você deve destruir um a um. Imagina como seria fazer isso sem uma estrutura de repetição ? Então basicamente é isso, estrutura de repetição serve pra repetir alguma função ou pedaço de código. Por exemplo, se você quer contar de 1 até 1000 e exibir isso no chat do player, ou você faz 1000 linhas de código dando outputChatBox ou faz um for que se repetirá 1000 vezes, se resolvendo em 3 linhas de código. for i=0, 1000, 1 do -- Enquanto i for menor ou igual a 1000 ele é incrementado de 1 a 1 outputChatBox (i) --Vai exibir o índice, que vai de 0 a 1000 end -- fecha o for (Foi só um for limitado de 0 a 1000, que não percorremos tabela, então a sintaxe não exige que usemos o in ipairs) Se você quer saber programar melhor, não somente MTA mas qualquer coisa, deve aprender sobre estruturas de condição e repetição, são importantíssimos! for INDICE, VALOR in ipairs (TABELA) do end INDICE: Uma tabela tem várias posições, índice é em qual posição da tabela o seu for está executando naquele momento. VALOR: É o valor da tabela naquele índice rodando no momento. Por exemplo, se estiver rodando uma tabela de carros (como vc fez), a minha variável VALOR vai representar todos os carros enquanto roda o for, um de cada vez. No seu exemplo o que cumpriu esse papel foi a variável v. in ipairs: Faz com que o for varra uma tabela em modo sequencial (posição 1, posição 2, posição 3...). Também tem o in pairs que varre uma tabela em modo aleatório (posição 3, posição 8, posição 1...) O "for" e o "do" são só parte da sintaxe.
  10. Na verdade pode tirar o setTimer que eu havia colocado, ele é desnecessário. Eu prefiro fazer "timer" utilizando o getTickCount pois eu acredito que muitos setTimer no servidor puxa muito processamento. local temporizador = getTickCount() local tempo = 5000 --Selecione aqui o intervalo em milisegundos function EscolherAssassino() if temporizador + tempo <= getTickCount() then local randomPlayer = getRandomPlayer ( ) temporizador = getTickCount() setElementPosition(randomPlayer, -2405.6630859375, -2171.0009765625, 33.2890625) else outputChatBox ( "#B22222[#B22222ERROR#B22222] O Assassino já foi escolhido! ", source, 100,255,100,true ) end end addEventHandler("onMarkerHit", mrk, EscolherAssassino)
  11. Isso aí. Você deve usar o getPlayerTeam em um if comparando com o time desejado para verificar se a pessoa tem acesso. Um detalhe que eu não sei é se quando o player relogar ele vai continuar no time, tem que testar isso aí...
  12. O setPlayerTeam atribui um time ao player, lembrando que antes de setar você deve criar um time com o createTeam. O getPlayerTeam você pega o time do player, afim de comparação ou alguma checagem. Exemplo de uso: server-side local cv = createTeam ( "CV" , 255, 0, 0 ) local markerEntrarCV = createMarker ( 1213, -500, 13, "cylinder", 1.5, 255, 255, 0, 170 ) local markerChecarCV = createMarker ( 1213, -400, 13, "cylinder", 1.5, 255, 255, 0, 170 ) function setTeam (player, team) setPlayerTeam ( player, team ) outputChatBox ('Você entrou para '..getTeamName(team), player) end function checkTeam (player, team) local teamPlayer = getPlayerTeam (player) if teamPlayer == team then return true else outputChatBox ('Você não faz parte do '..getTeamName(team), player) end return false end addEventHandler ("onMarkerHit", markerEntrarCV, function(hitElement, matchingDimension) if isElement (hitElement) and getElementType(hitElement) == 'player' then setTeam (hitElement, cv) end end) addEventHandler ("onMarkerHit", markerChecarCV, function(hitElement, matchingDimension) if isElement (hitElement) and getElementType(hitElement) == 'player' then if checkTeam (hitElement, cv) then outputChatBox ('Você é do CV', hitElement) else outputChatBox ('Você não é do CV', hitElement) end end end) Lembrando que eu não testei, digitei tudo pelo fórum mesmo e nunca mexi com times também, pode haver algum errinho ou outro mas acho que assim funcionará, teste e qualquer coisa posta aí.
  13. Tem sim, você só precisa atribuir um time aos usuários com acesso com o setPlayerTeam e depois fazer a verificação com o getPlayerTeam, em vez de verificar com a ACL
  14. Respondendo sua pergunta: tem como! Mas vc quer dominar sem atrapalhar o domínio de outras gangs? Mais de uma gang pode dominar o mesmo território?
  15. Eu costumo colocar um retângulo DX no lugar do botão, pego a posição dele e depois tiro o retângulo do código
  16. local temporizador = getTickCount() local tempo = 5000 --Selecione aqui o intervalo em milisegundos function EscolherAssassino() if temporizador + tempo <= getTickCount() then local randomPlayer = getRandomPlayer ( ) temporizador = getTickCount() setElementPosition(randomPlayer, -2405.6630859375, -2171.0009765625, 33.2890625) setTimer( function(escolhidoassassino) temporizador = false end, 45000, 1) else outputChatBox ( "#B22222[#B22222ERROR#B22222] O Assassino já foi escolhido! ", source, 100,255,100,true ) end end addEventHandler("onMarkerHit", mrk, EscolherAssassino) Veja se funciona, qualquer dúvida fique a vontade pra perguntar
  17. Depende do jeito que o seu mod foi feito... Eu colocaria todos os itens em uma tabela e preencheria o inventário colocando os itens conforme seu índice.
  18. Cara, usa a ferramenta de inserção de código do fórum pra colocar um código, desse jeito aí fica complicado pra ler... Mas se você quer colocar um tempo, use o timeStamp. Aqui tem um tópico de como usar o timeStamp.
  19. Lembrando que tem que ter a função no mesmo código (nessa função você não mexe em nada, só no exemplo acima você edita) local unlerp = function(from,to,lerp) return (lerp-from)/(to-from) end function dxDrawProgressBar( startX, startY, width, height, progress, color, backColor ) local progress = math.max( 0, (math.min( 100, progress) ) ) local wBar = width*.18 for i = 0, 4 do --back local startPos = (wBar*i + (width*.025)*i) + startX dxDrawRectangle( startPos, startY, wBar, height, backColor ) --progress local eInterval = (i*20) local localProgress = math.min( 1, unlerp( eInterval, eInterval + 20, progress ) ) if localProgress > 0 then dxDrawRectangle( startPos, startY, wBar*localProgress, height, color ) end end end Na página da wiki explica como usar cada argumento da função, dá uma lida la e traz suas dúvidas pra gente poder resolver.
  20. Clica aí e da uma olha na pagina da wiki, lá tem esse exemplo de uso: function draw() dxDrawProgressBar( 10, 10, 200, 200, math.random(0,100), tocolor( 250, 50, 50, 255), tocolor( 255, 255, 255, 255) ) end addEventHandler("onClientRender", root, draw) -- Keep everything visible with onClientRender.
  21. Está faltando um end para fechar a função. function dxMsg(source, text, type) exports.dxmessages:outputDx(source, text, type) end function darDinheiro (source) if commandDelay[source] == nil and not istimer(commandDelay[source]) then local Dinheiro = getPlayerMoney(source) if Dinheiro >= 1200 then return dxMsg(source, "Você possui dinheiro de mais para receber o auxílio.", "error") end givePlayerMoney(source, 1200) dxMsg(source, "Você recebeu o auxílio.", "success") resetCommand(source, 1000) else dxMsg(source, "Você ja recebeu o auxílio.", "warning") end end addCommandHandler('auxilio', darDinheiro)
  22. Depende da sua necessidade Você quer colocar tag de SAMU? Coloca setPlayerNametagText quando o player pegar a skin de SAMU Quer colocar tag de admin? Coloca setPlayerNametagText quando o admin logar
  23. Veja se vai funcinar assim: chat_range = 100 chatTime = {} elementID = "ID" lastChatMessage = {} function isPlayerInRangeOfPoint(player,x,y,z,range) local px,py,pz=getElementPosition(player) return ((x-px)^2+(y-py)^2+(z-pz)^2)^0.5<=range end function onChatLocal(text, type) local new = "" local iter = 0 local msg = string.gsub(text, "_", "") for word in msg:gmatch("%S+") do iter = iter + 1 if iter == 1 and word:len() > 0 then word = word:gsub("%a", string.upper, 1) end new = new..word.." " end if new ~= "" then msg = new end text = msg if not hasObjectPermissionTo(source, "function.kickPlayer") then if chatTime[source] and chatTime[source] + tonumber(5000) > getTickCount() then cancelEvent() outputChatBox("Espere 5 segundo para poder digitar novamente!", source, 255, 0, 0) return else chatTime[source] = getTickCount() end end lastChatMessage[source] = text cancelEvent(true) local px,py,pz = getElementPosition(source) local nick = string.gsub(getPlayerName(source), "#%x%x%x%x%x%x", "") local id = getElementData(source, elementID) or "n.a" for _,v in ipairs(getElementsByType("player")) do if isPlayerInRangeOfPoint(v,px,py,pz,chat_range) then outputChatBox("᠉ #1E90FF BNR - #ffa500[ ChatLocal ] "..tag (source).." - #FFFFFF"..nick.." #1E90FF ["..id.."]#00ff00 - #ffa500"..msg, v, 200, 200, 200,true) end end end addEventHandler("onPlayerChat", root, onChatLocal) function MensagemTwitter(source, cmd, ...) local MessagemT = table.concat ( { ... }, " " ) local name = string.gsub(getPlayerName(source), "#%x%x%x%x%x%x", "") local id = getElementData(source, elementID) or "n.a" for _,v in ipairs(getElementsByType("player")) do outputChatBox("᠉ #1E90FF BNR - #1E90FF[ Facebook ] "..tag (source).." - #ffffff"..name.." #1E90FF["..id.."]#00BFFF - #1E90FF"..MessagemT,v, 255, 255, 255, true) end end addCommandHandler("Facebook", MensagemTwitter) addCommandHandler( "DeepWeb", function ( source, cmd, ... ) local message2 = #{...} > 0 and table.concat({...}," ") or nil if message2 then for _, p in ipairs (getElementsByType("player")) do if hasObjectPermissionTo(p, "command.mute", true) then local name = string.gsub(getPlayerName(source), "#%x%x%x%x%x%x", "") local id = getElementData(source, elementID) or "n.a" outputChatBox("᠉ #1E90FF BNR - #696969[ DeepWeb ] -"..tag (source).." #ffffff"..name.." ["..id.."]#696969 - #696969"..message2, p, 255, 255, 255, true) else outputChatBox("᠉ #696969 DeepWeb - #696969"..message2, p, 255, 255, 255, true) end end else end end) function tag (player) if isElement(player) and getElementType ('player') then local r, g, b = getPlayerNametagColor (player) local tag = getPlayerNametagText (player) local color = RGBToHex (r, g, b) return color..tag end end function RGBToHex(red, green, blue, alpha) if( ( red < 0 or red > 255 or green < 0 or green > 255 or blue < 0 or blue > 255 ) or ( alpha and ( alpha < 0 or alpha > 255 ) ) ) then return nil end if alpha then return string.format("#%.2X%.2X%.2X%.2X", red, green, blue, alpha) else return string.format("#%.2X%.2X%.2X", red, green, blue) end end addEventHandler("onPlayerJoin", getRootElement(), function() bindKey(source, "y", "down", "chatbox", "Facebook") end) addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), function() for index,player in pairs(getElementsByType("player")) do bindKey(player,"y", "down", "chatbox", "Facebook") end end) addEventHandler("onPlayerJoin", getRootElement(), function() bindKey(source, "u", "down", "chatbox", "DeepWeb") end) addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), function() for index,player in pairs(getElementsByType("player")) do bindKey(player,"u", "down", "chatbox", "DeepWeb") end end)
  24. Da proxima vez que for inserir um código no site use essa ferramenta:
×
×
  • Create New...