10. Exercício #1

    Compartilhe
    avatar
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Não quero acreditar, quero saber.
    Mensagens : 21609
    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, 18:50

    Tem muita gente só jogando dados aqui tirando a sorte kkkkkkkk tem que usar matemática, como foi pedido nas regras.
    Vou até tentar deixar claro lá para não só jogar dados.


    ____________________
    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, 19:03

    É que se for pensar como alguém que começou agora (alguns nunca mexeram com programação antes), esse exercício é meio difícil mesmo, e olha que é o primeiro.  Fuch That Guy
    avatar
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Não quero acreditar, quero saber.
    Mensagens : 21609
    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, 19:21

    @israel escreveu:É que se for pensar como alguém que começou agora (alguns nunca mexeram com programação antes), esse exercício é meio difícil mesmo, e olha que é o primeiro.  Fuch That Guy
    Mas o fato é que todo o necessário para fazer este exercício já foi explicado. O uso de condições e operadores não será explicado novamente, a pessoa a partir daqui é obrigada a já ter entendido como usá-los para prosseguir o tutorial.
    Meio que foi este o objetivo do exercício, se ela não consegue, ela tem que tentar mais, reler etc até conseguir para prosseguir o tutorial (como está escrito no topo da primeira página aqui). Se prosseguir o tutorial (ou começar a ler as partes do "Como fazer?" ela pode ter problemas, então este é o aviso: Você não consegue? Então você não está preparado, vá com calma ou as próximas partes vão começar a te sobrecarregar.


    ____________________
    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 Seg 30 Jan 2017, 20:28

    Eu não achei dificil @_@
    Até agora tudo que eu vi eu ja tinha visto no meu
    Curso técnico de informática, deve ser por isso.


    ____________________
    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
    .Blok
    Scripter CLEO - Básico
    Scripter CLEO - Básico

    Mensagens : 317
    Reputação : 14
    Desde : 01/02/2014
    Idade : 16
    Localização : Belém/PA

    Re: 10. Exercício #1

    Mensagem por .Blok em Ter 31 Jan 2017, 22:04

    124 linhas pra fazer algo que geral fez em muito menos  denilson gostoso

    Spoiler:

    Spoiler:

    Código:
    SCRIPT_START
    {
    NOP

    LVAR_INT num1 num2 num3 num4 num5 var var2, var3, var4

    GENERATE_RANDOM_INT_IN_RANGE 0 100 num1
    GENERATE_RANDOM_INT_IN_RANGE 0 100 num2
    GENERATE_RANDOM_INT_IN_RANGE 0 100 num3
    GENERATE_RANDOM_INT_IN_RANGE 0 100 num4
    GENERATE_RANDOM_INT_IN_RANGE 0 100 num5

    // Para exibir os numeros sorteados antes deles ficarem com o valor 12:
    /*PRINT_FORMATTED_NOW "NUMERO = %d, %d, %d, %d, %d" 2000 num1 num2 num3 num4 num5
    wait 2000*/

    IF num1 < 12
        var = num1 * 12
        var2 = 12 * 12 // 144
        var3 = var2 - var
        var3 /= 12
        var3 += num1
        num1 = var3
    ELSE
        IF num1 > 12
            var = 120
            var2 = num1 * var
            var3 = 120 * 12 //1440
            var4 = var2 - var3
            var4 /= var
            var4 -= num1
            num1 = var4
            num1 *= -1
        ENDIF
    ENDIF

    IF num2 < 12
        var = num2 * 12
        var2 = 12 * 12 // 144
        var3 = var2 - var
        var3 /= 12
        var3 += num2
        num2 = var3
    ELSE
        IF num2 > 12
            var = 120
            var2 = num2 * var
            var3 = 120 * 12 //1440
            var4 = var2 - var3
            var4 /= var
            var4 -= num2
            num2 = var4
            num2 *= -1
        ENDIF
    ENDIF

    IF num3 < 12
        var = num3 * 12
        var2 = 12 * 12 // 144
        var3 = var2 - var
        var3 /= 12
        var3 += num3
        num3 = var3
        GOTO resultado
    ELSE
        IF num3 > 12
            var = 120
            var2 = num3 * var
            var3 = 120 * 12 //1440
            var4 = var2 - var3
            var4 /= var
            var4 -= num3
            num3 = var4
            num3 *= -1
        ENDIF
    ENDIF

    IF num4 < 12
        var = num4 * 12
        var2 = 12 * 12 // 144
        var3 = var2 - var
        var3 /= 12
        var3 += num4
        num4 = var3
    ELSE
        IF num4 > 12
            var = 120
            var2 = num4 * var
            var3 = 120 * 12 //1440
            var4 = var2 - var3
            var4 /= var
            var4 -= num4
            num4 = var4
            num4 *= -1
        ENDIF
    ENDIF

    IF num5 < 12
        var = num5 * 12
        var2 = 12 * 12 // 144
        var3 = var2 - var
        var3 /= 12
        var3 += num5
        num5 = var3
        GOTO resultado
    ELSE
        IF num5 > 12
            var = 120
            var2 = num5 * var
            var3 = 120 * 12 //1440
            var4 = var2 - var3
            var4 /= var
            var4 -= num5
            num5 = var4
            num5 *= -1
            GOTO resultado
        ENDIF
    ENDIF

    resultado:
    PRINT_FORMATTED_NOW "Todas as vars valem 12: %d, %d, %d, %d, %d" 10000 num1 num2 num3 num4 num5

    }
    SCRIPT_END
    Usei quatro variáveis extras pra guardar os valores, a lógica matemática é assim:


    • Se o número gerado aleatoriamente for menor que 12 (exemplo 5), é só:
    • 1º: Multiplicar ele por 12 (5x12=60);
    • 2º: Subtrair 144 (12x12) menos o resultado (144-60=84);
    • 3º: Dividir por 12 (84/12=7);
    • 4º: Somar com o número que foi gerado (7+5=12).

      Já se for maior que 12 (exemplo 71), precisa:
    • 1º: Multiplicar o número aleatório por 120(12x10)| (71x120=8520);
    • 2º: Subtrair 1440(144x10) do resultado (8520-1440=7080);
    • 3º: Dividi-lo por 120 (7080/120=59);
    • 4º: Subtrair o numero gerado aleatoriamente pelo resultado (59-12=-12)
    • 5º: E multiplicar o resultado -12 por -1, para deixar o sinal positivo (-12x -1= 12).


    Fudi um pouco meu cérebro pra pensar nisso hoje, e depois ver que tem formas mais simples de se fazer  pokerface


    ____________________


    CONFIG. PC:

    SO: Windows 7 64 bits
    Placa-mãe: ASUS H61M-A/BR
    CPU: Intel Core i3-2120 @ 3.30GHz
    GPU: Intel HD Graphics 2000
    RAM: Kingston 4GB DDR3
    HD: 250GB



    Assinatura e avatar by Jacobi -- PSN ID: GearHFB4
    avatar
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Não quero acreditar, quero saber.
    Mensagens : 21609
    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 Ter 31 Jan 2017, 22:58

    Santa porra.
    Conseguiu complicar coisa fácil denilson gostoso
    Você pensou nisso sozinho sem uso de sites de "dicas matemáticas" etc?


    ____________________

    Nex'
    Scripter CLEO - Básico
    Scripter CLEO - Básico

    Título : Imposto é roubo
    Mensagens : 962
    Reputação : 68
    Desde : 04/03/2013

    Re: 10. Exercício #1

    Mensagem por Nex' em Ter 31 Jan 2017, 23:03

    Foda rapaz.
    Só acho que poderia ter usado uma função pra economizar código :)


    ____________________
    PC Specs
    CPU: Intel Core i3-6100 Skylake
    GPU: HD Intel 530
    RAM: Crucial Ballistix Elite 4GB 2133MHz DDR4
    PSU: Corsair CX-430W
    MOBO: Gigabyte GA-H110M-H DDR4
    avatar
    .Blok
    Scripter CLEO - Básico
    Scripter CLEO - Básico

    Mensagens : 317
    Reputação : 14
    Desde : 01/02/2014
    Idade : 16
    Localização : Belém/PA

    Re: 10. Exercício #1

    Mensagem por .Blok em Ter 31 Jan 2017, 23:24

    @Junior_Djjr escreveu:Santa porra.
    Conseguiu complicar coisa fácil denilson gostoso
    Você pensou nisso sozinho sem uso de sites de "dicas matemáticas" etc?
    A única ajuda que requisitei foi da calculadora do Windows, pra fazer alguns cálculos das formas de transformar um número em 12 que surgiam na minha cabeça, e daquela sua dica que tu deu por MP naquele dia de multiplicar um número negativo por -1 pra se tornar positivo, bom, tu queria matemática, ta aí :v:

    @Nex' escreveu:Foda rapaz.
    Só acho que poderia ter usado uma função pra economizar código :)
    Vlw, ainda migrando pro GTA3Script, que função é essa?


    ____________________


    CONFIG. PC:

    SO: Windows 7 64 bits
    Placa-mãe: ASUS H61M-A/BR
    CPU: Intel Core i3-2120 @ 3.30GHz
    GPU: Intel HD Graphics 2000
    RAM: Kingston 4GB DDR3
    HD: 250GB



    Assinatura e avatar by Jacobi -- PSN ID: GearHFB4

    Nex'
    Scripter CLEO - Básico
    Scripter CLEO - Básico

    Título : Imposto é roubo
    Mensagens : 962
    Reputação : 68
    Desde : 04/03/2013

    Re: 10. Exercício #1

    Mensagem por Nex' em Ter 31 Jan 2017, 23:34

    @.Blok escreveu:
    @Nex' escreveu:Foda rapaz.
    Só acho que poderia ter usado uma função pra economizar código :)
    Vlw, ainda migrando pro GTA3Script, que função é essa?
    Criar uma função tua mesmo ué, você desenvolveu um algoritmo para transformar números em 12, então é só por esse algoritmo dentro de uma função e chamar ela, poderia mandar como parâmetro o ponteiro da var que tem o valor que você quer que vire 12, dai a função faz os cálculos e troca o valor da var PFFFTCH


    ____________________
    PC Specs
    CPU: Intel Core i3-6100 Skylake
    GPU: HD Intel 530
    RAM: Crucial Ballistix Elite 4GB 2133MHz DDR4
    PSU: Corsair CX-430W
    MOBO: Gigabyte GA-H110M-H DDR4
    avatar
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Não quero acreditar, quero saber.
    Mensagens : 21609
    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 Qua 01 Fev 2017, 00:00

    ↑ é verdade
    Ao invés de repetir, fazer uma CLEO_CALL onde você envia a variável lá. Daí o código seria só:
    CLEO_CALL TransformarEmDoze 0 var var
    CLEO_CALL TransformarEmDoze 0 var2 var2
    CLEO_CALL TransformarEmDoze 0 var3 var3
    ...


    ____________________

    Nex'
    Scripter CLEO - Básico
    Scripter CLEO - Básico

    Título : Imposto é roubo
    Mensagens : 962
    Reputação : 68
    Desde : 04/03/2013

    Re: 10. Exercício #1

    Mensagem por Nex' em Qua 01 Fev 2017, 02:08

    Utilizando o algoritmo do .Blok:
    Spoiler:

    Código:
    SCRIPT_START
    {
    NOP

    LVAR_INT var[5] i

    main:
    WAIT 0

    IF TEST_CHEAT rand

        i = 0
        WHILE i < 5
            GENERATE_RANDOM_INT_IN_RANGE 0 100 var[i]
            i++
        ENDWHILE
        
        PRINT_FORMATTED_NOW "Random:~n~%d %d %d %d %d" 2000 var[0] var[1] var[2] var[3] var[4]
        WAIT 2000

        i = 0
        WHILE i < 5
            IF NOT var[i] = 12
                CLEO_CALL be12 0 (var[i]) (var[i])
            ENDIF
            i++
        ENDWHILE

        PRINT_FORMATTED_NOW "Now:~n~%d %d %d %d %d" 3000 var[0] var[1] var[2] var[3] var[4]
    ENDIF
    GOTO main
    }
    SCRIPT_END

    {
    be12:
    LVAR_INT result temp[2]

    temp[0] = result

    IF result < 12
        temp[1] = result * 12
        result = 144 - temp[1]
        result /= 12
        result += temp[0]
    ELSE
        result *= 120
        temp[1] = result - 1440
        temp[1] /= 120
        result = temp[0] - temp[1]
    ENDIF

    CLEO_RETURN 0 (result)
    }
    Ficou bem legal


    Detalhe:
    @.Blok escreveu:4º: Subtrair o numero gerado aleatoriamente pelo resultado (59-12=-12)
    Você quis dizer (59 - 71 = -12) (você disse uma coisa e fez outra)
    De qualquer modo, é só subtrair 59 de 71, assim não precisa de multiplicar por -1.


    ____________________
    PC Specs
    CPU: Intel Core i3-6100 Skylake
    GPU: HD Intel 530
    RAM: Crucial Ballistix Elite 4GB 2133MHz DDR4
    PSU: Corsair CX-430W
    MOBO: Gigabyte GA-H110M-H DDR4
    avatar
    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18620
    Reputação : 338
    Desde : 04/05/2012
    Idade : 20
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

    Re: 10. Exercício #1

    Mensagem por Fabio em Qua 01 Fev 2017, 15:20

    Spoiler:
    Código:
    SCRIPT_START
    {
        LVAR_INT init main rtn
        GET_LABEL_POINTER _initCPPCode init
        GET_LABEL_POINTER _codeMain main

        WAIT 0
        CALL_FUNCTION init 0 0

    ad_infinitum:
        WAIT 0
        CALL_FUNCTION_RETURN main 1 1 (0) (rtn)
        GOTO ad_infinitum
    }
    SCRIPT_END

    DUMP
    // _topCPPCodeLabel:
    // __ZStL19piecewise_construct:
    /*    11 00000000*/ 00                         //db00
    // __ZStL13allocator_arg:
    /*    13 00000001*/ 00                         //db00
    // __ZStL6ignore:
    /*    15 00000002*/ 00                         //db00
    //    17                                      ;.data
    //    18                                      ;.align 4
    // _gtarand:
    /*    20 00000003*/ 1E1B8200                   //dd8526622
    //    22                                      ;.align 4
    // _showTextBox:
    /*    24 00000007*/ E08B5800                   //dd5802976
    //    26                                      ;.align 4
    // _gtastrncmp:
    /*    28 0000000B*/ D0148200                   //dd8525008
    //    30                                      ;.align 4
    // _gtasprintf:
    /*    32 0000000F*/ B51B8200                   //dd8526773
    //    35                                      ;.align 4
    // _array:
    /*    37 00000013*/ 000000000000000000         //db00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
    /*    37 0000001C*/ 000000000000000000
    /*    37 00000025*/ 0000              
    // LC0:
    /*    40 00000027*/ 5475646F2031322121         //db'Tudo 12!!! %d %d %d %d %d', 00
    /*    40 00000030*/ 212025642025642025
    /*    40 00000039*/ 6420256420256400  
    ENDDUMP

    _codeMain:
    DUMP
    // LFB2671:
    /*    47 00000041*/ 55                         //push   ebp
    /*    50 00000042*/ 89E5                       //mov   ebp, esp
    /*    52 00000044*/ 57                         //push   edi
    /*    53 00000045*/ 56                         //push   esi
    /*    54 00000046*/ 53                         //push   ebx
    /*    55 00000047*/ 81EC5C080000               //sub   esp, 2140
    /*    59 0000004D*/ C745DC10919600             //mov   DWORD [ebp-36], 9867536
    /*    60 00000054*/ C745BB43414C43             //mov   DWORD [ebp-69], 1129070915
    /*    61 0000005B*/ C745BF554C4152             //mov   DWORD [ebp-65], 1380011093
    /*    62 00000062*/ C645C300                   //mov   BYTE [ebp-61], 0
    /*    63 00000066*/ B808000000                 //mov   eax, 8
    /*    64 0000006B*/ 89442404                   //mov   DWORD [esp+4], eax
    /*    65 0000006F*/ 8D45BB                     //lea   eax, [ebp-69]
    /*    66 00000072*/ 890424                     //mov   DWORD [esp], eax
    /*    67 00000075*/ E805030000                 //call   __Z13reverse_arrayIPcEvT_j
    /*    68 0000007A*/ A10B000000               //mov   eax, DWORD _gtastrncmp
    /*    69 0000007F*/ BA08000000                 //mov   edx, 8
    /*    70 00000084*/ 89542408                   //mov   DWORD [esp+8], edx
    /*    71 00000088*/ 8D55BB                     //lea   edx, [ebp-69]
    /*    72 0000008B*/ 89542404                   //mov   DWORD [esp+4], edx
    /*    73 0000008F*/ 8B55DC                     //mov   edx, DWORD [ebp-36]
    /*    74 00000092*/ 891424                     //mov   DWORD [esp], edx
    /*    75 00000095*/ FFD0                       //call   eax
    /*    76 00000097*/ 85C0                       //test   eax, eax
    /*    77 00000099*/ 0F94C0                     //sete   al
    /*    78 0000009C*/ 84C0                       //test   al, al
    /*    79 0000009E*/ 0F8498010000               //je   L2
    /*    80 000000A4*/ 8B45DC                     //mov   eax, DWORD [ebp-36]
    /*    81 000000A7*/ C60000                     //mov   BYTE [eax], 0
    /*    82 000000AA*/ C745D813000000           //mov   DWORD ebp-40, _array
    /*    83 000000B1*/ 8B45D8                     //mov   eax, DWORD [ebp-40]
    /*    84 000000B4*/ 8945E4                     //mov   DWORD [ebp-28], eax
    /*    85 000000B7*/ 8B45D8                     //mov   eax, DWORD [ebp-40]
    /*    86 000000BA*/ 83C014                     //add   eax, 20
    /*    87 000000BD*/ 8945D4                     //mov   DWORD [ebp-44], eax
    /*    88 000000C0*/ EB41                       //jmp   L3
    // L4:
    /*    90 000000C2*/ 8B45E4                     //mov   eax, DWORD [ebp-28]
    /*    91 000000C5*/ 8945D0                     //mov   DWORD [ebp-48], eax
    /*    92 000000C8*/ A103000000               //mov   eax, DWORD _gtarand
    /*    93 000000CD*/ FFD0                       //call   eax
    /*    94 000000CF*/ 89C1                       //mov   ecx, eax
    /*    95 000000D1*/ BA1F85EB51                 //mov   edx, 1374389535
    /*    96 000000D6*/ 89C8                       //mov   eax, ecx
    /*    97 000000D8*/ F7EA                       //imul   edx
    /*    98 000000DA*/ C1FA05                     //sar   edx, 5
    /*    99 000000DD*/ 89C8                       //mov   eax, ecx
    /*   100 000000DF*/ C1F81F                     //sar   eax, 31
    /*   101 000000E2*/ 29C2                       //sub   edx, eax
    /*   102 000000E4*/ 89D0                       //mov   eax, edx
    /*   103 000000E6*/ 6BC064                     //imul   eax, eax, 100
    /*   104 000000E9*/ 29C1                       //sub   ecx, eax
    /*   105 000000EB*/ 89C8                       //mov   eax, ecx
    /*   106 000000ED*/ 8B55D0                     //mov   edx, DWORD [ebp-48]
    /*   107 000000F0*/ 8902                       //mov   DWORD [edx], eax
    /*   108 000000F2*/ 8B45D0                     //mov   eax, DWORD [ebp-48]
    /*   109 000000F5*/ 8B00                       //mov   eax, DWORD [eax]
    /*   110 000000F7*/ 8D5001                     //lea   edx, [eax+1]
    /*   111 000000FA*/ 8B45D0                     //mov   eax, DWORD [ebp-48]
    /*   112 000000FD*/ 8910                       //mov   DWORD [eax], edx
    /*   113 000000FF*/ 8345E404                   //add   DWORD [ebp-28], 4
    // L3:
    /*   115 00000103*/ 8B45E4                     //mov   eax, DWORD [ebp-28]
    /*   116 00000106*/ 3B45D4                     //cmp   eax, DWORD [ebp-44]
    /*   117 00000109*/ 75B7                       //jne   L4
    /*   118 0000010B*/ C745CC13000000           //mov   DWORD ebp-52, _array
    /*   119 00000112*/ 8B45CC                     //mov   eax, DWORD [ebp-52]
    /*   120 00000115*/ 8945E0                     //mov   DWORD [ebp-32], eax
    /*   121 00000118*/ 8B45CC                     //mov   eax, DWORD [ebp-52]
    /*   122 0000011B*/ 83C014                     //add   eax, 20
    /*   123 0000011E*/ 8945C8                     //mov   DWORD [ebp-56], eax
    /*   124 00000121*/ EB44                       //jmp   L5
    // L9:
    /*   126 00000123*/ 8B45E0                     //mov   eax, DWORD [ebp-32]
    /*   127 00000126*/ 8945C4                     //mov   DWORD [ebp-60], eax
    /*   128 00000129*/ EB2E                       //jmp   L6
    // L8:
    /*   130 0000012B*/ 8B45C4                     //mov   eax, DWORD [ebp-60]
    /*   131 0000012E*/ 8B00                       //mov   eax, DWORD [eax]
    /*   132 00000130*/ 83F80C                     //cmp   eax, 12
    /*   133 00000133*/ 7E0D                       //jle   L7
    /*   134 00000135*/ 8B45C4                     //mov   eax, DWORD [ebp-60]
    /*   135 00000138*/ 8B00                       //mov   eax, DWORD [eax]
    /*   136 0000013A*/ 8D50FF                     //lea   edx, [eax-1]
    /*   137 0000013D*/ 8B45C4                     //mov   eax, DWORD [ebp-60]
    /*   138 00000140*/ 8910                       //mov   DWORD [eax], edx
    // L7:
    /*   140 00000142*/ 8B45C4                     //mov   eax, DWORD [ebp-60]
    /*   141 00000145*/ 8B00                       //mov   eax, DWORD [eax]
    /*   142 00000147*/ 83F80B                     //cmp   eax, 11
    /*   143 0000014A*/ 7F0D                       //jg   L6
    /*   144 0000014C*/ 8B45C4                     //mov   eax, DWORD [ebp-60]
    /*   145 0000014F*/ 8B00                       //mov   eax, DWORD [eax]
    /*   146 00000151*/ 8D5001                     //lea   edx, [eax+1]
    /*   147 00000154*/ 8B45C4                     //mov   eax, DWORD [ebp-60]
    /*   148 00000157*/ 8910                       //mov   DWORD [eax], edx
    // L6:
    /*   150 00000159*/ 8B45C4                     //mov   eax, DWORD [ebp-60]
    /*   151 0000015C*/ 8B00                       //mov   eax, DWORD [eax]
    /*   152 0000015E*/ 83F80C                     //cmp   eax, 12
    /*   153 00000161*/ 75C8                       //jne   L8
    /*   154 00000163*/ 8345E004                   //add   DWORD [ebp-32], 4
    // L5:
    /*   156 00000167*/ 8B45E0                     //mov   eax, DWORD [ebp-32]
    /*   157 0000016A*/ 3B45C8                     //cmp   eax, DWORD [ebp-56]
    /*   158 0000016D*/ 75B4                       //jne   L9
    /*   159 0000016F*/ 8D95BBF7FFFF               //lea   edx, [ebp-2117]
    /*   160 00000175*/ BB00080000                 //mov   ebx, 2048
    /*   161 0000017A*/ B800000000                 //mov   eax, 0
    /*   162 0000017F*/ 89D1                       //mov   ecx, edx
    /*   163 00000181*/ 83E101                     //and   ecx, 1
    /*   164 00000184*/ 85C9                       //test   ecx, ecx
    /*   165 00000186*/ 7408                       //je   L10
    /*   166 00000188*/ 8802                       //mov   BYTE [edx], al
    /*   167 0000018A*/ 83C201                     //add   edx, 1
    /*   168 0000018D*/ 83EB01                     //sub   ebx, 1
    // L10:
    /*   170 00000190*/ 89D1                       //mov   ecx, edx
    /*   171 00000192*/ 83E102                     //and   ecx, 2
    /*   172 00000195*/ 85C9                       //test   ecx, ecx
    /*   173 00000197*/ 7409                       //je   L11
    /*   174 00000199*/ 668902                     //mov   WORD [edx], ax
    /*   175 0000019C*/ 83C202                     //add   edx, 2
    /*   176 0000019F*/ 83EB02                     //sub   ebx, 2
    // L11:
    /*   178 000001A2*/ 89D9                       //mov   ecx, ebx
    /*   179 000001A4*/ C1E902                     //shr   ecx, 2
    /*   180 000001A7*/ 89D7                       //mov   edi, edx
    /*   181 000001A9*/ F3AB                       //repstosd
    /*   182 000001AB*/ 89FA                       //mov   edx, edi
    /*   183 000001AD*/ 89D9                       //mov   ecx, ebx
    /*   184 000001AF*/ 83E102                     //and   ecx, 2
    /*   185 000001B2*/ 85C9                       //test   ecx, ecx
    /*   186 000001B4*/ 7406                       //je   L12
    /*   187 000001B6*/ 668902                     //mov   WORD [edx], ax
    /*   188 000001B9*/ 83C202                     //add   edx, 2
    // L12:
    /*   190 000001BC*/ 83E301                     //and   ebx, 1
    /*   191 000001BF*/ 89D9                       //mov   ecx, ebx
    /*   192 000001C1*/ 85C9                       //test   ecx, ecx
    /*   193 000001C3*/ 7405                       //je   L13
    /*   194 000001C5*/ 8802                       //mov   BYTE [edx], al
    /*   195 000001C7*/ 83C201                     //add   edx, 1
    // L13:
    /*   197 000001CA*/ A10F000000               //mov   eax, DWORD _gtasprintf
    /*   198 000001CF*/ 8B3D23000000             //mov   edi, DWORD _array+16
    /*   199 000001D5*/ 8B351F000000             //mov   esi, DWORD _array+12
    /*   200 000001DB*/ 8B1D1B000000             //mov   ebx, DWORD _array+8
    /*   201 000001E1*/ 8B0D17000000             //mov   ecx, DWORD _array+4
    /*   202 000001E7*/ 8B1513000000             //mov   edx, DWORD _array
    /*   203 000001ED*/ 897C2418                   //mov   DWORD [esp+24], edi
    /*   204 000001F1*/ 89742414                   //mov   DWORD [esp+20], esi
    /*   205 000001F5*/ 895C2410                   //mov   DWORD [esp+16], ebx
    /*   206 000001F9*/ 894C240C                   //mov   DWORD [esp+12], ecx
    /*   207 000001FD*/ 89542408                   //mov   DWORD [esp+8], edx
    /*   208 00000201*/ C744240427000000         //mov   DWORD esp+4, LC0
    /*   209 00000209*/ 8D95BBF7FFFF               //lea   edx, [ebp-2117]
    /*   210 0000020F*/ 891424                     //mov   DWORD [esp], edx
    /*   211 00000212*/ FFD0                       //call   eax
    /*   212 00000214*/ A107000000               //mov   eax, DWORD _showTextBox
    /*   213 00000219*/ C744240C00000000           //mov   DWORD [esp+12], 0
    /*   214 00000221*/ C744240800000000           //mov   DWORD [esp+8], 0
    /*   215 00000229*/ C744240400000000           //mov   DWORD [esp+4], 0
    /*   216 00000231*/ 8D95BBF7FFFF               //lea   edx, [ebp-2117]
    /*   217 00000237*/ 891424                     //mov   DWORD [esp], edx
    /*   218 0000023A*/ FFD0                       //call   eax
    // L2:
    /*   220 0000023C*/ B800000000                 //mov   eax, 0
    /*   221 00000241*/ 81C45C080000               //add   esp, 2140
    /*   222 00000247*/ 5B                         //pop   ebx
    /*   224 00000248*/ 5E                         //pop   esi
    /*   226 00000249*/ 5F                         //pop   edi
    /*   228 0000024A*/ 5D                         //pop   ebp
    /*   231 0000024B*/ C3                         //ret
    // LFE2671:
    // _internalCodeDeducePtr:
    /*   236 0000024C*/ 58                     //popeax
    /*   237 0000024D*/ 50                     //pusheax
    /*   238 0000024E*/ C3                     //ret
    //   244                                      ;.align 4
    // _sdata:
    /*   246 0000024F*/ 00000000                   //db00,00,00,00
    /*   250 00000253*/ E9A8FDFFFF             //jmp_topCPPCodeLabel
    // _memoryRet:
    /*   252 00000258*/ B878563412             //moveax, 0x12345678
    /*   253 0000025D*/ C3                     //ret
    // _callWrapper:
    /*   256 0000025E*/ E8E9FFFFFF             //call_internalCodeDeducePtr
    /*   257 00000263*/ C3                     //ret
    // _replaceCodesWrapper:
    // LFB2672:
    /*   267 00000264*/ 55                         //push   ebp
    /*   270 00000265*/ 89E5                       //mov   ebp, esp
    /*   272 00000267*/ 83EC18                     //sub   esp, 24
    /*   273 0000026A*/ 8145082d040000             //add   DWORD [ebp+8], 16777215
    /*   274 00000271*/ 8B4508                     //mov   eax, DWORD [ebp+8]
    /*   275 00000274*/ 8B550C                     //mov   edx, DWORD [ebp+12]
    /*   276 00000277*/ 89542408                   //mov   DWORD [esp+8], edx
    /*   277 0000027B*/ C74424040c000000           //mov   DWORD [esp+4], 65535
    /*   278 00000283*/ 890424                     //mov   DWORD [esp], eax
    /*   279 00000286*/ E8A4000000                 //call   _replaceCodes
    /*   280 0000028B*/ C9                         //leave
    /*   283 0000028C*/ C3                         //ret
    // LFE2672:
    ENDDUMP

    _initCPPCode:
    DUMP
    // LFB2673:
    /*   291 0000028D*/ 55                         //push   ebp
    /*   294 0000028E*/ 89E5                       //mov   ebp, esp
    /*   296 00000290*/ 83EC48                     //sub   esp, 72
    /*   297 00000293*/ E8C0FFFFFF                 //call   _memoryRet
    /*   298 00000298*/ 8945F4                     //mov   DWORD [ebp-12], eax
    /*   299 0000029B*/ 817DF478563412             //cmp   DWORD [ebp-12], 305419896
    /*   300 000002A2*/ 0F8585000000               //jne   L16
    /*   301 000002A8*/ C745F000000000             //mov   DWORD [ebp-16], 0
    /*   302 000002AF*/ E8AAFFFFFF                 //call   _callWrapper
    /*   303 000002B4*/ 8945F0                     //mov   DWORD [ebp-16], eax
    /*   304 000002B7*/ 836DF005                   //sub   DWORD [ebp-16], 5
    /*   305 000002BB*/ 836DF001                   //sub   DWORD [ebp-16], 1
    /*   306 000002BF*/ 836DF005                   //sub   DWORD [ebp-16], 5
    /*   307 000002C3*/ 8B45F0                     //mov   eax, DWORD [ebp-16]
    /*   308 000002C6*/ 8945EC                     //mov   DWORD [ebp-20], eax
    /*   309 000002C9*/ 8345EC01                   //add   DWORD [ebp-20], 1
    /*   310 000002CD*/ 836DF005                   //sub   DWORD [ebp-16], 5
    /*   311 000002D1*/ 8B45F0                     //mov   eax, DWORD [ebp-16]
    /*   312 000002D4*/ 8945E8                     //mov   DWORD [ebp-24], eax
    /*   313 000002D7*/ 8B45E8                     //mov   eax, DWORD [ebp-24]
    /*   314 000002DA*/ 8945E4                     //mov   DWORD [ebp-28], eax
    /*   315 000002DD*/ 8345E801                   //add   DWORD [ebp-24], 1
    /*   316 000002E1*/ 8B45E8                     //mov   eax, DWORD [ebp-24]
    /*   317 000002E4*/ 8B00                       //mov   eax, DWORD [eax]
    /*   318 000002E6*/ 99                         //cdq
    /*   319 000002E7*/ 8945D8                     //mov   DWORD [ebp-40], eax
    /*   320 000002EA*/ 8955DC                     //mov   DWORD [ebp-36], edx
    /*   321 000002ED*/ 8B45E4                     //mov   eax, DWORD [ebp-28]
    /*   322 000002F0*/ 99                         //cdq
    /*   323 000002F1*/ 8945D0                     //mov   DWORD [ebp-48], eax
    /*   324 000002F4*/ 8955D4                     //mov   DWORD [ebp-44], edx
    /*   325 000002F7*/ 8345D005                   //add   DWORD [ebp-48], 5
    /*   326 000002FB*/ 8355D400                   //adc   DWORD [ebp-44], 0
    /*   327 000002FF*/ 8B45D0                     //mov   eax, DWORD [ebp-48]
    /*   328 00000302*/ 8B55D4                     //mov   edx, DWORD [ebp-44]
    /*   329 00000305*/ 0145D8                     //add   DWORD [ebp-40], eax
    /*   330 00000308*/ 1155DC                     //adc   DWORD [ebp-36], edx
    /*   331 0000030B*/ 8B55D8                     //mov   edx, DWORD [ebp-40]
    /*   332 0000030E*/ 8B45D8                     //mov   eax, DWORD [ebp-40]
    /*   333 00000311*/ 89542404                   //mov   DWORD [esp+4], edx
    /*   334 00000315*/ 890424                     //mov   DWORD [esp], eax
    /*   335 00000318*/ E847FFFFFF                 //call   _replaceCodesWrapper
    /*   336 0000031D*/ 8B45EC                     //mov   eax, DWORD [ebp-20]
    /*   337 00000320*/ 8B55D8                     //mov   edx, DWORD [ebp-40]
    /*   338 00000323*/ 8910                       //mov   DWORD [eax], edx
    /*   339 00000325*/ E82EFFFFFF                 //call   _memoryRet
    /*   340 0000032A*/ 8945F4                     //mov   DWORD [ebp-12], eax
    // L16:
    /*   342 0000032D*/ C9                         //leave
    /*   345 0000032E*/ C3                         //ret
    // LFE2673:
    // _replaceCodes:
    // LFB2674:
    /*   353 0000032F*/ 55                         //push   ebp
    /*   356 00000330*/ 89E5                       //mov   ebp, esp
    /*   358 00000332*/ 83EC10                     //sub   esp, 16
    /*   359 00000335*/ C745FC00000000             //mov   DWORD [ebp-4], 0
    /*   360 0000033C*/ EB37                       //jmp   L19
    // L20:
    /*   362 0000033E*/ 8B45FC                     //mov   eax, DWORD [ebp-4]
    /*   363 00000341*/ 8D148500000000             //lea   edx, [0+eax*4]
    /*   364 00000348*/ 8B4508                     //mov   eax, DWORD [ebp+8]
    /*   365 0000034B*/ 01D0                       //add   eax, edx
    /*   366 0000034D*/ 8B00                       //mov   eax, DWORD [eax]
    /*   367 0000034F*/ 8945F8                     //mov   DWORD [ebp-8], eax
    /*   368 00000352*/ 8B4510                     //mov   eax, DWORD [ebp+16]
    /*   369 00000355*/ 0145F8                     //add   DWORD [ebp-8], eax
    /*   370 00000358*/ 8B45F8                     //mov   eax, DWORD [ebp-8]
    /*   371 0000035B*/ 8945F4                     //mov   DWORD [ebp-12], eax
    /*   372 0000035E*/ 8B45F4                     //mov   eax, DWORD [ebp-12]
    /*   373 00000361*/ 8B00                       //mov   eax, DWORD [eax]
    /*   374 00000363*/ 89C2                       //mov   edx, eax
    /*   375 00000365*/ 8B4510                     //mov   eax, DWORD [ebp+16]
    /*   376 00000368*/ 01D0                       //add   eax, edx
    /*   377 0000036A*/ 89C2                       //mov   edx, eax
    /*   378 0000036C*/ 8B45F4                     //mov   eax, DWORD [ebp-12]
    /*   379 0000036F*/ 8910                       //mov   DWORD [eax], edx
    /*   380 00000371*/ 8345FC01                   //add   DWORD [ebp-4], 1
    // L19:
    /*   382 00000375*/ 8B45FC                     //mov   eax, DWORD [ebp-4]
    /*   383 00000378*/ 3B450C                     //cmp   eax, DWORD [ebp+12]
    /*   384 0000037B*/ 7CC1                       //jl   L20
    /*   385 0000037D*/ C9                         //leave
    /*   388 0000037E*/ C3                         //ret
    // LFE2674:
    // replaceCodesSpacePlaceCreate:
    //   398                                      ;.linkonce discard
    // __Z13reverse_arrayIPcEvT_j:
    // LFB2693:
    /*   404 0000037F*/ 55                         //push   ebp
    /*   407 00000380*/ 89E5                       //mov   ebp, esp
    /*   409 00000382*/ 83EC10                     //sub   esp, 16
    /*   410 00000385*/ 8B450C                     //mov   eax, DWORD [ebp+12]
    /*   411 00000388*/ D1E8                       //shr   eax, 1
    /*   412 0000038A*/ 8945F8                     //mov   DWORD [ebp-8], eax
    /*   413 0000038D*/ C745FC00000000             //mov   DWORD [ebp-4], 0
    /*   414 00000394*/ EB4A                       //jmp   L22
    // L23:
    /*   416 00000396*/ 8B45FC                     //mov   eax, DWORD [ebp-4]
    /*   417 00000399*/ 8B5508                     //mov   edx, DWORD [ebp+8]
    /*   418 0000039C*/ 01D0                       //add   eax, edx
    /*   419 0000039E*/ 8945F4                     //mov   DWORD [ebp-12], eax
    /*   420 000003A1*/ 8B45FC                     //mov   eax, DWORD [ebp-4]
    /*   421 000003A4*/ 8B550C                     //mov   edx, DWORD [ebp+12]
    /*   422 000003A7*/ 29C2                       //sub   edx, eax
    /*   423 000003A9*/ 89D0                       //mov   eax, edx
    /*   424 000003AB*/ 8D50FF                     //lea   edx, [eax-1]
    /*   425 000003AE*/ 8B4508                     //mov   eax, DWORD [ebp+8]
    /*   426 000003B1*/ 01D0                       //add   eax, edx
    /*   427 000003B3*/ 0FB600                     //movzx   eax, BYTE [eax]
    /*   428 000003B6*/ 8845F3                     //mov   BYTE [ebp-13], al
    /*   429 000003B9*/ 8B45FC                     //mov   eax, DWORD [ebp-4]
    /*   430 000003BC*/ 8B550C                     //mov   edx, DWORD [ebp+12]
    /*   431 000003BF*/ 29C2                       //sub   edx, eax
    /*   432 000003C1*/ 89D0                       //mov   eax, edx
    /*   433 000003C3*/ 8D50FF                     //lea   edx, [eax-1]
    /*   434 000003C6*/ 8B4508                     //mov   eax, DWORD [ebp+8]
    /*   435 000003C9*/ 01C2                       //add   edx, eax
    /*   436 000003CB*/ 8B45F4                     //mov   eax, DWORD [ebp-12]
    /*   437 000003CE*/ 0FB600                     //movzx   eax, BYTE [eax]
    /*   438 000003D1*/ 8802                       //mov   BYTE [edx], al
    /*   439 000003D3*/ 8B45F4                     //mov   eax, DWORD [ebp-12]
    /*   440 000003D6*/ 0FB655F3                   //movzx   edx, BYTE [ebp-13]
    /*   441 000003DA*/ 8810                       //mov   BYTE [eax], dl
    /*   442 000003DC*/ 8345FC01                   //add   DWORD [ebp-4], 1
    // L22:
    /*   444 000003E0*/ 8B45FC                     //mov   eax, DWORD [ebp-4]
    /*   445 000003E3*/ 3B45F8                     //cmp   eax, DWORD [ebp-8]
    /*   446 000003E6*/ 72AE                       //jb   L23
    /*   447 000003E8*/ C9                         //leave
    /*   450 000003E9*/ C3                         //ret
    // LFE2693:
    // "GCC:
    /*   457 000003EA*/ 202D6578706F72743A         //db' -export:\replaceCodes\', 00
    /*   457 000003F3*/ 5C7265706C61636543
    /*   457 000003FC*/ 6F6465735C00      
    /*   458 00000402*/ 202D6578706F72743A         //db' -export:\initCPPCode\', 00
    /*   458 0000040B*/ 5C696E697443505043
    /*   458 00000414*/ 6F64655C00        
    /*   459 00000419*/ 202D6578706F72743A         //db' -export:\codeMain\', 00
    /*   459 00000422*/ 5C636F64654D61696E
    /*   459 0000042B*/ 5C00              

    //replaceCodesSpacePlace:
     7b000000 ad000000 c9000000 0e010000 cb010000 d1010000 d7010000 dd010000 e3010000 e9010000 05020000
     15020000

    ENDDUMP

    (Os includes estão incluídos no download do programa)
    Código:
    #include "top.h"

    template<class T>
    void reverse_array(T array, size_t N)
    {
     size_t N2 = N / 2;
     for( size_t i = 0; i < N2; ++i )
     {
     auto &a = array[i];
     auto b = array[N-i-1];
     
     array[N-i-1] = a;
     a = b;
     }
    }

    int array[5];

    extern "C" int __declspec(dllexport) codeMain(int i)
    {
     char *inputBuffer = (char*)0x00969110;
     char calcularStr[] = { "CALCULAR" };
     reverse_array(calcularStr, sizeof(calcularStr) - 1);
     
     if (gtastrncmp(inputBuffer, calcularStr, sizeof(calcularStr) - 1) == 0)
     {
     inputBuffer[0] = 0;
     
     for (auto &a : array)
     {
     a = gtarand() % 100;
     ++a;
     }
     
     
     for (auto &a : array)
     {
     while (a != 12)
     {
     if (a > 12)
     --a;
     
     if (a < 12)
     ++a;
     }
     }
     
     char messageBuffer[2048] = {0};
     
     gtasprintf(messageBuffer, "Tudo 12!!! %d %d %d %d %d", array[0], array[1], array[2], array[3], array[4]);
     showTextBox(messageBuffer, 0, 0, 0);
     }
     
     return 0;
    }

    #include "btn.h"

    http://bms.mixmods.com.br/t4721-avancado-facilitador-de-conversao-de-c-para-assembly-para-usar-em-scripts-cleo-scm


    Última edição por Fabio em Qua 01 Fev 2017, 18:08, editado 1 vez(es)


    ____________________

    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
    Elyzandro
    Veterano
    Veterano

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

    Re: 10. Exercício #1

    Mensagem por Elyzandro em Qua 01 Fev 2017, 17:58

    Nem precisou colocar em spoiler por que ninguém entende mesmo. ;=;


    ____________________
    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
    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18620
    Reputação : 338
    Desde : 04/05/2012
    Idade : 20
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

    Re: 10. Exercício #1

    Mensagem por Fabio em Qua 01 Fev 2017, 18:09

    @Elyzandro escreveu:Nem precisou colocar em spoiler por que ninguém entende mesmo. ;=;

    Puts, esqueci de colocar o spoiler. :)


    ____________________

    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
    LightVelox
    Designer - Intermediário
    Designer - Intermediário

    Mensagens : 166
    Reputação : 32
    Desde : 27/03/2016
    Idade : 15
    Localização : Rio Grande do Sul - Brasil

    Re: 10. Exercício #1

    Mensagem por LightVelox em Seg 06 Fev 2017, 02:22

    Spoiler:
    Código:

    SCRIPT_START
    {
    NOP
     
    LVAR_INT var1
    LVAR_INT var2
    LVAR_INT var3
    LVAR_INT var4
    LVAR_INT 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
    main_loop:
    //n sei como mas essa porra é instantanea,alias n ligo pra numero de linhas
    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
    GOTO final_loop
    ELSE
        GOTO main_loop
    ENDIF


    final_loop:

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

    TERMINATE_THIS_CUSTOM_SCRIPT
    }
    SCRIPT_END
    n tem pouca linha mas fdp pq eu n ligo mt pra isso,quando desenvolvo games as vezes faco umas 100 linhas so pro cara andar e dps que me preocupo em otimizar o codigo


    ____________________
    Se eu te ajudei/fui útil a você clique no no lado da minha mensagem,ou se fiz um bom trabalho tbm clique no

    Spoiler:
    isso vai aumentar um numero inútil que n serve pra porra nenhuma mas que aumenta minha auto-estima a continuar :v

    Nex'
    Scripter CLEO - Básico
    Scripter CLEO - Básico

    Título : Imposto é roubo
    Mensagens : 962
    Reputação : 68
    Desde : 04/03/2013

    Re: 10. Exercício #1

    Mensagem por Nex' em Seg 06 Fev 2017, 02:48

    Você esqueceu do WAIT 0 no loop, isso faz seu script rodar mais rápido mas o jogo fica congelado ate ele terminar de rodar. Se fosse algo que demorasse mais tempo para resolver daria para perceber o congelamento...

    Código:
    main_loop:
    WAIT 0


    ____________________
    PC Specs
    CPU: Intel Core i3-6100 Skylake
    GPU: HD Intel 530
    RAM: Crucial Ballistix Elite 4GB 2133MHz DDR4
    PSU: Corsair CX-430W
    MOBO: Gigabyte GA-H110M-H DDR4
    avatar
    LightVelox
    Designer - Intermediário
    Designer - Intermediário

    Mensagens : 166
    Reputação : 32
    Desde : 27/03/2016
    Idade : 15
    Localização : Rio Grande do Sul - Brasil

    Re: 10. Exercício #1

    Mensagem por LightVelox em Seg 06 Fev 2017, 02:56

    @Nex' escreveu:Você esqueceu do WAIT 0 no loop, isso faz seu script rodar mais rápido mas o jogo fica congelado ate ele terminar de rodar. Se fosse algo que demorasse mais tempo para resolver daria para perceber o congelamento...

    Código:
    main_loop:
    WAIT 0

    eu tinha posto o wait 0,mas n tava dando nada dae refiz o code e esqueci de repor(n tava dando pq eu tava iniciando novo jogo e n tinha como o script mostrar algo pq o proprio jogo ja mostrava a mensagem de pegar a bicicleta,tive de baixar um save)


    ____________________
    Se eu te ajudei/fui útil a você clique no no lado da minha mensagem,ou se fiz um bom trabalho tbm clique no

    Spoiler:
    isso vai aumentar um numero inútil que n serve pra porra nenhuma mas que aumenta minha auto-estima a continuar :v

    Nex'
    Scripter CLEO - Básico
    Scripter CLEO - Básico

    Título : Imposto é roubo
    Mensagens : 962
    Reputação : 68
    Desde : 04/03/2013

    Re: 10. Exercício #1

    Mensagem por Nex' em Seg 06 Fev 2017, 03:00

    @LightVelox escreveu:
    @Nex' escreveu:Você esqueceu do WAIT 0 no loop, isso faz seu script rodar mais rápido mas o jogo fica congelado ate ele terminar de rodar. Se fosse algo que demorasse mais tempo para resolver daria para perceber o congelamento...

    Código:
    main_loop:
    WAIT 0

    eu tinha posto o wait 0,mas n tava dando nada dae refiz o code e esqueci de repor(n tava dando pq eu tava iniciando novo jogo e n tinha como o script mostrar algo pq o proprio jogo ja mostrava a mensagem de pegar a bicicleta,tive de baixar um save)
    Era só por um WAIT no começo do script de sei lá, uns 5000 ms, dai seu script só ia mostrar a mensagem depois que o jogo já mostrou a de pegar a bike :)
    avatar
    LightVelox
    Designer - Intermediário
    Designer - Intermediário

    Mensagens : 166
    Reputação : 32
    Desde : 27/03/2016
    Idade : 15
    Localização : Rio Grande do Sul - Brasil

    Re: 10. Exercício #1

    Mensagem por LightVelox em Seg 06 Fev 2017, 03:11

    @Nex' escreveu:
    @LightVelox escreveu:
    @Nex' escreveu:Você esqueceu do WAIT 0 no loop, isso faz seu script rodar mais rápido mas o jogo fica congelado ate ele terminar de rodar. Se fosse algo que demorasse mais tempo para resolver daria para perceber o congelamento...

    Código:
    main_loop:
    WAIT 0

    eu tinha posto o wait 0,mas n tava dando nada dae refiz o code e esqueci de repor(n tava dando pq eu tava iniciando novo jogo e n tinha como o script mostrar algo pq o proprio jogo ja mostrava a mensagem de pegar a bicicleta,tive de baixar um save)
    Era só por um WAIT no começo do script de sei lá, uns 5000 ms, dai seu script só ia mostrar a mensagem depois que o jogo já mostrou a de pegar a bike :)
    n tinha pensado nisso :) agr quero aprender como se faz missão(tipo o marcador Enex e ele entrando que dlc) e cutscene(poka coisa fuu2 ) assim eu consigo fazer um mod que é mt simples mas que nenhum fdp nunca fez pq são tudo guei


    ____________________
    Se eu te ajudei/fui útil a você clique no no lado da minha mensagem,ou se fiz um bom trabalho tbm clique no

    Spoiler:
    isso vai aumentar um numero inútil que n serve pra porra nenhuma mas que aumenta minha auto-estima a continuar :v
    avatar
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Não quero acreditar, quero saber.
    Mensagens : 21609
    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 Ter 07 Fev 2017, 14:51

    @LightVelox escreveu:agr quero aprender como se faz missão(tipo o marcador Enex e ele entrando que dlc) e cutscene(poka coisa fuu2 ) assim eu consigo fazer um mod que é mt simples mas que nenhum fdp nunca fez pq são tudo guei
    Enex? Isso é por .ipl, e tem absolutamente nada a ver com missão.
    Cutscene, você está dizendo literalmente? Pois saporra, tipo, ninguém na história do GTA tentou fazer uma coisa dessas kkkkk mas cenas básicas para missões você consegue fazer só com isso:
    http://bms.mixmods.com.br/t6011-criacao-de-carros-pedestres-objetos-uso-de-modelos
    Mas no futuro faço um tutorial de "TASK" que vai ajudou pakas.


    ____________________
    avatar
    LightVelox
    Designer - Intermediário
    Designer - Intermediário

    Mensagens : 166
    Reputação : 32
    Desde : 27/03/2016
    Idade : 15
    Localização : Rio Grande do Sul - Brasil

    Re: 10. Exercício #1

    Mensagem por LightVelox em Qua 08 Fev 2017, 13:41

    @Junior_Djjr escreveu:
    @LightVelox escreveu:agr quero aprender como se faz missão(tipo o marcador Enex e ele entrando que dlc) e cutscene(poka coisa fuu2 ) assim eu consigo fazer um mod que é mt simples mas que nenhum fdp nunca fez pq são tudo guei
    Enex? Isso é por .ipl, e tem absolutamente nada a ver com missão.
    Cutscene, você está dizendo literalmente? Pois saporra, tipo, ninguém na história do GTA tentou fazer uma coisa dessas kkkkk mas cenas básicas para missões você consegue fazer só com isso:
    http://bms.mixmods.com.br/t6011-criacao-de-carros-pedestres-objetos-uso-de-modelos
    Mas no futuro faço um tutorial de "TASK" que vai ajudou pakas.



    :v,mas n é isso que to dizendo,to dizendo tipo tu entrar num enex de missão,dae aparecer aquela tela preta com o nome da missao e a cutscene logo apos,a cutscene em si que to falando é so uma camera praticamente,so esses tutoriais que vcs fizeram ja são o suficiente pra eu saber fazer os peds e etc fazendo coisas,dps que terminase a "cutscene" so voltava pra camera do CJ


    ____________________
    Se eu te ajudei/fui útil a você clique no no lado da minha mensagem,ou se fiz um bom trabalho tbm clique no

    Spoiler:
    isso vai aumentar um numero inútil que n serve pra porra nenhuma mas que aumenta minha auto-estima a continuar :v
    avatar
    Um Geek
    Mensagens Nível 3
    Mensagens Nível 3

    Mensagens : 222
    Reputação : 67
    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 08 Mar 2017, 19:53

    Sou nub ainda e estou começando a mexer com gta3sc agora então ficou bem longo, mas consegui assim, já que não foi dito que precisa colocar a parte do gerador de números aleatório dentro do loop  (HMM)

    codigo:

    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

    avatar
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Não quero acreditar, quero saber.
    Mensagens : 21609
    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 Qui 09 Mar 2017, 01:22

    Tá massa.
    Código:
    var1 = var1 + 1
    Troque para as formas curtas como:
    Código:
    var += 1
    var++
    ++var
    É desnecessário fazer desse jeito.


    ____________________
    avatar
    Um Geek
    Mensagens Nível 3
    Mensagens Nível 3

    Mensagens : 222
    Reputação : 67
    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 09 Mar 2017, 12:51

    Valeu!

    Eu fiquei na duvida do que poderia acontecer como var1 = 2 então var1++ ser igual a 4, usarei este método nos próximos

    estou quebrando a cabeça para tentar descobrir algo que eu usava em jscript que era algo como
    var1 = "texto"
    var2 = 2017
    var1 + var2 = "texto2017"

    nem sei se é possível combinar estes dois tipos de valores, até agora só me rendeu uns crashes (ONO)


    ____________________


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

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18620
    Reputação : 338
    Desde : 04/05/2012
    Idade : 20
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

    Re: 10. Exercício #1

    Mensagem por Fabio em Qui 09 Mar 2017, 12:53

    @Um Geek escreveu:
    estou quebrando a cabeça para tentar descobrir algo que eu usava em jscript que era algo como
    var1 = "texto"
    var2 = 2017
    var1 + var2 = "texto2017"

    nem sei se é possível combinar estes dois tipos de valores, até agora só me rendeu uns crashes   (ONO)

    Esse tipo de coisa só é possível em linguagens de tipagem fraca, em uma linguagem de tipagem forte você precisa converter o inteiro para string e depois concatenar com a outra string.

    Pode usar SCAN_STRING para converter string para número.
    E STRING_FORMAT de número para string.

    Tem "infinitas" formas de usar esse opcode, por usar inclusive para concatenar as strings. Formatos aceitos: http://www.cplusplus.com/reference/cstdio/scanf/ http://www.cplusplus.com/reference/cstdio/printf/


    ____________________

    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: 10. Exercício #1

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Dom 25 Jun 2017, 22:57