Developer.

Members
  • Content Count

    72
  • Joined

  • Last visited

Community Reputation

15 Decent

About Developer.

  • Rank
    Transformer
  • Birthday 19/12/1999

Recent Profile Visitors

296 profile views
  1. local posicoesCJ = { { 2488, -1670, 14 }, } local posicoesPraia = { { 324, -1779, 5 }, } local segundos = 5 -- tempo em segundos local tempo = {} -- tabela que salva o tempo. function PosicaoPlayer ( jogador, comando ) if getTickCount() - (tempo[jogador] or 0) >= segundos * 1000 then -- faz a contagem se já passou os 5 segundos para o player. local veh = getPedOccupiedVehicle(jogador) local nome = getPlayerName(jogador) if comando == "cj" then if (veh) then setElementPosition(veh, unpack(posicoesCJ[math.random(#posicoesCJ)])) else setElementPosition(jogador, unpack(posicoesCJ[math.random(#posicoesCJ )])) end tempo[jogador] = getTickCount() outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF'..nome..' #828282Foi Para A Casa Do Cj #FFFFFF(#00FF00 /cj #FFFFFF)', root, 255, 255, 255, true) elseif comando == "praia" then if (veh) then setElementPosition(veh, unpack(posicoesPraia[math.random( #posicoesPraia )])) else setElementPosition(jogador, unpack(posicoesPraia[math.random(#posicoesPraia)])) end tempo[jogador] = getTickCount() outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF'..nome..' #828282Foi Para A Praia #FFFFFF(#00FF00 /praia #FFFFFF)', root, 255, 255, 255, true) end else outputChatBox ('#FFFFFF[ #00FF00Anti-flood#FFFFFF ]: #FFFFFFAguarde Para utilizar o comando novamente!', jogador, 255, 255, 255, true) end end addCommandHandler("cj", PosicaoPlayer) addCommandHandler("praia", PosicaoPlayer) Testado! Pronto, arrumado. O erro estava nos Parênteses da linha 16 @SkillZNT
  2. local posicoesCJ = { { 2488, -1670, 14 }, }; local posicoesPraia = { { 324, -1779, 5 }, }; local segundos = 5 -- tempo em segundos local tempo = {} -- tabela que salva o tempo do jogador. function PosicaoPlayer ( jogador, comando ) if (getTickCount() - tempo[jogador] or 0) >= segundos * 1000) then -- faz a contagem se já passou os 5 segundos para o jogador. local veh = getPedOccupiedVehicle(jogador) local nome = getPlayerName(jogador) if comando == "cj" then if (veh) then setElementPosition(veh, unpack(posicoesCJ[math.random(#posicoesCJ)])) else setElementPosition(jogador, unpack(posicoesCJ[math.random(#posicoesCJ )])) end tempo[jogador] = getTickCount() outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF'..nome..' #828282Foi Para A Casa Do Cj #FFFFFF(#00FF00 /cj #FFFFFF)', root, 255, 255, 255, true) elseif comando == "praia" then if (veh) then setElementPosition(veh, unpack(posicoesPraia[math.random( #posicoesPraia )])) else setElementPosition(jogador, unpack(posicoesPraia[math.random(#posicoesPraia)])) end tempo[jogador] = getTickCount() outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF'..nome..' #828282Foi Para A Praia #FFFFFF(#00FF00 /praia #FFFFFF)', root, 255, 255, 255, true) end else outputChatBox ('#FFFFFF[ #00FF00Anti-flood#FFFFFF ]: #FFFFFFAguarde Para utilizar o comando novamente!', jogador, 255, 255, 255, true) end end addCommandHandler("cj", PosicaoPlayer) addCommandHandler("praia", PosicaoPlayer) Obs: Não testado! Ligue primeiro seu debug ( /debugscript 3) e depois inicie o resource! 7 Caso de algum erro só mandar aqui que irei consertar. @SkillZNT
  3. Olá novamente @vanessa, acabei deixando passar no outro post porém para ficar mais fácil de estarmos te ajudando, por favor poste o seu código corretamente clicando sobre o botão code <> Abaixo uma imagem ilustrativa do botão: Se você puder estar editando o seu tópico e fazendo desta maneira, ficara mais fácil para os membros lhe ajudar! Bom quanto ao seu problema você chegou a verificar seu /debugscript 3? Para ver se aparece algum erro quanto aos Resources? Qual o problema exato com a sua hud? Ela não liga? Ela liga, porém falta alguma coisa nela ou algo do tipo?
  4. Ok, sem problemas. Bom vou estar te passando dois tópicos, um é de como você estar usufruindo do fórum da maneira certa! É um tutorial em vídeo feito pelo Lord Henry link abaixo: O outro link é um outro tutorial, meio que um "passo-a-passo" feito pelo DNL291 sobre como começar na linguagem Lua no MTA. Leia com calma e paciência! Segue o link abaixo: Agora vamos lá. Primeiro o que é ELEMENT DATA? É uma forma de você salvar um dado ao player exemplo: o player Eder esta sendo revistado, eu quero salvar isso a mim o que eu faço? coloco setElementData(playerRevistado, "sendo:Revistado", playerRevistado), dessa forma eu acabei de colocar um dado a mim. Agora se eu quiser ver se eu estou sendo revistado ou não? Eu faço isto: if getElementData(playerRevistado, "sendo:Revistado") == true then ou seja se eu tiver esta data "sendo:Revistado" então algo acontecerá comigo... Vamos ao código: 1 - onde esta escrito local bank, coloque isto aqui: local bank = format(tonumber(getElementData(jogador, "Bank:Caixa") or 0)); Caso não funcione o problema deve estar no nome da data "Bank:Caixa", para verificar vc tem q abrir o seu mod do banco e procurar por isto lá dentro! 2 - para "adicionar a fome, sede e sono é necessário onde tem isto: local Fome = format(tonumber(getElementData(jogador, "hunger")) or 0); -- data da fome local Sede = format(tonumber(getElementData(jogador, "sede")) or 0); -- data da sede local Sono = format(tonumber(getElementData(jogador, "sono")) or 0); -- data do sono Os nomes "hunger", "sede" e "sono" precisam estar EXATAMENTE iguais ao que esta no seu mod de lanchonete! Para estar mudando é só apagar o que esta entre as aspas " ", e digitar com letras maiúsculas e minusculas o nome certo da data que esta lá no mod de lanchonete. Normalmente só abrir o arquivo e pesquisar por setElementData ou getelementData que vc encontrará. O básico é isso. Caso não tenha entendido só estar perguntando novamente, que tentarei lhe ajudar! Edit: E não se esqueça de ativar o debugscript 3!!
  5. Olha sendo sincero, essa de arquivo sumir eu nunca vi, o que pode acontecer é que talvez você mudou o nome do seu arquivo e esqueceu de abri-lo novamente no editor de códigos, enfim tem algumas hipóteses. Relacionado ao código mudei algumas coisas e adicioneis outras. Como eu não tenho todos os arquivos por exemplo os de imagem trabalhei no que pude! Obs: antes de iniciar o código verifique se tudo esta certinho no arquivo meta.xml e ligue o debugscript, digitando /debugscript 3 pra ligar e /debugscript 0 para desligar. Mude também as datas de fome, sede e sono para o seu sistema de lanchonete. Adicionei um sistema simples que permite o player desativar a hud pressionando o botão f10, caso queira mudar só olhar o sistema e procurar por "botao_ligar_hud" Segue abaixo o código: local screenW,screenH = guiGetScreenSize() local resW, resH = 1366,768 local x, y = (screenW/resW), (screenH/resH) local jogador = getLocalPlayer() local botao_ligar_hud = "F10" -- para ligar ou desligar a hud. function hourFormat() local realtime = getRealTime() return string.format("%02d:%02d:%02d", realtime.hour, realtime.minute, realtime.second) end function format(val, decimal) if (decimal) then return math.floor( (val * 10^decimal) + 0.5) / (10^decimal) else return math.floor(val+0.5) end end function drawHud() local dinheiro1 = format(getPlayerMoney(jogador)); local bank = format(getElementData(jogador, "Bank:Caixa") or "0"); local Procurado = getPlayerWantedLevel(jogador); local Emp = (getElementData(jogador, "Emprego") or "Desempregado"); local showammo1 = getPedAmmoInClip (jogador, getPedWeaponSlot(jogador)); local showammo2 = getPedTotalAmmo(jogador) - getPedAmmoInClip(jogador); local weapon = getPedWeapon (jogador); local arma = getWeaponNameFromID (weapon); local ID = (getElementData(jogador, "ID") or "N/A"); local armor = (getPedArmor(jogador)); local Fome = format(tonumber(getElementData(jogador, "hunger")) or "100"); -- data da fome local Sede = format(tonumber(getElementData(jogador, "sede")) or"100"); -- data da sede local Sono = format(tonumber(getElementData(jogador, "sono")) or "100"); -- data do sono --local level = (getElementData(jogador, "Level") or "0"); dxDrawImage(x*1009, y*38, x*422, y*210, "images/fundo.png", 0, 0, 0, tocolor(3, 224, 251, 255), false) dxDrawImage(x*1159, y*48, x*111, y*20, "images/Vida.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawImage(x*1159, y*78, x*114, y*21, "images/Colete.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawImage(x*1159, y*119, x*116, y*21, "images/Fome.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawImage(x*1159, y*150, x*116, y*21, "images/Fome.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawImage(x*1159, y*181, x*116, y*21, "images/Fome.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawText("fome %"..Fome, x*1196, y*48, x*1251, y*80, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("colete %"..armor, x*1196, y*83, x*1251, y*115, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawImage(x*1256, y*20, x*100, y*109, "images/logocat.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawText("Fome: "..Fome.."%", x*1196, y*124, x*1256, y*156, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("Sede: "..Sede.."%", x*1196, y*146, x*1256, y*178, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("Sono: "..Sono.."%", x*1196, y*181, x*1256, y*213, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("Seu id: "..ID.."", x*1015, y*223, x*1360, y*259, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawImage(x*1035, y*133, x*100, y*97, "icons/0.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawText("Arma: "..arma.. " || Pente: " ..tostring (showammo1).." / "..tostring (showammo2), x*1015, y*258, x*1132, y*276, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawText(""..dinheiro1.."", x*1015, y*48, x*1091, y*73, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawText(""..bank.."", x*1015, y*83, x*1112, y*129, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawText(""..Emp.."", x*1196, y*258, x*1332, y*287, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawImage(x*1122, y*48, x*29, y*25, "images/logodinheiro.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawImage(x*1122, y*75, x*29, y*24, "images/logobanco.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawImage(x*1275, y*115, x*29, y*25, "images/comida.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawImage(x*1280, y*145, x*24, y*26, "images/bebida.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawImage(x*1278, y*179, x*27, y*24, "images/sono.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawText(""..Procurado.."", x*1015, y*9, x*1090, y*38, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawImage(x*1009, y*24, x*22, y*14, "images/procurado.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) local cTime = hourFormat() or "00:00:00" dxDrawText ( "Hora: "..cTime.."", x*1160, y*220, x*1275, y*238, tocolor ( 255, 255, 255, 255 ), 0.55, "bankgothic" ) end addEventHandler("onClientRender", root, drawHud, false) function showHud (button, press) if button == botao_ligar_hud then if (press)then if not isEventHandlerAdded("onClientRender", root, drawHud) then addEventHandler("onClientRender", root, drawHud, false) else removeEventHandler("onClientRender", root, drawHud, false) end end end end addEventHandler("onClientKey", getRootElement(), showHud, false) local hudTable = { "ammo", "armour", "clock", "health", "money", "weapon", "wanted", "area_name", "vehicle_name", "breath", "clock" } addEventHandler("onClientResourceStart", resourceRoot, function() for _, hudComponents in ipairs(hudTable) do setPlayerHudComponentVisible(hudComponents, false) end end) addEventHandler("onClientResourceStop", resourceRoot, function() for _, hudComponents in ipairs(hudTable) do setPlayerHudComponentVisible(hudComponents, true) end end) function isEventHandlerAdded( sEventName, pElementAttachedTo, func ) if type( sEventName ) == 'string' and isElement( pElementAttachedTo ) and type( func ) == 'function' then local aAttachedFunctions = getEventHandlers( sEventName, pElementAttachedTo ) if type( aAttachedFunctions ) == 'table' and #aAttachedFunctions > 0 then for i, v in ipairs( aAttachedFunctions ) do if v == func then return true end end end end return false end Para copiar o código corretamente, pressione o simbolo de prancheta que fica no lado superior esquerdo onde se iniciar o código! Caso de algum erro, verifique seu debugscript ou mande uma print aqui se necessário.
  6. addCommandHandler("versujo", function(player, cmd, target ) local accName = getAccountName(getPlayerAccount(player)) if not isObjectInACLGroup ("user."..accName, aclGetGroup("Policial")) then outputChatBox("Ops! Sinto Muito :( , Você não tem permissão para executar esta função", player, 255, 0, 0) return end if target then local targetplayer = getPlayerFromName(target) if targetplayer then local pX, pY, pZ = getElementPosition(player) -- posição do policial local bX, bY, bZ = getElementPosition(targetplayer) -- posição do abordado local dist = getDistanceBetweenPoints3D(pX, pY, pZ, bX, bY, bZ) -- calcula a distancia da duas posições if dist < 3 then -- se a distancia for menor que 3 então: local Dinheiro_Sujo = getElementData ( targetplayer, "moneysujo" ) outputChatBox ( "#0037FF✘#ffffffINFO#0037FF✘➺ #ffffffO Jogador Tem: #FF0000R$"..Dinheiro_Sujo.."#ffffff Na Carteira !", player, 255, 0, 0, true ) end else --se não for então: outputChatBox ( "#0037FF✘#ffffffINFO#0037FF✘➺ #ffffffVocê esta muito longe!", player, 255, 0, 0, true ) end end end end) Obs: não testado Vê se isso funciona.
  7. debug é para você ver se tem alguma linha de Código dando erro, aperte f8 e digite debugscript 3, quanto ao script eu testei e ta funcional. O que pode estar acontecendo é esse setPedAnimationSpeed não existir! Recomendo trocar por isso aqui: function setPedAnimationSpeed(player,anim,speed) setPedAnimation(player,anim,speed) end Não entendi muito bem seu script pois o player mesmo algemado ainda pode se mover acredito eu q ele deveria ficar imóvel mas enfim... Ah e claro verifique se as ACLS BOPE e PMRJ existem e que sua conta tem permissão nelas!
  8. Bom o seu script não funciona pelo seguinte: if isObjectInAcl é uma verificação! Ou seja ela verifica se o player esta, tem, pode, não tem, não pode ou não esta. No seu código você primeiro não esta verificando nada, segundo não colocou um end e terceiro não existe a variável accountName no seu código. (Logica): Para eu verificar algo eu tenho que estar antes do resultado certo? Um exemplo bem besta, antes de eu beber água o que eu preciso? Um copo e um filtro correto? Se eu não tenho o copo vou beber como? Mas se eu tenho o copo e não tenho o filtro da onde a água vai sair? Entende o que eu quero dizer? if seria você mesmo ver se tem o copo na sua mão e se o filtro esta na sua frente... Agora voltando ao seu código o que você esta verificando colocando o if isObjectInAcl lá em baixo? Depois de todo o código? Não tem o menor sentido concorda? Então o if isObjectInAcl tem q estar lá em cima certo? o que é end? end é o fim de algo em Lua, 'PARA TUDO TEM QUE HAVER UM FIM' nos códigos não é diferente, toda vez que tiver um if, é OBRIGATÓRIO ter um end. o que é accountName? accountName é uma variável. Variáveis são palavras, números ou símbolos que possuem um valor, no seu caso a VARIÁVEL accountName possui o valor que é o Nome da Conta do Player, mas por que? Bem simples, quando você vai mexer no painel P para adicionar um player na acl, vc tem que digitar user.Nome da conta correto? No código você não esta adicionando nada, mas esta verificando se o player esta ali dentro então tem que pegar o nome da conta, entendeu? seu eu fizer isso: getAccountName(getPlayerAccount(thePlayer)) ou fizer isso: accountName = getAccountName(getPlayerAccount(thePlayer)) o resultado é o mesmo! Porém independente de qual forma seja, eu preciso pegar o nome da conta do player para a função isObjectInAcl. abaixo o código: function setPedAnimationSpeed(player,anim,speed) triggerClientEvent(player, "animSped", player, player,anim,speed) end function setCuffPlayer(player) setPedAnimation(player, nil) setPedAnimation(player,'ped', 'pass_Smoke_in_car', 0, true, true, true) setTimer(setPedAnimationSpeed,60,1,player, 'pass_Smoke_in_car', 0) local x, y, z = getElementPosition(player) local box = createObject(364, x, y, z) exports.bone_attach:attachElementToBone(box, player, 12, 0,0,0, 0,40,-10) setElementCollisionsEnabled(box, false) setElementData(player,'cuffOb', box) toggleControl(player, 'jump', false) setTimer(function(player) if getElementData(player,'cuff') and getElementData(player,'cuff') == true then toggleControl(player, 'fire', false) end end,60,0,player) toggleControl(player, 'crouch', false) end local corpACLS = { -- NOME DAS ACLS Q PODEM ALGEMAR UMA PESSOA! "BOPE", "PMRJ", } function cuff(hit,_,name) local player = getPlayerFromName(name) local x,y,z = getElementPosition(player) local x1,y1,z1 = getElementPosition(hit) if isPlayerPermission(hit) then -- FUNÇÃO UTIL, BASICAMENTE VERIFICA SE O POLICIAL (hit) ESTA DENTRO DE UMA DAS ACL'S BOPE OU PMRJ! if getDistanceBetweenPoints3D(x1,y1,z1,x,y,z) <= 20 then if not getElementData(player,'cuff') or getElementData(player,'cuff') ~= true then if isPedInVehicle(player) then setControlState(player,'enter_exit',true) setTimer(setCuffPlayer,2800,1,player) setElementData(player,'cuff', true) else setCuffPlayer(player) setElementData(player,'cuff', true) end outputChatBox(' '..getPlayerName(hit)..'#ff0000 Algemou você',player,255,255,255,true) else removeElementData(player,'cuff') destroyElement(getElementData(player,'cuffOb')) removeElementData(player, 'cuff') toggleControl(player, 'jump', true) toggleControl(player, 'crouch', true) toggleControl(player, 'fire', true) setPedAnimation(player, 'ped', 'pass_Smoke_in_car', 0, false, false, false, false) outputChatBox(' '..getPlayerName(hit)..'#008800 Soltou suas algemas',player,255,255,255,true) end else outputChatBox("Você está longe demais!",hit,255,0,0,true) end end -- end do if ifPlayerPermission then end addCommandHandler('algemar',cuff) addEventHandler('onPlayerQuit', root,function() if getElementData(source,'cuff') == true then destroyElement(getElementData(source,'cuffOb')) removeElementData(source, 'cuff') end end) addEventHandler('onPlayerWasted',root,function() if getElementData(source,'cuff') == true then destroyElement(getElementData(source,'cuffOb')) removeElementData(source, 'cuff') end end) addEventHandler('onVehicleStartEnter', getRootElement(), function(player, seat) if getElementData(player,'cuff') == true then if seat ~= 0 then destroyElement(getElementData(player,'cuffOb')) else cancelEvent() outputChatBox('Você não pode dirigir você tem algemas!',player,255,0,0) end end end) setTimer(function() for _,player in ipairs(getElementsByType("player")) do if getElementData(player,'cuff') == true then if isPedInWater(player) then setTimer(function(player) if isPedInWater(player) then killPed(player) end end,5000,1,player) end end end end,1000,0) addEventHandler('onVehicleExit', getRootElement(), function(player, seat) if getElementData(player,'cuff') == true then setCuffPlayer(player) end end) -- ABAIXO UMA FUNÇÃO UTIL QUE FOI DEMONSTRADA por @MainSCR no seu outro post, deveria ter usado isto em vez da outra! function isPlayerPermission(thePlayer) -- faz um loop das acls declaradas na tabela e verifica se a acl do jogador é uma das acls declarada na tabela if isElement(thePlayer) and getElementType(thePlayer) == "player" then if isGuestAccount(getPlayerAccount(thePlayer)) then return end for _, group in ipairs(corpACLS) do if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup(group)) then -- preste atenção acima, ("user."..Nome da Conta , qual a acl )) return true end end end return false end
  9. Observações: o seu código inicial @Rangel funciona! Mesmo tendo coisas sem sentidos como "comando" e "nick" em um addEventHandler e demais coisas, funciona sim! A unica coisa que não ocorre é o player poder destruir depois de ter saído do servidor! já o código do @Angelo Pereira é totalmente funcional e melhorado inclusive ( meus parabéns) Dito isso vamos lá, você tem 2 formas de fazer este Spawn de viaturas: Sistema 1 Para Criar a Vtr: local tableVehicle = {} local ACL = "BOMBEIROS" function spawnvtr ( mkr, dim ) if (dim) then -- verifica a dimensão if mkr == Spawn1 then -- verifica se a marker hitada é a de spawn. Se for então: local accName = getAccountName ( getPlayerAccount ( source ) ) -- pega a account do player if not isObjectInACLGroup ("user."..accName, aclGetGroup ( ACL) ) then -- se ele não for bombeiro ( não estiver na acl) então: outputChatBox("#FFFFFF| #E10000BOMBEIROS #FFFFFF| Somente #E10000BOMBEIROS #FFFFFFPodem Pegar Este Veiculo.", source,255,255,255, true) -- envia essa mensagem return -- termina a função, por precaução eu costumo fazer isto para evitar bug's! Poderia também usar um else no lugar do return! end -- se eu usar else, esse end aqui deveria ficar embaixo do warpPed! if tableVehicle[source] then -- se existir um valor na tableVehicle destroyElement ( tableVehicle[source] ) -- destroi oq esta na tableVehicle tableVehicle[source] = nil -- coloca tableVehicle como nil (anti-bug) end tableVehicle[source] = createVehicle(529, -2410.876, -600.848, 132.619, 0, 0, 270 ) -- cria o veículo e insere ele na tableVehicle setElementHealth (tableVehicle[source] , 200000) -- não entendi o porque de 200.000 de vida mas ok... warpPedIntoVehicle ( source, tableVehicle[source]) -- coloca o player dentro do veículo criado end end end addEventHandler("onPlayerMarkerHit", getRootElement(), spawnvtr) -- Obs: é de boa pratica sempre fazer as verificações negativas antes! Ex: -- Se o player não tiver isto ou não tiver aquilo então a função para de ser executada ou retorna! -- isto muitas das vezes evita bug :) Para destruir a Vtr: function destroyvtr ( mkr, dim ) if (dim) then if mkr == Destroy then local accName = getAccountName ( getPlayerAccount ( source ) ) if not isObjectInACLGroup ("user."..accName, aclGetGroup (ACL) ) then outputChatBox("#FFFFFF| #E10000BOMBEIROS #FFFFFF| Somente #E10000BOMBEIROS #FFFFFFPodem Destruir Este Veiculo.", source,255,255,255, true) return end if tableVehicle[source] then destroyElement (tableVehicle[source]) tableVehicle[source] = nil end end end end addEventHandler("onPlayerMarkerHit", getRootElement(), destroyvtr) Para quando o player sair do servidor: function onQuit() for _, player in ipairs(getElementsByType("player")) do -- faz um loop nos players online if tableVehicle[player] and isElement(tableVehicle[player]) then -- se o player possuia uma viatura antes de sair então: destroyElement (tableVehicle[player]) -- destroi a viatura tableVehicle[player] = nil end end end addEventHandler("onPlayerQuit", getRootElement(), onQuit) ______________________________________________________________________________________________________________________________________________________________________________________ Sistema 2 Para Criar a Vtr (mesmo código do outro sistema!): Obs: caso o player destrua a vtr, dará um erro no debug, mas nada grave! local tableVehicle = {} local ACL = "BOMBEIROS" function spawnvtr ( mkr, dim ) if (dim) then -- verifica a dimensão if mkr == Spawn1 then -- verifica se a marker hitada é a de spawn. Se for então: local accName = getAccountName ( getPlayerAccount ( source ) ) -- pega a account do player if not isObjectInACLGroup ("user."..accName, aclGetGroup (ACL) ) then -- se ele não for bombeiro ( não estivar na acl) então: outputChatBox("#FFFFFF| #E10000BOMBEIROS #FFFFFF| Somente #E10000BOMBEIROS #FFFFFFPodem Pegar Este Veiculo.", source,255,255,255, true) -- envia essa mensagem return -- termina a função, por precaução eu costumo fazer isto para evitar bug's! Poderia também usar um else no lugar do return! end -- se eu usar else, esse end aqui deveria ficar embaixo do warpPed! if tableVehicle[source] then -- se existir um valor na tableVehicle destroyElement ( tableVehicle[source] ) -- destroi oq esta na tableVehicle tableVehicle[source] = nil -- coloca tableVehicle como nil (anti-bug) end tableVehicle[source] = createVehicle(529, -2410.876, -600.848, 132.619, 0, 0, 270 ) -- cria o veículo e insere ele na tableVehicle setElementHealth (tableVehicle[source] , 200000) -- não entendi o porque de 200.000 de vida mas ok... warpPedIntoVehicle ( source, tableVehicle[source]) -- coloca o player dentro do veículo criado end end end addEventHandler("onPlayerMarkerHit", getRootElement(), spawnvtr) Para destruir a Vtr: function destruir(mkr, dim ) if (dim) then if mkr == Destroy then local accName = getAccountName ( getPlayerAccount ( source ) ) if not isObjectInACLGroup ("user."..accName, aclGetGroup (ACL) ) then outputChatBox("#FFFFFF| #E10000BOMBEIROS #FFFFFF| Somente #E10000BOMBEIROS #FFFFFFPodem Destruir Este Veiculo.", source,255,255,255, true) return end local vehicle = getPedOccupiedVehicle(source) -- retorna o veiculo que o player tá local modelo = getElementModel(vehicle) -- pega o modelo do veículo (id) local idViatura = {529, 429} -- tabela onde tem os id's que podem ser destruidos! for _, veiculo in ipairs(idViatura) do -- loop if (isElement(vehicle)) and (getElementType(vehicle)=="vehicle") and (modelo == veiculo) then -- se o que hitou a marker for um veículo e, o modelo(id) dele esta na tabela então: destroyElement (vehicle) -- destroi o veículo! end end end end end addEventHandler("onPlayerMarkerHit", getRootElement(), destruir) No sistema 2 não será necessário a parte do player sair do servidor pois qualquer pessoa que POSSUA a TAG, poderá destruir a viatura. Só para meio de conhecimento ainda há outras formas, uma delas é com o executeSQLQuery (database interna)! Caso tenha alguma duvida só pergunta! Obs: tenha certeza q a ACL "BOMBEIROS" esta criada, e que você esta nela!!
  10. function zrespFurke(auto, x, y, z) createVehicle(auto, x, y, z) -- you need 4 arguments end addEvent("triggerujZrespienie", true) addEventHandler("triggerujZrespienie", resourceRoot, zrespFurke) In the client-side you only return the position x, y, z ( 3 arguments) , you need to return auto!
  11. Esta é a nota oficial do MTA Brasil em relação a loja, basicamente o que acontece é que o MTA Brasil NÃO tem nada a ver com o mod, ele só disponibiliza o espaço ao CRIADOR para a divulgação! Minha recomendação é você entrar em contato com o CRIADOR e questiona-lo sobre a entrega. Normalmente esse criadores tem pagina no facebook, tem discord e demais meios de comunicação, verifique a descrição da postagem no MTA Brasil para encontrar o contato da pessoa.
  12. Bom acredito eu que aqui não seja a seção certa para estar postando isto mas enfim. O cara entrou no seu servidor e logo após isto ele caiu? Primeiro você tem certeza que não foi problema na sua host? Segundo você divide senha do seu servidor ou deu acesso a alguma outra pessoa ao ftp, painel admin, ou até mesmo ao seu tc admin? Terceiro, verifique o console do seu tc admin, veja se tem algum comando efetuado pelo "cara", ou algo que envolva ele!