MoonLoader v.023 beta

Agora é possível instalar mods em .lua no GTA San Andreas!
gta sa san mod moonloader moon loader lua scripts mods logo
A partir de 2017 os mods de script para GTA SA podem ser criados em Lua, uma programação simples porém muito poderosa.
(curiosidade: Lua é uma programação criada por brasileiros, a princípio, para ser usada num projeto da Petrobras).

Lua é uma linguagem fácil de aprender, e uma das mais famosas linguagens de scripting do mundo, inclusive muito utilizada na criação de jogos (Angry Birds, Far Cry, Street Fighter IV, Tibia, WoW... até o Guitar++ usa), portanto, é extremamente fácil encontrar tutoriais, dúvidas respondidas etc, assim como não tem limites de programação (comparado aos mods cleos) e até debug incorporado.

MoonLoader foi criado pelos caras da Blast Hack (você lembra do s0beit?) e mesmo sendo uma coisa "nova" ainda em fase beta, está em testes já faz quase 1 ano e muito estável.

MoonLoader tem várias vantagens comparadas com a CLEO Library e muitas vezes pode servir como substituição.
"Finalmente, depois de 10 anos de CLEO dominando a cena de GTA scripting, alguém conseguiu lançar um projeto competidor (não contando o plugin-sdk, muito complexo se você não é um guru de C++)" — Seemann, criador da CLEO e Sanny Builder.


Destaques:
  • MoonLoader usa LuaJIT — Um compilador just-in-time para Lua e a engine de script mais rápida;
  • FFI — É uma biblioteca incorporada no LuaJIT, fornece interface direta entre Lua e memória de processo e dá capacidade para chamar diretamente funções na memória, acessar estruturas de dados, passar funções Lua para memória e até mesmo escrever em Assembly com DynASM de Lua puro. E, como todos sabem, tudo isso é uma parte importante no game modding;
  • Gestão de scripts — O sistema de gerenciamento de scripts permite obter informações sobre scripts e manipular a execução deles;
  • Não é necessário compilação — Os scripts podem ser compilados, mas não é necessário, e se o script for open source, todos os usuários podem editá-lo sem qualquer preparação;
  • Handling de erro — O MoonLoader lida com tantos erros quanto possível. Se UM script CLEO morre devido a um erro, todo o jogo morre, mas se o um script Lua morrer devido a um erro - ele apenas imprime o erro no log e interrompe a execução do script;
  • Sem dependências — as únicas duas coisas necessárias são um ASI Loader e a versão 1.0US do GTA San Andreas;
  • Compatível com SA-MP — MoonLoader pretende ser compatível com ambos jogo single player e SA-MP;
  • Eventos — Acompanhe tais eventos, como começar um novo jogo, mensagens de janelas, sair do jogo, parar o script, etc;
  • Atom como um IDE oficial — O Atom é um excelente editor de código, é moderno e completamente personalizável. MoonLoader tem seu próprio pacote para o Atom para fornecer auto-completação inteligente, pesquisa de função e realce de erro. O Notepad++ também possui suporte oficial do MoonLoader. Se você não gosta do Atom por algum motivo, você pode escolher qualquer editor de texto, até mesmo o bloco de notas padrão. Realmente não há requisitos para nenhuma ferramenta especial;
  • Carregamento no estágio inicial — Os scripts do Lua carregam logo após o início do jogo, mas há duas etapas de carregamento: o "estágio de inicialização" logo após o lançamento do jogo e o "estágio ativo" quando o jogo é carregado;
  • Sistema de save game separado — Sistema de salvamento do jogo baseado em eventos permite controlar quando o jogador inicia um novo jogo, carrega um jogo ou o salva
  • Comunicação Inter-Script - os scripts podem trocar dados e interagir uns com os outros através do recurso de importação de exportação (não é a função padrão de "require");
  • Threads de script síncronas — Os segmentos de script tornam a multitarefa síncrona muito mais fácil;
  • Bibliotecas padrão — A distro inclui algumas bibliotecas padrão com as ferramentas comuns de desenvolvimento;
  • E, claro, um monte de novas funções.

Notas e planos:
Funções de "Audiostream" (uso de sons/música) precisam da CLEO instalada. DXUT, algumas funções de renderização e relacionadas com SA-MP precisam do SAMP Funcs instalado. Se o mod não utiliza estas coisas, não será necessário tê-los instalados.

Devido ao MoonLoader emular opcodes SCM, scripts criados para o MoonLoader geralmente têm um desempenho um pouco melhor do que os criados para CLEO.

Não há suporte nativo para salvamento de informações de thread (como na CLEO), no entanto, isso não é ruim já que, por outro lado, há base de eventos que te proporciona controlar o salvar e carregar do jogo.

