Jump to content

DNL291

Moderators
  • Posts

    3,875
  • Joined

  • Days Won

    67

Everything posted by DNL291

  1. Use esta função útil: https://wiki.multitheftauto.com/wiki/GetPlayersInACLGroup Faça um loop e notifica cada jogador com outputChatBox.
  2. uma simples depuração no valor 'player' deve mostrar o porquê. Em vez de player, você pode usar a variável predefinida client para obter o player. substitua e faça o teste.
  3. Você está misturando funções server com client. Para as teclas você pode fazer isto: local blockedKeys = { ["F1"] = true, ["F2"] = true, ["F3"] = true, ["F4"] = true, ["F5"] = true, ["F6"] = true, ["F7"] = true, ["F8"] = true, ["F9"] = true, ["F10"] = true, ["F11"] = true } function playerPressedKey(button, press) if (press) and blockedKeys[button] then cancelEvent() end end addEventHandler("onClientKey", root, playerPressedKey) addEvent("onLogin:allowBinds", true) addEventHandler("onLogin:allowBinds", root, function() removeEventHandler("onClientKey", root, playerPressedKey) end) E chamar o evento "onLogin:allowBinds" no evento server onPlayerLogin: addEventHandler("onPlayerLogin", root, function() triggerClientEvent(source, "onLogin:allowBinds", source) end)
  4. Lado server com isGuestAccount, no cliente você pode setar element-data. No entanto, você pode ocultar o chat para o jogador que entrar no server com showChat e toggleControl para não usá-lo. E habilitando ao jogador no evento onPlayerLogin. @+William
  5. O job de quem irá aceitar o trabalho já está pronto? Se não tiver comece por aí, se você pensar lá na frente sem ter feito antes a base, vai ficar bem confuso pra você. A lógica de aceitar um job funciona assim: O jogador interage pelo lado cliente, caso seja por meio de uma interface, e faz o trigger para o lado server. Se não envolver interfaces, esses passos podem ser feitos server-side. A sua lógica de 'ativar uma bind para aceitar um trabalho' não irá funcionar se mais pessoas pedirem um trabalho ao mesmo tempo, então você vai precisar de um meio de deixar o jogador escolher qual trabalho ele deseja fazer. A cada pedido de trabalho, adicione na tabela esse pedido. Se o jogador que executar o trabalho tiver que escolher, envie a tabela ao cliente com os serviços listados nela e retorne ao lado server o serviço escolhido para o jogador que pediu.
  6. Inclua esta função no código: https://wiki.multitheftauto.com/wiki/GetPlayersByData Fora isso só vai precisar iterar a tabela.
  7. Vai ter que mexer na handling da massa do rhino, não lembro bem, deve ser a hand "mass". Só que isso por si só pode bugar o tank rhino, e você vai precisar ajustar outras handlings.
  8. Como não será uma só viatura para a base, você terá que verificar se tal viatura está spawnada e em condições de ser removida no lugar da nova. Você pode criar uma tabela com as viaturas da base e setar um respawn aos veículo inativos, substituindo o método do spawn por marker. Se preferir ficar com o spawn por marker, terá que verificar a quantidade de veículos já spawnados, e não destruir o já spawnado para evitar justamente o problema mencionado.
  9. https://wiki.multitheftauto.com/wiki/SetElementModel
  10. O próprio freeroam fornece os seus comandos incluídos por meio do resource helpmanager que é acessado pela tecla F9 se não me engano. Caso o servidor que você joga esteja com ele desativado, você pode ver os comandos aqui: https://github.com/multitheftauto/mtasa-resources/blob/master/[gameplay]/freeroam/help.xml
  11. Alguns servidores no MTA demandam muito do PC; mais que isso, são produzidos com texturas high-poly mal feitas, scripts que puxam muito processamento e ram do cliente por conta de 'programadores' amadores que mal têm conhecimento de indexar uma table e acabam que aprendendo a scriptar com más práticas usando códigos que lhes são convenientes - aqueles que são mais fáceis, para que assim possam terminar o código rapidamente. E infelizmente é isso o que ocorre com muitos servidores por aí, que incluí servidores bem populares. O que você pode fazer? 1) Você pode entrar em contato com os donos do servidor informando essa questão, especialmente caso você sinta que o PC sofra mais em tal server 2) Fazer um upgrade em seu PC, para que diminua os crashs e melhores seu FPS 3) Procurar um servidor mais otimizado e leve para jogar
  12. Faça alguns testes com o performancebrowser, você pode ir guardando informações de cada resource com relação ao uso de memória e cpu a cada dia que passar. É provavelmente um problema relacionado a scripts mal feitos. Você pode parar alguns resources que julgar 'pesados' para o servidor.
  13. O resource requisita permissões na ACL para ser iniciado, então o próprio aviso já diz o que você deve fazer. No entanto, antes de dar permissão a um resource, tenha certeza que ele não tenha nenhum código malicioso.
  14. Tente com este evento: onClientVehicleDamage
  15. Por problemas com instabilidade a função não foi implementada. Talvez mais pra frente as inconsistências sejam corrigidas e ela possa ser re-adicionada ao código do MTA, mas até onde sei não tem nada definido quanto a isso.
  16. setAccountData Quando o player fizer login, faz uma verificação e se não constar a data dá setAccountData e abre o painel por meio de um trigger.
  17. Você está misturando as funções SQL embutidas no MTA com funcões db* Outro problema pode estar na sintaxe da linha 5. E na linha 32 tem um erro onde a keyword VALUES está com 'valorS'.
  18. Você pode usar a função útil https://wiki.multitheftauto.com/wiki/DxDrawLoading e fazer as modificações necessárias, daí o resto fica a alternância entre cada clique.
  19. Quando eu gastei meu tempo para explicar como programar para o VIP funcionar e expirar com os dias, não foi pensando em dar o código para copy&paste. Se você entender minha explicação acima tenho certeza que não será difícil adicionar ao seu código.
  20. Se você roubar o trabalho de alguém, acha que não vai fazer diferença compartilhar uma parte? Uma parte ou tudo, do mesmo jeito estará desrespeitando o dono.
  21. Obtenha o timestamp atual com getRealTime().timestamp em seguida, some com a quantidade de segundos do tempo VIP e salve na conta do jogador. A verificação do fim do VIP será comparando o timestamp atual (getRealTime().timestamp) com o do VIP do jogador. Segue um código de exemplo: local vip_segundos = 30000 -- tempo de vip em segundos addCommandHandler("darvip", function( p,_, thePlayer) thePlayer = thePlayer and getPlayerFromName(thePlayer) or false if thePlayer then -- armazenar na conta o timestamp de duração do vip setAccountData( getPlayerAccount(thePlayer), "tempo:vip", getRealTime().timestamp + vip_segundos ) end end) -- verificação do vip das contas setTimer(function() for i,player in pairs(getElementsByType("player")) do local vip = getAccountData(getPlayerAccount(player), "tempo:vip") -- obter tempo de vip na conta if type(vip) == "number" then -- verificar se existe na conta, isto é, se consta o vip if getRealTime().timestamp - vip < 0 then -- verifica se o timestamp (segundos atuais) é maior que o tempo de vip outputChatBox("O seu pacote VIP expirou", player) -- notifica o jogador setAccountData(getPlayerAccount(player), "tempo:vip", false) -- remove da conta o vip end end end end, 1000, 1)
  22. Banco de dados deu algum problema e não retorna a conexão. De qualquer forma, não mostre o código se for script vazado - não damos suporte aqui no fórum.
  23. O MTA não consegue detectar ou intervir em funções específicas de programas macro, no entanto, tem um meio para bloquear o uso no servidor pelo arquivo mtaserver.conf: https://wiki.multitheftauto.com/wiki/Server_mtaserver.conf#enablesd E também: onPlayerACInfo, resendPlayerACInfo. Funções relacionada ao anti-cheat do jogo.
  24. Já tentou fazer o que pede no link? Execute o jogo como administrador Certifique-se que o seu antivírus não esteja bloqueando algum processo do MTA Certifique-se que o seu GTA Singleplayer esteja funcionando corretamente e instalado no diretório recomendado: C:\Program Files (x86) Seu GTA:SA tem alguns arquivos do jogo modificados, é recomendado deixar o jogo livre de qualquer mod para rodar o MTA.
  25. First of all, you can't spawn 'infinite vehicles'. You can repeat createVehicle, either manually or using a for-loop.
×
×
  • Create New...