Compartilhe
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 1923
Reputação : 20
Desde : 30/05/2013
Localização : Estância Velha - RS
Ver perfil do usuário

Write e Read Memory - Dúvidas

em Dom 25 Ago 2013, 23:04
Em MODs CLEO avançados, na maioria das vezes, vejo aqueles Opcodes de "Read" e "Write" Memória (0A8C, 0A8D). E daí queria saber: Pra que eles servem? E como usa-los? Quando eu mexia com a Linguagem GML, usava Comandos semelhantes a esses, mais claro que no GTA, serve pra outra coisa.
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21880
Reputação : 666
Desde : 03/05/2012
Idade : 21
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: Write e Read Memory - Dúvidas

em Seg 26 Ago 2013, 00:07
Em MODs CLEO avançados
denilson gostoso 

...mas entao, acho melhor o LINK/2012 explicar, ele eh mais definitivo na explicação doq eu, e ele tah online rçrç :)

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 7857
Reputação : 347
Desde : 03/05/2012
Ver perfil do usuário

Re: Write e Read Memory - Dúvidas

em Seg 26 Ago 2013, 00:27
fabio explica

______________________________
"Give a man a game engine and he delivers a game. Teach a man to make a game engine and he never delivers anything."

avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18780
Reputação : 342
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: Write e Read Memory - Dúvidas

em Seg 26 Ago 2013, 00:51
@LINK/2012 escreveu:fabio explica
kidding

ok ok

Bom, como o próprio nome diz, são opcodes pra escrever ou ler a memoria do jogo

Código:
0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 0
0xC0BC15 é o endereço escrito em hexadecimal, size é o tamanho (em bytes) e value é o valor ( Oh Rly? ) virtual protect é pra poder escrever em areas protegidas (areas de código assembly, ou seja, a seção .text que tem os códigos do executável).

http://en.wikipedia.org/wiki/Portable_Executable
http://en.wikipedia.org/wiki/Code_segment

Existem alguns opcodes que pegam o endereço de coisas especificas do script, exemplo: 0AC7: 0@ = var 1@ offset

Vou dar um exemplo bem simples de write memory:
Código:

{$CLEO}
wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
1@ = 1
0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 1
wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
0AC7: 0@ = var 1@ offset
0A8C: write_memory 0@ size 4 value 10 virtual_protect 0 // Escrevemos o valor 10 no endereço da variavel 1@ que pegamos com o 0AC7 com o tamanho 4 bytes que é o tamanho das variaveis de SCM/CLEO
0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 10
0A93: end_custom_thread
O read memory funciona da mesma forma, só que ao invés de escrever ele lê a memoria indicada e coloca o valor na variavel especificada.
Exemplo:
Código:

{$CLEO}
wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
2@ = 5
1@ = 1
0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 5
wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
0AC7: 0@ = var 1@ offset
0A8D: 2@ = read_memory 0@ size 4 virtual_protect 0 // lemos o endereço de memoria que armazenamos na variavel 0@ referente ao offset global da variavel 1@ com tamanho de leitura 4 que é o tamanho das variaveis SCM/CLEO
0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 1
0A93: end_custom_thread

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 1923
Reputação : 20
Desde : 30/05/2013
Localização : Estância Velha - RS
Ver perfil do usuário

Re: Write e Read Memory - Dúvidas

em Seg 26 Ago 2013, 01:00
@Junior_Djjr escreveu:
Em MODs CLEO avançados
denilson gostoso 

...mas entao, acho melhor o LINK/2012 explicar, ele eh mais definitivo na explicação doq eu, e ele tah online rçrç :)
Sim, MODs CLEO que fazem coisas mais avançadas usam bastantes desses Opcodes
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21880
Reputação : 666
Desde : 03/05/2012
Idade : 21
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: Write e Read Memory - Dúvidas

em Seg 26 Ago 2013, 01:07
http://www.gtamodding.com/index.php?title=Memory_Addresses_%28SA%29

aqui tem uns endereços de memoria do GTA onde vc pode trabalhar com ações etc

exemplo:
Código:
0xB7014E - [byte] Current Weekday (1 through 7)
no endereço 0xB7014E no tamanho de 1 byte, fica o dia da semana (retorna numero de 1 a 7)

escrever e ler endereços nao tem nada de misterioso, soh usar o numero de bytes certos na hora de ler e escrever (ali no "size" do opcode)

Código:
byte = 1 byte
boolean = 1 byte (se usa 1 ou 0 no valor)
word = 2 bytes
dword = 4 bytes
float = 4 bytes (sao numeros com pontos como 1.0 etc)
qword = 8 bytes


Sim, MODs CLEO que fazem coisas mais avançadas usam bastantes desses Opcodes
usar um opcode desses em mods nao quer dizer q eh avançado, isso eh muito mais simples q muitos opcodes...
oq se mede se eh avançado ou nao um cleo eh ele ao todo, se o cara usar leitura e escritura de memoria para, como eu disse no exemplo, ler o dia da semana do jogo, ate meu primo de 12 anos q nao joga gta sabe fazer coisa avançada kkkk

e tbm o inverso, muita coisa avançada eh feita tbm sem usa-los .-.


Última edição por Junior_Djjr em Seg 26 Ago 2013, 01:11, editado 1 vez(es)

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18780
Reputação : 342
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: Write e Read Memory - Dúvidas

em Seg 26 Ago 2013, 01:09
Só uma correçãozinha...
Código:
dword = 2 bytes
qword = 4 bytes
Na verdade é:

Código:
word = 2 bytes
dword = 4
qword = 8

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21880
Reputação : 666
Desde : 03/05/2012
Idade : 21
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: Write e Read Memory - Dúvidas

em Seg 26 Ago 2013, 01:12
@Fabio escreveu:Só uma correçãozinha...
Código:
dword = 2 bytes
qword = 4 bytes
Na verdade é:

Código:
word = 2 bytes
dword = 4
qword = 8
porra esqueci do word, fui direto ao double word rçrçrç

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 1923
Reputação : 20
Desde : 30/05/2013
Localização : Estância Velha - RS
Ver perfil do usuário

Re: Write e Read Memory - Dúvidas

em Seg 26 Ago 2013, 01:22
@Fabio escreveu:
@LINK/2012 escreveu:fabio explica
kidding

ok ok

Bom, como o próprio nome diz, são opcodes pra escrever ou ler a memoria do jogo

Código:
0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 0
0xC0BC15 é o endereço escrito em hexadecimal, size é o tamanho (em bytes) e value é o valor ( Oh Rly? ) virtual protect é pra poder escrever em areas protegidas (areas de código assembly, ou seja, a seção .text que tem os códigos do executável).

http://en.wikipedia.org/wiki/Portable_Executable
http://en.wikipedia.org/wiki/Code_segment

Existem alguns opcodes que pegam o endereço de coisas especificas do script, exemplo: 0AC7: 0@ = var 1@ offset

Vou dar um exemplo bem simples de write memory:
Código:

{$CLEO}
wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
1@ = 1
0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 1
wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
0AC7: 0@ = var 1@ offset
0A8C: write_memory 0@ size 4 value 10 virtual_protect 0 // Escrevemos o valor 10 no endereço da variavel 1@ que pegamos com o 0AC7 com o tamanho 4 bytes que é o tamanho das variaveis de SCM/CLEO
0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 10
0A93: end_custom_thread
O read memory funciona da mesma forma, só que ao invés de escrever ele lê a memoria indicada e coloca o valor na variavel especificada.
Exemplo:
Código:

{$CLEO}
wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
2@ = 5
1@ = 1
0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 5
wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
0AC7: 0@ = var 1@ offset
0A8D: 2@ = read_memory 0@ size 4 virtual_protect 0 // lemos o endereço de memoria que armazenamos na variavel 0@ referente ao offset global da variavel 1@ com tamanho de leitura 4 que é o tamanho das variaveis SCM/CLEO
0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 1
0A93: end_custom_thread
Ok! Muito obrigado pelo Ajuda Fábio (Denovo badpokerface )
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18780
Reputação : 342
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: Write e Read Memory - Dúvidas

em Seg 26 Ago 2013, 01:24
@Kevin Prestes escreveu:
Spoiler:
@Fabio escreveu:
@LINK/2012 escreveu:fabio explica
kidding

ok ok

Bom, como o próprio nome diz, são opcodes pra escrever ou ler a memoria do jogo

Código:
0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 0
0xC0BC15 é o endereço escrito em hexadecimal, size é o tamanho (em bytes) e value é o valor ( Oh Rly? ) virtual protect é pra poder escrever em areas protegidas (areas de código assembly, ou seja, a seção .text que tem os códigos do executável).

http://en.wikipedia.org/wiki/Portable_Executable
http://en.wikipedia.org/wiki/Code_segment

Existem alguns opcodes que pegam o endereço de coisas especificas do script, exemplo: 0AC7: 0@ = var 1@ offset

Vou dar um exemplo bem simples de write memory:
Código:

{$CLEO}
wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
1@ = 1
0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 1
wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
0AC7: 0@ = var 1@ offset
0A8C: write_memory 0@ size 4 value 10 virtual_protect 0 // Escrevemos o valor 10 no endereço da variavel 1@ que pegamos com o 0AC7 com o tamanho 4 bytes que é o tamanho das variaveis de SCM/CLEO
0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 10
0A93: end_custom_thread
O read memory funciona da mesma forma, só que ao invés de escrever ele lê a memoria indicada e coloca o valor na variavel especificada.
Exemplo:
Código:

{$CLEO}
wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
2@ = 5
1@ = 1
0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 5
wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
0AC7: 0@ = var 1@ offset
0A8D: 2@ = read_memory 0@ size 4 virtual_protect 0 // lemos o endereço de memoria que armazenamos na variavel 0@ referente ao offset global da variavel 1@ com tamanho de leitura 4 que é o tamanho das variaveis SCM/CLEO
0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 1
0A93: end_custom_thread
Ok! Muito obrigado pelo Ajuda Fábio (Denovo badpokerface )
De nada :) 

Se não entendeu algo, é só perguntar

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 1923
Reputação : 20
Desde : 30/05/2013
Localização : Estância Velha - RS
Ver perfil do usuário

Re: Write e Read Memory - Dúvidas

em Seg 26 Ago 2013, 01:42
@Junior_Djjr escreveu:http://www.gtamodding.com/index.php?title=Memory_Addresses_%28SA%29

aqui tem uns endereços de memoria do GTA onde vc pode trabalhar com ações etc

exemplo:
Código:
0xB7014E - [byte] Current Weekday (1 through 7)
no endereço 0xB7014E no tamanho de 1 byte, fica o dia da semana (retorna numero de 1 a 7)

escrever e ler endereços nao tem nada de misterioso, soh usar o numero de bytes certos na hora de ler e escrever (ali no "size" do opcode)

Código:
byte = 1 byte
boolean = 1 byte (se usa 1 ou 0 no valor)
word = 2 bytes
dword = 4 bytes
float = 4 bytes (sao numeros com pontos como 1.0 etc)
qword = 8 bytes


Sim, MODs CLEO que fazem coisas mais avançadas usam bastantes desses Opcodes
usar um opcode desses em mods nao quer dizer q eh avançado, isso eh muito mais simples q muitos opcodes...
oq se mede se eh avançado ou nao um cleo eh ele ao todo, se o cara usar leitura e escritura de memoria para, como eu disse no exemplo, ler o dia da semana do jogo, ate meu primo de 12 anos q nao joga gta sabe fazer coisa avançada kkkk

e tbm o inverso, muita coisa avançada eh feita tbm sem usa-los .-.
Ok vlw pela Ajuda :) 
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 1923
Reputação : 20
Desde : 30/05/2013
Localização : Estância Velha - RS
Ver perfil do usuário

Re: Write e Read Memory - Dúvidas

em Seg 26 Ago 2013, 01:44
@Fabio escreveu:
@Kevin Prestes escreveu:
Spoiler:

@Fabio escreveu:
@LINK/2012 escreveu:fabio explica
kidding

ok ok

Bom, como o próprio nome diz, são opcodes pra escrever ou ler a memoria do jogo

Código:
0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 0
0xC0BC15 é o endereço escrito em hexadecimal, size é o tamanho (em bytes) e value é o valor ( Oh Rly? ) virtual protect é pra poder escrever em areas protegidas (areas de código assembly, ou seja, a seção .text que tem os códigos do executável).

http://en.wikipedia.org/wiki/Portable_Executable
http://en.wikipedia.org/wiki/Code_segment

Existem alguns opcodes que pegam o endereço de coisas especificas do script, exemplo: 0AC7: 0@ = var 1@ offset

Vou dar um exemplo bem simples de write memory:
Código:

{$CLEO}
wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
1@ = 1
0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 1
wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
0AC7: 0@ = var 1@ offset
0A8C: write_memory 0@ size 4 value 10 virtual_protect 0 // Escrevemos o valor 10 no endereço da variavel 1@ que pegamos com o 0AC7 com o tamanho 4 bytes que é o tamanho das variaveis de SCM/CLEO
0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 10
0A93: end_custom_thread
O read memory funciona da mesma forma, só que ao invés de escrever ele lê a memoria indicada e coloca o valor na variavel especificada.
Exemplo:
Código:

{$CLEO}
wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
2@ = 5
1@ = 1
0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 5
wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
0AC7: 0@ = var 1@ offset
0A8D: 2@ = read_memory 0@ size 4 virtual_protect 0 // lemos o endereço de memoria que armazenamos na variavel 0@ referente ao offset global da variavel 1@ com tamanho de leitura 4 que é o tamanho das variaveis SCM/CLEO
0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 1
0A93: end_custom_thread
Ok! Muito obrigado pelo Ajuda Fábio (Denovo badpokerface )
De nada :) 

Se não entendeu algo, é só perguntar
Entendi tudo sim :) Porque fazem coisas praticamente iguais aos do GML
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18780
Reputação : 342
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: Write e Read Memory - Dúvidas

em Seg 26 Ago 2013, 03:08
@Kevin Prestes escreveu:
@Fabio escreveu:
@Kevin Prestes escreveu:
Spoiler:

@Fabio escreveu:
@LINK/2012 escreveu:fabio explica
kidding

ok ok

Bom, como o próprio nome diz, são opcodes pra escrever ou ler a memoria do jogo

Código:
0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 0
0xC0BC15 é o endereço escrito em hexadecimal, size é o tamanho (em bytes) e value é o valor ( Oh Rly? ) virtual protect é pra poder escrever em areas protegidas (areas de código assembly, ou seja, a seção .text que tem os códigos do executável).

http://en.wikipedia.org/wiki/Portable_Executable
http://en.wikipedia.org/wiki/Code_segment

Existem alguns opcodes que pegam o endereço de coisas especificas do script, exemplo: 0AC7: 0@ = var 1@ offset

Vou dar um exemplo bem simples de write memory:
Código:

{$CLEO}
wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
1@ = 1
0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 1
wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
0AC7: 0@ = var 1@ offset
0A8C: write_memory 0@ size 4 value 10 virtual_protect 0 // Escrevemos o valor 10 no endereço da variavel 1@ que pegamos com o 0AC7 com o tamanho 4 bytes que é o tamanho das variaveis de SCM/CLEO
0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 10
0A93: end_custom_thread
O read memory funciona da mesma forma, só que ao invés de escrever ele lê a memoria indicada e coloca o valor na variavel especificada.
Exemplo:
Código:

{$CLEO}
wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
2@ = 5
1@ = 1
0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 5
wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
0AC7: 0@ = var 1@ offset
0A8D: 2@ = read_memory 0@ size 4 virtual_protect 0 // lemos o endereço de memoria que armazenamos na variavel 0@ referente ao offset global da variavel 1@ com tamanho de leitura 4 que é o tamanho das variaveis SCM/CLEO
0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 1
0A93: end_custom_thread
Ok! Muito obrigado pelo Ajuda Fábio (Denovo badpokerface )
De nada :) 

