Jump to content

DNL291

Moderators
  • Posts

    3,875
  • Joined

  • Days Won

    67

Everything posted by DNL291

  1. Telvez dê para desativar com a função setAmbientSoundEnabled Senão, tente com setWorldSoundEnabled
  2. Próxima vez crie um novo tópico, não reviva tópicos antigos. 0x000DFF90 Foi a offset de seu último crash. https://wiki.multitheftauto.com/wiki/Famous_crash_offsets_and_their_meaning diz o seguinte: Bad sound mods or faulty audio driver/device. Use unmodded GTA install to check, or update your audio drivers. The problem is often known to be entirely missing or emptied/corrupted audio files (such as in \Rockstar Games\GTA San Andreas\audio > SFX or other subfolder), so you may alternatively be able to restore a targetted backup. Do not use 'compressed' GTA re-packs for this reason of cut-out audio files. De acordo com o texto acima, o crash tem relação com mods de sons e problema com driver de áudio. Seu GTA:SA precisa estar limpo de modificações, neste caso, de áudio do jogo, nem faltando, nem modificado ou corrompido.
  3. O ID está certo. O erro "attempt to call global" é porque o seu código provavelmente está no lado server, mude no meta.xml para client.
  4. O problema é que você não está renderizando a função vehicleTempo, em vez disso, você adicionou o render em uma função que vai chamar um evento do lado server, este evento, por sua vez, chamará o evento do dx, no lado cliente. Essa é a pior forma de manter o texto na tela... Um dos piores erros em script que já vi. Quando chamar o evento "vehicleTempo" adicione o evento "onClientRender" para o dxDrawText, use uma outra função para o dxDrawText, dependendo da lógica do seu código, você pode colocá-lo na função dxPanel. Edit: Não, não chegará a esse ponto de 400 vezes em 1ms (Lol), mas será muito e péssimo para a performance. Seria na verdade umas 30-60 chamadas por segundo (dependendo do FPS), pois é assim que a renderização do jogador funciona. onClientRender só é chamado quando o quadro do jogo do cliente é atualizado.
  5. @alowner Este fórum possui um sub-fórum em Português, para uma boa organização do lugar, por favor use o local correto para postar. Other languages > Portuguese / Português (Programação em Lua) Com relação ao script, em vez de utilizar a função setElementVisibleTo, você já pode estar ajustando a visibilidade no próprio argumento da função: createMarker ( float x, float y, float z [, string theType = "checkpoint", float size = 4.0, int r = 0, int g = 0, int b = 255, int a = 255, element visibleTo = getRootElement( ) ] ) [Último argumento] Isto irá dispensar o uso de: setElementVisibleTo(elemento, root, false) E também pode ser feito com as funções createBlipAttachedTo/createBlip Leia: https://wiki.multitheftauto.com/wiki/Visibility
  6. Quando utilizar o fórum, certifique-se de criar o tópico no local certo @Bigao Smoke https://forum.multitheftauto.com/forum/127-programação-em-Lua/ < Dá próxima vez poste aqui.
  7. run getAccountID [00:20:05] Console executed command: getAccountID [00:20:05] Command results: function: 054FC8F8 [function] sver [00:20:08] MTA:SA Server v1.5.7-release-20447 Aqui a função funciona. Faça o mesmo que fiz, no seu Console para ver os resultados.
  8. Depende de como foi feito esse trailer. Se tiver dificuldades com o código Lua poste aqui.
  9. getAccountID só funciona a partir da versão 1.5.5 release:12217. O server deve estar com ao menos essa versão.
  10. Já deu uma lida nesse tutorial?
  11. Este tópico será útil pra você: No entanto, NÃO confie cegamente nesse método, ele é facilmente burlável por alguém que tenha tal conhecimento.
  12. Como o Gw8 disse, faça a sync do shader com elementData, eu criei o código que vai fazer a sync para todos players, se quiser que seja para alguns você terá que editar. Código: pShaders = {} tTextures = {} addEventHandler( "onClientResourceStart", resourceRoot, function() tTextures["M4A1[057]"] = dxCreateTexture("image1.png") end ) addCommandHandler( "t", function() applyShader( tTextures, localPlayer, true ) end ) addCommandHandler( "v", function() removeShader( localPlayer, true ) end ) function applyShader( t, player, sync ) if type(t) == "table" and isElement(player) then for tex_name, tex_element in pairs(t) do local s = dxCreateShader('tex_replace.fx', 0, 0, true, 'ped') table.insert( pShaders, {s, tex_name} ) dxSetShaderValue(s, 'gTexture', tex_element) engineApplyShaderToWorldTexture(s, tex_name, player) end if sync then setElementData(player, "wTexChange", true) end end end function removeShader( player, sync ) if pShaders and isElement(player) then for _, t in pairs(pShaders) do engineRemoveShaderFromWorldTexture( t[1], t[2], player ) end if sync then setElementData(player, "wTexChange", false) end end end addEventHandler( "onClientElementDataChange", root, function(theKey, _, newValue) if theKey == "wTexChange" and source ~= localPlayer then if newValue == true then applyShader( tTextures, source ) elseif newValue == false then removeShader( source ) end end end ) Além do mais eu não testei esse código, e o mais importante, que o Gw8 também citou, é fazer ativação/desativação do shader com os eventos onClientElementStreamIn e onClientElementStreamOut.
  13. Isso me passou despercebido, se ocorre em todos servidores, então realmente só pode ser um problema no lado dele. Sim, isso deve ser com todas funções DX e por falta de memória de vídeo. O que o @miguelanjos373 poderia fazer para ver as informações relacionadas é utilizar o comando in-game showmemstat. Apesar de ele mesmo afirmar que o PC é bom o suficiente, o problema pode ter relação com isso. Falei inicialmente de ter sido alguma falha do servidor (por conta de má programação e mods), pois é essa a realidade na grande maioria dos servidores brasileiros hoje em dia, e dentro do meu entendimento, se tiver um abuso com funções que exigem memória de vídeo, como: texturas, texturas do jogo, fontes, render targets, efeitos em geral, como shader, isso pode ocorrer dependendo do PC do jogador. Mas como isso se repete em todos os servidores, como foi dito, deve ser algo com o PC ou jogo dele. Até melhor, o servidor pode fazer um bom uso de dxGetStatus para informar o jogador com informações e caso falte memória por exemplo. Fazer um fallback para um jogador que não tem memória de vídeo disponível é algo que nenhum server vai se dar ao trabalho, já que não se dispõe nem a otimizar seus códigos.
  14. Pode ser um problema no servidor. O GTA é um jogo que já tem uma década e meia desde que foi lançado, e o abuso de scripters com certas funções + formas péssimas de criar códigos podem levar as coisas além do que o jogo suporta. Se realmente for isso, não há o que você possa fazer senão trocar de servidor.
  15. DNL291

    Verdana ttf

    Download the font here: https://www.dropbox.com/s/8qsx9hx0cj18mho/verdana.rar?dl=1 And move it to the directory C:\Windows\Fonts
  16. Open command prompt as admininstrator and enter sfc /scannow After it finish, restart your PC. If it doesn't work, download the font here: https://www.dropbox.com/s/8qsx9hx0cj18mho/verdana.rar?dl=1 And move it to the directory C:\Windows\Fonts
  17. Please read this topic and follow all instructions and steps:
  18. Mostre o código aqui. Sobre o erro, 'lgnResult' deveria ser uma tabela ou string, mas está retornando false por algum motivo. @MouraTv
  19. Tente reinstalando o seu MTA. Esse problema pode não estar relacionado ao cache, mas derrepente resolva pra você.
  20. To write .sql files you'll need to have knowledge about sqlite. Give this topic a read: https://forum.multitheftauto.com/topic/32423-tut-sqlite/
  21. Você provavelmente colocou algum resource novo ou mudou configurações que gerou esse problema. Seu servidor local é só o play padrão do MTA? Recomendo reinstalar o jogo para que gere os resources e configurações originais, mas se você tiver uma ideia do que possa ser também pode tentar resolver seu problema vendo se é uma interferência ou alteração de um resource/configuração.
  22. Testei um pouco e obtive os mesmo resultados que o pessoal aqui. Estou sem interesse em Lua, talvez tente mais a fundo depois.
  23. @Tortuguita setTimer funciona em milissegundos, então só 1800 não vai funcionar. Tem que multiplicar por 1000 para obter em ms. Na verdade, não vi erros no cálculo que o @Brisola tentou, talvez seja algum erro no script.
  24. Ok, removi o link. É que o Danillin quem fez o script, então pode ser que ele tenha pegado código de outros.
×
×
  • Create New...