Junior_Djjr
Junior_Djjr
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 25
Localização : Ibitinga - SP
Link : www.MixMods.com.br
http://MixMods.com.br
Qua 27 Jun 2012, 19:02
1. Introdução a Condições
Como o propio nome diz, Condições são estruturas que checam certas coisas e retornam o que foi achado por ela, verdadeiro ou falso (1 ou 0 - True ou False)...

Condições são partes muito importantes de um código, você vai usar este a todo momento.
Elas são algo como isto:

SE Você_esta_entendendo
Então
Você_vai_aprender
Caso_contrario
Releia_o_tutorial
Fim_da_condição

ou simplesmente

SE Você_aprendeu
Então
Você_vai_fazer_um_bom_mod
Fim_da_condição

Basicamente é uma pergunta =P

Quando uma condição é atendida, é retornado o valor 1 (ou seja, true = verdadeiro)
Quando uma condição não é atendida, é retornado o valor 0 (ou seja false = falso)

Exemplo1:
SE 2012_é_o_fim // Vai retornar 1 de Verdadeiro, então...
Então
Vamos_morrer // Então esse código vai ser lido
Fim_da_condição

Exemplo2:
SE Você_esta_dormindo // Vai retornar 0 de Falso, então...
Então
Você_vai_sonhar // Esse código NÃO vai ser lido, porque a condição não foi atendida
Fim_da_condição

Exemplo3:
SE Você_esta_dormindo // Vai retornar 0 de Falso, então...
Então
Você_vai_sonhar // Esse código NÃO vai ser lido, porque a condição não foi atendida
Caso_contrario
Você_vai_ler // Esse código vai ser lido, porque retornou falso, e por isso o código do caso contrario vai ser lido
Fim_da_condição

Como em programação, é utilizado como idioma nativo o inglês teremos um IF no lugar de SE, ELSE no lugar de CASO_CONTRARIO e END no lugar de FIM_DA_CONDIÇÃO, ou quase isso...

Bem, esse é o básico de uma condição, vamos continuar...

2. Condições Simples
2.1 Introdução as Condições Simples

As Condições simples são simples (dahhh!!), as estruturas destas condições simples são da seguinte forma:
Código:
if
condição
004D: jump_if_false @LABEL

Como você pode ver, você vai precisar ter uma label para o código pular se a condição retornar falso..

IF tem seu opcodes (00D6), porem não é necessário escreve-lo, o Sanny Builder faz o resto para nós =3.

Já o JUMP_IF_FALSE, temos que escrever o seu opcode, 004D, mas temos algumas alternativas mais rápidas, melhores, e curtas...

Você pode trocar o 004D: JUMP_IF_FALSE por ELSE_JUMP ou por JF, não faz diferença, vai escrever o mesmo opcode, exemplo:
Código:
if
condição
jf @LABEL

Código:
// Da no mesmo que
if
condição
else_jump @LABEL

Código:
// Que da no mesmo que
if
condição
004D: jump_if_false @LABEL

2.2 Usando as Condições Simples

Vamos fazer operações com variáveis, que aprendemos nos tutoriais anteriores
As variações para checagem de valores é desta forma:
x == y   X é igual a Y?
x >= y   X é maior ou igual a Y?
x > y    X é maior que Y?
x < y    X é menor que Y?
x <= y   X é menor ou igual a Y?
x <> y   X é diferente de Y?

Sabendo disso, vamos ao exemplo...
Código:
1@ = 7

:LABEL_A
if
1@ == 7     // 1@ é igual a 7? sim, então vai retornar verdadeiro, então...
jf @LABEL_B // ...Não vai pular, porque não retornou falso...
// ...O código vai continuar por aqui \/
blablabla
blablabla
blablabla
blablabla

:LABEL_B
if
1@ <> 7     // 1@ é diferente de 7? não, então vai retornar falso, então...
jf @LABEL_A // ...Vai pular, porque retornou falso...
// ...O código não vai continuar por aqui \/
lolololol
lolololol

Outro exemplo:
Código:
1@ = 7

:LABEL_A
if
1@ < 7     // 1@ é menor que 7? não, então vai retornar falso, então...
jf @LABEL_B // ...Vai pular, porque retornou falso...
// ...O código não vai continuar por aqui \/
blablabla
blablabla
blablabla
blablabla

