Boss
Boss
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 19
Reputação : 0
Desde : 14/12/2017
Idade : 20
Localização : Uberlândia - MG
Qua 31 Jan 2018, 13:37
Olá, estou estudando gta3script há um tempo e gostaria de saber como posso desativar todos os códigos com mensagem.
Já pesquisei muito sobre isso mas não encontrei nada que ajude. Agradeço desde já.
Cloud
Cloud
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Nick anterior : Israel
Título : Baiano
Mensagens : 858
Reputação : 138
Desde : 22/09/2015
Qua 31 Jan 2018, 14:19
Não sei se entendi direito, mas se você estiver falando dos cheats, tem a opção DisaCheats do MixSets .

______________________________
Everyone gonna remember my name !
Boss
Boss
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 19
Reputação : 0
Desde : 14/12/2017
Idade : 20
Localização : Uberlândia - MG
Qua 31 Jan 2018, 14:48
@israel sim eu me refiro aos cheats, mas eu preciso colocar essa função no meu script, eu até baixei o sanny builder mas não consegui abrir o MixSets, fica tudo branco, talvez eu não tenha configurado direito... Alguma dica ?
Agradeço desde já.
Boss
Boss
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 19
Reputação : 0
Desde : 14/12/2017
Idade : 20
Localização : Uberlândia - MG
Qua 31 Jan 2018, 19:24
Alguém ? Feel Bro
Nex
Nex
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 1240
Reputação : 99
Desde : 04/03/2013
Idade : 20
Qua 31 Jan 2018, 19:38
Código do MixSets:
Código:
0A8C: write_memory 0x4384D0 size 2 value 0x9090 virtual_protect 1
0A8C: write_memory 0x4384D2 size 1 value 0x90 virtual_protect 1
0A8C: write_memory 0x4384D3 size 1 value 0xE9 virtual_protect 1
0A8C: write_memory 0x4384D4 size 4 value 0xCD virtual_protect 1
Boss
Boss
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 19
Reputação : 0
Desde : 14/12/2017
Idade : 20
Localização : Uberlândia - MG
Qua 31 Jan 2018, 19:46
Muito obrigado @Nex', funcionou perfeitamente !
Código:
WRITE_MEMORY 0x4384D0 2 0x9090 1
WRITE_MEMORY 0x4384D2 1 0x90 1
WRITE_MEMORY 0x4384D3 1 0xE9 1
WRITE_MEMORY 0x4384D4 4 0xCD 1
Cloud
Cloud
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Nick anterior : Israel
Título : Baiano
Mensagens : 858
Reputação : 138
Desde : 22/09/2015
Qua 31 Jan 2018, 20:12
@Boss escreveu:@israel sim eu me refiro aos cheats, mas eu preciso colocar essa função no meu script, eu até baixei o sanny builder mas não consegui abrir o MixSets, fica tudo branco, talvez eu não tenha configurado direito... Alguma dica ?
Agradeço desde já.
É só marcar essa opção aí (IGNORE_UNKNOWN):
Ajuda com Script (desativar códigos) Sem_ty15



Pra desativar os cheats, dá pra fazer assim também:
Código:
WRITE_MEMORY 0x004384D2 1 0xFF 1

______________________________
Everyone gonna remember my name !
Junior_Djjr
Junior_Djjr
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 25
Localização : Ibitinga - SP
Link : www.MixMods.com.br
http://MixMods.com.br
Qua 31 Jan 2018, 22:32
israel escreveu:Pra desativar os cheats, dá pra fazer assim também:
Código:
WRITE_MEMORY 0x004384D2 1 0xFF 1
Não sei bem, mas acho que o método do MixSets (que é parecido, mas mais completo) é o mais aconselhável.
Foi o Fabio que fez e nunca teve relato de problemas.

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
Cloud
Cloud
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Nick anterior : Israel
Título : Baiano
Mensagens : 858
Reputação : 138
Desde : 22/09/2015
Qua 31 Jan 2018, 23:09

Código original:
Código:
cmp eax, 6
jb loc_4385A5
eax é o length do texto na cheat_string.

O código do @Fabio transforma nisso:
Código:
jmp loc_4385A5
Ignora a comparação e pula direto.

O que eu fiz foi pôr um 255 no lugar daquele 6:
Código:
cmp eax, 255
jb loc_4385A5

A cheat_string é char[30], ou seja, sempre vai pular.

No fim, dá no mesmo.



