RiqueCool Posted February 25, 2020 Share Posted February 25, 2020 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 1 Link to comment
Other Languages Moderators Lord Henry Posted February 26, 2020 Other Languages Moderators Share Posted February 26, 2020 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. 1 Link to comment
RiqueCool Posted February 26, 2020 Author Share Posted February 26, 2020 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 Link to comment
Other Languages Moderators Lord Henry Posted February 26, 2020 Other Languages Moderators Share Posted February 26, 2020 (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 February 26, 2020 by Lord Henry 2 Link to comment
RiqueCool Posted February 27, 2020 Author Share Posted February 27, 2020 Suas explicações foram muito esclarecedoras, muito obrigado Henry (Darei Thanks). Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now