• Announcements

    • jhxp

      Forums are online again after a maintenance.   18/03/17

      MTA Forums maintenance is completed, although some automatic time-heavy tasks are still in process and will be finished eventually in background. Expect some features such as Forum Search to not display all results until all processes are finished. Please let us know if you spot a forum feature that worked correctly before the maintenance but does not work anymore now. Thanks. --MTA Team

DNL291

Other Languages Moderators
  • Content count

    1,543
  • Joined

  • Last visited

Community Reputation

7 Neutral

1 Follower

About DNL291

  • Rank
    Portuguese Section Moderator
  • Birthday 06/05/94

Details

  • Gang
    SAF
  • Location
    Brazil
  • Interests
    Programming/Scripting

Recent Profile Visitors

597 profile views
  1. lag

    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.
  2. 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.
  3. 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.
  4. No script fr_client.lua estão todos esses comandos, só colocar dois traços (--) na frente da função. Ex: --addCommandHandler("comando", funcao)
  5. Certifique-se que o script menu_client.lua está no lado client no meta.xml.
  6. supermoderator

    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.
  7. supermoderator

    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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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() 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 ) -- aqui significa que o botão DX foi clicado -- observer que aqui to usando na ordem: X, W, Y, H -- vamos então mostrar o segundo DX addEventHandler( "onClientRender", root, subDX ) showCursor( true ) 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
  13. Tenta tirando essa parte: " 0, 0, 90 " da função moveObject (das duas).
  14. 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
  15. Yes, he's calling setTimer function inside a loop, it will not work. Regarding the loop, I already warned him.