Jump to content

DNL291

Retired Staff
  • Posts

    3,875
  • Joined

  • Days Won

    67

Everything posted by DNL291

  1. Não entendi porque você quer editar esse arquivo de dados do mta. Pelo que entendi, ele quer salvar dados na conta, pra isso já tem essa função, setAccountData, e isso imagino que seja armazenado nesse arquivo - internal.db. O mesmo vale pra salvar o tempo de jogo, que você disse, só usar setAccountData.
  2. Esse erro era porque você criou outra função, lá no setTimer, aí source retornava nulo. Nesse caso, você precisa passar o jogador no parâmetro, desta forma: function onPlayerLogin (_, playeraccount ) if ( playeraccount ) then local playerfood = getAccountData ( playeraccount, "hud.food" ) if ( playerfood ) then setTimer( function( p ) setElementData(p,"food", playerfood) outputDebugString ( playerfood ) end, 500, 1, source ) end end end
  3. O seu código é server-side, se você tiver usando no lado client não vai funcionar. Pra você distinguir o lado server e client, é simples: todos eventos do lado client começa sempre com onClient enquanto nos eventos do lado server você nunca vai encontrar a palavra client. E as funções, você pode ver por aqui mesmo, quando o código está destacado na linguagem Lua - Laranja: Lado Server apenas; Vermelho: Client apenas; Azul: Ambos os lados. Só mais uma coisa, getElementRoot que está no seu código não existe, a menos que esteja definida essa variável, não vai funcionar e vai dar retorno nulo. O mesmo vale para toogleVehicleRespawn, que deve estar definida como função pra funcionar.
  4. Sim, entra em contato via MP.
  5. Tenta o seguinte: addEventHandler( "onPlayerSpawn", root, function() setPedWalkingStyle (source, 128) end )
  6. Certifique-se que seu GTA está rodando sem modificações instaladas, se sim, te aconselho reinstalar seu GTA.
  7. Use essa função para mostrar ou esconder o HUD: setPlayerHudComponentVisible Pode ser também que em algum script no servidor esteja causando esse problema.
  8. Para submeter ou aceitar traduções você precisa ter as permissões, então te aconselho falar com alguém da Equipe do MTA a respeito da tradução.
  9. Não sei qual dos dois é mais leve entre marker e colshape, pela idéia do script imagino que marker seja o ideal - mais fácil de utilizar e o suficiente pro tipo de colisão. Sempre que houver dúvidas em relação à performance, te aconselho dar uma olhada no resource Performancebrowser.
  10. Já tive esse mesmo tipo de erro ao conectar no meu servidor, e com os mesmos resources: admin, joinquit, scoreboard.. (resource padrão do MTA). Talvez ele corrija deletando tudo da pasta e baixando-os de novo. Se na verdade for uma textura causando tudo isso, ele pode executar testes, parando scripts de mods e entrando no servidor até encontrar o script específico.
  11. Se o seu servidor é RPG, na verdade freeroam não tem nada a ver, o ideal é criar sistema baseado no próprio gamemode, mesmo que não saiba Lua - a questão é ser criativo e saber como tudo deve funcionar. O freeroam pode ser uma alternativa, mas cedo ou tarde, vai precisar tirar algum resource temporário. Sugiro utilizar resources que se encaixam mais com o tipo do server. Sobre o erro ao conectar-se ao servidor, tente primeiro deletar esses resources com o problema no download da sua pasta do MTA onde ficam os resource baixados (MTA San Andreas 1.5\mods\deathmatch\resources), se puder, delete todos. Se continuar, pode ser depois de ter adicionado outro resource ao server, nesse caso, deixe as texturas fora de execução, e só alguns resources rodando.
  12. No script fr_client.lua estão todos esses comandos, só colocar dois traços (--) na frente da função. Ex: --addCommandHandler("comando", funcao)
  13. Certifique-se que o script menu_client.lua está no lado client no meta.xml.
  14. Não poderia ser sua ACL bugada? Eu testei aqui e funciona. Loguei na minha conta Smod e o botão fica desativado, re-loguei na conta admin e o botão fica ativo. Acho que eles poderiam simplificar mais essa parte de limitar certas funções na ACL, o sistema atual ainda é o mesmo do tempo do painel Admin. Além da ACL tem a área no próprio painel Admin (no botão Manage ACL) aonde também pode editar os grupos. Algumas coisas específicas, tipo isso do botão Manage ACL não tem opção de restringir por padrão. Pelo que entendi, só as guias, comandos e algumas funções, tipo aclCreate, addBan, setServerPassword, shutdown... Acho que o ideal seria deixar mais dinâmico, qualquer ação poder ser restringida para grupo X e por meio de um painel novo.
  15. Não cheguei a editar grupos na ACL, então não sei como funciona. Dei uma olhada no resource admin pra criar uma alternativa à restrição, e no script admin_main.lua encontrei uma restrição que parece ser para comandos. Na linha 139 fica o botão "Manage ACL", coloquei no último argumento essa string, "setgroup", que desativa o comando vinculado à ação, criei uma conta no grupo SuperModerator e funcionou, já que essa restrição se origina do botão Give/Revoke Admin Rights que por padrão não dá acesso aos Smods.
  16. Você pode definir uma variável ou usar setElementData com a sincronização com o client desligada, pra não ter uso de largura de banda atoa.
  17. Nunca tentei isso, mas acho que não dá pra entrar no veículo com o ped. Você pode usar como alternativas, a função setControlState pra fazer o ped sair quando você entrar no veículo ou usar a função removePedFromVehicle.
  18. Não posso apontar nenhum erro já que não sei como está o seu código. Veja o que o debugscript mostra, esse código é uma base pra começar um painel DX. A propósito, percebi agora um erro no código que postei, substitua function onScreenClick() por: function onScreenClick( button, state ) Além disso, a função showCursor não vai ser necessária porque o DX principal já estará mostrando. Certifique-se que as variáveis x e y estão definidas.
  19. Aqui está um tutorial que explica sua primeira dúvida: https://wiki.multitheftauto.com/wiki/PT-BR/Introdução_ao_Scripting O resource deve estar nesta pasta: C:\ Arquivo de Programas (x86)\MTA San Andreas 1.5\server\mods\deathmatch\resources Se você colocou na pasta com o servidor ligado, deve atualizar, digite no console do servidor o comando refresh. 2º: https://wiki.multitheftauto.com/wiki/Lista_de_Controle_de_Acesso Só colocar na ACL, dentro do grupo Admin: <object name="user.nome_da_sua_conta" /> 3º: Para ativar a depuração do servidor, só digitar o comando: debugscript no chat ou console (f8), e especificar o parâmetro de 1 a 3.
  20. Eu fiz um código que explica sobre clique na tela, pra detectar se algum elemento DX foi clicado, e que aborda a sua dúvida, que pelo que entendi, manipula outra DX em um painel DX. Está tudo explicado no próprio código: addEventHandler( "onClientResourceStart", resourceRoot, function() addEventHandler( "onClientClick", root, onScreenClick ) -- sempre que clicar na tela, essa função será chamada bindKey ( "F2", "down", openDXPanel ) -- a tecla 'f2' vai ser usada pra abrir ou fechar o painel end ) function onScreenClick( button, state ) if (button ~= "left") or (state ~= "up") or isConsoleActive() or isMainMenuActive() then return end; -- isConsoleActive() e isMainMenuActive() - tô usando pra desativar o uso do painel -- quando o console (F8) e/ou o Menu principal estiverem mostrando if painel1_mostrando == true then -- verificar se o painel DX tá na tela if isMouseWithinRangeOf( x*94, x*166, y*207, y*232 ) then -- aqui significa que o botão DX foi clicado -- observe que aqui to usando na ordem: X, W, Y, H -- vamos então mostrar o segundo DX addEventHandler( "onClientRender", root, subDX ) painel2_mostrando = false -- atribuí uma variável que vai informar se o dx está -- visível ou não end -- aqui voce pode usar outro elseif, e verifica se o -- segundo DX está mostrando. Aí depois vem a parte que -- detecta o clique no botão end end function openDXPanel() if painel1_mostrando ~= true then -- se não tiver mostrando, ativá-lo addEventHandler( "onClientRender", root, DX1 ) showCursor( true ) painel1_mostrando = true elseif painel1_mostrando == true then -- desativando o dx, e o sub-dx removeEventHandler( "onClientRender", root, DX1 ) showCursor( false ) painel1_mostrando = false if painel2_mostrando == true then removeEventHandler( "onClientRender", root, subDX ) painel2_mostrando = false end -- se o segundo DX também estiver mostrando, vamos tirar da tela end end function DX1() dxDrawLine(x*94 - 1, y*207 - 1, x*94 - 1, y*439, tocolor(255, 255, 255, alfa), 1, false) dxDrawLine(x*261, y*207 - 1, x*94 - 1, y*207 - 1, tocolor(255, 255, 255, alfa), 1, false) dxDrawLine(x*94 - 1, y*439, x*261, y*439, tocolor(255, 255, 255, alfa), 1, false) dxDrawLine(x*261, y*439, x*261, y*207 - 1, tocolor(255, 255, 255, alfa), 1, false) dxDrawRectangle(x*94, y*207, x*166, y*232, tocolor(0, 0, 0, alfa), false) end function subDX() dxDrawLine(273 - 1, 260 - 1, 273 - 1, 439, tocolor(255, 255, 255, 255), 1, false, VTR) dxDrawLine(411, 260 - 1, 273 - 1, 260 - 1, tocolor(255, 255, 255, 255), 1, false, VTR) dxDrawLine(273 - 1, 439, 411, 439, tocolor(255, 255, 255, 255), 1, false) dxDrawLine(411, 439, 411, 260 - 1, tocolor(255, 255, 255, 255), 1, false) dxDrawRectangle(273, 260, 138, 179, tocolor(0, 0, 0, 152), false) end -- função útil para detectar o clique na coordenada da tela especificada function isMouseWithinRangeOf(psx,pssx,psy,pssy) if not isCursorShowing() then return false end local cx,cy = getCursorPosition() local screenX,screenY = guiGetScreenSize() cx,cy = cx*screenX,cy*screenY if cx >= psx and cx <= psx+pssx and cy >= psy and cy <= psy+pssy then return true end return false end Sinta-se livre pra comentar aqui, qualquer trecho que não tenha entendido. Não cheguei a testar esse código, pois na verdade é pra fins didáticos
  21. Tenta tirando essa parte: " 0, 0, 90 " da função moveObject (das duas).
  22. Parece que o problema não é necessariamente com o código, ele quer saber onde deve colocar o server/client. matthewsanta, leia: https://wiki.multitheftauto.com/wiki/PT-BR/Introdução_ao_Scripting
  23. DNL291

    camera change

    Yes, he's calling setTimer function inside a loop, it will not work. Regarding the loop, I already warned him.
  24. DNL291

    camera change

    You're looping the table the wrong way. Also, it will not work the way you created that. cameralocations = { {1483.3354492188, -1719.1064453125, 50.896812438965, 1481.7545166016, -1803.435546875, -2.8257052898407}, {1429.7171630859, -1709.8178710938, 20.389394760132, 1345.8790283203, -1666.9763183594, -13.311774253845}, {1085.6225585938, -1797.7232666016, 19.463459014893, 1185.4050292969, -1796.0799560547, 25.848203659058}, {1199.8775634766, -1324.5711669922, 26.630777359009, 1108.8699951172, -1321.8992919922, -14.72714138031}, {1353.8889160156, -1280.1647949219, 19.625982284546, 1446.3851318359, -1283.6138916016, -18.22318649292}, {1418.2659912109, -890.18493652344, 85.20630645752, 1403.9643554688, -791.30133056641, 89.388885498047} } Try with the table like that.
×
×
  • Create New...