Como dito, MoonLoader lida com tantos erros quanto possível, no entanto por problemas do LuaJIT alguns erros não são lidados corretamente sem afetar negativamente o desempenho do jogo, então é deixado passar (mensagens de erro ainda são mostradas no log).

MoonLoader já tem todo o necessário básico. Planos futuros visam implementar um API de renderização e corrigir alguns problemas, como os listados acima.

FAQ:
"Isso quer dizer que é possível utilizar scripts do MTA no Singleplayer?"
- Não. O MTA tem seu próprio sistema, sua própria API de renderização e tudo mais, a única semelhança é de que usam a mesma linguagem de programação. As possibilidades são diferentes, e o que o MTA faz pode ser feito na CLEO, no plugin-sdk ou seja onde for, isso não tem nada relacionado com a linguagem Lua. No entanto, há planos para implementar uma API de renderização no futuro, assim podendo utilizar shaders, mas isso pode causar algumas incompatibilidades de mods.

"Isso quer dizer que o que antes não era possível de se fazer no GTA SA, agora será?"
- Não necessariamente. Tudo sempre foi possível, assim como os mods .asi (principalmente junto com plugin-sdk) já são o cúmulo das possibilidades. O que o MoonLoader nos trás é simplesmente a possibilidade de programar mods na programação Lua (o que .asi era basicamente somente C++). No entanto, criar mods Lua pro MoonLoader é mais simples do que criar em .asi e mais poderoso do que mods cleos, assim como já vem várias funções úteis prontas que descomplicam vários trabalhos quase impossíveis em cleo.

"Qual é mais fácil de aprender? GTA3script ou Lua?"
- GTA3script. No entanto, mods mais complexos se tornam mais fáceis de fazer em Lua. A grande semelhança é de que estamos no mesmo jogo, portanto, as "regras" de como criar as coisas basicas são iguais, por exemplo, para criar um carro no mapa você fará basicamente os mesmos passos com as mesmas regras, seja lá qual for a programação utilizada, por causa disso, eu recomendo que aprenda as duas, mas comece no GTA3script. Quanto mais programações diferentes você souber, mais você pode estudar e absorver diferentes códigos criados por outras pessoas.



MixMods começará a postar mods .lua agora. Esta é só mais uma fase começando — os mods para GTA San Andreas ainda vão durar muito!

A instalação dos mods lua é simplesmente colocando os arquivos na pasta "moonloader". Não é compatível com instalação por ModLoader.


‎Autores: FYP, hnnssy, EvgeN 1137
Agradecimentos especiais: DK22Pac, MISTER_GONWIK, 4el0ve4ik, EXPORT, Garrus


MoonLoader — Instalação manual
é só ter Silent Asi Loader e extrair os arquivos para a pasta do seu GTA SA


MoonLoader — Instalador automático
inclui extensão para Notepad++




Comece baixando seus primeiros mods:

Pack de mods lua (scripts de exemplo)
  • AutoReboot.lua — Recarrega os scripts editados automaticamente
  • Crosshair.lua — Personalizar a textura da mira da arma (necessário SAMP Funcs?)
  • incar pickup.lua — Pegar pickups mesmo dentro de um veículo (SHIFT para ativar)
  • maplimit260.lua — Expande o zoom do radar do mapa no hud, assim podendo ver mais amplamente
  • quickmap.lua — Aperte 'M' para instantaneamente aparecer o mapa na tela com todas as funções como se estivesse no menu. Muito bom, mas o comando pode atrapalhar; você pode editar o comando no "keyShow = VK_M"... viu como é fácil!?
  • RapidFire.lua — Um hack bem conhecido que faz a arma atirar super rapidamente. Você pode baixar o RapidFire em CLEO também.
  • reload_all.lua — Semelhante ao AutoReboot, você pressiona CTRL+R para recarregar os scripts lua (perceba que você pode instalar ou editar scripts sem reiniciar o jogo)
  • SF Integration.lua — Integra o MoonLoader com o SAMP Funcs.
  • SprintFire.lua — Corrige um "bug" do jogo, onde enquanto você está correndo você antes não podia mirar uma arma (tinha que parar de correr pra mirar).
  • weapon menu.lua — Um weapon spawner simples com ícones na tela e configuração de munição.


Links
Thread para desenvolvedores (inglês)
Thread para desenvolvedores (russo)
Thread oficial (inglês)
Thread oficial (russo)
Wiki (russo)
Páginas relacionadas

Use ModLoader v0.3.5 para instalar os mods.

Um autodidata polímata. Amante de computação, música, desenvolvimentos e ciências em geral. Ibitinga - SP

Veja também

Próximo
« Próximo
Anterior
Anterior »
Nota: Envie sugestões de postagens neste link. Caso problemas, use a Lista de Crash.


Foi removido os comentários pelo sistema do blogger. Por favor, use o Disqus.


Nenhum comentário: