Compartilhe
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21849
Reputação : 666
Desde : 03/05/2012
Idade : 21
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br
  • Reputação da mensagem: 100% (3 votos)

Sobre CLEO

em Ter 21 Abr 2015, 21:46

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:
http://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


Última edição por Junior_Djjr em Sex 05 Maio 2017, 01:36, editado 3 vez(es)

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21849
Reputação : 666
Desde : 03/05/2012
Idade : 21
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: Sobre CLEO

em Ter 21 Abr 2015, 21:52
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)


______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 318
Reputação : 14
Desde : 01/02/2014
Idade : 16
Localização : Belém/PA
Ver perfil do usuário

Re: Sobre CLEO

em Ter 21 Abr 2015, 22:09
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

______________________________


CONFIG. PC:

SO: Windows 7 64 bits
Placa-mãe: ASUS H61M-A/BR
CPU: Intel Core i3-2120 @ 3.30GHz
GPU: Intel HD Graphics 2000
RAM: Kingston 4GB DDR3
HD: 250GB



Assinatura e avatar by Jacobi -- PSN ID: GearHFB4
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21849
Reputação : 666
Desde : 03/05/2012
Idade : 21
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br
  • Reputação da mensagem: 100% (1 votos)

Re: Sobre CLEO

em Ter 21 Abr 2015, 22:14
sim, detalhe q jah te corrigi um troço ali, mas bem, agr jah tah 100% :v:

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
HUEHUEHUE vei

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 1022
Reputação : 82
Desde : 04/03/2013
Idade : 17
Ver perfil do usuário

Re: Sobre CLEO

em Ter 21 Abr 2015, 22:33
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
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21849
Reputação : 666
Desde : 03/05/2012
Idade : 21
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: Sobre CLEO

em Ter 21 Abr 2015, 22:41
o pedestre para atrás de vc huehue

poderia ter usado 04C4: pra pegar a coordenada um pouco pra frente do CJ

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21849
Reputação : 666
Desde : 03/05/2012
Idade : 21
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: Sobre CLEO

em Qua 22 Abr 2015, 04:35
Esse opcode cria um quadrado numa tal posição num tal tamanho numa tal cor e transparencia
Código:
038E: draw_box_position 320.0 224.0 size 640.0 448.0 RGBA 0 0 0 255
lembrando q todos estes opcodes "draw" precisam usar 03F0: enable_text_draw 1 em alguma parte para apagar oq foi desenhado na tela e assim no próximo frame desenhar mais coisa na tela tbm, pois se nao usar isso dentro de 127 desenhos (draws), irá crashar por limite do jogo (ou a nova cleo aumenta esse limite? mas bem, nao pode)

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
isso irá ficar desenhando um quadrado vermelho (255 0 0) na posição X=300.0 Y=200.0 da tela, no tamanho 20.0


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
huehuehue
tentem fazer umas animações ai :v:

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Moderador
Moderador
Mensagens : 11959
Reputação : 131
Desde : 03/06/2012
Idade : 21
Localização : São João de Meriti, RJ
Ver perfil do usuário

Re: Sobre CLEO

em Qua 22 Abr 2015, 05:04
Tópico exclusivo para bruxaria e Demon codes Raisins Face

______________________________

MEU PC::
Monitor: Toshiba 16' polegadas (1366x748)
CPU: Intel Core I5 2310 2.9GHz
VGA: Xfx AMD Radeon HD 7770 1GB Core Edition
RAM: 8,00GB Dual-Channel DDR3 1333MHz
MOB: Intel H61 (Socket 1155) 
PSU: Corsair 430W
HDD: 2000GB Seagate ST2000DM001-1E6164
OS: Windows 7 Ultimate 64-bit SP 1

avatar
Veterano
Veterano
Mensagens : 2920
Reputação : 81
Desde : 31/07/2013
Ver perfil do usuário

Re: Sobre CLEO

em Qua 22 Abr 2015, 09:53
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:
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
Dolan

______________________________
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
Programador - Avançado
Programador - Avançado
Mensagens : 18767
Reputação : 342
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: Sobre CLEO

em Qua 22 Abr 2015, 12:52
Globais e thread name ohgodwhy

______________________________

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'
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 1022
Reputação : 82
Desde : 04/03/2013
Idade : 17
Ver perfil do usuário

Re: Sobre CLEO

em Qua 22 Abr 2015, 17:18
ohgodwhy



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
Quando ativa ela pela primeira vez vai de boas, mas na segunda o background (parte preta de tras) some @_@
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21849
Reputação : 666
Desde : 03/05/2012
Idade : 21
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: Sobre CLEO

em Qua 22 Abr 2015, 17:31
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

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Veterano
Veterano
Mensagens : 2920
Reputação : 81
Desde : 31/07/2013
Ver perfil do usuário

Re: Sobre CLEO

em Qua 22 Abr 2015, 18:06
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ͤ?
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21849
Reputação : 666
Desde : 03/05/2012
Idade : 21
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: Sobre CLEO

em Qua 22 Abr 2015, 18:15
@Elyzandro escreveu:Ninguém vai fazer oque eu pedi? ;-;
claro vc mostrou esse script q fode tudo o GTA, vc deu cancer em tudo mundo aqui
apaga esse script do seu jogo logo Fuch That Guy

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 41
Reputação : 0
Desde : 22/04/2015
Ver perfil do usuário

Re: Sobre CLEO

em Qua 22 Abr 2015, 23:35
Postaram um mod que fode o gta na mixmods e eu baixei fuuu
avatar
Veterano
Veterano
Mensagens : 1297
Reputação : 17
Desde : 10/01/2014
Localização : Sarandi - PR
Ver perfil do usuário

Re: Sobre CLEO

em Qui 23 Abr 2015, 02:22
Acho que salvei o jogo com esse mod ai, apaputa

______________________________
Spoiler:
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 1022
Reputação : 82
Desde : 04/03/2013
Idade : 17
Ver perfil do usuário

Re: Sobre CLEO

em Qui 23 Abr 2015, 02:51
Vish, variaveis globais viram qualquer numero quando o script é compilado, e quando você salva o jogo o valor dessa variavel fica salvo :)
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21849
Reputação : 666
Desde : 03/05/2012
Idade : 21
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: Sobre CLEO

em Qui 23 Abr 2015, 04:27
↑ 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 pokerface 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

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 1022
Reputação : 82
Desde : 04/03/2013
Idade : 17
Ver perfil do usuário

Re: Sobre CLEO

em Qui 23 Abr 2015, 04:59
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 :v:
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21849
Reputação : 666
Desde : 03/05/2012
Idade : 21
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: Sobre CLEO

em Qui 23 Abr 2015, 09:12
@Nex' 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 :v:
eu tava pensando em fazer isso msm pokerface

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 318
Reputação : 14
Desde : 01/02/2014
Idade : 16
Localização : Belém/PA
Ver perfil do usuário

Re: Sobre CLEO

em Dom 03 Maio 2015, 20:10
Fiz um bem aleatório  pokerface , 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
        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).


Última edição por .Blok em Dom 03 Maio 2015, 21:13, editado 1 vez(es)

______________________________


CONFIG. PC:

SO: Windows 7 64 bits
Placa-mãe: ASUS H61M-A/BR
CPU: Intel Core i3-2120 @ 3.30GHz
GPU: Intel HD Graphics 2000
RAM: Kingston 4GB DDR3
HD: 250GB



Assinatura e avatar by Jacobi -- PSN ID: GearHFB4
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 1022
Reputação : 82
Desde : 04/03/2013
Idade : 17
Ver perfil do usuário

Re: Sobre CLEO

em Dom 03 Maio 2015, 20:49
@.Blok escreveu:Fiz um bem aleatório  pokerface , 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).
Massa cara @_@ pena que a ambulancia demora muito pra chegar, mas se tu fazer ela correr é capaz dela nem chegar ou explodir antes Fuch That Guy
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 318
Reputação : 14
Desde : 01/02/2014
Idade : 16
Localização : Belém/PA
Ver perfil do usuário

Re: Sobre CLEO

em Dom 03 Maio 2015, 21:14
^ 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 Fuch That Guy

______________________________


CONFIG. PC:

SO: Windows 7 64 bits
Placa-mãe: ASUS H61M-A/BR
CPU: Intel Core i3-2120 @ 3.30GHz
GPU: Intel HD Graphics 2000
RAM: Kingston 4GB DDR3
HD: 250GB



Assinatura e avatar by Jacobi -- PSN ID: GearHFB4
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21849
Reputação : 666
Desde : 03/05/2012
Idade : 21
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br
  • Reputação da mensagem: 100% (1 votos)

Re: Sobre CLEO

em Dom 03 Maio 2015, 21:35
dahora vei :v:

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@
detalhe tbm q vc usou
Código:
if  0AB0:  key_pressed 68
jf continue             
continue = voltar para o loop, continuar o loop
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

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21849
Reputação : 666
Desde : 03/05/2012
Idade : 21
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br
  • Reputação da mensagem: 100% (1 votos)

Re: Sobre CLEO

em Sex 08 Maio 2015, 11:44
essa função corrige os carros afundados no chao:
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@
diminui pra ter só 90% dela (pois ao pegar o extremo dela não pegava a frente em si e sim a pontinha na frente do carro, e a coordenada podia acabar entrando dentro de uma parede caso a frente do carro esteja encostada numa, e o script achava q o carro tava com a frente enfiada no chão, mas enfim...)
Código:
12@ *= 0.9                                                                        
22@ *= 0.9
peguei as coordenadas nos offsets dos extremos Y do carro
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
peguei a coordenada Z (chão) da tal coordenada, sendo assim, se a tal coordenada (frente ou trás do carro) está abaixo do chão, esse opcode irá retornar 0.0 (omg, tão simples!)
Código:
02CE: 5@ = ground_z_at 11@ 12@ 13@
02CE: 26@ = ground_z_at 21@ 22@ 23@
se algum dos dois (frente ou trás) retornou 0.0, então quer dizer que em algum lado está abaixo do chão (enfiado)
Código:
if or
5@ == 0.00000  
26@ == 0.00000
then
o problema: em alguns locais do jogo, há alguns milímetros de buraco na colisão, então o script achava que a frente/trás do carro estava enfiada no chão quando passava em cima de algum destes milímetros de buraco de colisão
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
e pronto, agora é só recolocar o carro no lugar
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
e é só colocar isso dentro de um "for all cars" (um snippet que pega todos os carros da pool, não podemos viver sem isso)
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@
e fica assim, o script pronto que corrige todos os carros enfiados no chão:
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
depois você pode incluir por exemplo a função de pegar o numero de contatos de rodas do veiculo no chão, pois os carros quando são enfiados no chão ficam com as rodas sem se tocar, você pode checar isso, ver quantas rodas estão se tocando no chão ou não
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


Última edição por Junior_Djjr em Dom 10 Maio 2015, 11:05, editado 3 vez(es)

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
Conteúdo patrocinado

Re: Sobre CLEO

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