Matheus Rivaldo
Matheus Rivaldo
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 981
Reputação : 36
Desde : 13/08/2015
Idade : 15
Localização : Passo de Torres - SC
em Seg 03 Jul 2017, 00:51
É só ler a mensagem do Veryzon ué, ele já disse que precisa. Eu achava que não precisava.

______________________________
Se eu te ajudei em algo, clique no botão de reputação (o "coraçãozinho" na parte de cima da mensagem).
CopRealism - Página 3 76561198263503198
Luciano Modernel
Luciano Modernel
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 67
Reputação : 10
Desde : 08/06/2017
Idade : 19
Localização : São Gabriel - RS
em Seg 03 Jul 2017, 00:59
@Veryzon escreveu:0119 = IS_CAR_DEAD [ignore este nome ridículo]
0247 = REQUEST_MODEL
038B = LOAD_ALL_MODELS_NOW
056D = DOES_CHAR_EXIST
056E = DOES_VEHICLE_EXIST
07DD = SET_CHAR_SHOOT_RATE
081A = SET_CHAR_WEAPON_SKILL
0AE2 = GET_RANDOM_CAR_IN_SPHERE_NO_SAVE_RECURSIVE

A seguir, eu listei algumas observações que fiz. Não estão muito completas, pois eu nunca fiz um "GTA3script", além de eu haver usado o notepad, então estava sem realce de sintaxe. E como no GTA3script os opcodes são escritos em maiúsculo, eu fiquei um tanto ofuscado.

OBSERVAÇÕES:

1º. Somente as palavras-chave encerradas por END* nivelam a indentação. Os que estiverem dentro, apenas apenas obedecem.



2º. Sempre verifique as alças das entidades após um ciclo do script, ocasionado pelo WAIT. É extremamente arriscado usar as alças sem checar. Para isso, é possível usar os opcodes 056D e 056E. Você não necessita de verificar mais que uma vez, pois o game é single-thread, assim os outros scripts não podem destruir as entidades até o WAIT do seu script.



3º. O segundo parâmetro do opcode 07DD tem seu valor limitado à 100 (%). Conforme seu uso pelo código do PE.



4º. O segundo parâmetro do opcode 081A tem seu valor limitado à '3'; sendo os, 0 = POBRE, 1 = STANDARD, 2 = PROFISSIONAL. Há também o 3 = ESPECIAL — mas, este apenas existe para a COLT45 e, somente é usado pelos policias.



5º. O ERRO MAIS RECORRENTE. Sempre que um, ou uma sequência, de opcode(s) 0247 for(em) usados, é necessário usar o opcode 038B para carregá-los, pois como o próprio nome (do opcode 0247) já diz, ele apenas "requer". Esse 'loop' somente transtorna a execução do script, pois é necessário que algum outro script ou o próprio PE carregue os modelos.



6º. Eu vi num comentário no código-origem que desconheceste os argumentos do opcode 0AE2, nos quais, poste "-1", sendo-os valores boolianos. Então, usa-se o primeiro para obter outras alças (handles), e não a mesma. Vide exemplo, em "SB3script":
Código:

if 0AE2:   {hVehicle} 6@ = FindAllRandomVehiclesInSphere {fPosnX && PosnfY && PosnfZ} 0@ 1@ 2@ {fRadius} 10.0 {bFindNext} false {bSkipDestroyed} false
then repeat
    // a ação a ser realizada.
    until 8AE2: NOT {hVehicle} 6@ = FindAllRandomVehiclesInSphere {fPosnX && PosnfY && PosnfZ} 0@ 1@ 2@ {fRadius} 10.0 {bFindNext} true {bSkipDestroyed} false
end//if
Observe que, na primeira instrução com 0AE2, o parâmetro 'bFindNext' equivale à 'false', pois é o primeiro. Já na segunda instrução (com 0AE2), o parâmetro 'bFindNext' equivale à 'true', assim a alça da entidade não se repete até o fim da listagem de todas as entidades (neste caso, veículos).
O parâmetro 'bSkipDestroyed' já antecipa o desinteresse nos veículos destruídos, assim não é necessário usar o opcode 0119.



Qualquer dia, eu hei de fazer um tópico com explicações detalhadas sobre o funcionamento dos opcodes conforme é usado no código em linguagem de montagem do PE; o que é bem diferente, além de nunca usar alguns parâmetros.

1. vou corrigir
2. Eu sempre checo as alças
3. vou corrigir
4. vou corrigir
5. quando eu uso REQUEST_*algo*
eu prefiro deixar no loop WHILE NOT HAS_*algo_LOADED
WAIT 0
ENDWHILE para evitar Lag Spikes
6.Vou corrigir, usei o comando sem saber oque o numeros inteiros significavam e estava funcional entao usei (erro que nunca mais cometerei )
Obrigado por ser o único que me ajudou sem me dar pedrada
Faça tutorias por favor, ira ajudar eu e muitos outros (Preferencialmente em gta3script).
avatar
Veryzon
Programador - Avançado
Programador - Avançado
Mensagens : 440
Reputação : 11
Desde : 02/06/2017
Idade : 100
Localização : Unidade Federal do Leste
Link : 127.0.0.1:80
https://discord.gg/q5G6SZc
em Seg 03 Jul 2017, 01:06
.


Última edição por Veryzon em Dom 01 Jul 2018, 05:42, editado 5 vez(es)
Matheus Rivaldo
Matheus Rivaldo
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 981
Reputação : 36
Desde : 13/08/2015
Idade : 15
Localização : Passo de Torres - SC
em Seg 03 Jul 2017, 01:17
Será que o Junior_Djjr sabe disso philosoraptor? (sobre a importância de checar as alças)

______________________________
Se eu te ajudei em algo, clique no botão de reputação (o "coraçãozinho" na parte de cima da mensagem).
CopRealism - Página 3 76561198263503198
Luciano Modernel
Luciano Modernel
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 67
Reputação : 10
Desde : 08/06/2017
Idade : 19
Localização : São Gabriel - RS
em Seg 03 Jul 2017, 01:24
@Matheus Rivaldo escreveu:Será que o Junior_Djjr sabe disso :philo:? (sobre a importância de checar as alças)

Nao lembro de ver isso no tutorial,
mas eu aprendi no mod de Skin que fiz.
Se chegar perto de um pedestre ja o armazana na variável, se fosse morto e eu tentasse virar a skin dele crashava o jogo.
Entao fucei até achar esse comando que resolveu.
Matheus Rivaldo
Matheus Rivaldo
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 981
Reputação : 36
Desde : 13/08/2015
Idade : 15
Localização : Passo de Torres - SC
em Seg 03 Jul 2017, 01:28
Talvez ele tenha esquecido philosoraptor
Pois acho que nem os tutoriais do Sanny Builder citam isso, e os tutoriais do Sanny Builder foram, em sua grande maioria, feitos pelo LINK/2012.

______________________________
Se eu te ajudei em algo, clique no botão de reputação (o "coraçãozinho" na parte de cima da mensagem).
CopRealism - Página 3 76561198263503198
avatar
Veryzon
Programador - Avançado
Programador - Avançado
Mensagens : 440
Reputação : 11
Desde : 02/06/2017
Idade : 100
Localização : Unidade Federal do Leste
Link : 127.0.0.1:80
https://discord.gg/q5G6SZc
em Seg 03 Jul 2017, 01:42
.


Última edição por Veryzon em Dom 01 Jul 2018, 05:43, editado 1 vez(es)
Um Geek
Um Geek
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Título : Carinha que mora logo ali
Mensagens : 761
Reputação : 160
Desde : 07/03/2017
Localização : BH - MG
Link : https://gta-geek.blogspot.com.br/
https://gta-geek.blogspot.com.br/
em Seg 03 Jul 2017, 13:52
Para evitar crashar por ausência de entidade só checar primeiramente e separadamente se ela existe

Desta forma abaixo o código fica mais "bonito", checar tudo no mesmo IF parece o mais certo, só que da forma que o IF é checado vai crashar porque ele vai checar se o char existe e se ele esta morto mesmo ele não existindo, como ele não existe então ira crashar

code:

Código:

IF DOES_CHAR_EXIST char_id
AND NOT IS_CHAR_DEAD char_id
    //-- O QUE FAZER SE EXISTIR E ESTIVER VIVO AQUI
ENDIF

Desta forma se ele não existir nem ira checar se ele esta morto, mesmo que fique mais longo parece o mais correto, eu faço o mesmo dentro de loops e talz quando uso entidades, assim caso ela suma enquanto rola o loop não ira crachar

code:

Código:

IF DOES_CHAR_EXIST char_id
    IF NOT IS_CHAR_DEAD char_id
        //-- O QUE FAZER SE EXISTIR E ESTIVER VIVO AQUI
    ENDIF
ENDIF

Mas são coisas que vão se aprendendo e descobrindo com o tempo, tem mais coisas que não sei que sei ainda (HMM)

______________________________

.::
Os mods que crio serão colocados no meu workshop link
Luciano Modernel
Luciano Modernel
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 67
Reputação : 10
Desde : 08/06/2017
Idade : 19
Localização : São Gabriel - RS
em Qua 05 Jul 2017, 03:01
Atts :)
Luciano Modernel
Luciano Modernel
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 67
Reputação : 10
Desde : 08/06/2017
Idade : 19
Localização : São Gabriel - RS
em Qui 26 Abr 2018, 09:10
Script praticamente refeito :) depois de 70 anos, tinha parado de mexer com mods

______________________________
Certa vez perguntaram ao Dalai Lama:
Oque mais te decepciona em Custom Scripts ?
E ele respondeu:
reached maximum local variable limit (32).
Fabio
Fabio
Programador - Avançado
Programador - Avançado
Mensagens : 18263
Reputação : 388
Desde : 04/05/2012
Idade : 22
Link : gtamodvicio.blogspot.com
http://gtamodvicio.blogspot.com
em Qui 26 Abr 2018, 23:08
@Luciano Modernel escreveu:Script praticamente refeito :) depois de 70 anos, tinha parado de mexer com mods

Antes tarde do que nunca Fuch That Guy

1_ No GOSUB "check" ( nao sei dar nomes OK )

Dando para ter uma ideia do que faz tá beleza Fuch That Guy

______________________________
CopRealism - Página 3 226c0ef57f9d7520d171cbadc68b3c56
Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/ <<<------------------
CopRealism - Página 3 76561198069372249
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
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum