Página 1 de 2 • 1, 2 

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:
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:
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...
Outro exemplo:
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:
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:
Exemplo:
Vejam, não precisamos usar varias labels =D, porem...
No fim de tudo, quando o código ser compilado, vai se transformar nisso:
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:
Exemplo:
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:
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.
Marca? que marca?

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:
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:
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á:
Então é isso, espero que tenham entendido, ate a próxima lição.
PROXIMA PARTE
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
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
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@
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
Marca? que marca?

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 ;)...
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
- Israel BritoMensagens Nível 4
- Mensagens : 409
Reputação : 0
Desde : 12/06/2012
Idade : 23
Localização : Sao Bento - PB
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@Israel Brito escreveu:sao total de quantas partes?
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_.Mensagens Nível 1
- Mensagens : 15
Reputação : 0
Desde : 07/10/2013
Idade : 24
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
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

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
PQP PRAQ DIGITAR DESSE TAMANHO CARA?
nem vou ler isso
nem vou ler isso
- ._DarwiN_.Mensagens Nível 1
- Mensagens : 15
Reputação : 0
Desde : 07/10/2013
Idade : 24
Desculpa ae pelo tamanho,é mania minha =/
- ._DarwiN_.Mensagens Nível 1
- Mensagens : 15
Reputação : 0
Desde : 07/10/2013
Idade : 24
Mas pelo menos ta certo ?
inicio vc disse certo
detalhe:
"diferente" eh <> ou "not =="
erro aqui:
sim, o fim tbm tah certo
detalhe:
< quer dizer "menos" e nao "diferente"18@ < 4 //18@ é diferente que 4 ? Não,então
"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
sim, o fim tbm tah certo
- ._DarwiN_.Mensagens Nível 1
- Mensagens : 15
Reputação : 0
Desde : 07/10/2013
Idade : 24
Bom =D vlw ai pelo tuto
tudo eh do LINK/2012, somente o converti pra postar aqui @_@
- 3xt3rm1n4d0rVeterano
- Mensagens : 1295
Reputação : 17
Desde : 10/01/2014
Localização : Sarandi - PR
Quando eu tento compilar esse código
Aparece uma mensagem de erro "Label "INIT" não encontrado." preciso atualizar o Sanny Builder por aquele link da GTA Garage? .-.
- 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? .-.
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

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

- 3xt3rm1n4d0rVeterano
- Mensagens : 1295
Reputação : 17
Desde : 10/01/2014
Localização : Sarandi - PR
@_@
______________________________
- Spoiler:
wtf eu nao toh conseguindo entender oq eu msm disse aqui@Junior_Djjr escreveu:inicio vc disse certo
detalhe:
< quer dizer "menos" e nao "diferente"18@ < 4 //18@ é diferente que 4 ? Não,então
"diferente" eh <> ou "not =="
erro aqui:
(vamos imaginar q ficou sendo verdadeiro e ignorar seu erro)
- 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
sim, o fim tbm tah certo

- Anderson_NSGMensagens Nível 1
- Mensagens : 6
Reputação : 0
Desde : 18/12/2015
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
}
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
}
- CloudScripter CLEO - Avançado
- Nick anterior : Israel
Título : Baiano
Mensagens : 858
Reputação : 138
Desde : 22/09/2015
- 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_NSGMensagens Nível 1
- Mensagens : 6
Reputação : 0
Desde : 18/12/2015
Dúvida esclarecida, obrigado Israel :)
- CloudScripter CLEO - Avançado
- Nick anterior : Israel
Título : Baiano
Mensagens : 858
Reputação : 138
Desde : 22/09/2015
Por nada.
Caraca, agora que tô vendo, os tutoriais ficaram fodas com a syntax highlighter.

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

______________________________
Everyone gonna remember my name !
- paulinho2108Veterano
- Mensagens : 1368
Reputação : 15
Desde : 22/04/2013
Idade : 27
Localização : uruguaiana/RS
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
a animação vai ser executada?
vai ter crash?
tudo isso, pois eu ainda estou iniciando.
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 animação vai ser executada?
vai ter crash?
tudo isso, pois eu ainda estou iniciando.
- AguiaX2Scripter 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
@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
a duvida é: vai rodar?
- 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 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
______________________________


- paulinho2108Veterano
- Mensagens : 1368
Reputação : 15
Desde : 22/04/2013
Idade : 27
Localização : uruguaiana/RS
- Raapito0rMensagens Nível 1
- Mensagens : 2
Reputação : 0
Desde : 07/12/2016
- Eu li tudo com muita atenção mas devo n ter visto alguma coisa pq na hora do "teste do marcador" deu erro..:
O erro está escrito que a label com nome "INIT" não foi encontrada.
Tente encontrá-la. Cadê ela?
Tente encontrá-la. Cadê ela?
- Raapito0rMensagens Nível 1
- Mensagens : 2
Reputação : 0
Desde : 07/12/2016
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..
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..
Página 1 de 2 • 1, 2 

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