SA ScrDebug

Uma postagem um tanto técnica, onde não há outro modo de explicar, mas espero fazer com que todos entendam. Também é mais de curiosidade do que de utilidade.


Este mod é uma reimplementação do sistema que ajudou a Rockstar North a criar os scripts do jogo para ajudar nos testes durante o seu desenvolvimento.
O mod não coloca as coisas lá, mas sim só reativa o que foi desativado na versão final do jogo.

Eu traduzi o texto original do autor:
Durante o desenvolvimento do GTA San Andreas, Rockstar North usou vários recursos embutidos em seu sistema de script para ajudar a depurar os scripts. Hacks, modos escondidos, cheats de teletransporte, passar missões, eles usaram de tudo. Obviamente, tais recursos foram trancados antes do San Andres ser lançado. Este mod propõe reimplementá-los.
Pouco se sabe sobre os opcodes originais de depuração da Rockstar, à parte do que se pode encontrar da lista dos nativos do GTA IV [atualização: mais recentemente todos os nomes dos opcodes do GTA SA foram vazados e não precisamos mais dos nativos do GTA IV para se basear] e seu uso dentro do main.scm e scripts no arquivo script.img. Eu acredito que o ScrDebug reimplementa a maioria dos opcodes com funcionalidade quase exata (se não, melhor).
Há vários motivos para usar este mod. Um é que ele ativa certos "cheats" enquanto jogando San Andreas (ganhar 'vidas' nos fliperamas, mirar automaticamente na sinuca, pular missões etc). Outro é que, com algumas alterações de SCM, pode ser feito output de informações sobre níveis do SA nunca antes entendidos (veja o sapool.log na pasta ScrDebug).
Mas a melhor razão é para depurar os seus próprios mods de scripts. Você pode alegremente utilizar scripts de depuração e deixar os códigos lá. Os códigos de depuração só são ativados para quem esteja usando o ScrDebug, assim não rodando no gameplay dos usuários de forma inconveniente. Mesmo que você queira remover os códigos de depuração depois, a maioria desses opcodes adicionais são muito úteis.

Pequeno glossário para vocês entenderem melhor:
scripts — Códigos da storyline, assim como as missões, funcionamento das lojas e coisas do tipo. O que inclui os famosos "mods cleos".
debug, depuração — Processo de encontrar e remover bugs durante um desenvolvimento. Veja na Wikipedia.
opcodes — Códigos de operação presentes na engine. O que manda o jogo fazer alguma coisa em específico no script.

Para quem cria mods cleos — o que aumentou muitíssimo o número de pessoas no Brasil criando após o meu tutorial — pode estar pensando "que legal!" enquanto quem não é desse mundo pode estar confuso.



Para usuários
O que este mod faz é realmente isso: re-ativar funções de testes presentes nas versões antes-do-lançamento do jogo, ou seja, presentes na versão (erroneamente) chamada de "beta".

Veja o vídeo do autor usando os cheats "escondidos" para controlar as namoradas:

Virá uma lista de "cheats" das namoradas no download.

Outro exemplo de uso: é possível ativar um log durante o minigame de sinuca (pressione "D" (ou 7)*), na qual mostra muitas informações técnicas sobre o jogo:
gta sa mod sa scrdebug debug debugging log pool
Muita MESMO, o jogo até congela para processar tudo. Vocês não têm noção, o script da sinuca parece ter sido o mais difícil de fazer todo o jogo, são 8~9 mil linhas de script (praticamente tudo cálculos matemáticos) lotados de códigos de debug para auxiliar nos testes. Aparentemente eles passaram muito tempo programando este mini-game. É o que mais capricharam no debugging.
Também na sinuca é possível ativar o modo "bot" onde o CJ joga automaticamente (pressione "A" (ou 0)*), e o mais legal: pressionando "H" você tem um "auto-aim" / "aim-bot", ou seja, o CJ mira automaticamente na melhor bola baseado na inteligência artificial do mini-game.
gta sa mod sa scrdebug debug debugging pool minigame
(os textos amarelos são do ScrDebug)
Há também outros comandos, mas inacessíveis para nós: virtual keys como 129~145 que geralmente são teclas como F20 (somente presentes em teclados especiais) e umas que nem existem, não sei explicar, e para usar tais comandos será necessário editar o main.scm para trocar por teclas acessíveis (explicado no download). Tais comandos aparentemente moviam/rotacionavam a bola ou coisa assim.

O main.scm/script.img está lotado de tais "cheats", e este mod re-ativa tudo.
Para você ter noção, há 662 destes comandos dentro main.scm + script.img (por outro lado, há alguns que precisam editar o main.scm para ativá-los, download no fim do post!). Se você quiser, você pode até jogar o jogo inteiro para procurar por eles, e as teclas variam muito, mas sempre são letras ou números (não do numpad).
Assim como em várias missões você tem informações técnicas pipocando na sua tela, como nas do Zero:
gta sa mod sa scrdebug debug debugging
Claro que não cabe a mim ir atrás dos mais de 600 comandos e listar tudo o que eles fazem, mas se alguém que entende do assunto está afim de procurar umas coisas legais, basta abrir o main.scm com o Sanny Builder e procurar pelos opcodes que este mod reativa. Mais informações no download.