Se não entendeu algo, é só perguntar
Entendi tudo sim :) Porque fazem coisas praticamente iguais aos do GML
Como é que é no GML? :) 

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 7857
Reputação : 347
Desde : 03/05/2012
Ver perfil do usuário

Re: Write e Read Memory - Dúvidas

em Seg 26 Ago 2013, 12:07
um lixo

______________________________
"Give a man a game engine and he delivers a game. Teach a man to make a game engine and he never delivers anything."

avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18780
Reputação : 342
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: Write e Read Memory - Dúvidas

em Seg 26 Ago 2013, 13:32
@LINK/2012 escreveu:um lixo
Por que? pokerface

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 1923
Reputação : 20
Desde : 30/05/2013
Localização : Estância Velha - RS
Ver perfil do usuário

Re: Write e Read Memory - Dúvidas

em Seg 26 Ago 2013, 15:58
@Fabio escreveu:
@Kevin Prestes escreveu:
@Fabio escreveu:
@Kevin Prestes escreveu:
Spoiler:

@Fabio escreveu:
@LINK/2012 escreveu:fabio explica
kidding

ok ok

Bom, como o próprio nome diz, são opcodes pra escrever ou ler a memoria do jogo

Código:
0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 0
0xC0BC15 é o endereço escrito em hexadecimal, size é o tamanho (em bytes) e value é o valor ( Oh Rly? ) virtual protect é pra poder escrever em areas protegidas (areas de código assembly, ou seja, a seção .text que tem os códigos do executável).

http://en.wikipedia.org/wiki/Portable_Executable
http://en.wikipedia.org/wiki/Code_segment

Existem alguns opcodes que pegam o endereço de coisas especificas do script, exemplo: 0AC7: 0@ = var 1@ offset

Vou dar um exemplo bem simples de write memory:
Código:

{$CLEO}
wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
1@ = 1
0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 1
wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
0AC7: 0@ = var 1@ offset
0A8C: write_memory 0@ size 4 value 10 virtual_protect 0 // Escrevemos o valor 10 no endereço da variavel 1@ que pegamos com o 0AC7 com o tamanho 4 bytes que é o tamanho das variaveis de SCM/CLEO
0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 10
0A93: end_custom_thread
O read memory funciona da mesma forma, só que ao invés de escrever ele lê a memoria indicada e coloca o valor na variavel especificada.
Exemplo:
Código:

{$CLEO}
wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
2@ = 5
1@ = 1
0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 5
wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
0AC7: 0@ = var 1@ offset
0A8D: 2@ = read_memory 0@ size 4 virtual_protect 0 // lemos o endereço de memoria que armazenamos na variavel 0@ referente ao offset global da variavel 1@ com tamanho de leitura 4 que é o tamanho das variaveis SCM/CLEO
0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 1
0A93: end_custom_thread
Ok! Muito obrigado pelo Ajuda Fábio (Denovo badpokerface )
De nada :) 

Se não entendeu algo, é só perguntar
Entendi tudo sim :) Porque fazem coisas praticamente iguais aos do GML
Como é que é no GML? :) 
A tipo eu quero Criar uma Senha pra pode Iniciar o Meu Jogo. Daí eu Escrevo uma Senha, então chamo o Comando de Read, que vai ler a minha Senha. Daí o Comando Write, vai Tipo, Escrever minha Senha na Memória do Jogo. Daí quando Iniciar o Jogo, vai Pedia a Senha. Eu vou digita-la, então o Read vai lá na Memória do Jogo e vê se Ambas são Iguais. Se sim, o Jogo Inicia, se não, pede a Senha Denovo.

EDIT:
@LINK/2012 escreveu:um lixo
Porque? ²
Conteúdo patrocinado

Re: Write e Read Memory - Dúvidas

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum