Jump to content

Jonas^

Members
  • Posts

    1,016
  • Joined

  • Last visited

  • Days Won

    9

Everything posted by Jonas^

  1. Você mesmo deu as respostas pra suas dúvidas. Ao invés de createLight é mais fácil usar AddVehicleSirens https://wiki.multitheftauto.com/wiki/AddVehicleSirens https://wiki.multitheftauto.com/wiki/BindKey
  2. OnVehicleEnter Check the driver's seat and allow only those in the acl to drive the vehicle. Example: addEventHandler ("onVehicleEnter", root, function (thePlayer, seat, jacked) if not isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup ("ACL_NAME")) then if seat == 0 then removePedFromVehicle (thePlayer) outputChatBox ("SEAT: "..seat, thePlayer, 0, 220, 0) end end end) @Pedro001
  3. Postou no local indevido. Na wiki tinha um exemplo basicamente pronto era só adaptar do seu gosto. Faça assim: local timerGetAdmins = 10 addEventHandler ("onResourceStart", resourceRoot, function () timerAdmins = setTimer (function () admins = "" for _, v in ipairs (getElementsByType ("player")) do local accountname = "" if (isGuestAccount(getPlayerAccount(v)) == false) then if isObjectInACLGroup ("user."..getAccountName (getPlayerAccount(v)), aclGetGroup ("Admin")) then if (admins == "") then admins = getPlayerName(v) else admins = admins .. ", " .. getPlayerName(v) end end end end outputChatBox ("Admins Online: #FFFFFF"..tostring(admins), root, 0, 233, 0, true) end, 60000 * timerGetAdmins, 0) end) @adrian enigma
  4. No GTA:SA por padrão é somente em certos veículos que funcionam esses spoilers, já tentou colocar no sultan ou elegy por exemplo?
  5. Pra longos periodos assim é válido declarar uma variável pra controlar o timer, assim é mais fácil e rápido de fazer alterações sem precisar calcular x segundos. Exemplo: NPCS = { {2164.52686, -1000.97644, 62.79298}, -- x, y, z {2199.82104, -1010.65930, 61.88739} }, local r = math.random(1, #NPCS) local Ped_VICIADO = createPed(240, NPCS[r][1], NPCS[r][2], NPCS[r][3]) local timerTotal = 5 timer = setTimer(function () if Ped_VICIADO then local nr = math.random(1, #NPCS) setElementPosition(Ped_VICIADO, NPCS[nr][1], NPCS[nr][2], NPCS[nr][3]) end end, 60000 * timerTotal, 0) -- 60000 = 1 minuto x var timerTotal = 5 minutos.
  6. Não, como disse antes pode variar de empresa pra empresa, eu pago 35 por mês em uma VPS, mas tem host de 10 reais.
  7. Estranho, adquira uma host pra abrir seu servidor, vai por mim é melhor, fica 24 horas online, você não gasta energia com PC ligado 24 horas.
  8. Jonas^

    Ajuda

    Seu código tem problemas nas output's e tem argumentos errados, onde era pra ser thePlayer tem player de resto esta certo, e eu faria a verificação por ACL primeiro.
  9. Eu acho que eu passo pelo mesmo problema também, é complicado mas é mais seguro obviamente neste caso nossa opção é adquirir planos de VPS/Host, mas de qualquer forma é complicado deixar um PC 24 horas ligado pra ficar rodando o servidor, tirando o fato que precisa de 1 conexão extremamente boa pra todos baixarem o servidor com uma boa velocidade e ter uma conexão estável.
  10. Pelo visto o problema ainda é no roteador, verifique se realmente as portas foram abertas, caso não der a alternativa sera você adquirir uma host/vps para hospedar seu servidor, que é o ideal, pois pra aguentar diversos jogadores simultâneos você precisa de uma conexão muito boa e de uma máquina potente, dai você usa o localhost para testes.
  11. O meta esta correto e o código também pois eu testei aqui.
  12. Mostre o meta pra mim ver. O meta deve ser desta forma: <meta> <script src="client.lua" type="client" cache="false"/> </meta>
  13. Eu testei aqui e funcionou normalmente.
  14. Sem código fica complicado deduzir o problema, já olhou o /debugscript 3 apresenta algum erro relacionado a este código?
  15. Fiz uns testes aqui e vi que parece que o código do Lord esta com problema na hora de setar na conta do jogador o tempo total fiz um comando pra testar se quiser testar ai também: addCommandHandler ("checkt", function (thePlayer, cmd) local tempoEmprego = getAccountData (getPlayerAccount (thePlayer), "periodo.Total") if tempoEmprego >= 15 then -- Se o jogador estiver logado a 15 ou mais segundos então: outputChatBox ("Você jogou "..getAccountData (getPlayerAccount (thePlayer), "periodo.Total").." e agora esta trabalhando neste emprego.", thePlayer, 0, 255, 0) else outputChatBox ("Você ainda não jogou 15 segundos", thePlayer, 230, 30, 30) end end) Dai eu setei manualmente na db o valor 1 e executou normal. @Lord Henry Na verdade é só adicionar o evento onPlayerQuit pra salvar também quando o jogador quitar.
  16. getAccountData com os minutos ou segundos que o cara tem que estar logado pra poder pegar o emprego. function EntregadorDeJornal () local Level = getElementData ( source, "Level" ) or 0 if Level >= 0 then if getAccountData (getPlayerAccount (source), "periodo.Total", 1) -- Se o jogador estiver logado a 1 segundo então: -- Código do emprego else --Senão: outputChatBox ("Você precisa estar logado x segundos para poder pegar este emprego.", source, 230, 30, 30) end end end
  17. Sim nos 2, procure no youtube como permitir conexão no firewall a uma porta tcp e udp.
  18. Ok, neste caso é normal acontecer isso a resolução é simples, você deve acessar as configurações do seu roteador e liberar as portas 22005 e 22003, procure no youtube alguma vídeo aula exemplo de pesquisa: Como abrir portas do roteador TP-LINK. No caso você iria informar a marca do seu roteador e o modelo se for possível eles se encontram na maioria das vezes na parte de baixo do roteador.
  19. Tá, primeiro me responda uma pergunta. Seu servidor você esta abrindo diretamente no seu computador ou em uma VPS/HOST?
  20. Permita conexões nessas portas no firewall do windows, se você tem VPS as portas por padrão já vem abertas, estranho isso.
  21. Mostre a função AbrirPainel
  22. Você deve estar esquecendo dos argumentos da função, olhe este exemplo aqui: addCommandHandler ("dargrana", function (player, cmd, nick, value) if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount (player)), aclGetGroup ("Admin")) then -- Se o jogador for admin, então: if not nick then return outputChatBox ("Informe o nome de um jogador.", player, 255, 30, 30) end -- Se nenhum nick for informado então, retorna e nada acontece. local playerName = getPlayerFromPartialName (nick) if not playerName then return outputChatBox ("Jogador com este nick não foi encontrado.", player, 255, 30, 30) end -- Se o jogador não for encontrado então, retorna e nada acontece. if not value then return outputChatBox ("Informe a quantia de dinheiro que deseja dar ao jogador.", player, 255, 30, 30) end -- Se o valor não for informado então, retorna e nada acontece. if givePlayerMoney (playerName, value) then -- Seta o dinheiro na conta do jogador informado pelo comando. outputChatBox ("Você deu "..tostring(value).."$ para o jogador "..string.gsub(getPlayerName (playerName), "#%x%x%x%x%x%x", "")..".", player, 0, 255, 0) outputChatBox ("Você recebeu "..tostring(value).."$ do administrador '"..string.gsub(getPlayerName (player), "#%x%x%x%x%x%x", "")..".", playerName, 0, 255, 0) else -- Senão: (a principio nunca deve entrar nesse escopo, se entrar tem algo errado, pois foi informado o nick, valor correto.) outputChatBox ("Ocorreu um erro ao setar o dinhero no jogador.", player, 255, 30, 30) end end end) function getPlayerFromPartialName (name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find (name, 1, true) then return player end end end end
  23. Você deve usar a função: function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end end end Esta função não é nativa do MTA, se você preferir usar uma nativa use: GetPlayerFromName OBS: Eu usaria a primeira pois a função nativa do MTA você precisa escrever o nick do player completo que você deseja dar o dinheiro, já a primeira você apenas digita as letras iniciais que ela já puxa o jogador. Se tiver alguma dúvida deixe aqui em baixo que te auxilio.
×
×
  • Create New...