#. Gerador de carros estacionados e SAVE_THIS_CUSTOM_SCRIPT

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

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

    #. Gerador de carros estacionados e SAVE_THIS_CUSTOM_SCRIPT

    Mensagem por Junior_Djjr em Sab 04 Fev 2017, 13:23

    Quando usar?


    Já vou começar assim: Usar geradores de carros (carros estacionados) não é tão interessante assim e você pode na grande maioria das vezes querer usar um método manual, na qual eu já ensinei:
    Criação de carros, pedestres, objetos (uso de modelos)
    Assim, daquele modo, é só você criar o carro, marcar ele como não mais necessário e só.

    Aqui, será mais fácil, mas também mais preocupante...


    Quais comandos usar?


    Código:
    SAVE_THIS_CUSTOM_SCRIPT
    CREATE_CAR_GENERATOR
    CREATE_CAR_GENERATOR_WITH_PLATE
    SWITCH_CAR_GENERATOR

    Pegue, e agora misture tudo!

    Aqui um código pronto que cria um Elegy estacionado na frente da casa do CJ (na coordenada 2490.9143 -1682.3418 12.8685)

    Código copiável:

    Código:
    SCRIPT_START
    {
    LVAR_INT car_generator

    SAVE_THIS_CUSTOM_SCRIPT

    CREATE_CAR_GENERATOR (2490.9143 -1682.3418 12.8685, 270.0) ELEGY (-1 -1) TRUE (0 0) (0 10000) car_generator
    SWITCH_CAR_GENERATOR car_generator 101
    SET_HAS_BEEN_OWNED_FOR_CAR_GENERATOR car_generator TRUE

    }
    SCRIPT_END
    Lembrando mais uma vez que, os "(" ")" "," são só cosméticos e não influenciam de maneira alguma no funcionamento do código. Você inclusive pode preferir organizar eles de outro jeito.

    Perceba que a linha do CREATE_CAR_GENERATOR é gigante! Há muitos argumentos que até dificulta olhar e saber o que é cada um, por este motivo eu peço para que você digite uma linha "do zero", digitando coisa por coisa para ver "na íntegra" as informações pipocando.

    O comando já está muito bem documentado na gtamodding. Vou repetir e explicar um pouco mais aqui:


    1. Coordenada X
    2. Coordenada Y
    3. Coordenada Z
    4. Heading — ângulo/rotação Z, ou seja, para o onde o carro está apontado: 0.0 = norte, 90.0 = leste etc.
    5. ID do modelo (use -1 para ser um veículo aleatório baseado no local). Também aceitável a hash do nome do .dff do veículo.
    6. Cor primária — use -1 para uma cor aleatória baseada no carcols.dat do veículo.
    7. Cor secundária — idem acima.
    8. Forçar o spawm. Use "TRUE" (1) para evitar que o veículo não apareça.
    9. Porcentagem de chances para o veículo aparecer com alarme. (0~100)
    10. Porcentagem de chances para o veículo aparecer com a porta trancada. (0~100)
    11. Delay (atraso) mínimo para ser criado. Aparentemente não utilizado pelo jogo. A Rockstar sempre usou "0" aqui.
    12. Delay (atraso) máximo para ser criado. Aparentemente não utilizado pelo jogo. A Rockstar sempre usou "10000" aqui.
    13. Variável para ser armazenado o handle para o car generator. Por favor, não pense que aqui retornará uma variável do tipo "CAR", isso nem faria sentido, o que este comando faz é criar um gerador de carro, e não um carro. A variável retornada será um CAR_GENERATOR na qual pode ser usado em outros comandos sobre geradores de carros.


    Pronto! Você acabou de criar um gerador de veículo, que gerará um veículo automaticamente naquela coordenada com tais especificações.

    A variável retornada pode ser usada em comandos relacionados com geradores de carros.

    O próximo comando que daremos uma olhada é este:
    Código:
    SWITCH_CAR_GENERATOR car_generator 101
    Ele é interessante e não interessante ao mesmo tempo:
    Use "0" para fazer o carro não aparecer e "101" para aparecer.
    Perceba que estes números nem fazem sentido! Ou fazem...
    "Mas no tutorial do LINK/2012 ele ensinou a usar outros números"
    Sim, ensinou, e está errado. Possivelmente na época não havia este conhecimento.
    Caso você usar número abaixo de "101" irá dizer ao jogo que ele tem que gerar um veículo num tanto de vezes, por exemplo, "50" fará gerar 50 veículos para em seguida nunca mais gerar nenhum. Mas devido a um bug do jogo, isso não funciona!
    Portanto, é simples: "0" não aparecerá o veículo, e "101" aparecerá.

    O importante é: Por padrão é "0"!!! Portanto você sempre tem que colocar "101" para o nosso gerador funcionar, senão ele só estará lá armazenado sem gerar nada.

    E este:
    Código:
    SET_HAS_BEEN_OWNED_FOR_CAR_GENERATOR car_generator TRUE
    Use este comando com TRUE para dizer ao jogo que o CJ é o dono do veículo. Resultado? A polícia não irá atrás dele quando ele entrar no veículo, ou seja, não será considerado roubo :)
    Por padrão é "FALSE" (0), portanto se eu quisesse FALSE eu não precisaria ter usado este comando.

    Mas ainda falta explicar um deles:
    Código:
    SAVE_THIS_CUSTOM_SCRIPT
    Afinal o que diabos é isso?


    Introdução ao SAVE_THIS_CUSTOM_SCRIPT


    Este comando diz ao jogo (ou melhor, para a CLEO!) que este script deve ser salvo caso o jogo ser salvo.
    Basicamente, o progresso do script será salvo, assim não voltando do início quando você carregar o jogo, continuará "de onde parou" com os mesmos valores de variáveis etc.

    "Mas no quê isso é útil aqui??????"

    O fato é que um gerador de veículos fica "preso" no save game. Ou seja, quando você salvar o jogo, este gerador ficará no seu jogo salvo.
    Mas isso não é problema, muita coisa fica presa no save, é porque tudo foi feito pro main.scm, pra storyline do jogo, não somos culpados. O problema vem depois!
    Se você iniciar um save game já com o car generator preso nele, o script adicionará mais outro car generator, ou seja, agora você terá 2 geradores iguais! Vai criar um carro por cima do outro!! Não seja eu em 2011!!!
    E se você salvar o jogo mais uma vez? Terá 3!!! Isso vai se multiplicar.

    O que este comando faz aqui neste caso, é literalmente desativar o script para sempre.

    "Como assim?"

    Este script só roda e termina. O que será salvo será a informação de que ele terminou, oras bolas. Assim a CLEO saberá que o script já terminou e nunca mais se ativará novamente naquele jogo salvo. Não ativando novamente, não duplicará os geradores.

    A informação de script salvo fica armazenado na pasta "CLEO\CLEO_SAVES". Haverá arquivos lá dentro, se você deletar e entrar no jogo, o seu script voltará a rodar e criará novamente o gerador!

    Eu só quero deixar claro que: Não é comum usar SAVE_THIS_CUSTOM_SCRIPT. Geralmente só é usado para este tipo de coisa mesmo, você dificilmente usará para outros motivos. Por exemplo, o mesmo problema acontece com ícones de radar, portanto num script que cria ícones no radar que ficam armazenados para informar um local, adicione um SAVE_THIS_CUSTOM_SCRIPT também para não duplicar os ícones sempre que salvar o jogo, assim o script rodará, criará os ícones, desligará, e caso salvar o jogo, os ícones ficam no jogo salvo, e o script nunca mais voltará a rodar naquele save.


    Nota 1: Não, no momento não há como evitar ficar preso no save. Mas você inclusive pode editar o save por algum save editor. Lembro que alguns deles há como deletar os geradores, não sei se estou enganado.

    Nota 2: Se você não quer passar por dor de cabeça com esses geradores, então passe dor de cabeça criando os carros manualmente. Dependente o caso é muito melhor. Eu inclusive recomendo caso você esteja criando alguma conversão total na qual você vai editar o main.scm etc, daí aproveite e adicione os geradores no main.scm! Eles se sentirão em casa! Pois, tipo, você cria os geradores no New Game, e quando salvar o jogo eles estarão salvos, e pronto, não duplicará, pois eles só são criados no New Game.

    Nota 3: Tudo há limite. Se você quiser criar um mod de muitos geradores, vai ter que aumentar o limite: Use fastman92 limit adjuster, no .ini procure pela linha "#Car generators = 500", remova o "#" e aumente o "500" como necessário.

    Nota 4: Para usar geradores com qualquer ID de veículo incluindo adicionados sem substituir: Use fastman92 limit adjuster, no .ini procure pela linha "#Accept any ID for car generator = 0", remova o "#" e deixe "1" (true).

    Nota 5: Se você está querendo criar geradores não para um mod e sim para uso próprio, você pode querer preferir o uso do meu mod In-game Parked Car Creator (criar carros estacionados).


    Finalizando

    Agora adicionei um gerador numa outra casa ali na Grove, na qual pode aparecer algum veículo aleatório, em cor aleatória, e com possibilidade de ter alarme e porta trancada. E agora este carro não é do CJ — será considerado roubo se entrar nele.
    Código:
    SCRIPT_START
    {
    LVAR_INT car_generator

    SAVE_THIS_CUSTOM_SCRIPT

    CREATE_CAR_GENERATOR (2490.9143 -1682.3418 12.8685, 270.0) ELEGY (-1 -1) TRUE (0 0) (0 10000) car_generator
    SWITCH_CAR_GENERATOR car_generator 101
    SET_HAS_BEEN_OWNED_FOR_CAR_GENERATOR car_generator TRUE

    CREATE_CAR_GENERATOR (2442.9546 -1643.8577 13.4659, 180.0) -1 (-1 -1) TRUE (50 50) (0 10000) car_generator
    SWITCH_CAR_GENERATOR car_generator 101

    }
    SCRIPT_END
    Perceba que eu usei a mesma variável para ambos os geradores. Ué, por que não? Eu já usei o que tinha que usar, posso reutilizar a variável para um novo agora, já que não preciso mais dela.

    E que tal nós usarmos o comando CREATE_CAR_GENERATOR_WITH_PLATE ?
    Código:
    CREATE_CAR_GENERATOR_WITH_PLATE (2490.9143 -1682.3418 12.8685, 270.0) ELEGY (-1 -1) TRUE (0 0) (0 10000) "___CJ___" car_generator
    Este comando inclui uma placa personalizada! :D

    Use no máximo 8 letras/números. Use "_" para um espaço em branco.


    Crítica

    No tutorial do LINK/2012 para o Sanny Builder você pode ver críticas no próprio tutorial, e também nos comentários. Lá já dá uma boa demonstração de como isso é um problema.

    É que "criar carros estacionados" é coisa muito youtuber mirim que acha que sabe fazer mods cleos...
    Geralmente tutoriais destes são extremamente ruins e mal ensinados, e os mods que fazem tal coisa também são extremamente ruins! Eles conseguem aplicar erros até acima do normal, parece até proposital.
    Um dos poucos erros, é usar isso em um loop. Imagine a pessoa em 60 FPS! Será criado 60 geradores duplicados por segundo!!! Além de não salvar o script e usar números sem sentido nos argumentos.

    Espero que na "geração GTA3script" isso se limpe e as pessoas deem importância no aprendizado ao invés de fazer qualquer coisa que vem na mente ou aprender olhando códigos mal feitos dos outros, pois a "geração Sanny Builder" já explodiu de tutoriais ruins pela net!


    Última edição por Junior_Djjr em Ter 07 Fev 2017, 14:52, editado 1 vez(es)


    ____________________
    avatar
    Elyzandro
    Veterano
    Veterano

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

    Re: #. Gerador de carros estacionados e SAVE_THIS_CUSTOM_SCRIPT

    Mensagem por Elyzandro em Sab 04 Fev 2017, 13:49

    @Junior_Djjr escreveu:Use "0" para fazer o carro aparecer e "101" para fazer ele aparecer.
    :v


    ____________________
    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
    DouglasB2310
    Mensagens Nível 4
    Mensagens Nível 4

    Mensagens : 358
    Reputação : 10
    Desde : 12/01/2016
    Localização : 127.0.0.1:25565

    Re: #. Gerador de carros estacionados e SAVE_THIS_CUSTOM_SCRIPT

    Mensagem por DouglasB2310 em Seg 06 Fev 2017, 00:16

    @Elyzandro escreveu:
    @Junior_Djjr escreveu:Use "0" para fazer o carro aparecer e "101" para fazer ele aparecer.
    :v

    Colocar 0 faz o carro desaparecer.
    http://www.gtamodding.com/wiki/014C
    avatar
    Nex'
    Scripter CLEO - Básico
    Scripter CLEO - Básico

    Título : Imposto é roubo
    Mensagens : 959
    Reputação : 66
    Desde : 04/03/2013
    Idade : 17

    Re: #. Gerador de carros estacionados e SAVE_THIS_CUSTOM_SCRIPT

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

    @DouglasB2310 escreveu:
    @Elyzandro escreveu:
    @Junior_Djjr escreveu:Use "0" para fazer o carro aparecer e "101" para fazer ele aparecer.
    :v

    Colocar 0 faz o carro desaparecer.
    http://www.gtamodding.com/wiki/014C
    Sim, foi erro de digitação mas mais abaixo ele disse:
    "Portanto, é simples: "0" não aparecerá o veículo, e "101" aparecerá."


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

    Conteúdo patrocinado

    Re: #. Gerador de carros estacionados e SAVE_THIS_CUSTOM_SCRIPT

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Ter 23 Maio 2017, 13:58