Criei este tópico para estimular as pessoas a treinarem a parte prática em CLEO
Meio que um tópico para exercícios, mostrar uns mods simples que você criou atoa, ou uns sources completos ou snippets, perguntar coisas como endereços de memória, ter umas curiosidades e entender melhor sobre CLEO, sei lá, tudo sobre a parte prática, discussões, dicas e tudo mais...
Este tópico é ótimo para discutir sobre possibilidades de criação, mostrar seus sources para serem corrigidos e assim você aprender mais etc

ATENÇÃO:
No caso se exercícios passados neste tópico, quando for mostrar o seu exercício, USE SPOILER!
Tente não se enganar, este tópico não é para pedir ajudas com scripts, e sim discutir, mostrar scripts, sources, ter dicas e tudo mais
Se você quer pedir ajuda com algum script, crie um tópico nesta área:
http://bms.mixmods.com.br/f6-scripts
Se você ainda não leu os tutoriais em cleo do fórum, peço para que antes de mostrar seus scripts aqui, leia! ou você será ignorado, só mostre seus scripts aqui pedindo dicas e tudo mais depois de ter lido os tutoriais do fórum, pois os tutoriais ensinam, este tópico foi feito para ensinar o que os tutoriais não ensinam (parte prática)!
Leia os tutoriais de cleo aqui:
https://brmodstudio.forumeiros.com/t5967-indice-de-tutoriais-cleo-script-gta3script
Caso for alguma coisa mais grande, como algum snippet que você criou para por exemplo pegar peças de carros e transforma-las e tudo mais, não recomendo mostrar neste tópico pois ele pode ser esquecido
Recomendo que criei algum tópico aqui:
http://bms.mixmods.com.br/f28-scripts
vou começar propondo um exercício 
Exercício:
Chegue perto de uma pessoa, aperte um botão e irá chegar até em você
Quando ela chegar perto de você, ela faz uma animação (ou se quiser você (CJ) faz outra também etc)

Exercício:
Chegue perto de uma pessoa, aperte um botão e irá chegar até em você
Quando ela chegar perto de você, ela faz uma animação (ou se quiser você (CJ) faz outra também etc)
- .BlokScripter CLEO - Básico
- Mensagens : 317
Reputação : 14
Desde : 01/02/2014
Idade : 19
Localização : Belém/PA
Um script de um mod que estou fazendo
que tem isso que você falou pro exercicio:

- Spoiler:
- Código:
{$CLEO}
0000:
0AF0: 0@ = get_int_from_ini_file "cleo\Falar com qualquer um.ini" section "FALARTGF" key "Key"
while true
wait 0
if and
key_pressed 0@
0256: player $PLAYER_CHAR defined
80DF: actor $PLAYER_ACTOR driving
then
0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 1@ closest_ped_to 2@
if and
056D: actor 2@ defined
80DF: actor 2@ driving
jf continue
0850: AS_actor 2@ follow_actor $PLAYER_ACTOR
04ED: load_animation "GANGS"
load_requested_models
0605: actor 2@ perform_animation "PRTIAL_GNGTLKC" IFP "GANGS" framedelta 4.0 loop 0 lockX 0 lockY 0 lockF 0 time -1
04EF: release_animation "GANGS"
wait 2000 // tempo para o pedestre chegar ate o CJ
0209: 3@ = random_int_in_ranges 1 15
while true
wait 100
if 3@ == 1
then
0ACC: show_text_lowpriority "Bom dia, tudo bem?" time 2000
05DE: AS_actor 2@ walk_around_ped_path
break
end
if 3@ == 2
then
0ACC: show_text_lowpriority "Nao fale comigo, por favor" time 2000
05DE: AS_actor 2@ walk_around_ped_path
break
end
if 3@ == 3
then
0ACC: show_text_lowpriority "Estamos em que data mesmo? Setembro? Maio?" time 2000
05DE: AS_actor 2@ walk_around_ped_path
break
end
if 3@ == 4
then
0ACC: show_text_lowpriority "Estou indo pro trabalho, nao sou vagabundo" time 2000
05DE: AS_actor 2@ walk_around_ped_path
break
end
if 3@ == 5
then
0ACC: show_text_lowpriority "Estou apressado, depois nos falamos" time 2000
05DE: AS_actor 2@ walk_around_ped_path
break
end
if 3@ == 6
then
0ACC: show_text_lowpriority "Voce e aquele cara dos Families?" time 2000
05DE: AS_actor 2@ walk_around_ped_path
break
end
if 3@ == 7
then
0ACC: show_text_lowpriority "Passei para Los Santos faz um tempo, e verdade que a cidade e boa?" time 2000
05DE: AS_actor 2@ walk_around_ped_path
break
end
if 3@ == 8
then
0ACC: show_text_lowpriority "Nossa, voce parece estar com fome, tome um dinheirinho" time 2000
0209: 4@ = random_int_in_ranges 3 25
0109: player $PLAYER_CHAR money += 4@
05DE: AS_actor 2@ walk_around_ped_path
break
end
if 3@ == 9
then
0ACC: show_text_lowpriority "Noticias novas, senhor?" time 2000
05DE: AS_actor 2@ walk_around_ped_path
break
end
if 3@ == 10
then
0ACC: show_text_lowpriority "Sabe aqueles Ballas? Eles me maltrataram um dia, nao chegue perto da area deles." time 2000
05DE: AS_actor 2@ walk_around_ped_path
break
end
if 3@ == 11
then
0ACC: show_text_lowpriority "Acho que vou morrer" time 2000
wait 2000
05BE: AS_actor 2@ die
break
end
if 3@ == 12
then
0ACC: show_text_lowpriority "Eu queria ir para o futuro, la pra 2015 eu tenho certeza que tera carros voadores e a violencia ja estara extinta!" time 2000
05DE: AS_actor 2@ walk_around_ped_path
break
end
if 3@ == 13
then
0ACC: show_text_lowpriority "Aquele estadio de Los Santos esta parado faz tempo, ainda fazem algo por la?" time 2000
05DE: AS_actor 2@ walk_around_ped_path
break
end
if 3@ == 14
then
0ACC: show_text_lowpriority "Em San Fierro chove muito, sabe?" time 2000
05DE: AS_actor 2@ walk_around_ped_path
break
end
end
end
end
______________________________
|

Assinatura e avatar by Jacobi -- PSN ID: GearHFB4
sim, detalhe q jah te corrigi um troço ali, mas bem, agr jah tah 100% 

- Código:
0ACC: show_text_lowpriority "Nossa, voce parece estar com fome, tome um dinheirinho" time 2000
0209: 4@ = random_int_in_ranges 3 25
0109: player $PLAYER_CHAR money += 4@
05DE: AS_actor 2@ walk_around_ped_path
- NexScripter CLEO - Intermediário
- Mensagens : 1240
Reputação : 99
Desde : 04/03/2013
Idade : 20
- Spoiler:
- Código:
{$CLEO}
0000:
while true
wait 0
0AB0: key_pressed 9
jf continue
04ED: load_animation "ROB_BANK"
038B: load_requested_models
Actor.StorePos($PLAYER_ACTOR,0@,1@,2@)
0AE1: 4@ = random_actor_near_point 0@ 1@ 2@ in_radius 10.0 find_next 0 pass_deads 1
07CD: AS_actor 4@ walk_to 0@ 1@ 2@ stop_with_angle 270.0 within_radius 2.0
wait 3000
0605: actor 4@ perform_animation "SHP_HANDSUP_SCR" IFP "ROB_BANK" framedelta 4.0 loop 0 lockX 0 lockY 0 lockF 0 time -1
04EF: release_animation "ROB_BANK"
end
o pedestre para atrás de vc huehue
poderia ter usado 04C4: pra pegar a coordenada um pouco pra frente do CJ
poderia ter usado 04C4: pra pegar a coordenada um pouco pra frente do CJ
Esse opcode cria um quadrado numa tal posição num tal tamanho numa tal cor e transparencia
se nao entendeu, simplesmente:
E então, usando algumas matematicas e dorgas, oq vcs conseguem fazer com isso?
Por exemplo:
tentem fazer umas animações ai
- Código:
038E: draw_box_position 320.0 224.0 size 640.0 448.0 RGBA 0 0 0 255
se nao entendeu, simplesmente:
- Código:
{$cleo}
0000:
while true
wait 0
038E: draw_box_position 300.0 200.0 size 20.0 20.0 RGBA 255 0 0 255
03F0: enable_text_draw 1
end
E então, usando algumas matematicas e dorgas, oq vcs conseguem fazer com isso?

Por exemplo:
- Código:
{$cleo}
0000:
var
1@ : float
2@ : float
3@ : float
4@ : float
10@ : int
11@ : int
end
while true
wait 0
0ADC: test_cheat "box"
jf continue
10@ = 0
while 8ADC: not test_cheat "box"
wait 0
1@ = 300.0 //posição X inicial
2@ = 200.0 //posição Y inicial
3@ += 1.0 //loop de posição, tem que usar Delta time, mas não vou tocar neste assunto agora
1@ += 3@ //posx
2@ += 3@ //posy
11@ = 10@ //vermelhos
11@ *= 2
038E: draw_box_position 1@ 2@ size 50.0 50.0 RGBA 11@ 255 0 11@
if 10@ > 100
then
wait 2000
03F0: enable_text_draw 1
break
else
10@++ //+vermelho
end
end
end
tentem fazer umas animações ai

- SávioModerador
- Mensagens : 11869
Reputação : 131
Desde : 03/06/2012
Idade : 24
Localização : São João de Meriti, RJ
Tópico exclusivo para bruxaria e Demon codes

