Compartilhe
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 490
Reputação : 32
Desde : 08/02/2016
Localização : São Paulo
Ver perfil do usuário

GTA3script: Migração Sanny Builder e Auxílios

em Dom 01 Jan 2017, 14:36
GTA3script Toolchain

É uma nova ferramenta de criação de scripts Cleo, feito pelo @LINK/2012, baseada na que foi usada pela Rockstar Games para a criação do jogo. Esse tópico é para quem quer tirar dúvidas, quer dicas entre outras coisas.

Links importantes e auxiliares

- SCM Language (GTAModding) (inglês): explica o que é a linguagem SCM e também menciona o GTA3Script;
- GTA3Script na GTAForums (@LINK/2012) (inglês): o link principal da GTA3Script no GTAForums. Possui auxilios gerais assim como aqui, e ensina a instalar o GTA3Script

- Instalação: Como instalar o GTA3Script (português)

Tutoriais

- Tutorial Cleo - GTA3Script (@Junior_Djjr)
: recomendadíssimo iniciar seus estudos de GTA3Script aqui! Ele inicia desde do zero a como scriptar por essa ferramenta. Ainda está intermediário (mais pra baixo), mas anda em atualização;
- Tutorial do Link2012 (inglês): complementar ao anterior, contém alguns tópicos que ainda não foram ainda ensinados no do Junior.


Funções auxiliares

- Opcode Database (Deji): para quem quer passar opcodes do Sanny Builder para o GTA3Script ou somente pegar opcodes.

- Pegar variáveis globais (não se faz ainda pelo GTA3Script. Atualizado em 15/05/17)
Pegar var globais:

Código:

//Feito por Fabio
{
get_global_var:
   LVAR_INT var addr
   READ_MEMORY 0x00468D5E 4 0 addr
   var *= 0x4
   var += addr
   READ_MEMORY var 4 0 var
   CLEO_RETURN 0 var
}


Última edição por Deadstroke em Ter 16 Maio 2017, 22:02, editado 7 vez(es) (Razão : Atualizar tópico)
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: GTA3script: Migração Sanny Builder e Auxílios

em Dom 01 Jan 2017, 14:45
Uma das coisas que entendi só recentemente sobre SCM vs GTA3script é que SCM é o nome da linguagem que a gente imaginou / tentou adivinhar para a programação da Rockstar. Possivelmente por causa da extensão .SCM?

Quando se referenciam ao Sanny Builder, chamam simplesmente de "linguagem do sanny builder".

SCM = Script MultiFle, sabemos devido ao vazamento do compilador oficial de GTA3script da Rockstar no lançamento do GTA VC mobile.


Bota também o link:
http://www.gtamodding.com/wiki/GTA3script
Mesmo que já tenha ele no tópico lá na GTAF.
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 490
Reputação : 32
Desde : 08/02/2016
Localização : São Paulo
Ver perfil do usuário

Re: GTA3script: Migração Sanny Builder e Auxílios

em Dom 01 Jan 2017, 17:44
Tenho uma dúvida já: como eu escrevo uma variável global na nova programação? Não sei como identificar e colocá-la no jogo?
Sobre tutoriais Junior, pretende fazer para mais de um idioma ou algo assim?
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: GTA3script: Migração Sanny Builder e Auxílios

em Dom 01 Jan 2017, 18:26
Deadstroke escreveu:Tenho uma dúvida já: como eu escrevo uma variável global na nova programação? Não sei como identificar e colocá-la no jogo?
Sobre tutoriais Junior, pretende fazer para mais de um idioma ou algo assim?
Definir uma nova var global dentro de um custom script é impossível, simplesmente porque é errado. Meio que o Sanny Builder deu mal manias.
Usar uma var já existente eu ainda não sei. Vai ter um DIM_VAR_INT. Atualmente só pegando da memória mesmo.
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 630
Reputação : 38
Desde : 19/08/2015
Idade : 14
Localização : Em algum lugar do brasil
Link : https://www.youtube.com/watch?v=lMB18XPgEWA
Ver perfil do usuário

Re: GTA3script: Migração Sanny Builder e Auxílios

em Dom 01 Jan 2017, 18:35
Se eu passa das 32 vars  da erro quando compila :)?

______________________________


avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: GTA3script: Migração Sanny Builder e Auxílios

em Dom 01 Jan 2017, 18:43


______________________________

avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 630
Reputação : 38
Desde : 19/08/2015
Idade : 14
Localização : Em algum lugar do brasil
Link : https://www.youtube.com/watch?v=lMB18XPgEWA
Ver perfil do usuário

Re: GTA3script: Migração Sanny Builder e Auxílios

em Dom 01 Jan 2017, 18:46
;-;

______________________________


avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: GTA3script: Migração Sanny Builder e Auxílios

em Dom 01 Jan 2017, 18:55
Em breve esse limite será quebrado e o número de vars será ajustado automaticamente com o quanto você usou.
Deverá vir numa nova versão da CLEO (4.4?)

....E ainda não penso em traduzir pra outro idioma..
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Mensagens : 677
Reputação : 111
Desde : 22/09/2015
Ver perfil do usuário

Re: GTA3script: Migração Sanny Builder e Auxílios

em Dom 01 Jan 2017, 18:57
Deadstroke escreveu:Tenho uma dúvida já: como eu escrevo uma variável global na nova programação? Não sei como identificar e colocá-la no jogo?
Sobre tutoriais Junior, pretende fazer para mais de um idioma ou algo assim?
Não sei se entendi bem o que você quis dizer, mas...
Não dá pra usar como no sanny, mas dá pra usar endereços de memoria. Ex do $OnMission:



↓↓

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SCRIPT_START
{
NOP
LVAR_INT OnMission

loop:
WAIT 0

IF TEST_CHEAT "Save"
   READ_MEMORY 0x96ABA0 1 0 OnMission
   IF OnMission = FALSE
       ACTIVATE_SAVE_MENU
   ELSE
       PRINT_STRING_NOW "~r~Nao e possivel salvar com uma missao em andamento." 3500
   ENDIF
ENDIF

GOTO loop
}
SCRIPT_END

______________________________
" Everyone gonna remember my name ! "
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: GTA3script: Migração Sanny Builder e Auxílios

em Dom 01 Jan 2017, 19:01
Num pc, tudo é endereços de memória.
Se você entrar no local onde estão guardadas as variáveis globais do jogo, você irá poder lê-las.

Mas neste caso em específico que você mostrou, o melhor é assim mesmo :v:

______________________________

avatar
Mensagens Nível 2
Mensagens Nível 2
Mensagens : 50
Reputação : 2
Desde : 14/03/2015
Ver perfil do usuário

Re: GTA3script: Migração Sanny Builder e Auxílios

em Dom 01 Jan 2017, 19:18
Junior_Djjr escreveu:

vc pode usar 32 dentro de cada scope, certo?
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: GTA3script: Migração Sanny Builder e Auxílios

em Dom 01 Jan 2017, 19:20
Rodrigo294 escreveu:
Junior_Djjr escreveu:

vc pode usar 32 dentro de cada scope, certo?
Sim
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 490
Reputação : 32
Desde : 08/02/2016
Localização : São Paulo
Ver perfil do usuário

Re: GTA3script: Migração Sanny Builder e Auxílios

em Dom 01 Jan 2017, 20:57
Estou querendo refazer o No 100% Advantages para o GTA3Script. Só que ele só tem variáveis globais:

Código:
{$CLEO .cs}
0000:

while true
    if  $_100_Percent_Complete == 1
    then
        014C: set_parked_car_generator $parked_Rhino cars_to_generate_to 0
        014C: set_parked_car_generator $parked_Hydra cars_to_generate_to 0
        030D: set_max_progress 190
        $_100_Percent_Complete = 0
        $STAT_Percentage_Completed = 99.0
    end
    wait 250
end

Vi o 'CustomVariables' no Sanny Builder, como mostrado em http://bms.mixmods.com.br/t211-4-variaveis, e se pudesse usar os números das variáveis globais, seria muito bom.
É bem complicado ter que pegar endereços nesses casos. Eu teria que fazer como naquele tutorial de engenharia reversa né...
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: GTA3script: Migração Sanny Builder e Auxílios

em Dom 01 Jan 2017, 21:02
Espere ele colocar isso. Vá atrás de refazer algum outro mod que é melhor.

Falando nele, ele não cuida do benefício "todas as tags pichadas", né?
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 490
Reputação : 32
Desde : 08/02/2016
Localização : São Paulo
Ver perfil do usuário

Re: GTA3script: Migração Sanny Builder e Auxílios

em Dom 01 Jan 2017, 21:17
Junior_Djjr escreveu:Espere ele colocar isso. Vá atrás de refazer algum outro mod que é melhor.

Falando nele, ele não cuida do benefício "todas as tags pichadas", né?

Acho que isso é pré-requisito pra 100%, e não um ganho por estar em 100%. Nâo sei se há outro benefício que não coloquei antes.

@Israel , vlw pela dica doi $onmission, vai ser útil por enquanto.

E como vai funcionar o sistema de atualização, vai ter patches?
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 1947
Reputação : 24
Desde : 30/05/2013
Localização : Estância Velha - RS
Ver perfil do usuário

Re: GTA3script: Migração Sanny Builder e Auxílios

em Seg 02 Jan 2017, 01:02
Deadstroke escreveu:É bem complicado ter que pegar endereços nesses casos. Eu teria que fazer como naquele tutorial de engenharia reversa né...
Pegando a global var * 4 + 0xA49960 não terá o ponteiro pra tal variável?
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 490
Reputação : 32
Desde : 08/02/2016
Localização : São Paulo
Ver perfil do usuário

Re: GTA3script: Migração Sanny Builder e Auxílios

em Seg 02 Jan 2017, 10:42
Kevin Prestes escreveu:
Deadstroke escreveu:É bem complicado ter que pegar endereços nesses casos. Eu teria que fazer como naquele tutorial de engenharia reversa né...
Pegando a global var * 4 + 0xA49960 não terá o ponteiro pra tal variável?

Aqui aparentemente não funcionou...
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: GTA3script: Migração Sanny Builder e Auxílios

em Seg 02 Jan 2017, 10:52
Kevin Prestes escreveu:
Deadstroke escreveu:É bem complicado ter que pegar endereços nesses casos. Eu teria que fazer como naquele tutorial de engenharia reversa né...
Pegando a global var * 4 + 0xA49960 não terá o ponteiro pra tal variável?
Esse local tem espaço para 50 mil vars globais, não faz sentido.
Código:
0xA49960 = start of scm block
É aí onde o script principal do jogo fica guardado, não as vars.
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 1023
Reputação : 82
Desde : 04/03/2013
Idade : 17
Ver perfil do usuário

Re: GTA3script: Migração Sanny Builder e Auxílios

em Seg 02 Jan 2017, 10:59
Ia falar isso agora, uma função do Lua Hooker que faz isso:
Código:
int CLuaFunctions::getSCMVarPointer(lua_State *L)
{
   LuaParams p(L);

   for (int i = 0, size = p.getNumParams(); i < size; i++)
   {
      unsigned int glob = 0;
      p >> glob;
      p << 0x00A49960 + glob * 4;
   }

   return p.rtn();
}
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Mensagens : 677
Reputação : 111
Desde : 22/09/2015
Ver perfil do usuário

Re: GTA3script: Migração Sanny Builder e Auxílios

em Seg 02 Jan 2017, 11:58
Eu vi o Deji explicando sobre isso uma vez, mas nem lembrava mais.
Não faz sentido apenas printar na tela, mas fiz apenas como exemplo :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SCRIPT_START
{  
LVAR_INT Parked_Rhino Parked_Hydra _100_Percent_Complete

CLEO_CALL get_global_var 0 2777 Parked_Rhino
CLEO_CALL get_global_var 0 673 Parked_Hydra
CLEO_CALL get_global_var 0 802 _100_Percent_Complete

PRINT_FORMATTED_NOW "Values : %i - %i - %i" 7000 Parked_Rhino Parked_Hydra _100_Percent_Complete
}
SCRIPT_END

{
get_global_var:
   LVAR_INT var
   var *= 0x4
   var += 0xA49960
   READ_MEMORY var 4 0 var
   CLEO_RETURN 0 var
}

Bem mais simples.


Última edição por israel em Seg 02 Jan 2017, 12:25, editado 3 vez(es)

______________________________
" Everyone gonna remember my name ! "
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: GTA3script: Migração Sanny Builder e Auxílios

em Seg 02 Jan 2017, 11:59
Junior_Djjr escreveu:
Kevin Prestes escreveu:
Deadstroke escreveu:É bem complicado ter que pegar endereços nesses casos. Eu teria que fazer como naquele tutorial de engenharia reversa né...
Pegando a global var * 4 + 0xA49960 não terá o ponteiro pra tal variável?
Esse local tem espaço para 50 mil vars globais, não faz sentido.
Código:
0xA49960 = start of scm block
É aí onde o script principal do jogo fica guardado, não as vars.

São as vars, elas ficam no main.scm, por isso tem um jump nos primeiros 7 bytes do main.scm, por isso também que o GTA não usa $0 nem $1


______________________________

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 : 490
Reputação : 32
Desde : 08/02/2016
Localização : São Paulo
Ver perfil do usuário

Re: GTA3script: Migração Sanny Builder e Auxílios

em Seg 02 Jan 2017, 13:07
israel escreveu:Eu vi o Deji explicando sobre isso uma vez, mas nem lembrava mais.
Não faz sentido apenas printar na tela, mas fiz apenas como exemplo :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SCRIPT_START
{  
LVAR_INT Parked_Rhino Parked_Hydra _100_Percent_Complete

CLEO_CALL get_global_var 0 2777 Parked_Rhino
CLEO_CALL get_global_var 0 673 Parked_Hydra
CLEO_CALL get_global_var 0 802 _100_Percent_Complete

PRINT_FORMATTED_NOW "Values : %i - %i - %i" 7000 Parked_Rhino Parked_Hydra _100_Percent_Complete
}
SCRIPT_END

{
get_global_var:
   LVAR_INT var
   var *= 0x4
   var += 0xA49960
   READ_MEMORY var 4 0 var
   CLEO_RETURN 0 var
}

Bem mais simples.

Essa função também falhou miseravelmente, infelizmente...
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Mensagens : 677
Reputação : 111
Desde : 22/09/2015
Ver perfil do usuário

Re: GTA3script: Migração Sanny Builder e Auxílios

em Seg 02 Jan 2017, 13:16
Deadstroke escreveu:Essa função também falhou miseravelmente, infelizmente...
Como assim "falhou" ? Você tentou do jeito que está ai e não apareceu a mensagem na tela ? ou usou outro código seguindo o exemplo e não funcionou ? Mostre o código. :v:
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: GTA3script: Migração Sanny Builder e Auxílios

em Seg 02 Jan 2017, 13:28
Código:
CLEO_CALL get_global_var 0 802 _100_Percent_Complete

0?

Código:
CLEO_RETURN 0 var

0?

______________________________

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 : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: GTA3script: Migração Sanny Builder e Auxílios

em Seg 02 Jan 2017, 13:33
Fabio ainda não conhece GTA3script :v:

______________________________

Conteúdo patrocinado

Re: GTA3script: Migração Sanny Builder e Auxílios

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