DNL291

Moderators
  • Content Count

    3,562
  • Joined

  • Last visited

  • Days Won

    45

Everything posted by DNL291

  1. 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'.
  2. 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.
  3. 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.
  4. 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.
  5. 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)
  6. 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.
  7. Add this inside the function pickmeup: exports.coinsystem:givePlayerCoin(thePlayer, value)
  8. 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.
  9. 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.
  10. First of all, you can't spawn 'infinite vehicles'. You can repeat createVehicle, either manually or using a for-loop.
  11. Se tiver falando se um intervalo de tempo para pressionar uma tecla, você pode usar onClientKey e setTimer.
  12. Acho que você quis dizer uma coluna com os dados de cada player, numa tabela. Você pode ver aqui as sintaxes: https://www.w3schools.com/sql/sql_insert.asp https://www.w3schools.com/sql/sql_update.asp https://www.w3schools.com/sql/sql_select.asp Assumindo que já tenha feito sua conexão com o banco e tabela.
  13. Acho que aqui você quis verificar se ambos os números são positivos? Faça assim: if (num1 >= 0 and num2 >= 0) then Outra coisa também, a verificação if commandName then não é necessária pois sempre vai existir esse parâmetro. Edit: Tem um erro no código do Lord Henry, linha 7, mude o outro valor para num2. Caso vá testar o código dele, fica o aviso.
  14. executeCommandHandler Chama uma função ligada a um manipulador de comando. Utilize no lado que o addCommandHandler foi criado.
  15. Database e bloco de notas não tem nada a ver, 'bloco de notas' acho que seria um arquivo de texto. Para um arquivo de texto: fileCreate fileOpen fileWrite fileClose Se for salvamento SQL: dbExec Ou: executeSQLQuery - SQL do MTA createMarker onMarkerHit getVehiclePlateText
  16. https://forum.mtasa.com/search/?q=Twitter&type=forums_topic&nodes=127
  17. Não lembro o tópico, use a ferramenta de pesquisa aqui, você mesmo pode procurar. Ou tente fazer o script, são poucas linhas.
  18. addCommandHandler -- faça um loop nos jogadores; verifique se não é o mesmo do comando getElementsByType("player") getDistanceBetweenPoints3D getPlayerName outputChatBox
  19. Provavelmente existe algum script no servidor que habilita novamente. Mas antes disso certifique-se que esse código esteja funcionando - tá faltando um ) depois do 'end', lembre-se de testar scripts com o debug ativado (/debugscript 3), embora teria mostrado algum erro no console do servidor.
  20. Otimização básica : Faça as variáveis localmente sempre que possível. Você poderia ter feito esse código client-side; Quanto mais código sever-side, mais 'peso' para o servidor. Encurtar e Otimizar o código Você pode deixar uma só função lidando com o onMarkerHit. Além disso, em vez de ter criado todas as markers numa tabela, faça isso com os locais x,y,z da marker. Para controlar a rota, utilizar uma variável que irá manter o index da marker na tabela; Esse será o índice da tabela que corresponde ao marker atual criado, dessa forma, quando criar a próxima rota é só indexar a tabela das coordenadas incrementando +1 no índice. Este exemplo mostra isso na prática: local markerAtual local rota function inicio(thePlayer) rota = 1 local x,y,z = unpack(etapas[rota]) markerAtual = createMarker( x,y,z, "checkpoint", 0, 255,0,0, 20 ) end addCommandHandler("cnh", inicio) addEventHandler("onMarkerHit", resourceRoot, function() if isElement(markerAtual) then destroyElement(markerAtual) end rota = rota + 1 if rota == #etapas then return outputChatBox( "Todas rotas concluídas" ) end local x,y,z = unpack(etapas[rota]) markerAtual = createMarker( x,y,z, "checkpoint", 0, 255,0,0, 20 ) end, true, "low") Outra outra, sempre use tabulação e não quebre muitas linhas excessivamente.
  21. https://forum.mtasa.com/topic/118944-ajuda-interior-aberto/
  22. https://wiki.multitheftauto.com/wiki/SetVehicleIdleRespawnDelay
  23. Pelo fórum já tem códigos desse tipo, mas aqui estão as funções: "onPlayerWasted" getPlayerWantedLevel setPlayerWantedLevel outputChatBox
  24. Aprenda Mysql primeiro de tudo, ter esse conhecimento é fundamental para quem possui servidor, além de uma noção em Lua. Você pode fazer o banco de dados funcionar localmente dependendo do tipo do banco.
  25. Você quer setar o dano server-side, certo? Você pode fazer com onClientPlayerDamage. Não precisa ser no mesmo evento mencionado.