Jump to content

Estruturas de Projeto


Recommended Posts

Posted

Olá, vocês mais experientes, poderiam me dizer como normalmente estruturam seus projetos de MTA? Sou novo na comunidade e gostaria de saber um pouco sobre boas práticas.

Qualquer dica para um iniciante sobre esse assunto assim ou próximo disso será muito bem vinda ❤️

  • Thanks 1
  • Moderators
Posted

Primeiramente, vc sabe programar em Lua?

Segundamente, vc sabe criar um servidor local para testar seus scripts?

Sua dúvida é muito interessante e bem válida. A maioria não se interessa por esse detalhe e já querem sair fazendo scripts logo de cara, resultando em scripts horríveis, bugados e nada otimizados.

Se sua resposta for positiva para minhas duas perguntas, dai sim poderei responder a sua dúvida.

  • Thanks 1

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted

Ainda não tenho uma vasta experiência com Lua, porém, já possuo conhecimento em outras linguagens e lógica de programação oque adianta as coisas. Estou me interessando pelo MTA pela maturidade do mod e da comunidade e as possibilidades (se comparado ao SA:MP).

Gostaria de uma direção sobre esses detalhes ou qualquer dica para começar bem com o mod :D

  • Moderators
Posted (edited)

Então vc veio do SAMP. Excelente, vc já deve saber como o GTA SA funciona mais do que um jogador comum saberia. Seja muito bem-vindo ao Multi Theft Auto.

De cara, vou lhe passar alguns links importantes:

Regras deste fórum (caso ainda não tenha visto): 

Página inicial da Wiki do MTA (acesse os links de Scripting): https://wiki.multitheftauto.com/wiki/Página_Inicial

Na Wiki vc aprende sobre as funções usadas pelo MTA, por exemplo o createVehicle que serve para criar um veículo tal, numa coordenada tal. Mas tenha em mente que pouquíssimas páginas estão disponíveis em português. É necessário conhecimento intermediário em inglês para entender (assim como qualquer coisa relacionada a tecnologia, sem inglês vc não vai longe). Também na Wiki existem exemplos mostrando como usar determinada função, seus parâmetros e a sintaxe dela.

Uma coisa que vc vai perceber logo de cara de diferença quanto ao SAMP, é que aqui as funções estão separadas em tipo client, shared e server.

As funções client só funcionam em scripts client-side. Elas afetam somente o cliente do jogador, nunca o servidor. Por exemplo:

Funções que criam elementos de menu, são client-side.

Funções que verificam a conta dos jogadores, são server-side.

Funções de cálculos, geralmente são shared e funcionam em ambos os tipos de script.

Isso está explicado nos links da Wiki.

A primeira dica que eu dou pra quem está começando no MTA mas já sabe programar, é baixar resources (mods) gratuitos e descompilados do site da comunidade do MTA e estudar como eles funcionam. Experimente resources bem simples primeiro. A segunda dica é comentar cada linha dos códigos. (Em Lua, use dois traços para iniciar um comentário.

function qualquerCoisa (thePlayer, cmd) -- Início de função, sendo thePlayer o parâmetro de função e cmd o segundo parâmetro de função.
    if (cmd == "teste") then -- Se o comando utilizado para ativar essa função for /teste então:
        outputChatBox ("Comando teste executado.")
    else
        outputChatBox ("Comando teste falhou.")
    end -- Finaliza e fecha o escopo da condição.
end -- Finaliza e fecha o escopo da função.
addCommandHandler ("teste", qualquerCoisa) -- Adiciona um comando /teste para ativar a função qualquerCoisa.

--[[
Isso é um Bloco de comentários.
O código acima funciona tanto em scripts
server-side quanto em client-side.
]]

Busque sempre comentar cada linha dos seus scripts, assim vc sabe exatamente pra que serve cada linha e o que está acontecendo nela.

Outra coisa importante, indente sempre seus códigos. Não faça um texto ilegível onde vc mesmo se perde e não sabe onde uma coisa começa e onde termina.

Se você é novato, busque primeiro deixar seu resource funcionando. Depois você se preocupa em otimizá-lo. Scripters avançados já fazem otimizando direto, mas é necessário conhecimento para isso. Não tente "dar um passo maior do que sua perna".

Como mencionado anteriormente, crie um servidor local para começar a testar seus códigos lá. Tutorial de como criar um servidor local também está naqueles links.

Nossa comunidade está aqui para ajudar e não para programar para você. Se tiver dúvidas enquanto está tentando criar seu script, podemos ajudá-lo a resolver os erros ou apontar falhas de lógica, podemos até mostrar a parte corrigida. Vale lembrar que não damos suporte para scripts roubados de terceiros, crie seus próprios.

Sobre a parte de projetos em si:

Na pasta do MTA, em server\mods\deathmatch\resources você tem algumas pastas por padrão.

As pastas que estão entre colchetes indicam ao MTA que os resources estão dentro dela e não que ela é um resource em si.

Se vc criar uma pasta sem colchetes, o MTA vai considerá-la como um resource. Normalmente os donos de servidores colocam os resources tudo de qualquer jeito ali e vira uma bagunça. Mas no meu caso, eu deixo os mods separados naquelas [pastas] e inclusive criei outras como [vehicles] [maps].

Também criei uma pasta de estudos. Eu crio um resource com nome teste e só movo ele posteriormente para uma [pasta] adequada somente se eu termino de desenvolver ele e de corrigir seus erros. As vezes acontece de eu desistir de finalizá-lo pois ele se tornou complexo demais ou muito pesado ou simplesmente seu objetivo exige algo que está além da capacidade do GTA. Nesses casos, dou um nome para o resource mas ele continua na pasta de estudos.

Edited by Lord Henry
  • Thanks 2

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...