______________________________
- ElyzandroVeterano
- Mensagens : 2915
Reputação : 81
Desde : 31/07/2013
http://mixmods.blogspot.com.br/2013/08/limitador-de-velocidade.html
Tem como alguém modificar esse script pra limitar soh uma vez a velocidade ao apertar ''L''? Limitar a 60 km/h.
Aqui o Script:
Tem como alguém modificar esse script pra limitar soh uma vez a velocidade ao apertar ''L''? Limitar a 60 km/h.
Aqui o Script:
- Spoiler:
- // This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}
//-------------MAIN---------------
thread 'SPEED_LIMITER'
:SPEED_LIMITER_19
wait 0
if and
Actor.Driving($PLAYER_ACTOR)
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
not Actor.DrivingPlane($PLAYER_ACTOR)
84A9: not actor $PLAYER_ACTOR driving_heli
84A7: not actor $PLAYER_ACTOR driving_boat
0AB0: key_pressed 49
else_jump @SPEED_LIMITER_19
00BC: show_text_highpriority GXT 'CRSC_2' time 3000 flag 1
wait 400
jump @SPEED_LIMITER_91
:SPEED_LIMITER_91
wait 0
if and
0AB0: key_pressed 49
Actor.Driving($PLAYER_ACTOR)
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
not Actor.DrivingPlane($PLAYER_ACTOR)
84A9: not actor $PLAYER_ACTOR driving_heli
84A7: not actor $PLAYER_ACTOR driving_boat
else_jump @SPEED_LIMITER_154
wait 400
jump @SPEED_LIMITER_244
jump @SPEED_LIMITER_244
:SPEED_LIMITER_154
if and
Actor.Driving($PLAYER_ACTOR)
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
not Actor.DrivingPlane($PLAYER_ACTOR)
84A9: not actor $PLAYER_ACTOR driving_heli
84A7: not actor $PLAYER_ACTOR driving_boat
else_jump @SPEED_LIMITER_19
$P_A_C_C_1 = Actor.CurrentCar($PLAYER_ACTOR)
02E3: $P_A_C_S_1 = car $P_A_C_C_1 speed
if
$P_A_C_S_1 > 15.0
else_jump @SPEED_LIMITER_91
Car.SetSpeedInstantly($P_A_C_C_1, 15.0)
jump @SPEED_LIMITER_91
:SPEED_LIMITER_244
wait 0
if and
0AB0: key_pressed 49
Actor.Driving($PLAYER_ACTOR)
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
not Actor.DrivingPlane($PLAYER_ACTOR)
84A9: not actor $PLAYER_ACTOR driving_heli
84A7: not actor $PLAYER_ACTOR driving_boat
else_jump @SPEED_LIMITER_307
wait 400
jump @SPEED_LIMITER_397
jump @SPEED_LIMITER_397
:SPEED_LIMITER_307
if and
Actor.Driving($PLAYER_ACTOR)
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
not Actor.DrivingPlane($PLAYER_ACTOR)
84A9: not actor $PLAYER_ACTOR driving_heli
84A7: not actor $PLAYER_ACTOR driving_boat
else_jump @SPEED_LIMITER_19
$P_A_C_C_1 = Actor.CurrentCar($PLAYER_ACTOR)
02E3: $P_A_C_S_1 = car $P_A_C_C_1 speed
if
$P_A_C_S_1 > 25.0
else_jump @SPEED_LIMITER_244
Car.SetSpeedInstantly($P_A_C_C_1, 25.0)
jump @SPEED_LIMITER_244
:SPEED_LIMITER_397
wait 0
if and
0AB0: key_pressed 49
Actor.Driving($PLAYER_ACTOR)
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
not Actor.DrivingPlane($PLAYER_ACTOR)
84A9: not actor $PLAYER_ACTOR driving_heli
84A7: not actor $PLAYER_ACTOR driving_boat
else_jump @SPEED_LIMITER_460
wait 400
jump @SPEED_LIMITER_550
jump @SPEED_LIMITER_550
:SPEED_LIMITER_460
if and
Actor.Driving($PLAYER_ACTOR)
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
not Actor.DrivingPlane($PLAYER_ACTOR)
84A9: not actor $PLAYER_ACTOR driving_heli
84A7: not actor $PLAYER_ACTOR driving_boat
else_jump @SPEED_LIMITER_19
$P_A_C_C_1 = Actor.CurrentCar($PLAYER_ACTOR)
02E3: $P_A_C_S_1 = car $P_A_C_C_1 speed
if
$P_A_C_S_1 > 33.0
else_jump @SPEED_LIMITER_397
Car.SetSpeedInstantly($P_A_C_C_1, 33.0)
jump @SPEED_LIMITER_397
:SPEED_LIMITER_550
wait 500
jump @SPEED_LIMITER_19

______________________________
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ͤ?
Globais e thread name

______________________________

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'
- NexScripter CLEO - Intermediário
- Mensagens : 1240
Reputação : 99
Desde : 04/03/2013
Idade : 20

