10. Exercício #1

    Compartilhe
    avatar
    Matheus Rivaldo
    Mensagens Nível 5
    Mensagens Nível 5

    Título : Noob
    Mensagens : 770
    Reputação : 28
    Desde : 13/08/2015
    Localização : Passo de Torres - SC

    Re: 10. Exercício #1

    Mensagem por Matheus Rivaldo em Qua 28 Jun 2017, 22:01

    Fiz um script aqui pra aprender CLEO_CALL e arrays.
    Script:

    Código:

    SCRIPT_START
    {
        NOP
        LVAR_INT i var[5]
        
        WHILE i < 5
            WAIT 0
            GENERATE_RANDOM_INT_IN_RANGE 0 100 var[i]
            i++
        ENDWHILE

        main_loop:
        WAIT 0
        
        IF IS_PLAYER_PLAYING 0
            IF IS_KEY_PRESSED VK_KEY_K
                CLEO_CALL IncreaseDecrease 0 var[0] var[1] var[2] var[3] var[4]
                PRINT_FORMATTED_NOW "%d %d %d %d %d" 1000 var[0] var[1] var[2] var[3] var[4]

                WHILE IS_KEY_PRESSED VK_KEY_K
                    WAIT 0
                ENDWHILE
            ENDIF
        ENDIF

        GOTO main_loop
    }

    {
        IncreaseDecrease:
        LVAR_INT i var[5]

        WHILE i < 5

            WHILE var[i] > 12
                var[i]--
            ENDWHILE

            WHILE var[i] < 12
                var[i]++
            ENDWHILE

            i++
        ENDWHILE
        CLEO_RETURN 0 var[0] var[1] var[2] var[3] var[4]
    }
    SCRIPT_END
    O script tá bom? O que posso melhorar?


    Última edição por Matheus Rivaldo em Qui 29 Jun 2017, 12:42, editado 1 vez(es)
    avatar
    Matheus Rivaldo
    Mensagens Nível 5
    Mensagens Nível 5

    Título : Noob
    Mensagens : 770
    Reputação : 28
    Desde : 13/08/2015
    Localização : Passo de Torres - SC

    Re: 10. Exercício #1

    Mensagem por Matheus Rivaldo em Qui 29 Jun 2017, 12:42

    Alguém?


    ____________________
    Caso te ajudei em algo, clique no botão de reputação (o "+" no canto superior direito da mensagem).

    avatar
    Um Geek
    Mensagens Nível 4
    Mensagens Nível 4

    Mensagens : 293
    Reputação : 83
    Desde : 07/03/2017
    Localização : Los Santos
    Link : http://emcodigo.blogspot.com.br/

    Re: 10. Exercício #1

    Mensagem por Um Geek em Qui 29 Jun 2017, 17:51


    O script tá bom? O que posso melhorar?

    Não sei se deixei passar algo, mas parece esta muito bom este código ai, esta mandando bem. (WINK)


    ____________________


    avatar
    Matheus Rivaldo
    Mensagens Nível 5
    Mensagens Nível 5

    Título : Noob
    Mensagens : 770
    Reputação : 28
    Desde : 13/08/2015
    Localização : Passo de Torres - SC

    Re: 10. Exercício #1

    Mensagem por Matheus Rivaldo em Qui 29 Jun 2017, 18:06

    Valeu. Eu percebi que eu pequei ali onde diminui e aumenta os valores, eu devia ter posto:
    Código:

    WHILE NOT var[i] = 12
        IF var[i] > 12
            var[i]--
        ELSE
            var[i]++
        ENDIF
    ENDWHILE


    ____________________
    Caso te ajudei em algo, clique no botão de reputação (o "+" no canto superior direito da mensagem).

    avatar
    kosticn101
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 29
    Reputação : 2
    Desde : 16/06/2017
    Idade : 20

    Re: 10. Exercício #1

    Mensagem por kosticn101 em Sex 30 Jun 2017, 03:30

    Código:
    IncreaseDecrease:
    LVAR_INT i var[5]
    PRINT_FORMATTED_NOW "%d %d %d %d %d %d" 800 i var[0] var[1] var[2] var[3] var[4] //!!!prints: 0 0 0 0 0 0!!!
    WAIT 800
    Works: CLEO_CALL IncreaseDecrease 0 var[0] var[1] var[2] var[3] var[4] var[0] var[1] var[2] var[3] var[4]


    Última edição por kosticn101 em Ter 04 Jul 2017, 11:55, editado 3 vez(es)
    avatar
    Matheus Rivaldo
    Mensagens Nível 5
    Mensagens Nível 5

    Título : Noob
    Mensagens : 770
    Reputação : 28
    Desde : 13/08/2015
    Localização : Passo de Torres - SC

    Re: 10. Exercício #1

    Mensagem por Matheus Rivaldo em Sex 30 Jun 2017, 13:58

    My objective was setting all variables to 12 with mathematical operations.
    I used CLEO_CALL and arrays because I was learning about them (and I'm still) and I needed to practice.


    ____________________
    Caso te ajudei em algo, clique no botão de reputação (o "+" no canto superior direito da mensagem).

    avatar
    kosticn101
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 29
    Reputação : 2
    Desde : 16/06/2017
    Idade : 20

    Re: 10. Exercício #1

    Mensagem por kosticn101 em Sex 30 Jun 2017, 14:08

    Random values are indeed generated in main part, but they are not passed to cleo_func. All values are zero, you can print them inside cleo_func and see it yourself. You are actualy incrementing five 0s to 12.


    Última edição por kosticn101 em Ter 04 Jul 2017, 09:55, editado 1 vez(es)
    avatar
    Matheus Rivaldo
    Mensagens Nível 5
    Mensagens Nível 5

    Título : Noob
    Mensagens : 770
    Reputação : 28
    Desde : 13/08/2015
    Localização : Passo de Torres - SC

    Re: 10. Exercício #1

    Mensagem por Matheus Rivaldo em Sex 30 Jun 2017, 14:09

    I tought I sent the random values to CLEO_CALL. I'll recreate the script.


    ____________________
    Caso te ajudei em algo, clique no botão de reputação (o "+" no canto superior direito da mensagem).

    avatar
    Matheus Rivaldo
    Mensagens Nível 5
    Mensagens Nível 5

    Título : Noob
    Mensagens : 770
    Reputação : 28
    Desde : 13/08/2015
    Localização : Passo de Torres - SC

    Re: 10. Exercício #1

    Mensagem por Matheus Rivaldo em Sex 30 Jun 2017, 14:17

    Done:
    Script:

    Código:

    SCRIPT_START
    {
        NOP
        LVAR_INT var[5]

        MAIN_LOOP:
        WAIT 0
        IF IS_PLAYER_PLAYING 0
            IF IS_KEY_PRESSED VK_KEY_K
                CLEO_CALL IncreaseDecrease 0 var[0] var[1] var[2] var[3] var[4]
                PRINT_FORMATTED_NOW "%d %d %d %d %d" 1000 var[0] var[1] var[2] var[3] var[4]
                WHILE IS_KEY_PRESSED VK_KEY_K
                    WAIT 0
                ENDWHILE
            ENDIF
        ENDIF

        GOTO MAIN_LOOP
    }

    {
        IncreaseDecrease:
        LVAR_INT i var[5]
        WHILE i <= 4
            GENERATE_RANDOM_INT_IN_RANGE 0 100 var[i]
            WHILE NOT var[i] = 12
                IF var[i] > 12
                    var[i]--
                ELSE
                    var[i]++
                ENDIF
            ENDWHILE
            i++
        ENDWHILE
        CLEO_RETURN 0 var[0] var[1] var[2] var[3] var[4]
    }
    SCRIPT_END
    Now is it correct? Thanks for your feedback.


    ____________________
    Caso te ajudei em algo, clique no botão de reputação (o "+" no canto superior direito da mensagem).

    avatar
    kosticn101
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 29
    Reputação : 2
    Desde : 16/06/2017
    Idade : 20

    Re: 10. Exercício #1

    Mensagem por kosticn101 em Sex 30 Jun 2017, 14:30

    Yeah, looks ok.

    I would like to know is it possible to make a script like you did first time, but to pass values all at once (not like I did in first post when I passed one by one). Also, can you send text/string to cleo_func? It looks to me like it's impossible...


    Última edição por kosticn101 em Ter 04 Jul 2017, 09:56, editado 1 vez(es)
    avatar
    Matheus Rivaldo
    Mensagens Nível 5
    Mensagens Nível 5

    Título : Noob
    Mensagens : 770
    Reputação : 28
    Desde : 13/08/2015
    Localização : Passo de Torres - SC

    Re: 10. Exercício #1

    Mensagem por Matheus Rivaldo em Sex 30 Jun 2017, 14:31

    @kosticn101 escreveu:Also, can you send text/string to cleo_func? It looks to me like it's impossible...
    I'll try to do it.


    ____________________
    Caso te ajudei em algo, clique no botão de reputação (o "+" no canto superior direito da mensagem).

    avatar
    Matheus Rivaldo
    Mensagens Nível 5
    Mensagens Nível 5

    Título : Noob
    Mensagens : 770
    Reputação : 28
    Desde : 13/08/2015
    Localização : Passo de Torres - SC

    Re: 10. Exercício #1

    Mensagem por Matheus Rivaldo em Sex 30 Jun 2017, 14:49

    I couldn't do this, I think it's impossible. Maybe @Junior_Djjr can tell us.


    ____________________
    Caso te ajudei em algo, clique no botão de reputação (o "+" no canto superior direito da mensagem).

    avatar
    Fabio
    Programador - Avançado
    Programador - Avançado

    Mensagens : 18698
    Reputação : 338
    Desde : 04/05/2012
    Idade : 20
    Link : gtamodvicio.blogspot.com

    Re: 10. Exercício #1

    Mensagem por Fabio em Sex 30 Jun 2017, 17:19

    @Matheus Rivaldo escreveu:I couldn't do this, I think it's impossible. Maybe @Junior_Djjr can tell us.

    You can create a buffer, copy your string to it and send it address to the CLEO function.

    Código:

        LVAR_INT out
        GET_LABEL_POINTER threadMemory      out

        CONST_INT      strcpy  0x0069F910
        CALL_FUNCTION          strcpy  2 2    ("YOUR STRING"    out)

        CLEO_CALL function 0 (out)

    Código:

    {
    threadMemory:
        DUMP
            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        ENDDUMP
    }

    http://brmodstudio.forumeiros.com/t3210-x-thread-memory
    http://brmodstudio.forumeiros.com/t5034-x-engenharia-reversa-basico


    This script prints the typed chars buffer:
    Código:
    SCRIPT_START
    {
        LVAR_INT out
        GET_LABEL_POINTER threadMemory      out
    ad_infinitum:
        WAIT 0
        IF TEST_CHEAT "POTASSIO"
            WHILE    NOT IS_KEY_PRESSED 13
                WAIT 0
                CLEO_CALL gameInputBufferCopyAndRevert 0 (out)
                PRINT_FORMATTED_NOW "%s" 1000 $out
            ENDWHILE
        ENDIF
        GOTO ad_infinitum
    }
    SCRIPT_END

    {
    gameInputBufferCopyAndRevert: /* Input: out address */
        LVAR_INT        outptr  strsize
        CONST_INT      strcpy  0x0069F910
        CONST_INT      strlen  0x00826330

        CALL_FUNCTION          strcpy  2 2    (0x00969110    outptr)
        CALL_FUNCTION_RETURN    strlen  1 1    (outptr)      (strsize)

        LVAR_INT    i  rev
        i = 0

        rev    = outptr
        rev    = rev + strsize
        rev    = rev - 1
        strsize = strsize / 2

        WHILE i < strsize
            LVAR_INT a  b

            READ_MEMORY    outptr      1  0  a
            READ_MEMORY    rev        1  0  b
               
            WRITE_MEMORY    outptr      1  b  0
            WRITE_MEMORY    rev        1  a  0

            rev    = rev - 1
            outptr  = outptr + 1
            i = i + 1
        ENDWHILE

        CLEO_RETURN 0
    }

    {
    threadMemory:
        DUMP
            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        ENDDUMP
    }


    ____________________

    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
    Matheus Rivaldo
    Mensagens Nível 5
    Mensagens Nível 5

    Título : Noob
    Mensagens : 770
    Reputação : 28
    Desde : 13/08/2015
    Localização : Passo de Torres - SC

    Re: 10. Exercício #1

    Mensagem por Matheus Rivaldo em Sex 30 Jun 2017, 17:32

    Thanks, I'll study about it later.
    Fabio, can you rate my script up there?


    ____________________
    Caso te ajudei em algo, clique no botão de reputação (o "+" no canto superior direito da mensagem).

    avatar
    Furiioso
    Designer - Intermediário
    Designer - Intermediário

    Título : O menino mais on da BMS.
    Mensagens : 1879
    Reputação : 11
    Desde : 16/02/2017
    Link : youtube.com/channel/UCPihhJqS2K5uqXfzIu3fMZw

    Re: 10. Exercício #1

    Mensagem por Furiioso em Sex 30 Jun 2017, 17:34

    Fabio é brasileiro. ;-;


    ____________________
    Clique e me ajude. :)
    avatar
    Matheus Rivaldo
    Mensagens Nível 5
    Mensagens Nível 5

    Título : Noob
    Mensagens : 770
    Reputação : 28
    Desde : 13/08/2015
    Localização : Passo de Torres - SC

    Re: 10. Exercício #1

    Mensagem por Matheus Rivaldo em Sex 30 Jun 2017, 17:34

    Eu sei, mas ele começou falando em inglês e eu terminei. Não curto misturar inglês com português.


    ____________________
    Caso te ajudei em algo, clique no botão de reputação (o "+" no canto superior direito da mensagem).

    avatar
    Furiioso
    Designer - Intermediário
    Designer - Intermediário

    Título : O menino mais on da BMS.
    Mensagens : 1879
    Reputação : 11
    Desde : 16/02/2017
    Link : youtube.com/channel/UCPihhJqS2K5uqXfzIu3fMZw

    Re: 10. Exercício #1

    Mensagem por Furiioso em Sex 30 Jun 2017, 17:41

    Ah okay,i não sabia.


    ____________________
    Clique e me ajude. :)
    avatar
    Matheus Rivaldo
    Mensagens Nível 5
    Mensagens Nível 5

    Título : Noob
    Mensagens : 770
    Reputação : 28
    Desde : 13/08/2015
    Localização : Passo de Torres - SC

    Re: 10. Exercício #1

    Mensagem por Matheus Rivaldo em Sex 30 Jun 2017, 17:47

    Tomara que o Fabio entre logo :v:. Quero melhorar aquele meu script.


    ____________________
    Caso te ajudei em algo, clique no botão de reputação (o "+" no canto superior direito da mensagem).

    avatar
    Um Geek
    Mensagens Nível 4
    Mensagens Nível 4

    Mensagens : 293
    Reputação : 83
    Desde : 07/03/2017
    Localização : Los Santos
    Link : http://emcodigo.blogspot.com.br/

    Re: 10. Exercício #1

    Mensagem por Um Geek em Sex 30 Jun 2017, 19:15

    ↑ Seu código esta bom, claro que tem vários meios de fazer e isto depende de cada um, talvez por isto o Djjr usou este teste. Daria para fazer em um escopo só, mas você preferiu criar um função em outro escopo que já retorna as variáveis com valor 12, algo que poderia mudar um pouco seria usar repeat no lugar do while ai nem precisaria usar o i++ (HMM)

    code:
    Código:
        REPEAT 4 i
                IF var[i] > 12
                    var[i]--
                ELSE
                    var[i]++
                ENDIF
        ENDREPEAT

    Creio que para praticar poderia tentar fazer um mod até como um car spawner sem colar, eu pratiquei bastante assim (HMM)


    ____________________


    avatar
    Matheus Rivaldo
    Mensagens Nível 5
    Mensagens Nível 5

    Título : Noob
    Mensagens : 770
    Reputação : 28
    Desde : 13/08/2015
    Localização : Passo de Torres - SC

    Re: 10. Exercício #1

    Mensagem por Matheus Rivaldo em Sex 30 Jun 2017, 19:16

    Valeu pelas sugestões. Vou tentar fazer um spawner.


    ____________________
    Caso te ajudei em algo, clique no botão de reputação (o "+" no canto superior direito da mensagem).

    avatar
    Matheus Rivaldo
    Mensagens Nível 5
    Mensagens Nível 5

    Título : Noob
    Mensagens : 770
    Reputação : 28
    Desde : 13/08/2015
    Localização : Passo de Torres - SC

    Re: 10. Exercício #1

    Mensagem por Matheus Rivaldo em Sab 01 Jul 2017, 00:18

    Criei:
    Car spawner:

    Código:

    SCRIPT_START
    {
        NOP
        LVAR_INT enable handle modelid scplayer
        GET_PLAYER_CHAR 0 scplayer
        IF handle = -1
            CREATE_CAR 0 0.0 0.0 0.0 handle
        ENDIF
        main_loop:
        WAIT 0
        IF TEST_CHEAT "enable"
        AND IS_PLAYER_PLAYING 0
        AND NOT IS_CHAR_SITTING_IN_ANY_CAR scplayer
        AND enable = 0
            FREEZE_CHAR_POSITION_AND_DONT_LOAD_COLLISION scplayer 1
            enable = 1
            modelid = 400
        ENDIF

        IF enable = 1
            PRINT_FORMATTED_NOW "Commands: Use the arrows to select a car. Press space to spawn a car and warp into it. ~n~ Press return to cancel" 0 modelid
            IF modelid > 611
                modelid = 400
            ENDIF
            IF modelid < 400
                modelid = 611
            ENDIF
            IF IS_KEY_PRESSED VK_UP
                IF DOES_VEHICLE_EXIST handle
                    DELETE_CAR handle
                ENDIF
                CLEO_CALL Create 0 handle modelid handle modelid
                WHILE IS_KEY_PRESSED VK_UP
                    WAIT 0
                ENDWHILE
                modelid++
            ENDIF
            IF IS_KEY_PRESSED VK_DOWN
                IF DOES_VEHICLE_EXIST handle
                    DELETE_CAR handle
                ENDIF
                CLEO_CALL Create 0 handle modelid handle modelid
                WHILE IS_KEY_PRESSED VK_DOWN
                    WAIT 0
                ENDWHILE
                modelid--
            ENDIF
            IF IS_KEY_PRESSED VK_SPACE
                FREEZE_CHAR_POSITION_AND_DONT_LOAD_COLLISION scplayer 0
                WARP_CHAR_INTO_CAR scplayer handle
                enable = 0
            ENDIF
            IF IS_KEY_PRESSED VK_RETURN
                FREEZE_CHAR_POSITION_AND_DONT_LOAD_COLLISION scplayer 0
                DELETE_CAR handle
                enable = 0
            ENDIF
        ENDIF

        GOTO main_loop
    }

    {
        Create:
        LVAR_INT handle modelid scplayer
        LVAR_FLOAT x y z
        GET_PLAYER_CHAR 0 scplayer
        GET_CHAR_COORDINATES scplayer x y z
        REQUEST_MODEL modelid
        WHILE NOT HAS_MODEL_LOADED modelid
            WAIT 0
        ENDWHILE
        x += 4.0
        y += 4.0
        CREATE_CAR modelid x y z handle
        MARK_CAR_AS_NO_LONGER_NEEDED handle
        CLEO_RETURN 0 handle modelid
    }
    SCRIPT_END
    Eu demorei muito pois dava crash e eu só fui descobrir depois de horas o que eu tinha errado: Eu esqueci de carregar o modelo. O script tá meio repetitivo pois deu muitos erros, eu fui alterando coisas e é meu primeiro mod. O que posso melhorar?


    ____________________
    Caso te ajudei em algo, clique no botão de reputação (o "+" no canto superior direito da mensagem).

    avatar
    Fabio
    Programador - Avançado
    Programador - Avançado

    Mensagens : 18698
    Reputação : 338
    Desde : 04/05/2012
    Idade : 20
    Link : gtamodvicio.blogspot.com

    Re: 10. Exercício #1

    Mensagem por Fabio em Sab 01 Jul 2017, 02:39

    @Matheus Rivaldo escreveu:Tomara que o Fabio entre logo :v:. Quero melhorar aquele meu script.

    Parece ok philosoraptor

    O do spawner preciso olhar com mais calma, mas parece bom.


    ____________________

    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
    Um Geek
    Mensagens Nível 4
    Mensagens Nível 4

    Mensagens : 293
    Reputação : 83
    Desde : 07/03/2017
    Localização : Los Santos
    Link : http://emcodigo.blogspot.com.br/

    Re: 10. Exercício #1

    Mensagem por Um Geek em Qua 05 Jul 2017, 20:09

    Refiz o teste só para recapitular mesmo e vê no que eu poderia mudar agora  (HMM)

    Antes:

    Código:

    SCRIPT_START
    {
    NOP
    // DECLARADO VARIAVEIS
    LVAR_INT var1 var2 var3 var4 var5
     
    // DANDO VALORES ALEATORIOS
    GENERATE_RANDOM_INT_IN_RANGE 0 100 var1
    GENERATE_RANDOM_INT_IN_RANGE 0 100 var2
    GENERATE_RANDOM_INT_IN_RANGE 0 100 var3
    GENERATE_RANDOM_INT_IN_RANGE 0 100 var4
    GENERATE_RANDOM_INT_IN_RANGE 0 100 var5
     
    WAIT 6000 //-- ESPERAR SAIR DA TELA PRETA
    PRINT_STRING_NOW "INICIAR EXERCICIO" 1000 //-- MENSAGEM DE INICIO
    WAIT 1000 //-- ESPERAR A MENSAGEM APARECER
     
    //-- inicio do loop
    main_loop:
    WAIT 0
    //-- BLOCO VAR1
    IF NOT var1 = 12
        IF var1 < 12
            var1 = var1 + 1
        ENDIF
        IF var1 > 12
            var1 = var1 - 1
        ENDIF
    ENDIF
     
    //-- BLOCO VAR2
    IF NOT var2 = 12
        IF var2 < 12
            var2 = var2 + 1
        ENDIF
        IF var2 > 12
            var2 = var2 - 1
        ENDIF
    ENDIF
     
    //-- BLOCO VAR3
    IF NOT var3 = 12
        IF var3 < 12
            var3 = var3 + 1
        ENDIF
        IF var3 > 12
            var3 = var3 - 1
        ENDIF
    ENDIF
     
    //-- BLOCO VAR4
    IF NOT var4 = 12
        IF var4 < 12
            var4 = var4 + 1
        ENDIF
        IF var4 > 12
            var4 = var4 - 1
        ENDIF
    ENDIF
     
    //-- BLOCO VAR5
    IF NOT var5 = 12
        IF var5 < 12
            var5 = var5 + 1
        ENDIF
        IF var5 > 12
            var5 = var5 - 1
        ENDIF
    ENDIF
     
    // -- mostrar script rodando
    PRINT_FORMATTED_NOW "Valores atuais das variaveis: %d %d %d %d %d" 10000 var1 var2 var3 var4 var5
     
    //--- CONFIRMANDO SE ESTA TUDO CERTO
    IF var1 = 12
    AND var2 = 12
    AND var3 = 12
    AND var4 = 12
    AND var5 = 12
        PRINT_FORMATTED_NOW "Todas as variaveis sao 12: %d %d %d %d %d" 2000 var1 var2 var3 var4 var5
        WAIT 2000 // ESPERAR
        PRINT_STRING_NOW "CONCLUIDO!" 1000 //-- MENSAGEM DE FIM
        TERMINATE_THIS_CUSTOM_SCRIPT // FIM
    ENDIF
    GOTO main_loop
    }
    SCRIPT_END

    Agora:

    Código:
    SCRIPT_START
    {
        NOP

        LVAR_INT var[5] ct

        REPEAT 5 ct
            GENERATE_RANDOM_INT_IN_RANGE 0 100 var[ct]
        ENDREPEAT

        SET_PLAYER_CONTROL 0 0

        WHILE NOT IS_BUTTON_PRESSED 0 10
        AND NOT IS_BUTTON_PRESSED 0 11
            WAIT 0
            PRINT_FORMATTED_NOW "~k~~CONVERSATION_YES~ Continuar ou ~k~~CONVERSATION_NO~ Cancelar ~n~Valores das variaveis - %d %d %d %d %d" 300 var[0] var[1] var[2] var[3] var[4]
            IF IS_BUTTON_PRESSED 0 11
                GOSUB FUNCTION
            ENDIF
        ENDWHILE

        SET_PLAYER_CONTROL 0 1

        TERMINATE_THIS_CUSTOM_SCRIPT

        FUNCTION:
            REPEAT 5 ct
                WHILE (var[ct] < 12)
                    var[ct]++
                ENDWHILE
                WHILE (var[ct] > 12)
                    var[ct]--
                ENDWHILE
            ENDREPEAT
            PRINT_FORMATTED_NOW "Fim %d %d %d %d %d" 3000 var[0] var[1] var[2] var[3] var[4]
        RETURN

    }
    SCRIPT_END


    ____________________


    avatar
    Furiioso
    Designer - Intermediário
    Designer - Intermediário

    Título : O menino mais on da BMS.
    Mensagens : 1879
    Reputação : 11
    Desde : 16/02/2017
    Link : youtube.com/channel/UCPihhJqS2K5uqXfzIu3fMZw

    Re: 10. Exercício #1

    Mensagem por Furiioso em Qua 05 Jul 2017, 20:14

    Diminui bastante,em... :Y:
    avatar
    Matheus Rivaldo
    Mensagens Nível 5
    Mensagens Nível 5

    Título : Noob
    Mensagens : 770
    Reputação : 28
    Desde : 13/08/2015
    Localização : Passo de Torres - SC

    Re: 10. Exercício #1

    Mensagem por Matheus Rivaldo em Qua 05 Jul 2017, 20:20

    Script foda. Eu usaria WHILE em vez de REPEAT, mas isso vai do gosto de cada um :v:


    ____________________
    Caso te ajudei em algo, clique no botão de reputação (o "+" no canto superior direito da mensagem).


    Conteúdo patrocinado

    Re: 10. Exercício #1

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Qui 20 Jul 2017, 17:46