Outra forma de fazer:
Código:
WRITE_MEMORY 0x004384D0 4 0x4385A5B8 1
WRITE_MEMORY 0x004384D4 4 0x90E0FF00 1
↓↓
Código:
mov eax, 0x004385A5
jmp eax

______________________________
Everyone gonna remember my name !
Boss
Boss
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 19
Reputação : 0
Desde : 14/12/2017
Idade : 20
Localização : Uberlândia - MG
Qui 01 Fev 2018, 15:45
Agradeço as respostas de todos.
Gostaria de saber como mostrar uma mensagem para os cheats desativados ? "Cheats não são permitidos!". Não sei se é possível...

Agradeço desde já.
Nex
Nex
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 1240
Reputação : 99
Desde : 04/03/2013
Idade : 20
Qui 01 Fev 2018, 15:53
Possível é, mas ia cê já tá complicando de mais meu amigo, por que não só avisar uma vez que os cheats foram desativados? pokerface
Cloud
Cloud
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Nick anterior : Israel
Título : Baiano
Mensagens : 858
Reputação : 138
Desde : 22/09/2015
Qui 01 Fev 2018, 16:00
@Boss escreveu:Agradeço as respostas de todos.
Gostaria de saber como mostrar uma mensagem para os cheats desativados ? "Cheats não são permitidos!". Não sei se é possível...

Agradeço desde já.
Código:
IF TEST_CHEAT "Desativar"
    // faz o bagui pra desativar aqui
    PRINT_HELP_STRING "Cheats nao sao permitidos!"
ENDIF

É isso aí que você precisa ? Ou você quer mostrar a mensagem cada vez que a pessoa tentar usar um cheat ? Se for a segunda opção, é um pouco mais complicado e também não vejo necessidade.

______________________________
Everyone gonna remember my name !
Boss
Boss
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 19
Reputação : 0
Desde : 14/12/2017
Idade : 20
Localização : Uberlândia - MG
Qui 01 Fev 2018, 16:39
@Israel @Nex'
Eu queria mostrar a mensagem cada vez que tentasse usar um cheat mesmo eu até tentei simular cada um com TEST_CHEAT, ams ficou muito triste claro... mas posso me conformar mostrando só na hora de desativar mesmo. badpokerface

Agradeço muito pela ajuda.
Fabio
Fabio
Programador - Avançado
Programador - Avançado
Mensagens : 18271
Reputação : 388
Desde : 04/05/2012
Idade : 23
Link : gtamodvicio.blogspot.com
http://gtamodvicio.blogspot.com
Qui 01 Fev 2018, 18:44
@Boss escreveu:@Israel @Nex'
Eu queria mostrar a mensagem cada vez que tentasse usar um cheat mesmo eu até tentei simular cada um com TEST_CHEAT, ams ficou muito triste claro... mas posso me conformar mostrando só na hora de desativar mesmo. badpokerface

Agradeço muito pela ajuda.

É mais fácil criar uma pequena função e substituir toda a tabela de cheats do jogo. philosoraptor philosoraptor

______________________________
Ajuda com Script (desativar códigos) 226c0ef57f9d7520d171cbadc68b3c56
Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/ <<<------------------
Ajuda com Script (desativar códigos) 76561198069372249
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'
Cloud
Cloud
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Nick anterior : Israel
Título : Baiano
Mensagens : 858
Reputação : 138
Desde : 22/09/2015
  • Reputação da mensagem: 100% (2 votos)
Qui 01 Fev 2018, 19:28
@Boss escreveu:[...] eu até tentei simular cada um com TEST_CHEAT, ams ficou muito triste claro... [...]
Nem ia dar muito certo por causa dos hashs. Muitos nomes resultam num mesmo cheat.
@Fabio escreveu:É mais fácil criar uma pequena função e substituir toda a tabela de cheats do jogo. philosoraptor philosoraptor
O mesmo que eu pensei:
Código:
SCRIPT_START
{
    LVAR_INT pNoCheats, pMsg, pMsgOffset
    LVAR_INT ptr

    GET_LABEL_POINTER NoCheats (pNoCheats)
    GET_LABEL_POINTER Msg (pMsg)

    pMsgOffset = pNoCheats + 0x01
    WRITE_MEMORY pMsgOffset 4 pMsg 0

    ptr = 0x008A5B58
    WHILE ptr <= 0x008A5CBC
        WRITE_MEMORY ptr 4 pNoCheats 1
        ptr += 0x04
    ENDWHILE
}
SCRIPT_END

NoCheats:
DUMP
/*00000000*/ 6800000000   // push Msg ; str
                        
/*00000005*/ B8E08B5800   // mov  eax, 0x00588BE0 ; CHud::SetHelpMessage
/*0000000A*/ FFD0         // call eax
                        
/*0000000C*/ C9           // leave
/*0000000D*/ C3           // ret
ENDDUMP

Msg:
DUMP
"~r~Cheats nao sao permitidos!" 00
ENDDUMP

______________________________
Everyone gonna remember my name !
Fabio
Fabio
Programador - Avançado
Programador - Avançado
Mensagens : 18271
Reputação : 388
Desde : 04/05/2012
Idade : 23
Link : gtamodvicio.blogspot.com
http://gtamodvicio.blogspot.com
Qui 01 Fev 2018, 20:28
Israel escreveu:
@Boss escreveu:[...] eu até tentei simular cada um com TEST_CHEAT, ams ficou muito triste claro... [...]
Nem ia dar muito certo por causa dos hashs. Muitos nomes resultam num mesmo cheat.
@Fabio escreveu:É mais fácil criar uma pequena função e substituir toda a tabela de cheats do jogo. philosoraptor philosoraptor
O mesmo que eu pensei:
Código:
SCRIPT_START
{
    LVAR_INT pNoCheats, pMsg, pMsgOffset
    LVAR_INT ptr

    GET_LABEL_POINTER NoCheats (pNoCheats)
    GET_LABEL_POINTER Msg (pMsg)

    pMsgOffset = pNoCheats + 0x01
    WRITE_MEMORY pMsgOffset 4 pMsg 0

    ptr = 0x008A5B58
    WHILE ptr <= 0x008A5CBC
        WRITE_MEMORY ptr 4 pNoCheats 1
        ptr += 0x04
    ENDWHILE
}
SCRIPT_END

NoCheats:
DUMP
/*00000000*/ 6800000000   // push Msg ; str
                        
/*00000005*/ B8E08B5800   // mov  eax, 0x00588BE0 ; CHud::SetHelpMessage
/*0000000A*/ FFD0         // call eax
                        
/*0000000C*/ C9           // leave
/*0000000D*/ C3           // ret
ENDDUMP

Msg:
DUMP
"~r~Cheats nao sao permitidos!" 00
ENDDUMP

Muito bom, mas você testou? Acredito que esteja faltando uma instrução enter no ínicio, ou
Código:

push ebp
mov esp, ebp

Já que usou leave que é o processo inverso do código acima.

Se não me engano a mensagem de cheat é mostrada na função que chama a função de cheat, talvez seja necessário colocar alguns NOP lá.

______________________________
Ajuda com Script (desativar códigos) 226c0ef57f9d7520d171cbadc68b3c56
Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/ <<<------------------
Ajuda com Script (desativar códigos) 76561198069372249
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'
Cloud
Cloud
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Nick anterior : Israel
Título : Baiano
Mensagens : 858
Reputação : 138
Desde : 22/09/2015
Qui 01 Fev 2018, 22:43
↑ Sim, eu testei. Me baseei nas próprias funções que são substituídas. :v:
Sobre a mensagem, a que eu coloquei, sobrepõe a da AddToPCCheatString. :)

______________________________
Everyone gonna remember my name !
Nex
Nex
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 1240
Reputação : 99
Desde : 04/03/2013
Idade : 20
Sab 03 Fev 2018, 18:17
Israel escreveu:
Código:
SCRIPT_START
{
    LVAR_INT pNoCheats, pMsg, pMsgOffset
    LVAR_INT ptr

    GET_LABEL_POINTER NoCheats (pNoCheats)
    GET_LABEL_POINTER Msg (pMsg)

    pMsgOffset = pNoCheats + 0x01
    WRITE_MEMORY pMsgOffset 4 pMsg 0

    ptr = 0x008A5B58
    WHILE ptr <= 0x008A5CBC
        WRITE_MEMORY ptr 4 pNoCheats 1
        ptr += 0x04
    ENDWHILE
}
SCRIPT_END

NoCheats:
DUMP
/*00000000*/ 6800000000   // push Msg ; str
                        
/*00000005*/ B8E08B5800   // mov  eax, 0x00588BE0 ; CHud::SetHelpMessage
/*0000000A*/ FFD0         // call eax
                        
/*0000000C*/ C9           // leave
/*0000000D*/ C3           // ret
ENDDUMP