Fiz uma barra de carregamento
- Spoiler:
- Código:
{$CLEO}
0000:
var
0@ : float
end
while true
wait 0
0ADC: test_cheat "LOADBAR"
jf continue
0@ = 100.0
038E: draw_box_position 320.0 350.0 size 450.0 12.0 RGBA 0 0 0 255
repeat
wait 0
038E: draw_box_position 0@ 350.0 size 10.0 10.0 RGBA 255 255 255 255
0@ += 3.6
until 0@ >= 540.0
03F0: enable_text_draw 1
end
eita, olhando pelo script tbm nao sei pq sumiu a preta
mas recomendo botar a barra preta e o "03F0: enable_text_draw 1" dentro do loop e usar mudança de tamanho...
ok, nao eh tao facil pra inicio, pois o tamanho se muda a partir do centro, entao o dobro do tamanho teria q ser usado para o movimento X, assim ele aumenta 10.0 e o X anda 20.0 pra direita
neste tipo de coisa eh mais recomendado vc ir usando enable text draw dentro do loop para nao multiplicar o numero de quadrados, usar um quadrado soh com mudança de tamanho
mas recomendo botar a barra preta e o "03F0: enable_text_draw 1" dentro do loop e usar mudança de tamanho...
ok, nao eh tao facil pra inicio, pois o tamanho se muda a partir do centro, entao o dobro do tamanho teria q ser usado para o movimento X, assim ele aumenta 10.0 e o X anda 20.0 pra direita
neste tipo de coisa eh mais recomendado vc ir usando enable text draw dentro do loop para nao multiplicar o numero de quadrados, usar um quadrado soh com mudança de tamanho
- ElyzandroVeterano
- Mensagens : 2915
Reputação : 81
Desde : 31/07/2013
Ninguém vai fazer oque eu pedi? ;-;
______________________________
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ͤ?
claro vc mostrou esse script q fode tudo o GTA, vc deu cancer em tudo mundo aqui@Elyzandro escreveu:Ninguém vai fazer oque eu pedi? ;-;
apaga esse script do seu jogo logo

- Lokin_Mensagens Nível 1
- Mensagens : 41
Reputação : 0
Desde : 22/04/2015
Postaram um mod que fode o gta na mixmods e eu baixei

- 3xt3rm1n4d0rVeterano
- Mensagens : 1295
Reputação : 17
Desde : 10/01/2014
Localização : Sarandi - PR
Acho que salvei o jogo com esse mod ai, apaputa
______________________________
- Spoiler:
- NexScripter CLEO - Intermediário
- Mensagens : 1240
Reputação : 99
Desde : 04/03/2013
Idade : 20
Vish, variaveis globais viram qualquer numero quando o script é compilado, e quando você salva o jogo o valor dessa variavel fica salvo

↑ xim
Textinhos sobre variáveis globais e os seus problemas:
o pior eh aqueles caras q usam numeros diretamente @__@
eu vejo scripts usando $5 $6 PQPPPPPPP o cara fazendo isso está mudando o funcionamento do main.scm, se ele usar $2 por exemplo, irá sobrescrever o $PLAYER_ACTOR, pronto, crash @_@
dae se ele usa algum nome novo eh menos pior, pois dae o mod compila por exemplo usando $9001 (nao eh 9001, nao lembro o numero certo), dae nao sobrescreve nada do jogo, mas se mais outro mod tbm usou var global com algum nome, ele tbm usará a var $9001, taram, bug/crash.
dae se vc salva o jogo, irá salvar essa $9001 com algum valor dentro do save game, dae eh possivel q outro mod tbm use essa var e pro mod funcionar corretamente ela por exemplo tem q iniciar com 0, mas nao estará 0, taram, bug/crash tbm
entao a coisa eh meio assim, se vc tem 1 mod com var global e vc nao salvar o jogo nunca, tudo bem, vc nunca terá problemas (ou vai, como eu falei ali, caso a pessoa use por exemplo $5 etc), mas se vc tem 2 mods ou vc salva o jogo com um mod com essa var, dae sim leva bugs e crashes... bem, de qualquer modo, sempre evitem ter estes mods no gta pra nunca ter problema
tem o mod de wheels corrector q eh um dos piores scripts q jah vi na vida, dae falei na postagem pras pessoas soh usarem o mod pra corrigir as rodas dos carros q precisam e logo em seguida deletar o mod, dae sim eh deboa, mas deixar esse mod instalado no gta nao eh nada bom
hoje postei um mod lah na qual eu fiz correções
tava cheio de erros, como por exemplo o fato dos modelos animações etc serem carregados... dae o script espera 1 segundo, checa se vc apertou o comando, se nao apertou ele volta pra trás e carrega de novo (nao literalmente pois o gta nao duplica as coisas, mas o "carregar de novo" do gta na verdade eh um "nunca mais sairá da memória até vc fechar o jogo"
além de vários outros erros e uma unica var global com nome $SPEED ....? praq? dae troquei por uma local lah e pah
o script todo usa local, e proprio criador do mod nem eh tao noob assim e outros mods dele sao até meio bons, dae nesse ele usa uma global sem necessidade alguma
Textinhos sobre variáveis globais e os seus problemas:
o pior eh aqueles caras q usam numeros diretamente @__@
eu vejo scripts usando $5 $6 PQPPPPPPP o cara fazendo isso está mudando o funcionamento do main.scm, se ele usar $2 por exemplo, irá sobrescrever o $PLAYER_ACTOR, pronto, crash @_@
dae se ele usa algum nome novo eh menos pior, pois dae o mod compila por exemplo usando $9001 (nao eh 9001, nao lembro o numero certo), dae nao sobrescreve nada do jogo, mas se mais outro mod tbm usou var global com algum nome, ele tbm usará a var $9001, taram, bug/crash.
dae se vc salva o jogo, irá salvar essa $9001 com algum valor dentro do save game, dae eh possivel q outro mod tbm use essa var e pro mod funcionar corretamente ela por exemplo tem q iniciar com 0, mas nao estará 0, taram, bug/crash tbm
entao a coisa eh meio assim, se vc tem 1 mod com var global e vc nao salvar o jogo nunca, tudo bem, vc nunca terá problemas (ou vai, como eu falei ali, caso a pessoa use por exemplo $5 etc), mas se vc tem 2 mods ou vc salva o jogo com um mod com essa var, dae sim leva bugs e crashes... bem, de qualquer modo, sempre evitem ter estes mods no gta pra nunca ter problema
tem o mod de wheels corrector q eh um dos piores scripts q jah vi na vida, dae falei na postagem pras pessoas soh usarem o mod pra corrigir as rodas dos carros q precisam e logo em seguida deletar o mod, dae sim eh deboa, mas deixar esse mod instalado no gta nao eh nada bom
hoje postei um mod lah na qual eu fiz correções

tava cheio de erros, como por exemplo o fato dos modelos animações etc serem carregados... dae o script espera 1 segundo, checa se vc apertou o comando, se nao apertou ele volta pra trás e carrega de novo (nao literalmente pois o gta nao duplica as coisas, mas o "carregar de novo" do gta na verdade eh um "nunca mais sairá da memória até vc fechar o jogo"
além de vários outros erros e uma unica var global com nome $SPEED ....? praq? dae troquei por uma local lah e pah

- NexScripter CLEO - Intermediário
- Mensagens : 1240
Reputação : 99
Desde : 04/03/2013
Idade : 20
Junior, faz um tópico de como as pessoas podem verificar se o mod é bem feito ou não
e Hue, faça isso antes de postar mods

e Hue, faça isso antes de postar mods

eu tava pensando em fazer isso msmNex' escreveu:Junior, faz um tópico de como as pessoas podem verificar se o mod é bem feito ou não![]()
e Hue, faça isso antes de postar mods

- .BlokScripter CLEO - Básico
- Mensagens : 317
Reputação : 14
Desde : 01/02/2014
Idade : 19
Localização : Belém/PA
Fiz um bem aleatório
, você pede ajuda e uma ambulância chega e te dá os equipamentos, basicamente é isso ;-;
Deixei em spoiler porque o script é um pouco grande (nem tanto).

- Spoiler:
- Código:
{$CLEO}
0000:
while true
wait 0
if and
0AB0: key_pressed 9
0AB0: key_pressed 72
0256: player $PLAYER_CHAR defined
84AD: actor $PLAYER_ACTOR in_water
then
load_model #AMBULAN
load_model #LAEMT1
load_model #CELLPHONE
load_requested_models
gosub @CALL_MEDIC
04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 0.0 50.0 -100.0
00A5: 4@ = create_car #AMBULAN at 1@ 2@ 3@
0129: 5@ = create_actor_pedtype 18 model #LAEMT1 in_car 4@ driverseat
01C8: 6@ = create_actor_pedtype 18 model #LAEMT1 in_car 4@ passenger_seat 0
model.Destroy(#AMBULAN)
model.Destroy(#LAEMT1)
0397: enable_car 4@ siren 1
04C4: store_coords_to 7@ 8@ 9@ from_actor $PLAYER_ACTOR with_offset 0.0 2.0 0.0
00A7: car 4@ drive_to 7@ 8@ 9@
while true
wait 0
0227: 10@ = car 4@ health
if 10@ == 0
then
0ACC: show_text_lowpriority "~r~A ambulancia nao conseguiu chegar ao seu destino" time 2000
break
end
if 01AF: car 4@ sphere 0 in_sphere 7@ 8@ 9@ radius 2.0 2.0 2.0
then
0ACC: show_text_lowpriority "~r~Pegue medicamentos entrando na parte de tras da ambulancia, aperte D" time 1000
if 0AB0: key_pressed 68
jf continue
05CA: AS_actor $PLAYER_ACTOR enter_car 4@ passenger_seat 1 time -1
repeat
wait 0
until 00DB: actor $PLAYER_ACTOR in_car 4@
0223: set_actor $PLAYER_ACTOR health_to 3000
0ACC: show_text_lowpriority "~r~Saia da ambulancia agora" time 2000
repeat
wait 0
until 80DB: actor $PLAYER_ACTOR in_car 4@
00A7: car 4@ drive_to 2032.3848 -1445.2352 17.2172
01C3: remove_references_to_car 4@
break
end
end
end
end
:CALL_MEDIC
0729: AS_actor $PLAYER_ACTOR hold_cellphone 1
0209: 0@ = random_int_in_ranges 1000 3000
wait 0@
0ACC: show_text_lowpriority "~r~Ola, o que deseja?" time 1000
wait 1000
0ACC: show_text_lowpriority "~b~Preciso melhorar minha saude!" time 2000
wait 2000
0729: AS_actor $PLAYER_ACTOR hold_cellphone 0
model.Destroy(#CELLPHONE)
return
Deixei em spoiler porque o script é um pouco grande (nem tanto).
______________________________
|

Assinatura e avatar by Jacobi -- PSN ID: GearHFB4
- NexScripter CLEO - Intermediário
- Mensagens : 1240
Reputação : 99
Desde : 04/03/2013
Idade : 20
Massa cara @_@ pena que a ambulancia demora muito pra chegar, mas se tu fazer ela correr é capaz dela nem chegar ou explodir antes@.Blok escreveu:Fiz um bem aleatório, você pede ajuda e uma ambulância chega e te dá os equipamentos, basicamente é isso ;-;
- Spoiler:
- Código:
{$CLEO}
0000:
while true
wait 0
if and
0AB0: key_pressed 9
0AB0: key_pressed 72
0256: player $PLAYER_CHAR defined
then
load_model #AMBULAN
load_model #LAEMT1
load_model #CELLPHONE
load_requested_models
gosub @CALL_MEDIC
04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 0.0 50.0 -100.0
00A5: 4@ = create_car #AMBULAN at 1@ 2@ 3@
0129: 5@ = create_actor_pedtype 18 model #LAEMT1 in_car 4@ driverseat
01C8: 6@ = create_actor_pedtype 18 model #LAEMT1 in_car 4@ passenger_seat 0
model.Destroy(#AMBULAN)
model.Destroy(#LAEMT1)
0397: enable_car 4@ siren 1
04C4: store_coords_to 7@ 8@ 9@ from_actor $PLAYER_ACTOR with_offset 0.0 2.0 0.0
00A7: car 4@ drive_to 7@ 8@ 9@
while true
wait 0
0227: 10@ = car 4@ health
if 10@ == 0
then
0ACC: show_text_lowpriority "~r~A ambulancia nao conseguiu chegar ao seu destino" time 2000
break
end
if 01AF: car 4@ sphere 0 in_sphere 7@ 8@ 9@ radius 2.0 2.0 2.0
then
0ACC: show_text_lowpriority "~r~Pegue medicamentos entrando na parte de tras da ambulancia, aperte D" time 1000
if 0AB0: key_pressed 68
jf continue
05CA: AS_actor $PLAYER_ACTOR enter_car 4@ passenger_seat 1 time -1
repeat
wait 0
until 00DB: actor $PLAYER_ACTOR in_car 4@
0223: set_actor $PLAYER_ACTOR health_to 3000
0ACC: show_text_lowpriority "~r~Saia da ambulancia agora" time 2000
repeat
wait 0
until 80DB: actor $PLAYER_ACTOR in_car 4@
00A7: car 4@ drive_to 2032.3848 -1445.2352 17.2172
01C3: remove_references_to_car 4@
break
end
end
end
end
:CALL_MEDIC
0729: AS_actor $PLAYER_ACTOR hold_cellphone 1
0209: 0@ = random_int_in_ranges 1000 3000
wait 0@
0ACC: show_text_lowpriority "~r~Ola, o que deseja?" time 1000
wait 1000
0ACC: show_text_lowpriority "~b~Preciso melhorar minha saude!" time 2000
wait 2000
0729: AS_actor $PLAYER_ACTOR hold_cellphone 0
model.Destroy(#CELLPHONE)
return
Deixei em spoiler porque o script é um pouco grande (nem tanto).

- .BlokScripter CLEO - Básico
- Mensagens : 317
Reputação : 14
Desde : 01/02/2014
Idade : 19
Localização : Belém/PA
^ sim kkk
Ainda mais se você chamar ela em um lugar com muitos objetos...
Tinha até me esquecido de colocar pra que o CJ não chame ela na água
Ainda mais se você chamar ela em um lugar com muitos objetos...
Tinha até me esquecido de colocar pra que o CJ não chame ela na água

______________________________
|

Assinatura e avatar by Jacobi -- PSN ID: GearHFB4
dahora vei 
mas na primeira vez se nao me engano eu nao deixei o cj entrar, interrompi ele, dae nao entrou e ficou lah sem entrar mais e o script rodando o
isso fez o script voltar lah em cima
acredito q o certo seria:
enquanto o cj nao está dentro da ambulancia, checa se ele apertou, se sim, faz ele entrar nela
dae dentro desse msm loop coloca coisas como, checar se o player está muito longe do local onde ele pediu ajuda, tipo 100.0, se sim, entao desativa o mod e tira referencias da ambulancia e pah

mas na primeira vez se nao me engano eu nao deixei o cj entrar, interrompi ele, dae nao entrou e ficou lah sem entrar mais e o script rodando o
- Código:
repeat
wait 0
until 00DB: actor $PLAYER_ACTOR in_car 4@
- Código:
if 0AB0: key_pressed 68
jf continue
isso fez o script voltar lah em cima
acredito q o certo seria:
enquanto o cj nao está dentro da ambulancia, checa se ele apertou, se sim, faz ele entrar nela
dae dentro desse msm loop coloca coisas como, checar se o player está muito longe do local onde ele pediu ajuda, tipo 100.0, se sim, entao desativa o mod e tira referencias da ambulancia e pah
essa função corrige os carros afundados no chao:
oq fiz ai foi:
peguei os offsets dos extremos Y (frente e trás) do modelo do carro
a solução foi andar 1 centímetro para algum lado e pegar outra coordenada e ver MAIS UMA VEZ pra ter certeza de que o carro está realmente enfiado no chão
incluindo uns 10cms a mais ou a menos pros lados, pra evitar MAIS UMA VEZ de que realmente não é um um buraco na colisão, tipo, se for, agora o carro estará 10cm pro lado e o mod não irá detectar de novo
assim eu coloco ele na coordenada de Z=-100.0, onde o GTA (que as vezes é uma boa pessoa) automaticamente coloca o carro na altura e ângulo correto
essa função pode não ser tão eficaz ou dar problemas, como pode se ver, eu botei um "13@ += 5.0" ali pois um carro se enfiou no chão em cima de um viaduto e o script pra corrigir colocou o carro embaixo do viaduto ao invés de em cima pqp, então tive que aumentar 5 metros pra cima pra pegar a coord e colocar ele lá... pode haver mais problemas deste tipo, felizmente os carros enfiados no chão aparecem longe de você e você não vê ele se está afundando e voltando, e por algum acaso aparecendo em lugar errado etc
(edit: estou com a impressão de que esse "13@ += 5.0" irá dar um grande fail caso o carro esteja enfiado no chão dentro de um túnel .-.)
edit: no Real Traffic Fix usei 3.0
essa função irá já vir no Real Traffic Fix logo logo, só tô mostrando aqui como funciona
há até vários outros métodos para checar isso, como por exemplo o ângulo do carro e da rua junto com o número de pneus no chão e/ou se o carro está sofrendo danos etc etc
- Código:
:FixVehStuck
0441: 5@ = car hVEH model
07E4: get_model 5@ dimensions_cornerA_to 5@ 12@ 5@ dimensions_cornerB_to 5@ 22@ 5@
12@ *= 0.9
22@ *= 0.9
0407: store_coords_to 11@ 12@ 13@ from_car hVEH with_offset 0.0 12@ 0.0
0407: store_coords_to 21@ 22@ 23@ from_car hVEH with_offset 0.0 22@ 0.0
02CE: 5@ = ground_z_at 11@ 12@ 13@
02CE: 26@ = ground_z_at 21@ 22@ 23@
if or
5@ == 0.00000
26@ == 0.00000
then
11@ += 0.01
12@ += 0.01
21@ += 0.01
22@ += 0.01
02CE: 5@ = ground_z_at 11@ 12@ 13@
02CE: 26@ = ground_z_at 21@ 22@ 23@
if or
5@ == 0.00000
26@ == 0.00000
then
00AA: store_car hVEH position_to 11@ 12@ 13@
13@ += 5.0
0208: 5@ = random_float_in_ranges -0.1 0.1
11@ += 5@
12@ += 5@
00AB: put_car hVEH at 11@ 12@ -100.0
0ACD: show_text_highpriority "CORRIGIDO" time 500
//0186: 5@ = create_marker_above_car hVEH
end
end
return
oq fiz ai foi:
peguei os offsets dos extremos Y (frente e trás) do modelo do carro
- Código:
07E4: get_model 5@ dimensions_cornerA_to 5@ 12@ 5@ dimensions_cornerB_to 5@ 22@ 5@
- Código:
12@ *= 0.9
22@ *= 0.9
- Código:
0407: store_coords_to 11@ 12@ 13@ from_car hVEH with_offset 0.0 12@ 0.0
0407: store_coords_to 21@ 22@ 23@ from_car hVEH with_offset 0.0 22@ 0.0
- Código:
02CE: 5@ = ground_z_at 11@ 12@ 13@
02CE: 26@ = ground_z_at 21@ 22@ 23@
- Código:
if or
5@ == 0.00000
26@ == 0.00000
then
a solução foi andar 1 centímetro para algum lado e pegar outra coordenada e ver MAIS UMA VEZ pra ter certeza de que o carro está realmente enfiado no chão
- Código:
11@ += 0.01
12@ += 0.01
21@ += 0.01
22@ += 0.01
02CE: 5@ = ground_z_at 11@ 12@ 13@
02CE: 26@ = ground_z_at 21@ 22@ 23@
if or
5@ == 0.00000
26@ == 0.00000
then
incluindo uns 10cms a mais ou a menos pros lados, pra evitar MAIS UMA VEZ de que realmente não é um um buraco na colisão, tipo, se for, agora o carro estará 10cm pro lado e o mod não irá detectar de novo
assim eu coloco ele na coordenada de Z=-100.0, onde o GTA (que as vezes é uma boa pessoa) automaticamente coloca o carro na altura e ângulo correto
- Código:
00AA: store_car hVEH position_to 11@ 12@ 13@
13@ += 5.0
0208: 5@ = random_float_in_ranges -0.1 0.1
11@ += 5@
12@ += 5@
00AB: put_car hVEH at 11@ 12@ -100.0
- Código:
const
hVEH = 31@
end
while true
wait 0
0A8D: 29@ = read_memory 0xB74494 size 4 virtual_protect 0
29@ += 0x4
0A8D: 29@ = read_memory 29@ size 4 virtual_protect 0
for 30@ = 0 to 27904 step 0x100
0A8D: 31@ = read_memory 29@ size 1 virtual_protect 0
000A: 29@ += 0x1
if and
0029: 31@ >= 0x00
001B: 0x80 > 31@
then
005A: hVEH += 30@
- Código:
{$cleo}
0000:
const
hVEH = 31@
end
while true
wait 0
player.Defined(0)
jf continue
0A8D: 29@ = read_memory 0xB74494 size 4 virtual_protect 0
29@ += 0x4
0A8D: 29@ = read_memory 29@ size 4 virtual_protect 0
for 30@ = 0 to 27904 step 0x100
0A8D: 31@ = read_memory 29@ size 1 virtual_protect 0
000A: 29@ += 0x1
if and
0029: 31@ >= 0x00
001B: 0x80 > 31@
then
005A: hVEH += 30@
0441: 0@ = car hVEH model
if 0A01: model 0@ car
then
gosub @FixVehStuck
end
end
end
end
:FixVehStuck
0441: 5@ = car hVEH model
07E4: get_model 5@ dimensions_cornerA_to 5@ 12@ 5@ dimensions_cornerB_to 5@ 22@ 5@
12@ *= 0.9
22@ *= 0.9
0407: store_coords_to 11@ 12@ 13@ from_car hVEH with_offset 0.0 12@ 0.0
0407: store_coords_to 21@ 22@ 23@ from_car hVEH with_offset 0.0 22@ 0.0
02CE: 5@ = ground_z_at 11@ 12@ 13@
02CE: 26@ = ground_z_at 21@ 22@ 23@
if or
5@ == 0.00000
26@ == 0.00000
then
11@ += 0.01
12@ += 0.01
21@ += 0.01
22@ += 0.01
02CE: 5@ = ground_z_at 11@ 12@ 13@
02CE: 26@ = ground_z_at 21@ 22@ 23@
if or
5@ == 0.00000
26@ == 0.00000
then
00AA: store_car hVEH position_to 11@ 12@ 13@
13@ += 5.0
0208: 5@ = random_float_in_ranges -0.1 0.1
11@ += 5@
12@ += 5@
00AB: put_car hVEH at 11@ 12@ -100.0
0ACD: show_text_highpriority "CORRIGIDO" time 500
//0186: 5@ = create_marker_above_car hVEH
end
end
return
- Código:
0A8D: 5@ = read_memory VEH_STRUCT size 4 virtual_protect 0 //VMT
5@ += 0xDC //GetNumContactWheels()
0A8D: 5@ = read_memory 5@ size 4 virtual_protect 0
0AA8: call_function_method 5@ struct VEH_STRUCT num_params 0 pop 0 5@
//5@ = numero de rodas se tocando
essa função pode não ser tão eficaz ou dar problemas, como pode se ver, eu botei um "13@ += 5.0" ali pois um carro se enfiou no chão em cima de um viaduto e o script pra corrigir colocou o carro embaixo do viaduto ao invés de em cima pqp, então tive que aumentar 5 metros pra cima pra pegar a coord e colocar ele lá... pode haver mais problemas deste tipo, felizmente os carros enfiados no chão aparecem longe de você e você não vê ele se está afundando e voltando, e por algum acaso aparecendo em lugar errado etc
(edit: estou com a impressão de que esse "13@ += 5.0" irá dar um grande fail caso o carro esteja enfiado no chão dentro de um túnel .-.)
edit: no Real Traffic Fix usei 3.0
essa função irá já vir no Real Traffic Fix logo logo, só tô mostrando aqui como funciona

há até vários outros métodos para checar isso, como por exemplo o ângulo do carro e da rua junto com o número de pneus no chão e/ou se o carro está sofrendo danos etc etc
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum
|
|