Compartilhe
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 Sex 05 Maio 2017, 01:37
Deadstroke escreveu:
Junior_Djjr escreveu:É sobre Sanny Builder não GTA3script, mas acho até que seria melhor mudar e deixar num tópico só.
Mas enfim...

A ideia desse tópico a princípio era ser um centro de ajuda para todo mundo que queria entender algumas coisas de gta3script e tals e as diferenças com o SCM. Até vi que deveria atualizar o tópico principal, principalmente encaminhando os seus tutorial (apesar de que todo mundo aqui deve conhecê-los). Só ponto de vista mesmo...
Vamos mudar esse troço:
Este tópico será sobre migração, Sanny Builder vs GTA3script e coisas do tipo (o que é um assunto importante e útil).
E o tópico antigo continuará lá como sempre foi: http://brmodstudio.forumeiros.com/t4700-sobre-cleo
Essa minha ideia de separar Sanny Builder de GTA3script em tópicos separados foi nada a ver, é bom deixá-los andar juntos.

______________________________

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 Sab 06 Maio 2017, 01:07
Que assim seja...
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 Ter 16 Maio 2017, 22:03
Dei uma atualizada no tópico para deixá-lo mais completo quanto a tudo que precisa no GTA3Script.
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Título : Carinha que mora logo ali
Mensagens : 502
Reputação : 102
Desde : 07/03/2017
Localização : BH - MG
Ver perfil do usuário

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

em Qui 18 Maio 2017, 20:35
Eu estava mexendo em arquivos bat e cmd e consegui compilar um *.sc para *.cs através do Notepad++, como não entendo bem como o compilador do gta3sc funciona apesar de ser compilado o *.cs ficou meio bugado. Sabemos que o Notepad++ pode incluindo usar recursos de autocompletar. ele poderia vir a ser uma alternativa para criar cleo usando o compilador gta3sc? Levando em conta que ele é muito mais leve que o Visual Studio Code (HMM)

imagem:


______________________________

.::
Os mods que crio serão colocados no meu workshop link
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 Sex 19 Maio 2017, 03:44
Não vejo motivos pro uso do Notepad++, além de que não acredito que tudo estaria funcional nele (como a documentação ao passar o mouse etc).

______________________________

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 Sex 09 Jun 2017, 12:21

______________________________

avatar
Mensagens Nível 3
Mensagens Nível 3
Mensagens : 211
Reputação : 18
Desde : 27/07/2016
Idade : 16
Localização : Sacramento - MG
Ver perfil do usuáriohttps://www.youtube.com/channel/UCnhZHfE2RGoU0HCM80P3j_A

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

em Sab 01 Jul 2017, 22:39
Junior_Djjr escreveu:
Rodrigo294 escreveu:

vc pode usar 32 dentro de cada scope, certo?
Sim

Então meio que dá pra quebrar esse limite né? Definindo as vars em mais de um escopo.
Se o script for feito assim:
Código:

SCRIPT_START
{
LVAR_INT var[31]
}
{
LVAR_INT var[31]
}
SCRIPT_END
O script não bateria o limite e poderia ser usado mais de 32 vars usando CLEO_CALL ou GOSUB.
Isso seria correto? E seria possível usar essas vars "extras" sem problemas?
Pelo que sei de GTA3script, o script ficaria bem mais complexo de ser feito.
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Título : Noob
Mensagens : 915
Reputação : 28
Desde : 13/08/2015
Localização : Passo de Torres - SC
Ver perfil do usuário

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

em Sab 01 Jul 2017, 22:48
Só usar CLEO_CALL, sem problemas.

______________________________
Caso te ajudei em algo, clique no botão de reputação (o "coraçãozinho" na parte de cima da mensagem).
avatar
Mensagens Nível 3
Mensagens Nível 3
Mensagens : 211
Reputação : 18
Desde : 27/07/2016
Idade : 16
Localização : Sacramento - MG
Ver perfil do usuáriohttps://www.youtube.com/channel/UCnhZHfE2RGoU0HCM80P3j_A

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

em Sab 01 Jul 2017, 22:59
Matheus Rivaldo escreveu:Só usar CLEO_CALL,  sem problemas.
Então eu entendi bem o uso de vars e CLEO_CALL, e isso vai ajudar muito em mods mais complexos (apesar de que só de tá usando uma CLEO_CALL ele já vai ficar um pouquinho mais complexo). Pelo menos assim é uma forma de meio que ter variáveis "infinitas" :v: :v: letsgo
Os tutoriais de GTA3script do Djjr são muito bons e além de que GTA3script é fácil de aprender.
Na época que li o tutorial do LINK/2012 de SCM não consegui fazer nada, mas agora com GTA3sc eu consegui.
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Título : Noob
Mensagens : 915
Reputação : 28
Desde : 13/08/2015
Localização : Passo de Torres - SC
Ver perfil do usuário

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

em Sab 01 Jul 2017, 23:01
GTA3Script é mais fácil mesmo, esse negócio de scopes é muito bom.

______________________________
Caso te ajudei em algo, clique no botão de reputação (o "coraçãozinho" na parte de cima da mensagem).
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 28
Reputação : 2
Desde : 16/06/2017
Idade : 20
Ver perfil do usuário

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

em Ter 04 Jul 2017, 06:25
DISPLAY_ONSCREEN_TIMER_WITH_STRING and DISPLAY_ONSCREEN_COUNTER_WITH_STRING both require global variables, which are not allowed in GTA3Script custom scripts. But Seemann wrote some functions that do the same thing with local variables.

Example on how to use these functions:
Código:
{$CLEO}

0@ = 100
33@ = 0
0AB1: call_scm_func @DISPLAY_ONSCREEN_TIMER_WITH_STRING_LOCAL   4 VARNUMBER = 1  TYPE = 0 GXT = @StatusText
0AB1: call_scm_func @DISPLAY_ONSCREEN_COUNTER_WITH_STRING_LOCAL 4 VARNUMBER = 33 TYPE = 0 GXT = @StatusText LINE = 0
0AB1: call_scm_func @DISPLAY_ONSCREEN_COUNTER_WITH_STRING_LOCAL 4 VARNUMBER = 0  TYPE = 1 GXT = @StatusText LINE = 3
while 0@ > 0
    wait 1000
    0@ -= 10
end  
0AB1: call_scm_func @CLEAR_ONSCREEN_TIMER_LOCAL   1 VARNUMBER = 1
0AB1: call_scm_func @CLEAR_ONSCREEN_COUNTER_LOCAL 1 VARNUMBER = 33
0AB1: call_scm_func @CLEAR_ONSCREEN_COUNTER_LOCAL 1 VARNUMBER = 0  
0A93: end_custom_thread

/*** FUNCTIONS THAT YOU NEED TO COPY AND PASTE ***/

:DISPLAY_ONSCREEN_COUNTER_WITH_STRING_LOCAL
0AB1: call_scm_func @__VarToOffset 1 0@ 0@  
0AB1: call_scm_func @__LabelToOffset 1 2@ 2@  
0AA6: call_method 4509088 struct 12195720 num_params 4 pop 0 ( LINE = 3@ GXT = 2@ TYPE = 1@ VARNUMBER = 0@ )
0AB2: ret 0

:CLEAR_ONSCREEN_COUNTER_LOCAL
0AB1: call_scm_func @__VarToOffset 1 0@ 0@  
0AA6: call_method 4509312 struct 12195720 num_params 1 pop 0 ( VARNUMBER = 0@ )  
0AB2: ret 0

:DISPLAY_ONSCREEN_TIMER_WITH_STRING_LOCAL
0AB1: call_scm_func @__VarToOffset 1 0@ 0@
0AB1: call_scm_func @__LabelToOffset 1 2@ 2@
0AA6: call_method 0x0044CD50 struct 0x00BA1788 num_params 3 pop 0 ( TYPE = 1@ GXT = 2@ VARNUMBER = 0@ )
0AB2: ret 0

:CLEAR_ONSCREEN_TIMER_LOCAL
0AB1: call_scm_func @__VarToOffset 1 0@ 0@
0AA6: call_method 0x0044CE60 struct 0x00BA1788 num_params 1 pop 0 ( VARNUMBER = 0@ )
0AB2: ret 0

:__VarToOffset
0A9F: 1@ = current_thread_pointer
0A8E: 2@ = 1@ + 0xDC // mission Flag
0A8D: 2@ = read_memory 2@ size 1 virtual_protect 0
if 2@ == 1
then
    1@ = 0x00A48960 // mission locals
else
    1@ += 0x3C
end
0@ *= 4
005A: 1@ += 0@ // address of the local variable
1@ -= 0xA49960
0AB2: ret 1 1@

:__LabelToOffset
if 0@ == 0
then
    0AB2: ret 1 0
end
0A9F: 1@ = current_thread_pointer
1@ += 0x10
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0 // baseIP
0062: 1@ -= 0@ // label address
1@ += 3
0AB2: ret 1 1@

:StatusText
0900: clear_object 'BB_19' last_weapon_damage
0000:

+ VARNUMBER
Every variable is represented by number. So VARNUMBER is number of a variable that stores value that you want to track (eg. health, armor).
+ 32 = timera
+ 33 = timerb
+ TYPE
DISPLAY_ONSCREEN_COUNTER_WITH_STRING_LOCAL:
- 0 show number
- 1 show status bar
DISPLAY_ONSCREEN_TIMER_WITH_STRING_LOCAL:
- 0 increasing
- 1 decreasing
+ GXT
Set 0 and no text will show. I guess that you can not pass string directly to 0AA6: call_method and that's why you need to define some label and then use 0900 like shown in this example, if you want to show some text.
+ LINE
You can use up to 4 counters.
So LINE can have values 0, 1, 2, 3.
- You can have only one timer.


One can replace opcodes with appropriate command names (presumably with the help of DescEdit), but there are two problems that I can see at the time being:

  • VARNUMBER: we don't use numbers to identify variables; existence of scopes
  • GXT: In SCM it's possible to assign label to a variable: 0@ = @label. This isn't actually possible in GTA3Script.

spaceeinstein: Is it possible to do weird tricks that R* never used, like the assignment of a label to a variable? In SB: 0@ = @label

Wesser: Yes, partially. Doing so, we would pay the price of putting a brand new token in front of *VAR_INTs (alike the dollar sign leading *VAR_TEXT_LABELs), because the identifier of variables and label references can conflict without issues (unlike string constants). Configuring the SET command pair to grant such an assignment, the compiler wouldn't be capable of matching the right alternative and differentiating *VAR_INT from LABEL arguments. That said, featuring the GET_LABEL_FILE_OFFSET command by the runtime is the only way to go (in view of the decompilation process as well).

Source

If it's possible, can somebody more experienced translate these functions to GTA3Script?

0AB1: CLEO_CALL
0A93: TERMINATE_THIS_CUSTOM_SCRIPT
0AA6: CALL_METHOD
0AB2: CLEO_RETURN
0A9F: GET_THIS_SCRIPT_STRUCT
0A8D: READ_MEMORY
0900: CLEAR_OBJECT_LAST_WEAPON_DAMAGE
0000: NOP


Última edição por kosticn101 em Sex 07 Jul 2017, 04:35, editado 5 vez(es)
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 Ter 04 Jul 2017, 18:11
You used [HIDE] to show the code. I think you know what word "hide" means, right?

GTA3script will allow to use global vars in scripts soon.

And translate from Sanny to GTA3sc is very easy. Check "config\gtasa\commands.xml" (and cleo.xml) from gta3script compiler folder.

For example:
Código:
0AA6: call_method
Search for "AA6":
Código:
<Command ID="0xaa6" Name="CALL_METHOD" Hash="0x238fec28">
The name of command in GTA3script is "CALL_METHOD" (ohh)

______________________________

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 Ter 04 Jul 2017, 18:25
Código:
:__VarToOffset
0A9F: 1@ = current_thread_pointer
0A8E: 2@ = 1@ + 0xDC // mission Flag
0A8D: 2@ = read_memory 2@ size 1 virtual_protect 0
if 2@ == 1
then
    1@ = 0x00A48960 // mission locals
else
    1@ += 0x3C
end
0@ *= 4
005A: 1@ += 0@ // address of the local variable
1@ -= 0xA49960
0AB2: ret 1 1@
CLEO 4 or newer escreveu:
Código:
0AC7: 0@ = var 0@ offset
GET_VAR_POINTER var out



Código:
:__LabelToOffset
if 0@ == 0
then
    0AB2: ret 1 0
end
0A9F: 1@ = current_thread_pointer
1@ += 0x10
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0 // baseIP
0062: 1@ -= 0@ // label address
1@ += 3
0AB2: ret 1 1@
CLEO 4 or newer escreveu:
Código:
0AC6: 0@ = label @label offset
GET_LABEL_POINTER label out

______________________________

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
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 28
Reputação : 2
Desde : 16/06/2017
Idade : 20
Ver perfil do usuário

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

em Qua 05 Jul 2017, 07:52
You used [HIDE] to show the code. I think you know what word "hide" means, right?
Yeah but I thought that only effect is that text is nicely formatted because it was still visible (to me).
GTA3script will allow to use global vars in scripts soon.
Is that a good idea?
And translate from Sanny to GTA3sc is very easy. Check "config\gtasa\commands.xml" (and cleo.xml) from gta3script compiler folder.
It's easier with GUI (not its main purpose).

Fabio Oh, those opcodes actually exist. :)

UPDATE
I haven't noticed that Fabio already answered my question regarding passing strings to functions.
So, here it is. Fully working example on how to show timers and status bars without use of global variables.
Código:
CONST_INT strcpy 0x0069F910

SCRIPT_START
{
  LVAR_INT varptr labptr
  GET_LABEL_POINTER threadMemory labptr
  CALL_FUNCTION strcpy 2 2 ("BB_19" labptr)

  LVAR_INT statBar
  LVAR_INT timer

  statBar = 100
  timerb = 0

  GET_VAR_POINTER timer varptr
  CLEO_CALL DISPLAY_ONSCREEN_TIMER_WITH_STRING_LOCAL 0 (0 labptr varptr) ()

  GET_VAR_POINTER timerb varptr
  CLEO_CALL DISPLAY_ONSCREEN_COUNTER_WITH_STRING_LOCAL 0 (0 labptr 0 varptr) ()

  GET_VAR_POINTER statBar varptr
  CLEO_CALL DISPLAY_ONSCREEN_COUNTER_WITH_STRING_LOCAL 0 (3 labptr 1 varptr) ()

  WHILE statBar > 0
    WAIT 1000
    statBar -= 10
  ENDWHILE

  GET_VAR_POINTER timer varptr
  CLEO_CALL CLEAR_ONSCREEN_TIMER_LOCAL 0 (varptr) ()

  GET_VAR_POINTER timerb varptr
  CLEO_CALL CLEAR_ONSCREEN_COUNTER_LOCAL 0 (varptr) ()

  GET_VAR_POINTER statBar varptr
  CLEO_CALL CLEAR_ONSCREEN_COUNTER_LOCAL 0 (varptr) ()

  TERMINATE_THIS_CUSTOM_SCRIPT
}
{
  LVAR_INT type gxt varptr //in
  DISPLAY_ONSCREEN_TIMER_WITH_STRING_LOCAL:
  varptr -= 0xA49960
  CALL_METHOD 0x0044CD50 0x00BA1788 3 0 (type gxt varptr)
  CLEO_RETURN 0
}
{
  LVAR_INT order gxt type varptr //in
  DISPLAY_ONSCREEN_COUNTER_WITH_STRING_LOCAL:
  varptr -= 0xA49960
  CALL_METHOD 0x0044CDA0 0x00BA1788 4 0 (order gxt type varptr)
  CLEO_RETURN 0
}
{
  LVAR_INT varptr //in
  CLEAR_ONSCREEN_TIMER_LOCAL:
  varptr -= 0xA49960
  CALL_METHOD 0x0044CE60 0x00BA1788 1 0 (varptr)
  CLEO_RETURN 0
}
{
  LVAR_INT varptr //in
  CLEAR_ONSCREEN_COUNTER_LOCAL:
  varptr -= 0xA49960
  CALL_METHOD 0x0044CE80 0x00BA1788 1 0 (varptr)
  CLEO_RETURN 0
}
{
  threadMemory:
  DUMP
    00 00 00 00 00 00 00 00
  ENDDUMP
}
SCRIPT_END
avatar
Mensagens Nível 1
Mensagens Nível 1
Título : curto bastante gta san cs go e battlefield
Mensagens : 16
Reputação : 0
Desde : 31/07/2017
Idade : 19
Localização : São Paulo - SP
Ver perfil do usuário

me ajuda ?

em Seg 31 Jul 2017, 17:52
como eu faço para tipo colocar um policial com uma arma na mao em um lugar do mapa dai tipo se o cj
tentar entrar nesse local a policia ira começar a tirar nele como eu fasso esse "SCRIPT"?
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Título : Noob
Mensagens : 915
Reputação : 28
Desde : 13/08/2015
Localização : Passo de Torres - SC
Ver perfil do usuário

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

em Seg 31 Jul 2017, 18:28
Não adianta pedir as coisas prontas. Estude GTA3Script/SCM.

______________________________
Caso te ajudei em algo, clique no botão de reputação (o "coraçãozinho" na parte de cima da mensagem).
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 Ter 12 Set 2017, 17:21
Passei para avisar que tem uma nova Release do compilador de GTA3Script disponível.

https://github.com/thelink2012/gta3sc/releases

______________________________

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'
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