Para programadores
A maior utilidade deste mod vem daqui.
Como acabei de dizer acima, há mais detalhes dos opcodes no download, portanto não preciso ficar explicando-os aqui no post, senão ficaria uma postagem gigantesca.
O fato é: você pode usar tais funcionalidades nos seus scripts, e como explicado no texto do autor no início do post, não há problema algum em lançar os mods com tais comandos, quem não tem o ScrDebug instalado não terá absolutamente nenhuma diferença, e isso tem certa utilidade também, pois caso alguém esteja com problema num mod seu, você pode pedir para esta pessoa instalar o ScrDebug para gerar relatórios (logs) e outras informações para você entender o que está se passando lá e conseguir arrumar tais problemas.

Eu particularmente quero começar a usar isso nos meus mods (já faz tempo, até hoje nunca usei).
LINK/2012 (quem me apresentou o ScrDebug) usou por exemplo num mod antigo dele de buzina no trem:

Veja as letras amarelas na esquerda.

Veja um exemplo que eu fiz em GTA3script:
gta sa mod sa scrdebug debug debugging cleo script
Perceba como isso pode ser útil para seus scripts! Você pode ficar mostrando valores / variáveis na tela para saber o que está se passando. Claro que tem vários outros opcodes para usar, como eu disse, dá até para criar arquivos .log pros seus mods de maneira super fácil.
Pra você ter noção, há até um opcode novo onde você pode adicionar um "breakpoint" no seu script, que o jogo minimizará e criará um .html com todas as informações atuais do seu código.



Detalhes adicionais
Recentemente eu postei uma compilação de fotos de como é por dentro da Rockstar North, e eu notei que mesmo no GTA V eles ainda usavam este mesmo mecanismo.
Veja a foto abaixo. Na esquerda, um monitor ligado ao console rodando o jogo, e neste mesmo monitor, é usado um teclado como se fosse uma "mesa de cheats" onde ele usa comandos para testar funcionalidades do jogo. Note que o teclado do PC está na direita, e na esquerda ele está usando o jogo tanto com o controle quanto com o teclado.
rockstar north games studio inside making of debug debugging gta v
Vendo isso já temos uma noção do que veremos ao ter este mod instalado no seu jogo enquanto você joga com o teclado: você ativará comandos "sem querer".
Por exemplo, há comandos que usam teclas como "Espaço", "A", "S", "D" etc, ou seja, atrapalhará durante o gameplay de missões caso você jogue com teclado (geralmente o "S" é para pular a missão!). Mas eu fiz a solução: editei o main.scm e script.img trocando tais comandos que possam dar conflito, download no fim do post. (lembra dos * acima no post? Então, eu mudei o A e D etc)
Note também que, acredito eu, não existe "cheats" durante o gameplay livre, somente dentro de missões, mini-games etc.

Outro detalhe importante (ou não tanto) é que há altas possibilidades de aparecer "propagandas" de modders na sua tela quando você entrar no jogo. Isso ocorre porque quem criou tais scripts, "sem querer" colocou tais opcodes ao entrar no jogo como forma de adicionar créditos dentro do arquivo para evitar que outros roubem (pelo visto, eles não sabem o que estes opcodes fazem, assim como eles não sabem que eles poderiam ter usado hex...end (no Sanny) ou DUMP...ENDDUMP (no GTA3script)). Simplesmente ignore tais "créditos" na sua tela ou identifique os mods, abra eles e apague tais textos no topo do arquivo.



Mesmo que esta postagem tenha ficado grande, ela seria 50X maior se eu explicasse realmente tudo.
Infelizmente, páginas oficiais do autor onde ele divulgava algumas coisas interessantes que ele encontrava foram perdidas (o site ficou off há poucos dias atrás). Sobrou uma pequena lista aqui e o tópico na GTAF.
Peço para que vocês falem nos comentários coisas interessantes que tenham encontrado, principalmente se você pode abrir e ler o main.scm à procura dos opcodes 0735: e 0736: para entender as possibilidades, como eu disse, há 662 espalhados pelas missões etc do jogo, o que é muita coisa.


Baixar ScrDebug

‎Autor: Deji



Baixar main.scm e script.img

Não precisa de New Game /  Novo Jogo!
No download virá estes dois arquivos editados para:
Liberar cheats para as namoradas;
Trocar teclas comuns (W, A, S, D, C, F, Espaço) por novas, para evitar conflitos de comandos e não atrapalhar o gameplay de missões etc.

Autor: Deji, Junior_Djjr

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: