10. Exercício #1

    Compartilhe
    avatar
    ThePedro004
    Designer - Intermediário
    Designer - Intermediário

    Título : Trakinas Boy
    Mensagens : 3163
    Reputação : 125
    Desde : 13/10/2012
    Idade : 16
    Localização : Terra Mágica dos Poneys
    Link : MixMods.com.br

    Re: 10. Exercício #1

    Mensagem por ThePedro004 em Sab 28 Jan 2017, 23:14

    Eu ACHO que usa o Wait no inicio de cada loop.


    ____________________
    Configs:

    Processador : Intel Core 2 Quad Q8200 2.34 Ghz
    Memória RAM : 4GB DDR3
    Placa de Vídeo : GTX 750 1GB
    Sistema Operacional :  Windows 10 64 Bits Pro
    avatar
    Rodrigo294
    Mensagens Nível 2
    Mensagens Nível 2

    Mensagens : 50
    Reputação : 2
    Desde : 14/03/2015

    Re: 10. Exercício #1

    Mensagem por Rodrigo294 em Dom 29 Jan 2017, 00:14

    @Rodrigo294 escreveu:
    Nos "IFS" do "Esse script aqui tá uma porra" não deveria ser "IF OR"? E não era mais fácil usar "IF NOT var = 12" invés de usar dois "ifs" com > e < ?

    @Und explicação melhor:
    @Und escreveu:
    então quando chegasse nelas as variaveis ja seriam doze
    Quando chegar nelas na primeira vez, não seriam 12 (na vdd a chance de ser é bem pequena). No código você fez um loop que a cada ciclo as vars ficariam cada vez mais próximas de 12 até que todas fiquem com 12.
    Quando for executado isso em um dos ciclos do loop:
    Spoiler:

    Código:

    IF var1 >= 12
    AND var2 >= 12
    AND var3 >= 12
    AND var4 >= 12
    AND var5 >= 12
        PRINT_FORMATTED_NOW "Esse script aqui tá uma porra" 1000
    ENDIF
    Mostrará a mensagem se todas vars forem maior ou igual a 12, então se chegar ao resultado esperado (todas com valor 12) essa mensagem ainda será mostrada, sobrescrevendo a mensagem "Todas as variaveis são 12...". Se você quer que mostre a mensagem de "erro" enquanto todas as var não sejam 12 então você deveria usar "OR" no lugar do "AND", ">" no lugar do ">=" e "<" no lugar do "<=".
    Assim:
    Spoiler:

    Código:

    IF var1 > 12
    OR var2 > 12
    OR var3 > 12
    OR var4 > 12
    OR var5 > 12
        PRINT_FORMATTED_NOW "Esse script aqui tá uma porra" 1000
    ENDIF

    IF var1 < 12
    OR var2 < 12
    OR var3 < 12
    OR var4 < 12
    OR var5 < 12
        PRINT_FORMATTED_NOW "Esse script aqui tá uma porra" 1000
    ENDIF
    Se você quer minimizar seu código vc pode usar "IF NOT var = 12":
    Spoiler:

    Código:

    SCRIPT_START
    {
    NOP

    LVAR_INT var1 var2 var3 var4 var5

    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

    script_test:
    WAIT 0

    IF NOT var1 = 12
        IF var1 > 12
            var1 -= 1
        ELSE
            var1 += 1
        ENDIF
    ENDIF

    IF NOT var2 = 12
        IF var2> 12
            var2 -= 1
        ELSE
            var2 += 1
        ENDIF
    ENDIF

    IF NOT var3 = 12
        IF var3> 12
            var3 -= 1
        ELSE
            var3 += 1
        ENDIF
    ENDIF

    IF NOT var4 = 12
        IF var4> 12
            var4 -= 1
        ELSE
            var4 += 1
        ENDIF
    ENDIF

    IF NOT var5 = 12
        IF var5> 12
            var5 -= 1
        ELSE
            var5 += 1
        ENDIF
    ENDIF

    IF var1=12
    AND var2=12
    AND var3=12
    AND var4=12
    AND var5=12
        PRINT_FORMATTED_NOW "Todas as variaveis são 12: %d %d %d %d %d" 10000 var1 var2 var3 var4 var5
    ENDIF

    IF NOT var1 = 12
    OR NOT var1 = 12
    OR NOT var1 = 12
    OR NOT var1 = 12
    OR NOT var1 = 12
        PRINT_FORMATTED_NOW "Esse script aqui tá uma porra" 1000
    ENDIF

    goto script_test

    }
    SCRIPT_END

    @Linacanin veja o tutorial de loops novamente.
    Você deve usar o wait pelo menos uma vez dentro de cada loop (independente do tipo de loop) porque senão o jogo vai processar apenas o seu loop e vai congelar o jogo. Em outros lugares é apenas quando vc desejar que o jogo espere antes de continuar a executar o script.
    avatar
    Rodrigo294
    Mensagens Nível 2
    Mensagens Nível 2

    Mensagens : 50
    Reputação : 2
    Desde : 14/03/2015

    Re: 10. Exercício #1

    Mensagem por Rodrigo294 em Dom 29 Jan 2017, 02:12

    @Rodrigo294 escreveu:
    Você deve usar o wait pelo menos uma vez dentro de cada loop (independente do tipo de loop) porque senão o jogo vai processar apenas o seu loop e vai congelar o jogo.
    @Linacanin Eu estava errado ;-; vc pode fazer pequenos loops para automatizar algumas coisa que não precisa que usar wait. Fiz um exemplo usando essa atividade:
    Exemplo (um pouco complexo):

    Código:

    SCRIPT_START
    {
        NOP
     
        LVAR_INT var[5] count all12

        main_loop:
        WAIT 0
        IF TEST_CHEAT "GERAR"
            count = 0
            WHILE count < 5
                GENERATE_RANDOM_INT_IN_RANGE 0 100 var[count]
                count++
            ENDWHILE
            sub_loop:
            all12 = TRUE
            count = 0
            WHILE count < 5
                IF NOT var[count] = 12
                    all12 = FALSE
                    IF var[count] > 12
                        var[count]--
                    ELSE
                        var[count]++
                    ENDIF
                ENDIF
                count++
            ENDWHILE
            IF all12 = TRUE
                PRINT_FORMATTED_NOW "Todas as vars sao 12: %i %i %i %i %i" 5000 var[0] var[1] var[2] var[3] var[4]
                GOTO main_loop
            ELSE
                GOTO sub_loop
            ENDIF
        ENDIF
        GOTO main_loop
    }
    SCRIPT_END
    avatar
    israel
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Mensagens : 657
    Reputação : 111
    Desde : 22/09/2015
    Idade : 19
    Localização : Salvador - BA

    Re: 10. Exercício #1

    Mensagem por israel em Dom 29 Jan 2017, 02:30

    Código:
            (...)
            IF all12 = TRUE
                PRINT_FORMATTED_NOW "Todas as vars sao 12: %i %i %i %i %i" 5000 var[0] var[1] var[2] var[3] var[4]
                GOTO main_loop // desnecessário
            ELSE
                GOTO sub_loop
            ENDIF
        ENDIF
        GOTO main_loop
    Como dito no tutorial, a leitura do script é de cima pra baixo, se all12 for verdadeiro já vai descer pro "GOTO main_loop" no fim.


    ____________________
    " Everyone gonna remember my name ! "

    JuniorEDiT
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 23
    Reputação : 0
    Desde : 06/07/2016
    Idade : 16
    Localização : MINAS GERAIS !

    Re: 10. Exercício #1

    Mensagem por JuniorEDiT em Dom 29 Jan 2017, 03:38

    megusta


    Última edição por JuniorEDiT em Dom 29 Jan 2017, 12:04, editado 1 vez(es)
    avatar
    israel
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Mensagens : 657
    Reputação : 111
    Desde : 22/09/2015
    Idade : 19
    Localização : Salvador - BA

    Re: 10. Exercício #1

    Mensagem por israel em Dom 29 Jan 2017, 03:58

    Código:
    IF NOT var1 = 12
        IF var1 > 12
            var1 -= 1
        ELSE
        var1 < 12 // Isso aqui tá errado
            var1 += 1
        ENDIF
    ENDIF
    // aqui você não tá fazendo nada
    IF NOT var1 = 12 // tá checando se var1 é diferente de 12
        WHILE var1 = 12 // e depois um loop "enquanto var1 for igual a 12", mas você acabou de checar se é diferente (??)
            WAIT 0
        ENDWHILE
    ENDIF
    (...)
    PRINT_FORMATTED_NOW "TODAS SAO : %d d% d% d% %d" 10000 var1 var2 var3 var4 var5 // isso aqui também tá errado


    ____________________
    " Everyone gonna remember my name ! "
    avatar
    THSouzza
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 3
    Reputação : 0
    Desde : 23/01/2017
    Idade : 15
    Localização : São Paulo
    Link : https://www.youtube.com/c/THSouzza

    Re: 10. Exercício #1

    Mensagem por THSouzza em Dom 29 Jan 2017, 10:14

    Tive que abrir 3 dicas :/
    Mas conseguir:

    Spoiler:

    Código:
    SCRIPT_START
    {
        NOP

        WAIT 0

        LVAR_INT var1 var2 var3 var4 var5
        THSouzza:
        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 0
        WHILE NOT var1 = 12
            IF var1 > 12
                var1 -= 1
            ELSE
                var1 += 1
            ENDIF
        ENDWHILE

        var2 = var1
        var3 = var1
        var4 = var1
        var5 = var1

        WAIT 0
        PRINT_FORMATTED_NOW "Todas as variaveis sao 12: %d %d %d %d %d" 10000 var1 var2 var3 var4 var5
        GOTO THSouzza
    }
    SCRIPT_END
    avatar
    Rodrigo294
    Mensagens Nível 2
    Mensagens Nível 2

    Mensagens : 50
    Reputação : 2
    Desde : 14/03/2015

    Re: 10. Exercício #1

    Mensagem por Rodrigo294 em Dom 29 Jan 2017, 10:16

    @israel escreveu:
    Spoiler:

    Código:
            (...)
            IF all12 = TRUE
                PRINT_FORMATTED_NOW "Todas as vars sao 12: %i %i %i %i %i" 5000 var[0] var[1] var[2] var[3] var[4]
                GOTO main_loop // desnecessário
            ELSE
                GOTO sub_loop
            ENDIF
        ENDIF
        GOTO main_loop
    Como dito no tutorial, a leitura do script é de cima pra baixo, se all12 for verdadeiro já vai descer pro "GOTO main_loop" no fim.
    vlw :v:
    avatar
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Não quero acreditar, quero saber.
    Mensagens : 21606
    Reputação : 633
    Desde : 03/05/2012
    Idade : 21
    Localização : Ibitinga - SP
    Link : www.MixMods.com.br

    Re: 10. Exercício #1

    Mensagem por Junior_Djjr em Dom 29 Jan 2017, 13:23

    @THSouzza escreveu:Tive que abrir 3 dicas :/
    Mas conseguir:

    Spoiler:

    Código:
    SCRIPT_START
    {
        NOP

        WAIT 0

        LVAR_INT var1 var2 var3 var4 var5
        THSouzza:
        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 0
        WHILE NOT var1 = 12
            IF var1 > 12
                var1 -= 1
            ELSE
                var1 += 1
            ENDIF
        ENDWHILE

        var2 = var1
        var3 = var1
        var4 = var1
        var5 = var1

        WAIT 0
        PRINT_FORMATTED_NOW "Todas as variaveis sao 12: %d %d %d %d %d" 10000 var1 var2 var3 var4 var5
        GOTO THSouzza
    }
    SCRIPT_END
    O mesmo do ThePedro004
    @Junior_Djjr escreveu:Você setou a variável, também disse que pode fazer nada desse tipo, mas você ajeitou o valor de uma, então menos mal, já que era só fazer nas outras.
    (pelo menos isso é criativo, né... já que repetir em todas as 5 fica feio o script)
    Também nas regras pediu pra terminar o script, parando e tal de algum modo, mas enfim, não importa muito também.


    ____________________
    avatar
    Bruno_santos
    Mensagens Nível 3
    Mensagens Nível 3

    Mensagens : 104
    Reputação : 2
    Desde : 01/11/2012

    Re: 10. Exercício #1

    Mensagem por Bruno_santos em Dom 29 Jan 2017, 16:21

    Me lembra muito o C++ (Eu sei o BASICÃO), ainda assim tive que reler o tutorial de condições.
    foi muito bom ter esperado o seu tutorial, porque tenho certeza que se eu tivesse tentando iniciar no sanny builder, estaria boiando até agora.

    Spoiler:
    Código:
     SCRIPT_START
    {
    NOP

    LVAR_INT modelo, modelo1, modelo2, modelo3, modelo4

    GENERATE_RANDOM_INT_IN_RANGE 0 100 modelo
    GENERATE_RANDOM_INT_IN_RANGE 0 100 modelo1
    GENERATE_RANDOM_INT_IN_RANGE 0 100 modelo2
    GENERATE_RANDOM_INT_IN_RANGE 0 100 modelo3
    GENERATE_RANDOM_INT_IN_RANGE 0 100 modelo4

    main_loop:
    WAIT 0

    //iniciar calibração
    IF IS_KEY_PRESSED VK_KEY_H
        IF modelo > 12
            modelo -= 1
            IF modelo < 12
                modelo += 1
            ENDIF
        ENDIF
    // 1
        IF modelo1 > 12
            modelo1 -= 1
            IF modelo1 < 12
                modelo1 += 1
            ENDIF
        ENDIF
    // 2
        IF modelo2 > 12
            modelo2 -= 1
            IF modelo2 < 12
                modelo2 += 1
            ENDIF
        ENDIF
    // 3
        IF modelo3 > 12
            modelo3 -= 1
            IF modelo3 < 12
                modelo3 += 1
            ENDIF
        ENDIF
    // 4
        IF modelo4 > 12
            modelo4 -= 1
            IF modelo4 < 12
                modelo4 += 1
            ENDIF
        ENDIF
    ENDIF

    //Exibição das variaveis   
    PRINT_FORMATTED_NOW "Todas as variaveis sao 12: %d %d %d %d %d" 10000 modelo modelo1 modelo2 modelo3 modelo4
    GOTO main_loop

    }
    SCRIPT_END


    ____________________
    Minha maquina de calor:
    Intel Core i5-3230M.
    6GB Ram.
    Intel® HD Graphics 4000.
    Windows 10 LTSB.
    avatar
    israel
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Mensagens : 657
    Reputação : 111
    Desde : 22/09/2015
    Idade : 19
    Localização : Salvador - BA

    Re: 10. Exercício #1

    Mensagem por israel em Dom 29 Jan 2017, 16:43

    Seria bom você ler de novo. Você pôs pra checar se a var é menor que 12 dentro da condição que checa se é maior, como a var vai ser maior e menor que 12 ao mesmo tempo ? Se você fizesse as condições independentes (fora), estaria certo, mas do jeito que você fez, vai ser muito raro todas as vars serem 12.


    ____________________
    " Everyone gonna remember my name ! "

    mathnoobsxx
    Mensagens Nível 4
    Mensagens Nível 4

    Título : Anteriormente "Pedreiro Master"
    Mensagens : 423
    Reputação : 10
    Desde : 13/08/2015
    Idade : 12
    Localização : Passo de Torres - SC
    Link : nusei

    Re: 10. Exercício #1

    Mensagem por mathnoobsxx em Dom 29 Jan 2017, 20:35

    Fiz em 2 vars porque tava sem tempo, tá certo? se tiver errado sem rage pls
    Spoiler:
    Código:
     SCRIPT_START
    {
    NOP

    LVAR_INT var1 var2
    GENERATE_RANDOM_INT_IN_RANGE 0 100 var1
    GENERATE_RANDOM_INT_IN_RANGE 0 100 var2

    MAIN_LOOP:
    WAIT 0

    WHILE var1 > 12
        WAIT 0
        var1 -= 1
    ENDWHILE

    WHILE var1 < 12
        WAIT 0
        var1 += 1
    ENDWHILE

    WHILE var2 > 12
        WAIT 0
        var2 -= 1
    ENDWHILE

    WHILE var2 < 12
        WAIT 0
        var2 += 1
    ENDWHILE

    WHILE IS_KEY_PRESSED VK_KEY_H
        WAIT 0
        PRINT_FORMATTED_NOW "%d %d" 1 var1 var2
    ENDWHILE

    GOTO MAIN_LOOP
    }
    SCRIPT_END


    ____________________
    Se te ajudei de alguma forma, por favor clique no botão de reputação (o "+" verde).

    Meu PC:

    Processador: Intel core 2 quad Q8400 2.66 Ghz
    Placa de vídeo: GT 240 (vou trocá-la)
    Fonte: Corsair CX-500 80 plus bronze
    Directx: 10
    6GB RAM
    avatar
    israel
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Mensagens : 657
    Reputação : 111
    Desde : 22/09/2015
    Idade : 19
    Localização : Salvador - BA

    Re: 10. Exercício #1

    Mensagem por israel em Dom 29 Jan 2017, 21:49

    Tá meio certo. :)


    ____________________
    " Everyone gonna remember my name ! "

    mathnoobsxx
    Mensagens Nível 4
    Mensagens Nível 4

    Título : Anteriormente "Pedreiro Master"
    Mensagens : 423
    Reputação : 10
    Desde : 13/08/2015
    Idade : 12
    Localização : Passo de Torres - SC
    Link : nusei

    Re: 10. Exercício #1

    Mensagem por mathnoobsxx em Dom 29 Jan 2017, 22:18

    Eu podia ter feito assim: Lí os scripts dos outros pra ter ideia de setar a var :v
    Spoiler:
    Código:
      
    SCRIPT_START
    {
    NOP

    LVAR_INT var1 var2 var3 var4 var5
    GENERATE_RANDOM_INT_IN_RANGE 0 100 var1
    GENERATE_RANDOM_INT_IN_RANGE 0 100 var2

    MAIN_LOOP:
    WAIT 0

    WHILE var1 > 12
       WAIT 0
       var1 -= 1
    ENDWHILE

    WHILE var1 < 12
       WAIT 0
       var1 += 1
    ENDWHILE

    var2 = var1
    var3 = var1
    var4 = var1
    var5 = var1

    WHILE IS_KEY_PRESSED VK_KEY_H
       WAIT 0
       PRINT_FORMATTED_NOW "%d %d %d %d %d" 1 var1 var2 var3 var4 var5
    ENDWHILE

    GOTO MAIN_LOOP
    }
    SCRIPT_END


    ____________________
    Se te ajudei de alguma forma, por favor clique no botão de reputação (o "+" verde).

    Meu PC:

    Processador: Intel core 2 quad Q8400 2.66 Ghz
    Placa de vídeo: GT 240 (vou trocá-la)
    Fonte: Corsair CX-500 80 plus bronze
    Directx: 10
    6GB RAM
    avatar
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Não quero acreditar, quero saber.
    Mensagens : 21606
    Reputação : 633
    Desde : 03/05/2012
    Idade : 21
    Localização : Ibitinga - SP
    Link : www.MixMods.com.br

    Re: 10. Exercício #1

    Mensagem por Junior_Djjr em Dom 29 Jan 2017, 22:50

    É, tá meio certo.
    Nota: Leia os scripts do tópico do tutorial aqui e não dos outros. Você lendo dos outros vai aprender errado, por isso eu deixei scripts prontos lá na primeira página.


    ____________________
    avatar
    Elyzandro
    Veterano
    Veterano

    Mensagens : 2920
    Reputação : 81
    Desde : 31/07/2013

    Re: 10. Exercício #1

    Mensagem por Elyzandro em Seg 30 Jan 2017, 01:16

    Spoiler:
    Código:
    SCRIPT_START
    {
    NOP

    LVAR_INT var1 var2 var3 var4 var5 var6
    WAIT 0

    loop:
    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

    IF IS_KEY_PRESSED VK_KEY_B
        var6 = var1
            var1 -= var6
                var1 += 12
        var6 = var2
            var2 -= var6
                var2 += 12
        var6 = var3
            var3 -= var6
                var3 += 12
        var6 = var4
            var4 -= var6
                var4 += 12
        var6 = var5
            var5 -= var6
                var5 += 12
        WHILE IS_KEY_PRESSED VK_KEY_B
            WAIT 0
        ENDWHILE
    ENDIF

    PRINT_FORMATTED_NOW "Todas as variaveis sao 12: %d %d %d %d %d" 10000 var1 var2 var3 var4 var5

    GOTO loop

    }
    SCRIPT_END
    Não quer compilar, no que eu errei? ;=;


    ____________________
    I̜mpe͢r͚at̲ivoͯ, ͘no̅ mụnd̶o͋ ̺sl͟o͗w
    ́Co͔m͢ó ̼a ̒p̎eçͦa̲ ̖MC͝s ̚só͊ ͡faz̀em̈́ ̛s̸p͆ee͌df̡l̡owͭ
    ̟Pͭra ̌que̲ ä́ p̐r͜es̋s͉aͤ?
    avatar
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Não quero acreditar, quero saber.
    Mensagens : 21606
    Reputação : 633
    Desde : 03/05/2012
    Idade : 21
    Localização : Ibitinga - SP
    Link : www.MixMods.com.br

    Re: 10. Exercício #1

    Mensagem por Junior_Djjr em Seg 30 Jan 2017, 01:31

    Tá compilando sim ué.
    Mas você esqueceu do WAIT dentro do loop, daí não fez o jogo processar e ficou em freeze.

    E você colocou pra mostrar a mensagem na tela junto ao loop de onde pega o número aleatório (nem há motivos de pegar o número aleatório dentro de um loop). Só foi possível ver que funcionou ao mover o comando de PRINT_FORMATTED_NOW pra dentro do IF da tecla pressionada, aí quando apertei a tecla apareceu corretamente.


    ____________________
    avatar
    israel
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Mensagens : 657
    Reputação : 111
    Desde : 22/09/2015
    Idade : 19
    Localização : Salvador - BA

    Re: 10. Exercício #1

    Mensagem por israel em Seg 30 Jan 2017, 01:42

    A indentação também tá meio estranha.

    Curti os cálculos, bem diferente de como a maioria fez. :v:
    avatar
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Não quero acreditar, quero saber.
    Mensagens : 21606
    Reputação : 633
    Desde : 03/05/2012
    Idade : 21
    Localização : Ibitinga - SP
    Link : www.MixMods.com.br

    Re: 10. Exercício #1

    Mensagem por Junior_Djjr em Seg 30 Jan 2017, 02:14

    @israel escreveu:Curti os cálculos, bem diferente de como a maioria fez. :v:
    Sim, ele fez como a minha dica lá:
    Spoiler:
    Código:
    SCRIPT_START
    {
    NOP
     
    LVAR_INT var1 var2 var3 var4 var5
    LVAR_INT diferenca
     
    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
     
    diferenca = var1 - 12
    var1 -= diferenca
     
    diferenca = var2 - 12
    var2 -= diferenca
     
    diferenca = var3 - 12
    var3 -= diferenca
     
    diferenca = var4 - 12
    var4 -= diferenca
     
    diferenca = var5 - 12
    var5 -= diferenca
     
    PRINT_FORMATTED_NOW "Todas as variaveis sao 12: %d %d %d %d %d" 10000 var1 var2 var3 var4 var5
    }
    SCRIPT_END
    Mas acho que ele não lembro que tinha como usar = com + na mesma linha :v:


    ____________________
    avatar
    Elyzandro
    Veterano
    Veterano

    Mensagens : 2920
    Reputação : 81
    Desde : 31/07/2013

    Re: 10. Exercício #1

    Mensagem por Elyzandro em Seg 30 Jan 2017, 11:41

    Não abri as dicas euaiodkljsada
    @Junior_Djjr escreveu:Tá compilando sim ué.
    Mas você esqueceu do WAIT dentro do loop, daí não fez o jogo processar e ficou em freeze.
    Eu suspeitei que era isso mas nem passou pela minha cabeça colocar um WAIT dentro do loop, valeu. :v

    @Junior_Djjr escreveu:E você colocou pra mostrar a mensagem na tela junto ao loop de onde pega o número aleatório (nem há motivos de pegar o número aleatório dentro de um loop).
    Eu tinha feito isso pra poder fazer o teste com números diferentes.

    @Junior_Djjr escreveu:Só foi possível ver que funcionou ao mover o comando de PRINT_FORMATTED_NOW pra dentro do IF da tecla pressionada, aí quando apertei a tecla apareceu corretamente.
    Por que só funciona assim? Na minha ideia os cálculos iam ser feitos dentro do IF enquanto o jogador apertasse a tecla B (o que é bem burro por que esses cálculos são instantâneos praticamente) e quando ele soltasse iria aparecer os resultados. philosoraptor


    ____________________
    I̜mpe͢r͚at̲ivoͯ, ͘no̅ mụnd̶o͋ ̺sl͟o͗w
    ́Co͔m͢ó ̼a ̒p̎eçͦa̲ ̖MC͝s ̚só͊ ͡faz̀em̈́ ̛s̸p͆ee͌df̡l̡owͭ
    ̟Pͭra ̌que̲ ä́ p̐r͜es̋s͉aͤ?
    avatar
    -Tito
    Mensagens Nível 2
    Mensagens Nível 2

    Mensagens : 56
    Reputação : 0
    Desde : 19/01/2017

    Re: 10. Exercício #1

    Mensagem por -Tito em Seg 30 Jan 2017, 16:14

    Tudo certo ?
    Spoiler:

    Código:
    SCRIPT_START
    {
        NOP
        LVAR_INT v1
        LVAR_INT v2
        LVAR_INT v3
        LVAR_INT v4
        LVAR_INT v5

        inicio:
        WAIT 0
        IF TEST_CHEAT "exercicio"
            GENERATE_RANDOM_INT_IN_RANGE 0 100 v1
            GENERATE_RANDOM_INT_IN_RANGE 0 100 v2
            GENERATE_RANDOM_INT_IN_RANGE 0 100 v3
            GENERATE_RANDOM_INT_IN_RANGE 0 100 v4
            GENERATE_RANDOM_INT_IN_RANGE 0 100 v5
            GOTO calculos
        ENDIF
        GOTO inicio

        calculos:
        WAIT 0
        IF v1 > 12
            v1 -= 1
        ENDIF
        IF v2 > 12
            v2 -= 1
        ENDIF
        IF v3 > 12
            v3 -= 1
        ENDIF
        IF v4 > 12
            v4 -= 1
        ENDIF
        IF v5 > 12
            v5 -= 1
        ENDIF
        IF v1 < 12
            v1 += 1
        ENDIF
        IF v2 < 12
            v2 += 1
        ENDIF
        IF v3 < 12
            v3 += 1
        ENDIF
        IF v4 < 12
            v4 += 1
        ENDIF
        IF v5 < 12
            v5 += 1
        ENDIF

        IF v1 = 12
        AND v2 = 12
        AND v3 = 12
        AND v4 = 12
        AND v5 = 12
            PRINT_FORMATTED_NOW "Todas as variaveis sao 12: %d %d %d %d %d" 10000 v1 v2 v3 v4 v5
            GOTO inicio
        ENDIF
        GOTO calculos
    }
    SCRIPT_END
    avatar
    israel
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Mensagens : 657
    Reputação : 111
    Desde : 22/09/2015
    Idade : 19
    Localização : Salvador - BA

    Re: 10. Exercício #1

    Mensagem por israel em Seg 30 Jan 2017, 16:40

    @-Tito escreveu:Tudo certo ?
    Spoiler:

    Código:
    SCRIPT_START
    {
        NOP
        LVAR_INT v1
        LVAR_INT v2
        LVAR_INT v3
        LVAR_INT v4
        LVAR_INT v5

        inicio:
        WAIT 0
        IF TEST_CHEAT "exercicio"
            GENERATE_RANDOM_INT_IN_RANGE 0 100 v1
            GENERATE_RANDOM_INT_IN_RANGE 0 100 v2
            GENERATE_RANDOM_INT_IN_RANGE 0 100 v3
            GENERATE_RANDOM_INT_IN_RANGE 0 100 v4
            GENERATE_RANDOM_INT_IN_RANGE 0 100 v5
            GOTO calculos
        ENDIF
        GOTO inicio

        calculos:
        WAIT 0
        IF v1 > 12
            v1 -= 1
        ENDIF
        IF v2 > 12
            v2 -= 1
        ENDIF
        IF v3 > 12
            v3 -= 1
        ENDIF
        IF v4 > 12
            v4 -= 1
        ENDIF
        IF v5 > 12
            v5 -= 1
        ENDIF
        IF v1 < 12
            v1 += 1
        ENDIF
        IF v2 < 12
            v2 += 1
        ENDIF
        IF v3 < 12
            v3 += 1
        ENDIF
        IF v4 < 12
            v4 += 1
        ENDIF
        IF v5 < 12
            v5 += 1
        ENDIF

        IF v1 = 12
        AND v2 = 12
        AND v3 = 12
        AND v4 = 12
        AND v5 = 12
            PRINT_FORMATTED_NOW "Todas as variaveis sao 12: %d %d %d %d %d" 10000 v1 v2 v3 v4 v5
            GOTO inicio
        ENDIF
        GOTO calculos
    }
    SCRIPT_END
    Certo até tá, mas ler a parte "ELSE" no tutorial de condições seria bom pra você. :v:


    ____________________
    " Everyone gonna remember my name ! "

    JuniorEDiT
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 23
    Reputação : 0
    Desde : 06/07/2016
    Idade : 16
    Localização : MINAS GERAIS !

    Re: 10. Exercício #1

    Mensagem por JuniorEDiT em Seg 30 Jan 2017, 17:24

    Spoiler:

    Código:

    SCRIPT_START
    {
    NOP

    LVAR_INT var1 var2 var3 var4 var5

    digit:
    WAIT 0
    WHILE NOT IS_KEY_PRESSED VK_F10
        WAIT 0
        GOTO digit
    ENDWHILE

    podp:
    WAIT 0
    GENERATE_RANDOM_INT_IN_RANGE 1 100 var1
    GENERATE_RANDOM_INT_IN_RANGE 1 100 var2
    GENERATE_RANDOM_INT_IN_RANGE 1 100 var3
    GENERATE_RANDOM_INT_IN_RANGE 1 100 var4
    GENERATE_RANDOM_INT_IN_RANGE 1 100 var5

    WHILE NOT var1 = 12
        WAIT 0
        goto podp
    ENDWHILE

    IF var1 = 12
        var2 = var1
        var3 = var1
        var4 = var1
        var5 = var1
    ENDIF

    PRINT_FORMATTED_NOW "TODAS AS VARIAVEIS SÃO 12 : %d %d %d %d %d" 10000 var1 var2 var3 var4 var5


    GOTO digit





    }
    SCRIPT_END




    ____________________

    mathnoobsxx
    Mensagens Nível 4
    Mensagens Nível 4

    Título : Anteriormente "Pedreiro Master"
    Mensagens : 423
    Reputação : 10
    Desde : 13/08/2015
    Idade : 12
    Localização : Passo de Torres - SC
    Link : nusei

    Re: 10. Exercício #1

    Mensagem por mathnoobsxx em Seg 30 Jan 2017, 17:37

    @JuniorEDiT escreveu:
    Spoiler:

    Código:

    SCRIPT_START
    {
    NOP

    LVAR_INT var1 var2 var3 var4 var5

    digit:
    WAIT 0
    WHILE NOT IS_KEY_PRESSED VK_F10
        WAIT 0
        GOTO digit
    ENDWHILE

    podp:
    WAIT 0
    GENERATE_RANDOM_INT_IN_RANGE 1 100 var1
    GENERATE_RANDOM_INT_IN_RANGE 1 100 var2
    GENERATE_RANDOM_INT_IN_RANGE 1 100 var3
    GENERATE_RANDOM_INT_IN_RANGE 1 100 var4
    GENERATE_RANDOM_INT_IN_RANGE 1 100 var5

    WHILE NOT var1 = 12
        WAIT 0
        goto podp
    ENDWHILE

    IF var1 = 12
        var2 = var1
        var3 = var1
        var4 = var1
        var5 = var1
    ENDIF

    PRINT_FORMATTED_NOW "TODAS AS VARIAVEIS SÃO 12 : %d %d %d %d %d" 10000 var1 var2 var3 var4 var5


    GOTO digit





    }
    SCRIPT_END


    Você não usou matemática. Vai ser muito difícil ser 12, enquanto não for 12, vai gerar, até cair em 12.


    ____________________
    Se te ajudei de alguma forma, por favor clique no botão de reputação (o "+" verde).

    Meu PC:

    Processador: Intel core 2 quad Q8400 2.66 Ghz
    Placa de vídeo: GT 240 (vou trocá-la)
    Fonte: Corsair CX-500 80 plus bronze
    Directx: 10
    6GB RAM
    avatar
    AguiaX2
    Scripter CLEO - Intermediário
    Scripter CLEO - Intermediário

    Mensagens : 609
    Reputação : 37
    Desde : 19/08/2015
    Idade : 14
    Localização : Em algum lugar do brasil
    Link : https://www.youtube.com/watch?v=lMB18XPgEWA

    Re: 10. Exercício #1

    Mensagem por AguiaX2 em Seg 30 Jan 2017, 17:55

    Ele gosta de dados como eu :)


    ____________________



    Conteúdo patrocinado

    Re: 10. Exercício #1

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Dom 25 Jun 2017, 02:21