Jump to content

gustavorn

Members
  • Posts

    212
  • Joined

  • Last visited

  • Days Won

    6

gustavorn last won the day on April 12

gustavorn had the most liked content!

2 Followers

Details

  • Gang
    San Andreas Fusini
  • Location
    021
  • Occupation
    Fullstack Software Engineer
  • Interests
    Cash

Recent Profile Visitors

2,783 profile views

gustavorn's Achievements

Chump

Chump (17/54)

25

Reputation

  1. Olá @Mischief-1, como vai? Adicione uma verificação adicional para garantir que os blips sejam removidos quando os jogadores deixarem os grupos. playerBlibs = {} amouunt = 0 function updateGPS() amouunt = 0 local gangname = getElementData(getLocalPlayer(), "gang") -- Remover todos os blips existentes for i, blip in ipairs(playerBlibs) do if isElement(blip) then destroyElement(blip) end end -- Verificar se o jogador pertence a um grupo if gangname == "none" then return end playerBlibs = {} -- Criar blips para os jogadores no mesmo grupo for i, player in ipairs(getElementsByType("player")) do if gangname == getElementData(player, "gang") and player ~= localPlayer then amouunt = amouunt + 1 playerBlibs[amouunt] = createBlipAttachedTo(player, 2, 2) setBlipVisibleDistance(playerBlibs[amouunt], 1000) end end end setTimer(updateGPS, 5000, 0) Acredito que isso ajude a resolver o problema. Qualquer dúvida, volte a perguntar. Tmj! Att,
  2. Hola @Shadox, Parece que el problema está en la creación del área de radar. Aquí está la corrección en el código para asegurar que el área de radar se cree correctamente y se muestre en el radar: if bUseRadarArea then for _, a in ipairs( aRadarAreaPlaces ) do local x, y, width, height, r, g, b, a = unpack( a ) pRadarArea = createRadarArea( x, y, width, height, r, g, b, a ) end end Asegúrate de que los valores de x, y, width, height y los colores r, g, b, a estén siendo definidos correctamente en la tabla aRadarAreaPlaces. Esto debería garantizar que el área de radar se cree con las dimensiones y colores correctos y se muestre en el radar según lo esperado.E Espero haber ayudado.
  3. Olá @l47, parece que o sistema anti-cheat detectou um driver vulnerável chamado "mhyprotect.sys", que pode ser associado a trapaças ou modificações não autorizadas no jogo. Lembrando que no MTA: o uso de cheats é estritamente proibido, pois compromete a integridade do jogo e prejudica a experiência de todos os jogadores. Se você não está usando intencionalmente cheats ou software de trapaça, é importante investigar e resolver esse problema. Abraços!
  4. Olá @CMMDV, como vai? Espero que bem. É estranho ser banido do servidor do Discord sem ter interagido de forma alguma. Recomendaria entrar em contato com a equipe de moderação do servidor para explicar a situação e solicitar um levantamento do banimento. Eles devem ser capazes de ajudar a resolver esse teu problema. Sobre o erro CL 22 com a mensagem "Erro 5: Acesso Negado (ShellExecute)" geralmente indica que o programa de instalação, não tem permissões suficientes para executar determinadas operações. Tente executar o instalador do MTA como administrador, clicando com o botão direito do mouse no arquivo de instalação e selecionando "Executar como administrador". Isso pode resolver o problema de permissão. Se o problema persistir, verifique se há antivírus ou firewall que pode estar bloqueando a instalação. Desativar temporariamente o antivírus durante a instalação também pode ajudar, tente isso. Espero que essas sugestões ajudem a resolver seus problemas. Se precisar de ajuda, não hesite em perguntar. Abraços!
  5. Fala aí @pikezet, para modificar o dano das armas brancas, como o soco inglês e a faca, você pode usar o evento "onPlayerDamage", mas é importante entender que este evento só é chamado quando um jogador sofre dano e não quando ele inflige dano. Aqui tá uma abordagem alternativa que você pode tentar: addEventHandler("onPlayerDamage", root, function(attacker, weapon, bodypart, loss) -- Verifica se o dano foi causado por uma arma branca if weapon == 0 then -- Define o novo valor de dano aqui (por exemplo, 10) local novoDano = 10 -- Reduz o dano causado pela arma branca para o novo valor setElementHealth(source, getElementHealth(source) - (loss - novoDano)) end end) Isso pode te ajudar a garantir que o dano seja mais consistente e não varie como estava acontecendo antes. Abraços!
  6. Hello, To help resolve the connection timeout issue on your MTA server, I would suggest considering the following steps: 1. **Check Server Status:** Ensure that your server is active and running correctly. Check for any recent reboots or failures. 2. **Server Logs:** Examine the server logs for error or warning messages. This can provide valuable information about the cause of the problem. 3. **Firewall and Network Settings:** Confirm that firewall and network settings are correct. Sometimes, changes in network settings can affect the connection to the server. 4. **Verify Time Settings:** Since you mentioned specific times (3 a.m. and 7 a.m.), make sure that time zone and server time settings are accurate. 5. **Script Checking:** If you made recent changes to scripts, check if those changes are not causing the problem. Temporarily revert changes for testing. If, after these checks, the issue persists, provide more details about specific error logs or any other relevant information. This will help the community offer more accurate assistance. I hope this helps in resolving the issue. Good luck! Best regards, Gustavo.
  7. Olá @zezzok7, tudo bem? Espero que sim! Vamos lá, se eu entendi bem, para obter o número total de caixas de todos os jogadores, incluindo aqueles que estão offline, você precisará percorrer todas as contas e somar os valores correspondentes à chave "numero.caixas". Exemplo: function obterNumeroTotalDeCaixas() local todasAsContas = getAccounts() local numeroTotalDeCaixas = 0 for _, conta in ipairs(todasAsContas) do local valorAtual = getAccountData(conta, "numero.caixas") or 0 numeroTotalDeCaixas = numeroTotalDeCaixas + valorAtual end return numeroTotalDeCaixas end -- Exemplo de uso: local totalDeCaixas = obterNumeroTotalDeCaixas() outputChatBox("Número total de caixas de todos os jogadores: " .. totalDeCaixas) Este script vai percorrer todas as contas no teu servidor, obter o valor atual da chave "numero.caixas" de cada conta (ou assume 0 se não existir) e somar esses valores para obter o número total de caixas de todos os jogadores. Certifique-se de adaptar o script conforme necessário para integrá-lo ao seu código e exibir ou utilizar os resultados conforme desejado. Qualquer outra dúvida, volte a comentar aqui, será um prazer ajudá-lo. Abraços!
  8. Fala @pikezet, tudo bem? Espero que sim! Sua pergunta ficou muito vaga e falta informações, se tua dúvida é referente a algum script posta teu problema aqui junto com seu código. Abraços!
  9. Fala Igor, tudo bem? Espero que sim. A modificação que fiz no seu script anterior move a lógica de carregamento das animações para o lado do servidor usando o evento onResourceStart. Isso deve ajudar a resolver o teu problema. Segue: local animTable = { ifp = {}, anims = { "BIKEd_Back", "BIKEd_drivebyFT", -- Adicione suas outras animações aqui conforme o necessário. } } function loadAnimations() animTable.ifp["block"] = "biked" animTable.ifp["ifp"] = engineLoadIFP("biked.ifp", animTable.ifp["block"]) for _, v in ipairs(animTable.anims) do engineReplaceAnimation(source, "biked", v, animTable.ifp["block"], v) end end addEventHandler("onResourceStart", resourceRoot, loadAnimations) Qualquer dúvida, volte a postar aqui que a gente tenta resolver, até a próxima :)
  10. Bacana meu camarada, fico feliz que tenha dado certo. Como mencionei, era preciso se atentar aos itens da lista. Qualquer outra dúvida, fica a vontade para perguntar neste fórum. Um grande abraço!
  11. Não há de que, amigo. Vamos tentar adicionar mais uma função para simular a alternância de 1 a 4 itens. -- Função para adicionar de 1 a 4 itens da lista lootItems ao airdrop function addRandomItemsToAirdrop(avialColq) for i = 1, math.random(1, 4) do local item = lootItems[math.random(#lootItems)] local value = math.percentChance(item[2], 1) if value >= 1 then setElementData(avialColq, item[1], value) local ammoData, weapID = getWeaponAmmoType(item[1], true) if ammoData then local minBullets, maxBullets = math.floor(getAmmoPlus(ammoData) / 3), getAmmoPlus(ammoData) * 2 local ammoQuantity = math.random(minBullets, maxBullets) setElementData(avialColq, ammoData, ammoQuantity) end end end end function spawnAirdrop(player) -- Verifica se o jogador não é um administrador if isElement(player) and not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)), aclGetGroup("Admin")) then return end -- Limpa objetos e timers antigos if isElement(productq) then destroyElement(productq) end if isElement(avialColq) then destroyElement(avialColq) end if isElement(blipq) then destroyElement(blipq) end if isElement(variavel) then destroyElement(variavel) end if isTimer(respawnAirdropTimer) then killTimer(respawnAirdropTimer) end -- Define um novo timer para respawn do airdrop respawnAirdropTimer = setTimer(spawnAirdrop, 120000, 1) -- Escolhe aleatoriamente uma localização para o airdrop local item_id = math.random(1, #spawnLocations) xq, yq, zq = spawnLocations[item_id][1], spawnLocations[item_id][2], spawnLocations[item_id][3] + 0.35 xpsq, ypsq, zpsq = xq, yq, zq + 7 xpvq, ypvq, zpvq = xq - 48, yq - 16, zq + 37 xsbq, ysbq, zsbq = xq - 48, yq - 16, zq + 41 xssq, yssq, zssq = xq - 528, yq + 2, zq + 141 xsdq, ysdq, zsdq = xq + 528, yq + 2, zq + 141 -- Cria um blip para o airdrop blipq = createBlip(xq, yq, zq, 5) -- Criação do avião e movimentação aviaNavaq = createObject(1683, xssq, yssq, zssq, 0, 0, 0) moveObject(aviaNavaq, 8000, xsbq, ysbq, zsbq) -- Criação do paraquedas setTimer(function() parasProdq = createObject(2903, xpvq, ypvq, zpvq, 0, 0, 0) moveObject(aviaNavaq, 8000, xsdq, ysdq, zsdq) moveObject(parasProdq, 15000, xpsq, ypsq, zpsq) triggerClientEvent("playAirdropSound", getRootElement()) outputChatBox("#ff0000[AIRDROP] #ffffffUM PACOTE COM LOOT MILITAR FOI LANÇADO AO CHÃO. SEU MAPA FOI MARCADO COM O LOCAL.", getRootElement(), 255, 255, 255, true) end, 8000, 1) -- Define um timer para destruir o avião setTimer(destroyElement, 16100, 1, aviaNavaq) -- Cria o conteúdo do airdrop setTimer(function() destroyElement(parasProdq) destroyElement(variavel) productq = createObject(2669, xq, yq, zq, 0, 0, 0) variavel = createObject(2060, xq, yq, zq + 1.3, 1, 0, 0) setElementFrozen(productq, true) avialColq = createColSphere(xq, yq, zq, 2) attachElements(avialColq, productq, 0, 0, 0) setElementData(avialColq, "parent", object) setElementData(avialColq, "hospitalbox", true) setElementData(avialColq, "MAX_Slots", 5000) -- Chama a função para adicionar itens aleatórios addRandomItemsToAirdrop(avialColq) end, 23100, 1) end Não tenho mais o jogo instalado mas acredito que funcione. Espero que ajude, abraços!
  12. Olá camarada, tudo bem? Não sei se isso funciona mas aí está. Lembre-se de que, modificar o mapa do jogo pode ter implicações de desempenho e pode afetar a jogabilidade. Segue o arquivo lua: -- Função para remover LS e SF e manter apenas LV function removeLSandSF() -- Removendo LS e SF removeWorldModel(2256, 3000, 0, 0, 0, LSandSFBounds, true) end -- Estas coordenadas são aproximadas, você pode precisar ajustá-las local LSandSFBounds = { {985, -2627, 0}, {4391, -1287, 2000} } addEventHandler("onResourceStart", resourceRoot, removeLSandSF) Crie um meta.xml e inicie no servidor, não testei mas acredito que possa funcionar para você, boa sorte. Abraços!
  13. Fala meu brother, como vai você? Que nostalgia me aventurar neste ambiente tão legal de comunicado aqui de novo, após tanto tempo. Vou tentar te ajudar, afinal faz tempo que não sei o que é Lua, viu? Kkkk! Em resposta a sua dúvida, irei responder, levando em conta que você saiba algo sobre lógica de programação. Existem vários objetos (itens) com chave e valor sendo armazenado dentro da nossa variável (lista) lootItems, desta forma, certifique-se de que está lista contenha todos os itens que precisam ser adicionados. Agora, vamos para a função. Comentei em blocos para identar o código e melhorar o entendimento. function spawnAirdrop(player) -- Verifica se o jogador não é um administrador if isElement(player) and not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)), aclGetGroup("Admin")) then return end -- Limpa objetos e timers antigos if isElement(productq) then destroyElement(productq) end if isElement(avialColq) then destroyElement(avialColq) end if isElement(blipq) then destroyElement(blipq) end if isElement(variavel) then destroyElement(variavel) end if isTimer(respawnAirdropTimer) then killTimer(respawnAirdropTimer) end -- Define um novo timer para respawn do airdrop respawnAirdropTimer = setTimer(spawnAirdrop, 120000, 1) -- Escolhe aleatoriamente uma localização para o airdrop local item_id = math.random(1, #spawnLocations) xq, yq, zq = spawnLocations[item_id][1], spawnLocations[item_id][2], spawnLocations[item_id][3] + 0.35 xpsq, ypsq, zpsq = xq, yq, zq + 7 xpvq, ypvq, zpvq = xq - 48, yq - 16, zq + 37 xsbq, ysbq, zsbq = xq - 48, yq - 16, zq + 41 xssq, yssq, zssq = xq - 528, yq + 2, zq + 141 xsdq, ysdq, zsdq = xq + 528, yq + 2, zq + 141 -- Cria um blip para o airdrop blipq = createBlip(xq, yq, zq, 5) -- Criação do avião e movimentação aviaNavaq = createObject(1683, xssq, yssq, zssq, 0, 0, 0) moveObject(aviaNavaq, 8000, xsbq, ysbq, zsbq) -- Criação do paraquedas setTimer(function() parasProdq = createObject(2903, xpvq, ypvq, zpvq, 0, 0, 0) moveObject(aviaNavaq, 8000, xsdq, ysdq, zsdq) moveObject(parasProdq, 15000, xpsq, ypsq, zpsq) triggerClientEvent("playAirdropSound", getRootElement()) outputChatBox("#ff0000[AIRDROP] #ffffffUM PACOTE COM LOOT MILITAR FOI LANÇADO AO CHÃO. SEU MAPA FOI MARCADO COM O LOCAL.", getRootElement(), 255, 255, 255, true) end, 8000, 1) -- Define um timer para destruir o avião setTimer(destroyElement, 16100, 1, aviaNavaq) -- Cria o conteúdo do airdrop setTimer(function() destroyElement(parasProdq) destroyElement(variavel) productq = createObject(2669, xq, yq, zq, 0, 0, 0) variavel = createObject(2060, xq, yq, zq + 1.3, 1, 0, 0) setElementFrozen(productq, true) avialColq = createColSphere(xq, yq, zq, 2) attachElements(avialColq, productq, 0, 0, 0) setElementData(avialColq, "parent", object) setElementData(avialColq, "hospitalbox", true) setElementData(avialColq, "MAX_Slots", 5000) -- Adiciona de 1 a 4 itens da lista lootItems for i = 1, math.random(1, 4) do local item = lootItems[math.random(1, #lootItems)] local value = math.percentChance(item[2], 1) if value >= 1 then setElementData(avialColq, item[1], value) local ammoData, weapID = getWeaponAmmoType(item[1], true) if ammoData then local minBullets, maxBullets = math.floor(getAmmoPlus(ammoData) / 3), getAmmoPlus(ammoData) * 2 local ammoQuantity = math.random(minBullets, maxBullets) setElementData(avialColq, ammoData, ammoQuantity) end end end end, 23100, 1) end A sua função spawnAirdrop original tinha o objetivo de criar um airdrop com um único item escolhido aleatoriamente da lista lootItems. Para modificar essa função e para que o airdrop contenha de 1 a 4 itens adicionei um loop for i = 1, math.random(1, 4) do Isso cria um loop que escolhe um número aleatório entre 1 e 4, representado por math.random(1, 4), que determinará quantos itens serão adicionados ao airdrop. Espero que tenha funcionado para você e que tenha entendido, no mais, fique a vontade para voltar com qualquer dúvida. Abraços!
  14. Erro de algoritmo. Recomendo verificar as linhas de código do script com o auxílio do debug.
  15. Você pode postar o algoritmo do script para que possamos ajudar?
×
×
  • Create New...