Jump to content

Estruturas de Projeto


Recommended Posts

  • Other Languages Moderators

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
Link to comment

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

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
Link to comment

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