Msg:
DUMP
"~r~Cheats nao sao permitidos!" 00
ENDDUMP

Comparação com o que é possível fazer em Lua:
Código:
local ffi = require "ffi"

function noCheat()
    printHelpString("~r~Cheats OFF!")
end

function main()
    local _cheatHandlers = ffi.cast("void (**)()", 0x008A5B58)
   
    for i = 0, 89 do
        _cheatHandlers[i] = noCheat
    end

    wait(-1)
end
Feel Bro
Fabio
Fabio
Programador - Avançado
Programador - Avançado
Mensagens : 18271
Reputação : 388
Desde : 04/05/2012
Idade : 23
Link : gtamodvicio.blogspot.com
http://gtamodvicio.blogspot.com
Ter 06 Fev 2018, 15:39
@Nex escreveu:
Spoiler:

Israel escreveu:
Código:
SCRIPT_START
{
    LVAR_INT pNoCheats, pMsg, pMsgOffset
    LVAR_INT ptr

    GET_LABEL_POINTER NoCheats (pNoCheats)
    GET_LABEL_POINTER Msg (pMsg)

    pMsgOffset = pNoCheats + 0x01
    WRITE_MEMORY pMsgOffset 4 pMsg 0

    ptr = 0x008A5B58
    WHILE ptr <= 0x008A5CBC
        WRITE_MEMORY ptr 4 pNoCheats 1
        ptr += 0x04
    ENDWHILE
}
SCRIPT_END

NoCheats:
DUMP
/*00000000*/ 6800000000   // push Msg ; str
                        
/*00000005*/ B8E08B5800   // mov  eax, 0x00588BE0 ; CHud::SetHelpMessage
/*0000000A*/ FFD0         // call eax
                        
/*0000000C*/ C9           // leave
/*0000000D*/ C3           // ret
ENDDUMP

Msg:
DUMP
"~r~Cheats nao sao permitidos!" 00
ENDDUMP

Comparação com o que é possível fazer em Lua:
Código:
local ffi = require "ffi"

function noCheat()
    printHelpString("~r~Cheats OFF!")
end

function main()
    local _cheatHandlers = ffi.cast("void (**)()", 0x008A5B58)
    
    for i = 0, 89 do
        _cheatHandlers[i] = noCheat
    end

    wait(-1)
end
Feel Bro

Em cleo:

Código:

{$CLEO}

0AA2: 0@ = load_library "cppToCleo.asi" // IF and SET
0AA4: 1@ = get_proc_address "generateFunction" library 0@ // IF and SET    
0A9F: 4@ = current_thread_pointer
0AA7: call_function 1@ num_params 4 pop 4 0 0 @noCheats 4@ -> 3@ // cleoToCppCallBackLabel  

2@ = 0x008A5B58

while 2@ < 0x008A5CC8
    0A8C: write_memory 2@ size 4 value 3@ virtual_protect 1
    2@ += 4
end

while true
   wait 0x7FFFFFFF
end

:noCheats
0AD1: show_formatted_text_highpriority "Cheats nao sao permitidos" time 5000
wait 0

Não, pera.

______________________________
Ajuda com Script (desativar códigos) 226c0ef57f9d7520d171cbadc68b3c56
Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/ <<<------------------
Ajuda com Script (desativar códigos) 76561198069372249
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'
Boss
Boss
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 19
Reputação : 0
Desde : 14/12/2017
Idade : 20
Localização : Uberlândia - MG
Sab 24 Fev 2018, 00:09
Vlw galera, funcionou perfeitamente!  (BG)

Desculpa a demora
Cloud
Cloud
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Nick anterior : Israel
Título : Baiano
Mensagens : 858
Reputação : 138
Desde : 22/09/2015
Sab 24 Fev 2018, 09:55
@Boss escreveu:Vlw galera, funcionou perfeitamente!  (BG)

Desculpa a demora
De nada. :)
@Nex escreveu:Comparação com o que é possível fazer em Lua:
Código:
local ffi = require "ffi"

function noCheat()
    printHelpString("~r~Cheats OFF!")
end

function main()
    local _cheatHandlers = ffi.cast("void (**)()", 0x008A5B58)
    
    for i = 0, 89 do
        _cheatHandlers[i] = noCheat
    end

    wait(-1)
end
Feel Bro
É, dá nem pra comparar.
FFI >>

______________________________
Everyone gonna remember my name !
Conteúdo patrocinado
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum