15. Mais sobre condições

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

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

    15. Mais sobre condições

    Mensagem por Junior_Djjr em Qua 08 Fev 2017, 17:11

    Concluindo esta parte você irá:
    Aprender REPEAT e SWITCH, incluindo uma parte pouco mais teórica sobre condições e uma tática de retorno de verdadeiro/falso.

    Eu li uma apostila de Java onde tinha um foco legal: Ensinar cada coisa quando a pessoa estiver pronta para aquilo, eu achei isso interessante e logo iniciei este tutorial tentando passar isso para vocês também.

    Na parte 6 eu deixei de ensinar para você um tipo de loop.
    Na parte 7 eu deixei de ensinar para você um tipo de condição e uma tática de condição.
    Motivos: Você não sabia o que era variáveis, gosub/cleo_call e mal tinha noções ainda! Mas agora acredito que você já está pegando o jeito da coisa!




    REPEAT


    REPEAT é um loop que será repetido um tanto definido de vezes:

    Código copiável:
    SCRIPT_START
    {
    WAIT 3000

    LVAR_INT var1

    REPEAT 5 var1
       PRINT_FORMATTED_NOW "%d" 1000 var1
       WAIT 1000
    ENDREPEAT

    }
    SCRIPT_END[/code]
    Este script, após 3 segundos, irá mostrar os números: 0, 1, 2, 3, 4 na tela com intervalo de 1 segundo cada.
    "Por que 0 a 4? Por que não 1 a 5?"
    Meu filho, se acostume, você está num mundo diferente! Você verá muito disso pra todo lado.

    Note que você pode usar a variável "var1" dentro desse loop, assim pode te ser útil (mas eu particularmente não gosto, prefiro o bom e velho WHILE).

    Perceba que o REPEAT é o mesmo disso:

    Mas neste caso, o REPEAT é mais bem vindo, né? O código do WHILE ficou poluído.


    SWITCH


    Ohh, SWITCH é ótimo!
    É como se fosse vários IFs, mas de uma maneira mais "correta", elegante.



    Nele, você envia uma variável, e dependente do valor dela, ele fará diferentes coisas.

    No SWITCH eu enviei esta "var", e CASE ("caso") 1, aparecerá a mensagem de que o valor é 1.
    A variável atualmente tem o valor "2", portanto, neste exemplo, aparecerá a mensagem do valor 2.
    No "DEFAULT" é para caso não seja nenhum dos valores. Este é opcional e você não precisa colocar.

    E você pode personalizar como bem entender:


    Vamos ver um exemplo mais útil que você poderá usar no futuro:

    Você tem um menu, o jogador pode mexer neste menu, e quando selecionar (pressionar uma tecla), você enviará a variável "item_do_menu" para o SWITCH, na qual a "item_do_menu" diz qual dos itens foi selecionado, e assim fará diferentes coisas dependente de qual item do menu ele selecionou. Como por exemplo, dar spawn em diferentes carros:


    Muito legal, né?


    Táticas de condições


    Vamos nos aprofundar um pouco no que exatamente são as condições:

    Vamos voltar a lembrar: 1 = true, 0 = false.

    Vamos esquecer o "IF".

    O seu script está rodando, e ali num cantinho há um bit.

    Quando ele passar por isso:
    Código:
    IS_PC_VERSION
    Aquele bit ficará TRUE

    Agora, o "sistema" do jogo fará alguma resposta de verdadeiro-falso. E como ele vai saber? Indo naquele bit!

    Esse é um resumão de como funciona, há inclusive 8 bits (lembra que você pode usar até 8 condições?) e o "AND" e "OR" do IF é na verdade um argumento para o IF, na qual dará verdadeiro só caso todas (AND), ou alguma (OR) das condições for verdadeira, onde ele saberá isso indo lá nos bits ver se eles estão true (1).

    Blá blá blá, e o que isso importa?

    Dê uma olhada neste script:

    Código copiável:

    Código:
    SCRIPT_START
    {
    NOP

    LVAR_INT scplayer

    GET_PLAYER_CHAR 0 scplayer


    main_loop:
    WAIT 0
    IF GOSUB Activated
        PRINT_STRING_NOW "Whoaaaaaa" 100
    ENDIF
    GOTO main_loop


    Activated:
    IF IS_CHAR_SITTING_IN_ANY_CAR scplayer
    AND IS_KEY_PRESSED VK_KEY_Y
        IS_PC_VERSION
    ELSE
        IS_AUSTRALIAN_GAME
    ENDIF
    RETURN

    }
    SCRIPT_END
    Sério! Isso funciona!

    Nós fizemos uma gambiarra de usar "IS_PC_VERSION" para marcar o tal bit como "true" (afinal, o jogo é de PC, então sempre retornará verdadeiro), e "IS_AUSTRALIAN_GAME" para marcar o tal bit como "false" (afinal, o jogo não é australiano, então sempre retornará falso).
    Após setar TRUE ou FALSE, terá um RETURN que retornará, e aquele IF irá agir pegando o TRUE ou FALSE que ele armazenou durante a sua jornada dentro de um GOSUB.
    Note, que, os nomes "reais" para tal coisa deveria ser: IS_PC_VERSION = RETURN_TRUE e IS_AUSTRALIAN_GAME = RETURN_FALSE, mas estranhamente a Rockstar removeu estes comandos no GTA SA, então nós usamos estes dois de modo gambiarrado que dá o mesmo resultado.
    Aqui um exemplo menos útil mas mais fácil de entender:

    Seria o mesmo de eu ter digitado isso:


    Mas a utilidade vem quando:
    Você quer fazer alguma coisa naquele GOSUB, e após ter feito a tal coisa, você quer retornar um verdadeiro ou falso. Alguma coisa como "tudo deu certo ou não?"

    Veja este outro exemplo útil:

    Código copiável:

    Código:
    SCRIPT_START
    {
    LVAR_INT key1 key2

    IF GOSUB carregar_arquivos
        // ok
        PRINT_STRING_NOW "Tudo certo" 2000
        WAIT 2000
    ELSE
        // fail
        PRINT_STRING_NOW "Nao foi possivel continuar." 5000
        TERMINATE_THIS_CUSTOM_SCRIPT
    ENDIF

    main_loop:
    WAIT 0
    PRINT_STRING_NOW "Mod rodando..." 1
    GOTO main_loop

    carregar_arquivos:
    IF NOT READ_INT_FROM_INI_FILE "cleo\mod.ini" "config" "key1" key1
        PRINT_STRING_NOW "Falha ao carregar 'key1' do .ini" 5000
        WAIT 5000
        IS_AUSTRALIAN_GAME
        RETURN
    ENDIF
    IF NOT READ_INT_FROM_INI_FILE "cleo\mod.ini" "config" "key2" key2
        PRINT_STRING_NOW "Falha ao carregar 'key2' do .ini" 5000
        WAIT 5000
        IS_AUSTRALIAN_GAME
        RETURN
    ENDIF
    PRINT_STRING_NOW ".ini carregado com sucesso! do .ini" 5000
    WAIT 5000
    IS_PC_VERSION
    RETURN
    }
    SCRIPT_END
     
    Algum dia você possivelmente fará coisa assim em um mod seu.

    Perceba o que eu fiz: Um GOSUB onde carrega o meu .ini (Veja como carregar arquivos .ini aqui se ainda não viu!!!) e caso dar algum problema ao tentar carregar, eu mostro uma mensagem e retorno falso (IS_AUSTRALIAN_GAME), mas se nada dar errado, irá retornar verdadeiro (IS_PC_VERSION), e no retorno, o IF dará o resultado conforme ("foi verdadeiro ou falso?")

    E CLEO_CALL?
    Exatamente a mesma coisa!!! Muda nada.


    Limitações:

    É super perigoso você usar tal tática com um IF AND/OR, pois, basicamente, dentro do GOSUB/CLEO_CALL também terá um outro IF, ou seja, você sobrescreveu o IF antigo.
    Se tomar certos cuidados não passará por isso, mas, sério, é melhor nem tentar. Só use tal tática com IF único! Não use em IF AND/OR.

    Lembra que é possível fazer coisa desse tipo?
    Código:
    IS_CHAR_SITTING_IN_ANY_CAR scplayer
    RETURN
    Mas perceba que não é possível fazer coisa assim:
    Código:
    IF var1 = 10
    RETURN
    Pois não é aceito "IF" desta maneira.
    E como seria sem IF?
    Código:
    var1 = 10
    RETURN
    Wat?? Isso deixou de ser condição!
    Para retornar um verdadeiro ou falso, você teria que ter feito assim:
    Código:
    IF var1 = 10
        IS_PC_VERSION
    ELSE
        IS_AUSTRALIAN_GAME
    ENDIF
    RETURN
    Mas ainda há como!
    Este comando é o mesmo de "var1 = 10":
    Código:
    IS_INT_LVAR_EQUAL_TO_INT_LVAR var1 10
    RETURN
    Digitar isso foi exatamente a mesma coisa de ter feito um "IF var1 = 10", mas agora ao invés de usarmos um operador, nós usamos um comando :)
    Ou melhor ainda:
    Código:
    IS_THING_EQUAL_TO_THING var1 10
    Assim não precisando especificar que seja uma LVAR com INT e tal.
    Incluindo variações, como IS_THING_LESS_THAN_THING, IS_THING_GREATER_THAN_THING etc.




    Eu só queria deixar claro que isso não é uma coisa obrigatória de usar (ué, por que seria?). Só use caso você achar útil, não se sinta obrigado a usar isso, ok? Isso não é uma das coisas "ohh, todo mundo usa! Você usará!", isso é só uma coisinha legal para se fazer na qual pode deixar seu código mais interessante e dinâmico :) (eu particularmente uso muito, não sei do que será de você)


    Próxima parte:
    Arrays


    Última edição por Junior_Djjr em Dom 21 Maio 2017, 20:57, editado 3 vez(es) (Razão : "mostrou" errado, e dicas IS_THING_LESS_THAN_THING e IS_THING_GREATER_THAN_THING)


    ____________________
    avatar
    -Tito
    Mensagens Nível 2
    Mensagens Nível 2

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

    Re: 15. Mais sobre condições

    Mensagem por -Tito em Qua 08 Fev 2017, 17:54

    belo tutorial
    avatar
    LightVelox
    Designer - Intermediário
    Designer - Intermediário

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

    Re: 15. Mais sobre condições

    Mensagem por LightVelox em Qui 09 Fev 2017, 19:44

    bem que podia ter um tuto sobre Multifiles ou Missões em Geral


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

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

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

    Re: 15. Mais sobre condições

    Mensagem por Junior_Djjr em Qui 09 Fev 2017, 22:34

    @LightVelox escreveu:bem que podia ter um tuto sobre Multifiles ou Missões em Geral
    É tipo assim:
    5 pessoas querem aprender a criar .SCM
    Daí elas me pedem.
    Eu começo a fazer tais tutoriais.
    Mas todas destas 5, e mais umas 10 por fim falam "ei, você não vai criar o tutorial de manuseamento de memória não? Isso traz muito mais possibilidades de mod!"
    Ué, tudo tem seu tempo, e as coisas precisam ser colocadas nas horas certas.
    Ainda nem terminou os essenciais... E a criação de missões da "forma correta" tem várias regras chatas que ninguém que está começando vai conseguir controlá-las bem.

    Multifiles então, vei, saporra é o núcleo da porra, é lá que o CJ é criado, montado, e o funcionamento dos scripts anda (exemplo, variáveis indicando quantas missões se passou para assim determinar se tal coisa será aberta ou não, o funcionamento das propriedades, comprar, poder entrar em tais locais, quais garagens abre pra você etc).
    Se a pessoa quer aprender a criar .SCM é porque ela pensa que é incrivelmente foda, mas acho que só vai mexer um pouco e "meh, isso tem produtividade alguma, cheio de frescura e ninguém usaria isso a não ser numa conversão total, melhor eu criar uns mods separadamente ali". Eu só vejo necessidade de aprender Multifiles caso a pessoa seja o principal programador de uma conversão total. Fora de conversões totais, vejo utilidade alguma (inclusive, uma pessoa que sabe Multifiles pode facilmente pegar um script cleo de outra e adicionar ali no .SCM, ou seja, meio que só uma pessoa numa comunidade precisa aprender kkkk


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

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

    Re: 15. Mais sobre condições

    Mensagem por LightVelox em Sex 10 Fev 2017, 11:57

    @Junior_Djjr escreveu:
    @LightVelox escreveu:bem que podia ter um tuto sobre Multifiles ou Missões em Geral
    É tipo assim:
    5 pessoas querem aprender a criar .SCM
    Daí elas me pedem.
    Eu começo a fazer tais tutoriais.
    Mas todas destas 5, e mais umas 10 por fim falam "ei, você não vai criar o tutorial de manuseamento de memória não? Isso traz muito mais possibilidades de mod!"
    Ué, tudo tem seu tempo, e as coisas precisam ser colocadas nas horas certas.
    Ainda nem terminou os essenciais... E a criação de missões da "forma correta" tem várias regras chatas que ninguém que está começando vai conseguir controlá-las bem.

    Multifiles então, vei, saporra é o núcleo da porra, é lá que o CJ é criado, montado, e o funcionamento dos scripts anda (exemplo, variáveis indicando quantas missões se passou para assim determinar se tal coisa será aberta ou não, o funcionamento das propriedades, comprar, poder entrar em tais locais, quais garagens abre pra você etc).
    Se a pessoa quer aprender a criar .SCM é porque ela pensa que é incrivelmente foda, mas acho que só vai mexer um pouco e "meh, isso tem produtividade alguma, cheio de frescura e ninguém usaria isso a não ser numa conversão total, melhor eu criar uns mods separadamente ali". Eu só vejo necessidade de aprender Multifiles caso a pessoa seja o principal programador de uma conversão total. Fora de conversões totais, vejo utilidade alguma (inclusive, uma pessoa que sabe Multifiles pode facilmente pegar um script cleo de outra e adicionar ali no .SCM, ou seja, meio que só uma pessoa numa comunidade precisa aprender kkkk

    na verdade so tava querendo aprender como fazer missões,nem precisa ser missão de verdade podia ser a gambiarra que eu faco:
    -Escureco a Tela
    -Teleporto o CJ
    -Apago todos os Peds
    -Faco as missao(tipo spawno peds pro player mata)
    -Checo se ta tudo morto
    -Mostro mensagem falsa de "mission passed" e uso o "play_mission_tune" :v
    tipo isso aqui:
    Spoiler:

    Código:

    SCRIPT_START
    {
    NOP

    LVAR_INT groov1 groov2 groov3 balla1 balla2 balla3 player
    LVAR_INT groov4 groov5 balla4 balla5 balla6
    GET_PLAYER_CHAR 0 player

    Loop:
    WAIT 0

    IF IS_KEY_PRESSED VK_KEY_Z
        REQUEST_MODEL FAM3
        REQUEST_MODEL BALLAS2
        REQUEST_MODEL TEC9
        WHILE NOT HAS_MODEL_LOADED FAM3
            WAIT 0
        ENDWHILE
        WHILE NOT HAS_MODEL_LOADED BALLAS2
            WAIT 0
        ENDWHILE
        WHILE NOT HAS_MODEL_LOADED TEC9
            WAIT 0
        ENDWHILE
        DO_FADE 250 FADE_OUT
        SET_CHAR_COORDINATES player 2566.54 -1077.2 69.0801
        WAIT 250
        SET_PED_DENSITY_MULTIPLIER 0.0
        SET_CAR_DENSITY_MULTIPLIER 0.0
        WAIT 2500
        CREATE_CHAR PEDTYPE_GANG2 FAM3 2562.86 -1079.56 68.3118 groov1
        CREATE_CHAR PEDTYPE_GANG2 FAM3 2561.18 -1077.07 68.3501 groov2
        CREATE_CHAR PEDTYPE_GANG2 FAM3 2561.96 -1080.57 68.0461 groov3
        CREATE_CHAR PEDTYPE_GANG2 FAM3 2565.72 -1074.47 69.1414 groov4
        CREATE_CHAR PEDTYPE_GANG2 FAM3 2568.63 -1074.83 69.1890 groov5
        TASK_TURN_CHAR_TO_FACE_CHAR player groov1
        CREATE_CHAR PEDTYPE_GANG1 BALLAS2 2532.43 -1098.34 58.8073 balla1
        CREATE_CHAR PEDTYPE_GANG1 BALLAS2 2533.95 -1100.80 59.1936 balla2
        CREATE_CHAR PEDTYPE_GANG1 BALLAS2 2531.06 -1095.35 58.4566 balla3
        CREATE_CHAR PEDTYPE_GANG1 BALLAS2 2519.88 -1095.98 55.1887 balla4
        CREATE_CHAR PEDTYPE_GANG1 BALLAS2 2518.62 -1098.73 55.0010 balla5
        CREATE_CHAR PEDTYPE_GANG1 BALLAS2 2517.71 -1093.35 54.6461 balla6
        SET_PLAYER_MODEL 0 FAM3
        CLEAR_AREA 2468.8 -1095.65 44.3526 10000.0 1
        GIVE_WEAPON_TO_CHAR player 32 999
        GIVE_WEAPON_TO_CHAR balla1 32 999
        GIVE_WEAPON_TO_CHAR balla2 32 999
        GIVE_WEAPON_TO_CHAR balla3 32 999
        GIVE_WEAPON_TO_CHAR balla4 32 999
        GIVE_WEAPON_TO_CHAR balla5 32 999
        GIVE_WEAPON_TO_CHAR balla6 32 999
        GIVE_WEAPON_TO_CHAR groov1 32 999
        GIVE_WEAPON_TO_CHAR groov2 32 999
        GIVE_WEAPON_TO_CHAR groov3 32 999
        GIVE_WEAPON_TO_CHAR groov4 32 999
        GIVE_WEAPON_TO_CHAR groov5 32 999
        CLEAR_AREA 2468.8 -1095.65 44.3526 10000.0 1
        DO_FADE 1000 FADE_IN
        PRINT_BIG_FORMATTED "PCC vs CV" 1000 1 1
        TASK_FOLLOW_FOOTSTEPS groov1 player
        TASK_FOLLOW_FOOTSTEPS groov2 player
        TASK_FOLLOW_FOOTSTEPS groov3 player
        TASK_FOLLOW_FOOTSTEPS groov4 player
        TASK_FOLLOW_FOOTSTEPS groov5 player
        TASK_KILL_CHAR_ON_FOOT balla1 player
        TASK_KILL_CHAR_ON_FOOT balla2 player
        TASK_KILL_CHAR_ON_FOOT balla3 player
        TASK_KILL_CHAR_ON_FOOT balla4 player
        TASK_KILL_CHAR_ON_FOOT balla5 player
        TASK_KILL_CHAR_ON_FOOT balla6 player
        CLEAR_AREA 2468.8 -1095.65 44.3526 10000.0 1
        MARK_MODEL_AS_NO_LONGER_NEEDED FAM3
        MARK_MODEL_AS_NO_LONGER_NEEDED BALLAS2
        MARK_MODEL_AS_NO_LONGER_NEEDED TEC9
        CLEAR_AREA 2468.8 -1095.65 44.3526 10000.0 1
        WHILE IS_KEY_PRESSED VK_KEY_Z
            WAIT 0
        ENDWHILE
        WAIT 120000
        SET_PED_DENSITY_MULTIPLIER 1.0
        SET_CAR_DENSITY_MULTIPLIER 1.0
    ENDIF

    GOTO Loop

    Passed:
        IF IS_CHAR_DEAD balla1
            IF IS_CHAR_DEAD balla2
                IF IS_CHAR_DEAD balla3
                    IF IS_CHAR_DEAD balla4
                        IF IS_CHAR_DEAD balla5
                            IF IS_CHAR_DEAD balla6
                                PLAY_MISSION_PASSED_TUNE 1
                                PRINT_BIG_FORMATTED "Mission Passed" 2500 1 1
                            ENDIF
                        ENDIF
                    ENDIF
                ENDIF
            ENDIF
        ENDIF
        GOTO Passed
    }
    SCRIPT_END
    (eu sei que ta cheio de erro,a missao nunca termina e os 77 bilhoes de "IF ENDIF IF ENDIF IF ENDIF" tão errados no final" mas isso é pq ainda to fazendo ela e tbm é so um teste,os 3 "clear area" é so pq eu fiquei puto pelos peds ficarem spawnando de vez enquando)
    so falei de multifile msm pq la no Learn X in y Minutes os multifiles falam mais sobre missões do que qualquer outra coisa


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

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

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

    Re: 15. Mais sobre condições

    Mensagem por Junior_Djjr em Sex 10 Fev 2017, 12:16

    Fazer uma missão "básica" sem seguir as regras de "boas verdadeiras missões" não requer nenhum tutorial. No máximo uns pedidos para explicar como fazer tais coisas e ter umas dicas (como o clear area, que realmente é útil)

    Para mostrar o nome da missão: PRINT_BIG (após ter feito fade out)
    Para mostrar missão "failed": PRINT_BIG com style 1 tempo 5000 e GXT M_FAIL
    Para mostrar missão "passed":  PRINT_WITH_NUMBER_BIG também com style 1 e tempo 5000, agora com GXT M_PASS e no número você coloca o tanto de dinheiro que você deu para o player.
    Para tocar a musiquinha de missão passada: PLAY_MISSION_PASSED_TUNE com "1"

    Acho que é o básico, o resto é meio que aprendido com o tempo e tutoriais...

    Exemplo de MISSION PASSED no MAIN.SCM dentro do Sanny Builder:
    Código:
    $Catalina_Total_Passed_Missions += 1
    $1520 += 1
    0629: change_integer_stat 315 to 1
    168@ += 10000
    01E3: show_text_1number_styled GXT 'M_PASS' number 10000 time 5000 style 1  // MISSION PASSED!~n~~w~$~1~
    Player.Money($PLAYER_CHAR) += 10000
    Player.ClearWantedLevel($PLAYER_CHAR)
    0394: play_music 1
    030C: progress_made = 1
    0318: set_latest_mission_passed 'CAT_2'  // Small Town Bank
    $Mission_Small_Town_Bank_Passed = 1
    ps: Os "$" são variáveis globais e muita coisa como "progress_made" é exclusivo de multifile e não faz sentido usar em mods cleos.


    ____________________
    avatar
    Adryan Araújo
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 8
    Reputação : 0
    Desde : 18/12/2016
    Idade : 15
    Localização : Várzea Paulista - São Paulo

    Re: 15. Mais sobre condições

    Mensagem por Adryan Araújo em Qua 10 Maio 2017, 19:23

    Switchs são uma maravilha... Pena que não tem no GTA:SA. Ahhh, Rockstar, porque fizeste isso conosco?
    avatar
    Fabio
    Programador - Avançado
    Programador - Avançado

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

    Re: 15. Mais sobre condições

    Mensagem por Fabio em Qua 10 Maio 2017, 19:30

    @Adryan Araújo escreveu:Switchs são uma maravilha... Pena que não tem no GTA:SA. Ahhh, Rockstar, porque fizeste isso conosco?

    A Rockstar fez SWITCHes, são aqueles jump table que você vê no sanny, a forma original dele usada pela Rockstar é suportada pelo compilador de gta3script do LINK/2012. Exemplo: https://github.com/thelink2012/gta3sc/blob/454c9f93de8a9d77eb2950cf62610b5d5a916c23/test/semantics/switch.sc


    ____________________

    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: 15. Mais sobre condições

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Qui 22 Jun 2017, 13:31