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

Re: 10. Exercício #1

em 30.01.17 17: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
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : ;-;
Mensagens : 676
Reputação : 111
Desde : 22/09/2015
Idade : 19
Localização : Salvador - BA
Ver perfil do usuário

Re: 10. Exercício #1

em 30.01.17 18: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
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: 10. Exercício #1

em 30.01.17 18: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
Designer - Intermediário
Designer - Intermediário
Mensagens : 3193
Reputação : 133
Desde : 13/10/2012
Idade : 17
Localização : Terra Mágica dos Poneys
Link : MixMods.com.br
Ver perfil do usuáriohttp://www.mixmods.blogspot.com

Re: 10. Exercício #1

em 30.01.17 19: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
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 318
Reputação : 14
Desde : 01/02/2014
Idade : 16
Localização : Belém/PA
Ver perfil do usuário

Re: 10. Exercício #1

em 31.01.17 21: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
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: 10. Exercício #1

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

______________________________

avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 1023
Reputação : 82
Desde : 04/03/2013
Idade : 17
Ver perfil do usuário

Re: 10. Exercício #1

em 31.01.17 22:03
Foda rapaz.
Só acho que poderia ter usado uma função pra economizar código :)
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 318
Reputação : 14
Desde : 01/02/2014
Idade : 16
Localização : Belém/PA
Ver perfil do usuário

Re: 10. Exercício #1

em 31.01.17 22: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
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 1023
Reputação : 82
Desde : 04/03/2013
Idade : 17
Ver perfil do usuário

Re: 10. Exercício #1

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

Re: 10. Exercício #1

em 31.01.17 23: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
...

______________________________

avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 1023
Reputação : 82
Desde : 04/03/2013
Idade : 17
Ver perfil do usuário

Re: 10. Exercício #1

em 01.02.17 1: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.
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18830
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: 10. Exercício #1

em 01.02.17 14: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 01.02.17 17: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
Veterano
Veterano
Mensagens : 2915
Reputação : 81
Desde : 31/07/2013
Ver perfil do usuário

Re: 10. Exercício #1

em 01.02.17 16: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
Programador - Avançado
Programador - Avançado
Mensagens : 18830
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: 10. Exercício #1

em 01.02.17 17: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
Designer - Intermediário
Designer - Intermediário
Mensagens : 166
Reputação : 32
Desde : 27/03/2016
Idade : 15
Localização : Rio Grande do Sul - Brasil
Ver perfil do usuário

Re: 10. Exercício #1

em 06.02.17 1: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
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 1023
Reputação : 82
Desde : 04/03/2013
Idade : 17
Ver perfil do usuário

Re: 10. Exercício #1

em 06.02.17 1: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
avatar
Designer - Intermediário
Designer - Intermediário
Mensagens : 166
Reputação : 32
Desde : 27/03/2016
Idade : 15
Localização : Rio Grande do Sul - Brasil
Ver perfil do usuário

Re: 10. Exercício #1

em 06.02.17 1: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
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 1023
Reputação : 82
Desde : 04/03/2013
Idade : 17
Ver perfil do usuário

Re: 10. Exercício #1

em 06.02.17 2: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
Designer - Intermediário
Designer - Intermediário
Mensagens : 166
Reputação : 32
Desde : 27/03/2016
Idade : 15
Localização : Rio Grande do Sul - Brasil
Ver perfil do usuário

Re: 10. Exercício #1

em 06.02.17 2: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
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: 10. Exercício #1

em 07.02.17 13: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
Designer - Intermediário
Designer - Intermediário
Mensagens : 166
Reputação : 32
Desde : 27/03/2016
Idade : 15
Localização : Rio Grande do Sul - Brasil
Ver perfil do usuário

Re: 10. Exercício #1

em 08.02.17 12: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
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Título : Carinha que mora logo ali
Mensagens : 496
Reputação : 102
Desde : 07/03/2017
Localização : BH - MG
Ver perfil do usuário

Re: 10. Exercício #1

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

Re: 10. Exercício #1

em 09.03.17 1: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
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Título : Carinha que mora logo ali
Mensagens : 496
Reputação : 102
Desde : 07/03/2017
Localização : BH - MG
Ver perfil do usuário

Re: 10. Exercício #1

em 09.03.17 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)

______________________________

.::
Os mods que crio serão colocados no meu workshop link
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18830
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: 10. Exercício #1

em 09.03.17 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

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