:LABEL_B
if
1@ >= 7     // 1@ é maior ou igual a 7? Sim, então vai retornar verdadeiro, então...
jf @LABEL_A // ...Não vai pular, porque retornou verdadeiro...
// ...O código vai continuar por aqui \/
lolololol
lolololol
lolololol

Você também pode comparar duas variáveis, porem, você vai ter que declarar elas, ou usar o opcode correspondente a comparação, declarar é melhor, não é mesmo? Exemplo:
Código:
var
1@ : Integer = 7
2@ : Integer = 10
end
if
1@ == 2@
jf @BOLO

3. Condicições Avançadas
As condições a seguir, são fáceis apesar de eu ter nomeado como "Avançadas" =P

A estrutura é a seguinte:

Código:
if condição
then
fazer o que se for verdadeiro
end

// ou
if condição
then
fazer o que se for verdadeiro
end

// ou
if
condição
then
fazer o que se for verdadeiro
else
fazer o que se for falso
end

// ou
if condição
then
fazer o que se for verdadeiro
else
fazer o que se for falso
end
Se você entendeu as condições simples, não tenho muito o que falar aqui... <-- Olha uma condição!! =P

Exemplo:
Código:
1@ = 7

:LABEL
if 1@ == 7 // 1@ é igual a 7? Sim, então...
then // ...Vai ler o código abaixo...
    blablabla
    blablabla
    blablabla
    blablabla
    // Fim da leitura, agora vai ate o END de fechamento da condição
end // END de fechamento da condição
// Continuar lendo
if 1@ <> 7 // 1@ é diferente de 7? Não, então...  
then    // ...Não Vai ler o código do then e assim, vai ate o ELSE...
    lolololol
    lolololol
else // Vai ser lido o que esta no ELSE, porque retornou falso
    jump @LABEL
end // END de fechamento da condição
etc
etc
etc
DICA: Use a tecla TAB, para fazer esses espaços longos (tabulação), fica muito organizado, faça o teste.

Vejam, não precisamos usar varias labels =D, porem...

No fim de tudo, quando o código ser compilado, vai se transformar nisso:
Código:
0006: 1@ = 7

:LABEL_18
00D6: if
0039:   1@ == 7
004D: jump_if_false @LABEL_43
blablabla
blablabla
blablabla
blablabla

:LABEL_43
00D6: if
8039:   not  1@ == 7
004D: jump_if_false @LABEL_75
lolololol
lolololol
0002: jump @LABEL_82

:LABEL_75
0002: jump @LABEL_18

:LABEL_82
etcetcetc
etcetcetc
etcetcetc

Como perceberam, ouve uma grande mudança no código, por isso, eu RECOMENDO você fazer seu código, pelo arquivo fonte dele (o .txt), nele você não perde seus comentários nem diversas outras coisas, como esta estrutura de condições acima.

Mas porque isso aconteceu?
A estrutura, IF...THEN...ELSE...END, não é nativa de SCM, o Sanny Builder compila esta estrutura, para como o GTA vai entender...

Obviamente etcetcetc, lololol e blablabla, são qualquer código... é só um exemplo.

É isso, você pode colocar ifs infinitos no seu código, ou ate mesmo dentro do then\else

4. Condições alem de comparações

Temos muitos opcodes condicionais no GTA San Andreas que fazem condições, como por exemplo:
Código:
00DB:   actor $PLAYER_ACTOR in_car 22@
Esse opcode é uma condição, que checa se o ator $PLAYER_ACTOR (CJ no caso), esta no carro guardado na variavel 22@...

Exemplo:
Código:
if
00DB:   actor $PLAYER_ACTOR in_car 22@
jf @LABEL_X

// ou
if 00DB:   actor $PLAYER_ACTOR in_car 22@
then
    blablabla
end

// Ou as outras possibilidades estudadas ;)

Mas como saber que o opcode é um opcode condicional?

Simples, vejam que tem 3 espaços após o opcode, isso é um indicador de que é um opcode condicional (Não seja burro ao ponto de pegar um opcode normal, da 3 espaços na frente do seu opcode e dizer que é uma condição)

Comparação de Opcode Condicional com não condicional:
Código:
00DB:   actor $PLAYER_ACTOR in_car 22@
036A: put_actor 93@ in_car 22@

// Vejam, o 00DB tem 3 espaços após ele, e o 036A somente 1

Bem essa é a dica para saber se o opcode é condicional.

Temos também outros opcodes que fazem coisas e também retornam valores, ou seja, podem ser usados com IF.

Como identifica-los? Eles terão um comentario, // IF AND SET
Exemplo:
0AB6: store_target_marker_coords_to 0@ 1@ 2@ // IF and SET

Mas o que esse opcode faz se for usado com IF? Bem, ele vai pegar as coordenadas da marca vermelha, que se coloca no mapa... e se for usado com um IF ele vai fazer o mesmo, porem, ele também vai retornar 1 ou 0 (verdadeiro ou false, true ou false), no caso deste opcode, ele retorna verdadeiro se a marca estiver marcada no mapa, e retorna falso, se a marca não estiver marcada no mapa.
Código:
{$CLEO}
thread 'TESTE'

:TESTE
wait 0
if
0ADC:   test_cheat "TESTE"
jf @TESTE
if 0AB6: store_target_marker_coords_to 0@ 1@ 2@ // IF and SET
then
      0ACD: show_text_highpriority "True" time 2000
else
      0ACD: show_text_highpriority "False" time 2000
end
jump @TESTE
Teste no seu GTA San Andreas o código acima, digite TESTE com a marca do mapa em algum lugar, e outra vez, sem a marca em algum lugar.

Marca? que marca?
5. Condições RIKK0

 

Novamente, não sejam burro de pegar um opcode e colocar o comentario IF AND SET no fim, os espaços e os comentários são ignorados na hora da compilação, eles só servem para sinalizar alguma coisa para você, ser humano, mas o GTA não entende nada por espaços e\ou comentários.

5. Operadores lógicos
Temos alguns operadores lógicos nas condições, vamos estuda-los.

5.1 AND
Se você quiser fazer uma condição, que para ela ser atendida, todas as condições listadas tem que ser cumpridas, usamos o AND.

Basicamente ele funciona assim:
SE E
Você_esta_lendo // Verdadeiro
Você_esta_dormindo // Falso
Então
blablabla
Fim_da_condição

A condição acima não vai ser atendida, ou seja blablabla não vai ser lido, mas como assim? Retornou verdadeiro, não, para o IF AND ser atendido todas as condições listadas nele tem de ser atendidas, se não forem, vai retornar falso ao GTA.

SE E
Você_esta_lendo // Verdadeiro
Você_esta_vivo // Verdadeiro
Então
blablabla
Fim_da_condição

Agora sim, vai retornar verdadeiro e vai ler blablabla =)

Você pode utilizar no máximo 9 condições e no mínimo duas, no operador AND.
Para finalizar, o exemplo:
Código:
1@ = 9
2@ = 5
3@ = 2
4@ = 2011

if and
00DB:   actor $PLAYER_ACTOR in_car 5@
1@ == 5
2@ == 5
3@ == 5
4@ == 7
jf @LABEL_X // Vai pular para LABEL_X, porque vai retornar falso.

Código:
// também podemos usar com o Avançado:
if and
00DB:   actor $PLAYER_ACTOR in_car 5@
1@ == 5
2@ == 5
3@ == 5
4@ == 7
then
    // Não vai ser lido, porque vai retornar FALSO
end

// também podemos usar com o else ;)...
5.2 OR
Se você entendeu o AND, esse é fácil, ele retorna verdadeiro ao jogo se qualquer uma das condições listadas a ele forem verdadeiras ;D

SE OU
Você_esta_lendo // Verdadeiro
Você_esta_dormindo // Falso
Então
blablabla
Fim_da_condição

Vai ser retornado verdadeiro ao jogo, e o blablabla vai ser lido, mas porque se um retornou falso? Como eu disse, se qualquer um retornar verdadeiro ele retorna verdadeiro ao game.

Mas e se todas forem verdadeiras?
SE OU
Você_esta_lendo // Verdadeiro
Você_esta_vivo // Verdadeiro
Então
blablabla
Fim_da_condição


Ainda vai retornar verdadeiro e ler o blablabla, é mais ou menos assim, o OR, checa o primeiro, se ele for verdadeiro, ele ignora o resto e da verdadeiro ;D.

Se o primeiro for falso, ele checa o segundo... ate achar um verdadeiro, se terminar a lista de checagens e ele não achar nenhum verdadeiro, ele retorna falso.

O Exemplo:
Código:
1@ = 9
2@ = 5
3@ = 2
4@ = 2011

if or
00DB:   actor $PLAYER_ACTOR in_car 5@
1@ == 5
2@ == 5
3@ == 5
4@ == 7
jf @LABEL_X // Não vai para LABEL_X, porque vai retornar verdadeiro, porque a condição "2@ == 5" foi atendida.

// também podemos usar com o Avançado:
if or
00DB:   actor $PLAYER_ACTOR in_car 5@
1@ == 5
2@ == 5
3@ == 5
4@ == 7
then
    // Vai ser lido, porque vai retornar verdadeiro (2@ == 5? Sim)
end

// E também podemos usar com o else.

5.3 NOT
NOT é um operador bem interessante, como o nome diz é um condicional "NÃO", ele pode ser usado com o IF sozinho ou também com o IF AND ou IF OR.

Vamos ao exemplo:
SE
NOT você_esta_dormindo // Você não esta dormindo? -- Verdadeiro
Então
Vá_dormir
Fim_da_condição

É isso, ele checa o oposto do normal.

Mas á um uso especial com opcodes, primeiramente, uma coisa que esqueci de dizer na Introdução...
Se você digitar um opcode, e apertar F1 em seguida, o conteúdo dele vai aparecer, yee, faça o teste, digite 0001 no Sanny Builder, e em seguida aperte F1, muito bom!

Voltando ao NOT...
Se você perceber os opcodes sempre começam com um 0... ou quase sempre... Exemplo:
00DB:   actor $PLAYER_ACTOR in_car 5@

O que vai acontecer se trocarmos aquele 0 em vermelho por um 8 e em seguida apertar F1?
Faça o teste!
Vai aparecer:
80DB:   not actor $PLAYER_ACTOR in_car $60 // Tenho de trocar o $60 de volta para 5@
Vejam, agora é um condicional NOT!

Magica!

Mas atenção, não adianta você apenas trocar o inicio para not, não vai adiantar, se lembre, o que é lido e compilado é o opcode e os parâmetros, não as letrinhas, como o NOT.
Exemplo:
00DB:   not actor $PLAYER_ACTOR in_car 5@
Vai ser lido como:
00DB:   actor $PLAYER_ACTOR in_car 5@
Porque? Isso porque o Opcode não mudou para 8.

Eu realmente preciso fazer um exemplo?
Então vamos lá:
Código:
036A: put_actor $PLAYER_ACTOR in_car 5@ // Coloquei o CJ no carro 5@
if
80DB:   not actor $PLAYER_ACTOR in_car 5@ // Falso
jf @LABEL_X // Vai pular para a LABEL_X

// Blablabla, você sabe, também podemos utilizar com o AND, OR, THEN, ELSE.

Então é isso, espero que tenham entendido, ate a próxima lição.

PROXIMA PARTE


Última edição por Junior_Djjr em Qui 19 Jan 2017, 20:48, editado 2 vez(es)
Israel Brito
Israel Brito
Mensagens Nível 4
Mensagens Nível 4
Mensagens : 409
Reputação : 0
Desde : 12/06/2012
Idade : 23
Localização : Sao Bento - PB
Qua 27 Jun 2012, 19:20
sao total de quantas partes?
Junior_Djjr
Junior_Djjr
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 25
Localização : Ibitinga - SP
Link : www.MixMods.com.br
http://MixMods.com.br
Qua 27 Jun 2012, 19:24
@Israel Brito escreveu:sao total de quantas partes?
ate o momento tem 9 e um exercicio de tipo um desafio de cleo, soh falta converte-las, mas depois acho q o LINK/2012 vai fazer mais, com ctz, há muita coisa pra aprender sobre cleos
Murai The Killer
Murai The Killer
Mensagens Nível 4
Mensagens Nível 4
Mensagens : 260
Reputação : 0
Desde : 03/06/2012
Idade : 32
Localização : Santa Terezinha de Itaipu, Paraná
Link : downseinfo.blogspot.com.br
http://downseinfo.blogspot.com.br
Qua 27 Jun 2012, 21:40
Parece ser fácil (eu disse "parece"), talvez porque o tutorial seja bem explicativo, eu ainda não saberei fazer nada em cleo (talvez eu consiga fazer um mod pra dar dinheiro pro cj, ou spawnar um carro, mas isso é inútil XD), mas acredito que ao fim do tutorial eu já consiga fazer alguma gambiarra no meu GTA, kkk!

______________________________
Quem abre a mente, reduz o mundo. (Neoqjav)
._DarwiN_.
._DarwiN_.
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 15
Reputação : 0
Desde : 07/10/2013
Idade : 24
Seg 07 Out 2013, 13:18
Desculpe Link e Djjr Junior se eu estiver enchendo o Saco por perguntar tanto e talz,mais quero saber se estou certo ou não hehe 

18@ = 4 // Eu setei uma Variavel Local com o Valor 4

:LABEL_A
if
18@ >= 4 //18@ é igual ou Maior que 4 ? Sim,então
jf LABEL_B //jf não vai funcionar porque O Código retornou em Verdadeiro
Eu gosto de Rap,E odeio Funk,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,
,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,
,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,
,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,
,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk // Então ele não vai pular o codigo que escrevi
para o jogo fazer porque não deu Como Falso.


Caso de Falso :

18@ = 4 // Eu setei uma Variavel Local com o Valor 4

:LABEL_A
if
18@ < 4 //18@ é diferente que 4 ? Não,então
jf LABEL_B //jf vai funcionar porque o Codigo retornou falso
Eu gosto de Rap,E odeio Funk,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,
,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,
,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,
,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,
,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk

4@ = 9

:LABEL_B
if
4@ <>  4 // 4@ é diferente que 4 ? Sim,então vai retornar Verdadeiro
jf LABEL_A // jf não funcionar pois O Label B é Verdadeiro
18@ = 4 // Eu setei uma Variavel Local com o Valor 4

:LABEL_A
if
18@ >= 4 //18@ é igual ou Maior que 4 ? Sim,então
jf LABEL_B //jf não vai funcionar porque O Código retornou em Verdadeiro
Eu gosto de Rap,E odeio Funk,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,
,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,
,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,
,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk,
,Eu gosto de Rap,E odeio Funk,,Eu gosto de Rap,E odeio Funk // Então ele não vai pular o codigo que escrevi
para o jogo fazer porque não deu Como Falso.

Certo ? =p



Última edição por ._DarwiN_. em Seg 07 Out 2013, 13:25, editado 1 vez(es) (Razão : Malz pelo tamanho,é mania =I)
Junior_Djjr
Junior_Djjr
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 25
Localização : Ibitinga - SP
Link : www.MixMods.com.br
http://MixMods.com.br
Seg 07 Out 2013, 13:19
PQP PRAQ DIGITAR DESSE TAMANHO CARA?
nem vou ler isso

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
._DarwiN_.
._DarwiN_.
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 15
Reputação : 0
Desde : 07/10/2013
Idade : 24
Seg 07 Out 2013, 13:30
Desculpa ae pelo tamanho,é mania minha =/
._DarwiN_.
._DarwiN_.
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 15
Reputação : 0
Desde : 07/10/2013
Idade : 24
Seg 07 Out 2013, 13:36
Mas pelo menos ta certo ?
Junior_Djjr
Junior_Djjr
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 25
Localização : Ibitinga - SP
Link : www.MixMods.com.br
http://MixMods.com.br
Seg 07 Out 2013, 13:41
inicio vc disse certo


detalhe:
18@ < 4 //18@ é diferente que 4 ? Não,então
< quer dizer "menos" e nao "diferente"
"diferente" eh <> ou "not =="


erro aqui:
Código:
4@ = 9

:LABEL_B //caso for falso ali encima vai pra cá certo? entao aquele 4@ = 9 ali encima nao vai ser lido, obvio
if
4@ <>  4
(vamos imaginar q ficou sendo verdadeiro e ignorar seu erro)
sim, o fim tbm tah certo

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
._DarwiN_.
._DarwiN_.
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 15
Reputação : 0
Desde : 07/10/2013
Idade : 24
Seg 07 Out 2013, 13:52
Bom =D vlw ai pelo tuto
Junior_Djjr
Junior_Djjr
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 25
Localização : Ibitinga - SP
Link : www.MixMods.com.br
http://MixMods.com.br
Seg 07 Out 2013, 13:54
tudo eh do LINK/2012, somente o converti pra postar aqui @_@

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
3xt3rm1n4d0r
3xt3rm1n4d0r
Veterano
Veterano
Mensagens : 1295
Reputação : 17
Desde : 10/01/2014
Localização : Sarandi - PR
Dom 14 Dez 2014, 19:33
Quando eu tento compilar esse código

Spoiler:
{$CLEO}
thread 'TESTE'

:TESTE
wait 0
if
0ADC:   test_cheat "TESTE"
jf @INIT
if 0AB6: store_target_marker_coords_to 0@ 1@ 2@ // IF and SET
then
     0ACD: show_text_highpriority "True" time 2000
else
     0ACD: show_text_highpriority "False" time 2000
end
jump @TESTE

Aparece uma mensagem de erro "Label "INIT" não encontrado." preciso atualizar o Sanny Builder por aquele link da GTA Garage? .-.
Junior_Djjr
Junior_Djjr
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 25
Localização : Ibitinga - SP
Link : www.MixMods.com.br
http://MixMods.com.br
Dom 14 Dez 2014, 19:41
e por acaso existe alguma label com nome INIT ai? :)

eu acho q antes as labels se chamavam :INIT dae trocaram pra :TEST mas esqueceram de trocar o jf @INIT pra jf @TEST tbm :v:

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
3xt3rm1n4d0r
3xt3rm1n4d0r
Veterano
Veterano
Mensagens : 1295
Reputação : 17
Desde : 10/01/2014
Localização : Sarandi - PR
Dom 14 Dez 2014, 19:47
@_@

______________________________
Spoiler:
Junior_Djjr
Junior_Djjr
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 25
Localização : Ibitinga - SP
Link : www.MixMods.com.br
http://MixMods.com.br
Dom 14 Dez 2014, 19:47
@Junior_Djjr escreveu:inicio vc disse certo


detalhe:
18@ < 4 //18@ é diferente que 4 ? Não,então
< quer dizer "menos" e nao "diferente"
"diferente" eh <> ou "not =="


erro aqui:
Código:
4@ = 9

:LABEL_B //caso for falso ali encima vai pra cá certo? entao aquele 4@ = 9 ali encima nao vai ser lido, obvio
if
4@ <>  4
(vamos imaginar q ficou sendo verdadeiro e ignorar seu erro)
sim, o fim tbm tah certo
wtf eu nao toh conseguindo entender oq eu msm disse aqui :v:

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
Anderson_NSG
Anderson_NSG
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 6
Reputação : 0
Desde : 18/12/2015
Sex 18 Dez 2015, 17:23
Alguém pode me esclarecer, só confirmar aqui se entendi certo:

Esse código do exemplo . . .

1@ = 9
2@ = 5
3@ = 2
4@ = 2011

if or
00DB: actor $PLAYER_ACTOR in_car 5@
1@ == 5
2@ == 5
3@ == 5
4@ == 7
jf @LABEL_X

seria . . .

1@ = 9
2@ = 5
3@ = 2
4@ = 2011

if or //se...
00DB: actor $PLAYER_ACTOR in_car 5@ //...o personagem estiver no carro...
1@ == 5// ...e a variavel 1@ for igual a 5...
2@ == 5//... ou a variavel 2@ for igual a 5...
3@ == 5//... ou a variavel 3@ for igual a 5...
4@ == 7//... ou a variavel 4@ for igual a 5...
jf @LABEL_X // ... satisfazendo a condição(coisa q não aocntece)vá para a LABEL_X.

Seria isso ou estou interpretando errado? (se estiver correto podem parar de ler por aqui XD)

O problema é q programo em java, e isso seria muuuito diferente em java, por isso estou na dúvida se entendi certo, em java ficaria +-:

int 1@ = 9
int 2@ = 5
int 3@ = 2
int 4@ = 2011

if ((00DB: actor $PLAYER_ACTOR in_car 5@ )&&(1@ == 5)||(2@ == 5)||(3@ == 5)||(4@ == 7)) { //em java && é o 'and' e || é o 'ou'
jf @LABEL_X
}
Cloud
Cloud
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Nick anterior : Israel
Título : Baiano
Mensagens : 858
Reputação : 138
Desde : 22/09/2015
Sex 18 Dez 2015, 17:49
Código:
if or
    00DB: actor $PLAYER_ACTOR in_car 5@ // Se o personagem estiver no carro guardado em 5@
    1@ == 5 // ou a variável 1@ for igual a 5
    2@ == 5 // ou a variável 2@ for igual a 5
    3@ == 5 // ou a variável 3@ for igual a 5
    4@ == 7 // ou a variável 4@ for igual a 7
jf @LABEL_X // Se NENHUMA dessas condições retornar verdadeiro, pular para :LABEL_X
/* Caso qualquer uma das condições retornar verdadeiro, o script continua aqui.
(...) */

O "jf" significa "jump if false", ou seja, ele pula para uma label caso a condição retorne falso.

______________________________
Everyone gonna remember my name !
Anderson_NSG
Anderson_NSG
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 6
Reputação : 0
Desde : 18/12/2015
Sex 18 Dez 2015, 18:01
Dúvida esclarecida, obrigado Israel :)
Cloud
Cloud
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Nick anterior : Israel
Título : Baiano
Mensagens : 858
Reputação : 138
Desde : 22/09/2015
Sex 18 Dez 2015, 18:16
Por nada. :)


Caraca, agora que tô vendo, os tutoriais ficaram fodas com a syntax highlighter. que maravilha

______________________________
Everyone gonna remember my name !
paulinho2108
paulinho2108
Veterano
Veterano
Mensagens : 1368
Reputação : 15
Desde : 22/04/2013
Idade : 27
Localização : uruguaiana/RS
Qua 29 Jun 2016, 21:04
olá, pessoal
tenho uma duvida
fiz um script para rodar uma animação de caminhada(animação de um mod que eu havia baixado)
o script é esse
Código:
{$CLEO}
wait 0
if and
044B:  actor $PLAYER_ACTOR on_foot
0ADC:  test_cheat "ROLLER"
then
0A1A: actor 88@ perform_walk_animation "roller" IFP "PED" framedelta 4.0 loopA 0 lockX 0 lockY 0 lockF 1 -1 ms // versionC
end
end
a duvida é: vai rodar?
a animação vai ser executada?
vai ter crash?
tudo isso, pois eu ainda estou iniciando.
AguiaX2
AguiaX2
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 653
Reputação : 38
Desde : 19/08/2015
Idade : 18
Localização : Em algum lugar do brasil
Link : https://www.youtube.com/watch?v=lMB18XPgEWA
Qui 30 Jun 2016, 11:38
@paulinho2108 escreveu:olá, pessoal
tenho uma duvida
fiz um script para rodar uma animação de caminhada(animação de um mod que eu havia baixado)
o script é esse
Código:
{$CLEO}
wait 0
if and
044B:   actor $PLAYER_ACTOR on_foot
0ADC:   test_cheat "ROLLER"
then
0A1A: actor 88@ perform_walk_animation "roller" IFP "PED" framedelta 4.0 loopA 0 lockX 0 lockY 0 lockF 1 -1 ms // versionC
end
end
a duvida é: vai rodar?
a animação vai ser executada?
vai ter crash?
tudo isso, pois eu ainda estou iniciando.

cara eu fiz um script igual a esse pra tu, e so comparar esse com o que eu fiz e ver o que estava faltando no seu script

Código:

{$CLEO}

0000:
while true
wait 0
if and
044B:  actor $player_actor on_foot
0ADC:  test_cheat "ROLLER"
then   
    0812: AS_actor $player_actor perform_animation "ROLLER" IFP "PED" framedelta 4.0 loopA 0 lockX 1 lockY 1 lockF 0 time -1  // versionB
    end
end

______________________________
5. Condições 2cfb98j

5. Condições 2uruk8x
paulinho2108
paulinho2108
Veterano
Veterano
Mensagens : 1368
Reputação : 15
Desde : 22/04/2013
Idade : 27
Localização : uruguaiana/RS
Qui 30 Jun 2016, 12:32
@AguiaX2
corrigi .
depois vou ver se dá certo
Raapito0r
Raapito0r
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 2
Reputação : 0
Desde : 07/12/2016
Qui 08 Dez 2016, 00:30
Eu li tudo com muita atenção mas devo n ter visto alguma coisa pq na hora do "teste do marcador" deu erro..:
5. Condições E7jceb
Por favor digam onde eu fui burro kk ou se foi apenas um descuido, mas me ajudem..
Junior_Djjr
Junior_Djjr
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 25
Localização : Ibitinga - SP
Link : www.MixMods.com.br
http://MixMods.com.br
Qui 08 Dez 2016, 00:37
O erro está escrito que a label com nome "INIT" não foi encontrada.
Tente encontrá-la. Cadê ela?

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
Raapito0r
Raapito0r
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 2
Reputação : 0
Desde : 07/12/2016
Qui 08 Dez 2016, 00:51
Quando eu salvo em "rtf" da "diretiva desconhecida }", e quando salvo em "txt" diz "INIT n encontrado"..
Vou começar tudo do zero, instalar do zero e ler do zero, se ainda der erro eu volto..
Se todos deu certo é obvio q eu to errado kkkk, até mais..
Conteúdo patrocinado
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum