Página 1 de 1

[SA][Lua]Memory Control

Enviado: 26 Abr 2018, 13:34
por Um_Geek
Atenção
Modificar endereços de memoria do jogo de forma incorreta pode causar crash.

Como dito no aviso a cima requer conhecimento dos endereços de memoria se quiser editar este mod, no entanto é bem mais fácil que criar um mod cleo,lua ou asi só para fazer uma pequena escrita em um endereço. Na verdade este script é uma pequena ferramenta que uso quando quero por exemplo sempre começar o jogo em determinada hora, clima ou até dia da semana, mas apesar de limitado ele da varias possibilidades.

Funcionamento
O script funciona de diferentes formas fazendo a mesma coisa,que é mudar valores em determinados endereços.

Configurar
Para adicionar ou modificar configurações do mod basta editar um arquivo *xml.

Exemplo da xml

Código: Selecionar tudo

<!-- Author: Um Geek -->
<data>
	<config address="0xB7CE50" type="D" forsamp="false" value="2500" status="off" name="Start Money"/>	
	<config address="0xBA6769" type="B" forsamp="false" value="1" name="Hud"/>	
	<config address="0xBA676C" type="B" forsamp="false" value="2" name="Radar"/>	
	<config address="0x863984" type="F" forsamp="false" value="0.0096" name="Gravity"/>	
	<config address="0xC81320" type="B" forsamp="false" value="8" name="Climate"/>
	<config address="0x8D2530" type="F" forsamp="false" value="0.1" status="off" name="Pedestrian density"/>
	<config address="0x8A5B20" type="F" forsamp="false" value="0.1" status="off" name="Vehicle density"/>
	<config address="0xB7014E" type="B" forsamp="false" value="1" name="Current Weekday"/>
	<config address="0xB70153" type="B" forsamp="false" value="17" name="Current Hour"/>
	<config address="0xB70152" type="B" forsamp="false" value="0" status="off" name="Current Minute"/>
	<config address="0xB7CB64" type="F" forsamp="false" value="5.0" name="Game speed - fast" cheat="fast"/>
	<config address="0xB7CB64" type="F" forsamp="false" value="0.5" name="Toggle Slow" toggle="0x4D"/>
	<config address="0xB7CEE4" type="B" forsamp="false" value="1" name="infinite run" key="0x4B"/>
</data>

Como dito, requer entender um pouco sobre memoria para configurar, mas explicando as configurações.

Código: Selecionar tudo

<config address="0xB7CB64" type="F" forsamp="false" value="0.5" name="Toggle Slow" toggle="0x4D"/>

Cada node da xml dentro do node principal contem atributos opcionais e obrigatórios.

Atributos obrigatórios
  • Address: Endereço em que esta alteração sera feita, importante esta correto ou pode causar crash.
  • Type: tipo de valor, B=1 Byte,W=2 Bytes,D=4 Bytes,F=Float (melhoria sugerida pelo@Junior_Djjr )
  • Value: valor que sera escrito.
  • Name: Uma descrição para esta configuração, é importante para informações dentro do jogo.

Atributos opcionais
  • key: defina uma tecla neste atributo, esta configuração só é aplicada ao pressionar esta tecla.
  • cheat: defina um cheat neste atributo, esta configuração só ativara ao digitar este cheat.
  • toggle: defina uma tecla e ao pressionar a configuração sera feita, ao soltar retorna ao padrão anterior.
  • forsamp: true=sera ativo no samp,false=não sera ativo no samp,only=sera ativo apenas no samp.(não testado online)
  • status: off=desabilitado,on=habilitado,force=o valor é fixado constantemente.

Exemplos
O mod vai com alguns exemplos para quem baixar saber como funciona e até arriscar configurar e editar.

Cheat "FAST" > Aumenta a velocidade do jogo. (Game speed - fast)
Apertando e segurando tecla "M" ativa câmera lenta (Toggle Slow)
Apertando "K" ativa correr sem se cansar (infinite run)

Existem configurações com status "off" que não são aplicadas.
Configuração definida com status "force" (Current Minute), o minuto sempre sera alterado para 0.

Resumindo: É um pequeno mod lua que permite criar pequenos mods em xml.

Para instalar copie tudo que vai para a pasta do moonloader.

Link de download

Creditos:
lib.xmlSimple Cluain

Nota:O xmlSimple.lua foi modificado para funcionar no moonloader.

Alguns endereços de memoria pode serem encontrados aqui https://www.gtamodding.com/wiki/Memory_Addresses_(SA)
nem todos funcionam corretamente pois exigem operações de leitura, soma e etc...

Em caso de erros avise.

*o google drive não queria liberar o link compartilhado.
*Atualizado

[SA][Lua]Memory Control

Enviado: 26 Abr 2018, 13:54
por Junior_Djjr
Tem isso no MixSets.

Código: Selecionar tudo

#------------ CUSTOM FUNCTIONS ------------#
# Você pode criar suas funções personalizadas aqui.
#
# Do que você precisa:
# - De um endereço de memória. (endereço direto e que pode ser escrito, como 0xB7CE50 (ou 0x00B7CE50 ou B7CE50 ou $B7CE50 etc)(não offsets como CVehicle+0xC4, +1069 etc). - Você pode encontrar endereços de memória por exemplo aqui: http://www.gtamodding.com/index.php?title=Memory_Addresses_%28SA%29 ou aqui: http://gtaforums.com/topic/194199-documenting-gta-sa-memory-adresses (Lógicamente, só alguns endereços fazem sentido você usar).
# - Saber quantos bytes tem este endereço [1 Byte(Byte), 2 Bytes(Word), 4 Bytes(Dword) ou se é Float(números reais como 0.0, 1.0)]. Se você não sabe, pode chutar, mas pode causar crashes.
# Nota: É aceitável valores hexadecimais (0x), mas caso ter problemas, converta hexadecimal para decimal (ver Google) e use o número decimal aqui.
#
# Exemplo:
# "0xB7CE50 - [dword] Money" - Este endereço tem 4 Bytes(Dword) e nele está guardado um número, este número é o dinheiro do player.
#
# Como adicionar mais funções:
# - Abaixo, um exemplo de uma função que muda o dinheiro para 100000, para adicionar mais funções copie tudo e faça a exata mesma coisa, e troque o "[1]" por "[2]", depois por "[3]" respectivamente. O limite é de 25 funções! (até [25]).
# - Lembre-se de tirar o "#" no "#[1]" para a função ser carregada!
#

#[1]
Address  = 0xB7CE50    # Endereço de memoria.
Size     = D           # Número de Bytes à serem escritos. - Você pode colocar o número de Bytes ou usar letras de atalho como: B=1 Byte | W=2 Bytes | D=4 Bytes | F=Float (Lembrando que números Float (0.0, 1.0 etc) são 4 Bytes, mas é necessário usar "F" aqui para dizer que é um Float).
Value    = 100000      # Valor para ser escrito neste endereço.
Bem diferente.

Em vez de type e size você poderia usar o type para informar o size.

[SA][Lua]Memory Control

Enviado: 26 Abr 2018, 14:05
por Um_Geek
Em vez de type e size você poderia usar o type para informar o size.

pode mesmo ficar melhor e impedir crash por edição incorreta, farei isto.

[SA][Lua]Memory Control

Enviado: 28 Abr 2018, 14:02
por Israel
Dá pra usar o Cheat Engine pra tudo isso, mas é melhor um mod do que um programa né...  :peepo6:

[SA][Lua]Memory Control

Enviado: 28 Abr 2018, 14:53
por Junior_Djjr
Israel escreveu: Dá pra usar o Cheat Engine pra tudo isso, mas é melhor um mod do que um programa né... :peepo6:
Sem dúvidas...
Os mods para NFS eram feitos por Cheat Engine, felizmente eu cheguei lá apresentando .asi, e agora existe o mod Extra Options que é o MixSets do NFS.

[SA][Lua]Memory Control

Enviado: 28 Abr 2018, 21:17
por Um_Geek
Israel escreveu: Dá pra usar o Cheat Engine pra tudo isso, mas é melhor um mod do que um programa né...
Bem isto, antes eu até usava o cheat engine, mas agora estou usando um outro pc mais fraco para fazer scripts então brotou este mod.

Re: [SA][Lua]Memory Control

Enviado: 01 Ago 2018, 01:33
por Um_Geek
versão cleo https://gta-geek.blogspot.com/2018/07/g ... ntrol.html
é beta do beta, rascunho tão velho quanto o em lua, mas tem umas coisas que não tem no lua. pode ser mais complicado de usar ou não...

Re: [SA][Lua]Memory Control

Enviado: 20 Set 2018, 14:33
por Um_Geek
vai para 3 mensagens seguidas, mas como ja tem meses a ultima não deve ter problema :herp:

Imagem

TAB + T abre
Não é um mod simples de usar e não tem tudo que tem no mod principal do post.

O foco é... por um arquivo ini como este

Código: Selecionar tudo

[1]
name = Gravity
desc = Ajuste a força gravitacional do jogo (default 0.009)
address = 0x863984
mode = 2
min = 0.000
max = 0.020

[2]
name = Current Hour
desc = Selecione a hora atual
address = 0xB70153 
mode = 3
min = 0
max = 23

[3]
name = Current Minute
desc = Selecione o minuto atual
address = 0xB70152 
mode = 3
min = 0
max = 60

[4]
name = Game speed
desc = Selecione a velocidade do jogo
address = 0xB7CB64  
mode = 2
min = 0.0
max = 1.0

Poder ajustar os endereços de memoria pela interface em jogo.
Espiando o ini da para entender melhor.

só uma atenção para mode no ini. os valores dele são. 1 para int tamanho 4, 2 para float, 3 para int tamanho 1 e 4 para bool.

Re: [SA][Lua]Memory Control

Enviado: 20 Set 2018, 19:23
por Kaneki-ken
Um_Geek escreveu:
20 Set 2018, 14:33
vai para 3 mensagens seguidas, mas como ja tem meses a ultima não deve ter problema :herp:

Imagem

TAB + T abre
Não é um mod simples de usar e não tem tudo que tem no mod principal do post.

O foco é... por um arquivo ini como este

Código: Selecionar tudo

[1]
name = Gravity
desc = Ajuste a força gravitacional do jogo (default 0.009)
address = 0x863984
mode = 2
min = 0.000
max = 0.020

[2]
name = Current Hour
desc = Selecione a hora atual
address = 0xB70153 
mode = 3
min = 0
max = 23

[3]
name = Current Minute
desc = Selecione o minuto atual
address = 0xB70152 
mode = 3
min = 0
max = 60

[4]
name = Game speed
desc = Selecione a velocidade do jogo
address = 0xB7CB64  
mode = 2
min = 0.0
max = 1.0

Poder ajustar os endereços de memoria pela interface em jogo.
Espiando o ini da para entender melhor.

só uma atenção para mode no ini. os valores dele são. 1 para int tamanho 4, 2 para float, 3 para int tamanho 1 e 4 para bool.
Otmo só não entendi direito o mode

Re: [SA][Lua]Memory Control

Enviado: 20 Set 2018, 22:54
por Junior_Djjr
Um_Geek escreveu:
20 Set 2018, 14:33
só uma atenção para mode no ini. os valores dele são. 1 para int tamanho 4, 2 para float, 3 para int tamanho 1 e 4 para bool.
Por que não simplesmente usar uma letra? Ter que decorar isto é um saco.

Re: [SA][Lua]Memory Control

Enviado: 21 Set 2018, 01:31
por Um_Geek
Otmo só não entendi direito o mode
é do tipo controle de valores.

Junior_Djjr escreveu:
20 Set 2018, 22:54
Um_Geek escreveu:
20 Set 2018, 14:33
só uma atenção para mode no ini. os valores dele são. 1 para int tamanho 4, 2 para float, 3 para int tamanho 1 e 4 para bool.
Por que não simplesmente usar uma letra? Ter que decorar isto é um saco.
porque não é só int,float,bool, dword. são por sliders int, sliders float, checkbox e talvez depois outros tipos de controles.

Re: [SA][Lua]Memory Control

Enviado: 21 Set 2018, 02:16
por Kaneki-ken
Junior_Djjr escreveu:
20 Set 2018, 22:54
Um_Geek escreveu:
20 Set 2018, 14:33
só uma atenção para mode no ini. os valores dele são. 1 para int tamanho 4, 2 para float, 3 para int tamanho 1 e 4 para bool.
Por que não simplesmente usar uma letra? Ter que decorar isto é um saco. 
realmente.ate me bugei

Re: [SA][Lua]Memory Control

Enviado: 21 Set 2018, 04:38
por Junior_Djjr
Um_Geek escreveu:
21 Set 2018, 01:31
Otmo só não entendi direito o mode
é do tipo controle de valores.
Junior_Djjr escreveu:
20 Set 2018, 22:54
Um_Geek escreveu:
20 Set 2018, 14:33
só uma atenção para mode no ini. os valores dele são. 1 para int tamanho 4, 2 para float, 3 para int tamanho 1 e 4 para bool.
Por que não simplesmente usar uma letra? Ter que decorar isto é um saco. 
porque não é só int,float,bool, dword. são por sliders int, sliders float, checkbox e talvez depois outros tipos de controles. 
Ou seja, é i, f e c :daora:

O que inclusive me parece melhor ter duas configurações, uma pro modo de escolha e outra pro datatype, juntar isto numa só configuração pode ser um saco, por exemplo um checkbox de várias opções de byte, ou ou opções de word, ou dword... Vira uma merda, e é comum.
Também seria interessante ter opção de slide, mas também um tipo de checkbox com "presets", por exemplo para regular quantos minutos tem 1 dia, você terá um slide, mas também teria as opções 24 e 48 em fácil acesso.
Tal mod poderia ser um bom editor de MixSets in-game, bastando configurar parte do que o MixSets faz em este mod.

Re: [SA][Lua]Memory Control

Enviado: 21 Set 2018, 16:09
por Kaneki-ken
Junior_Djjr escreveu:
21 Set 2018, 04:38
Um_Geek escreveu:
21 Set 2018, 01:31
Otmo só não entendi direito o mode
é do tipo controle de valores.
Junior_Djjr escreveu:
20 Set 2018, 22:54
Um_Geek escreveu:
20 Set 2018, 14:33
só uma atenção para mode no ini. os valores dele são. 1 para int tamanho 4, 2 para float, 3 para int tamanho 1 e 4 para bool.
Por que não simplesmente usar uma letra? Ter que decorar isto é um saco.
porque não é só int,float,bool, dword. são por sliders int, sliders float, checkbox e talvez depois outros tipos de controles.
Ou seja, é i, f e c :daora:

O que inclusive me parece melhor ter duas configurações, uma pro modo de escolha e outra pro datatype, juntar isto numa só configuração pode ser um saco, por exemplo um checkbox de várias opções de byte, ou ou opções de word, ou dword... Vira uma merda, e é comum.
Também seria interessante ter opção de slide, mas também um tipo de checkbox com "presets", por exemplo para regular quantos minutos tem 1 dia, você terá um slide, mas também teria as opções 24 e 48 em fácil acesso.
Tal mod poderia ser um bom editor de MixSets in-game, bastando configurar parte do que o MixSets faz em este mod.
Adorei essa do ingame mixsets editor