Cyndaquill!
Cyndaquill!
Mensagens Nível 3
Mensagens Nível 3
Mensagens : 195
Reputação : 0
Desde : 28/10/2017
Localização : Pinhais - Paraná
Dom 29 Out 2017, 21:19
Car Spawner feito para CLEO

Open Source:

Código:
SCRIPT_START
{
NOP

main_loop:
WAIT 0

//////////////////////////////////////////////////Infernus
IF TEST_CHEAT INFERNUS
    SPAWN_VEHICLE_BY_CHEATING INFERNUS
    PRINT_STRING_NOW "Infernus na sua mao!" 1000
ENDIF
WAIT 0

//////////////////////////////////////////////////Comet
IF TEST_CHEAT COMET
    SPAWN_VEHICLE_BY_CHEATING COMET
    PRINT_STRING_NOW "Comet na sua mao!" 1000
ENDIF
WAIT 0

//////////////////////////////////////////////////Buffalo
IF TEST_CHEAT BUFFALO
    SPAWN_VEHICLE_BY_CHEATING BUFFALO
    PRINT_STRING_NOW "Buffalo na sua mao!" 1000
ENDIF
WAIT 0

//////////////////////////////////////////////////Huntley
IF TEST_CHEAT HUNTLEY
    SPAWN_VEHICLE_BY_CHEATING HUNTLEY
    PRINT_STRING_NOW "Huntley na sua mao!" 1000
ENDIF
WAIT 0

//////////////////////////////////////////////////Sentinentel
IF TEST_CHEAT SENTINENTEL
    SPAWN_VEHICLE_BY_CHEATING SENTINEL
    PRINT_STRING_NOW "Sentinentel na sua mao!" 1000
ENDIF
WAIT 0

/////////////////////////////////////////////////Fortune
IF TEST_CHEAT FORTUNE
    SPAWN_VEHICLE_BY_CHEATING FORTUNE
    PRINT_STRING_NOW "Fortune na sua mao!" 1000
ENDIF
WAIT 0

GOTO main_loop
}
SCRIPT_END

Preciso de ajuda para listar carros, nomes de dff/txd, etc pokerface

ignore o nome de labels


Última edição por Cyndaquill! em Seg 30 Out 2017, 00:28, editado 1 vez(es) (Motivo da edição : Coisas desnecessárias removidas)
Junior_Djjr
Junior_Djjr
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22403
Reputação : 727
Desde : 03/05/2012
Idade : 26
Localização : Ibitinga - SP
Link : www.MixMods.com.br
http://MixMods.com.br
Dom 29 Out 2017, 22:48
Por que você colocou isso?
Código:

    WHILE IS_KEY_PRESSED VK_KEY_J
        WAIT 0
    ENDWHILE

A melhor maneira de se fazer isso é fazer por exemplo do modo que eu fiz o mod Djjr Car Spawner , mas é um método avançado, difícil pra iniciantes...

O método "quase melhor" é pegar o nome do carro e botar numa variável, e usar a variável no TEST_CHEAT.
Isso é basicamente como o Quick Vehicle Spawner funciona.
Basta usar GET_NAME_OF_VEHICLE_MODEL dando o ID do modelo do carro e retornando numa variável TEXT_LABEL
Isso não vai retornar o nome do carro, mas sim o nome do GXT do carro.
Se você só botar a variável no TEST_CHEAT, já irá funcionar (se você usar o nome correto), basta digitar o nome do GXT (por exemplo, BLISTA COMPACT tem o nome de GXT "BLISTAC", então se você fizer isso com ele, basta digitar "BLISTAC" que ativará).

Se você quer digitar o nome completo do carro (por exemplo "BLISTA COMPACT") você terá que também usar o comando GET_TEXT_LABEL_STRING enviando a variável que você pegou antes, e em seguida uma nova variável onde terá o nome completo do carro. Esta nova variável tem que ser TEXT_LABEL16 (para aceitar 15 letras). E mesma coisa, basta usar a variável no TEST_CHEAT, assim você terá que digitar "BLISTA COMPACT" para ativar.

Ainda assim terá um probleminha, pois se alguém editar o nome do carro para um nome maior do que 15 letras, vai dar fail. Neste caso você tem que usar thread memory ao invés da TEXT_LABEL16.

Perceba que basta você fazer isso num loop que você irá checar todos os veículos, basta loopar o ID desde o número 400 até 611 que você irá loopar todos os veículos do jogo.

O pior problema disso tudo é que requer muito recurso... vai aumentar o uso do CPU e tirar um pouco de FPS.

Repetindo: Isso é basicamente como o Quick Vehicle Spawner funciona. Você fazer tudo isso estará praticamente recriando o Quick Vehicle Spawner... mas é útil para aprendizado.

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
Cyndaquill!
Cyndaquill!
Mensagens Nível 3
Mensagens Nível 3
Mensagens : 195
Reputação : 0
Desde : 28/10/2017
Localização : Pinhais - Paraná
Seg 30 Out 2017, 00:40
@Junior_Djjr escreveu:Por que você colocou isso?
Código:

    WHILE IS_KEY_PRESSED VK_KEY_J
        WAIT 0
    ENDWHILE

Erro meu. Estava tentando fazer por teclas, mas vi que não era possível. sou mt burro msm

@Junior_Djjr escreveu:O método "quase melhor" é pegar o nome do carro e botar numa variável, e usar a variável no TEST_CHEAT.
Isso é basicamente como o Quick Vehicle Spawner funciona.
Basta usar GET_NAME_OF_VEHICLE_MODEL dando o ID do modelo do carro e retornando numa variável TEXT_LABEL
Isso não vai retornar o nome do carro, mas sim o nome do GXT do carro.
Se você só botar a variável no TEST_CHEAT, já irá funcionar (se você usar o nome correto), basta digitar o nome do GXT (por exemplo, BLISTA COMPACT tem o nome de GXT "BLISTAC", então se você fizer isso com ele, basta digitar "BLISTAC" que ativará).

Estou fazendo sem variáveis porque acho melhor eu treinar essas coisas. Variáveis é fácil. Talvez depois eu começe a usá-las no mesmo scipt.
Acho que também o código fica menor.

@Junior_Djjr escreveu:Se você quer digitar o nome completo do carro (por exemplo "BLISTA COMPACT") você terá que também usar o comando GET_TEXT_LABEL_STRING enviando a variável que você pegou antes, e em seguida uma nova variável onde terá o nome completo do carro. Esta nova variável tem que ser TEXT_LABEL16 (para aceitar 15 letras). E mesma coisa, basta usar a variável no TEST_CHEAT, assim você terá que digitar "BLISTA COMPACT" para ativar.

Estou usando "PRINT_STRING_NOW" e possivelmente usarei "PRINT_FORMATTED_NOW", acho que o script ficaria grande e depois irei tentar usar as variáveis.

Mesmo assim, obrigado pelas dicas Junior!
Tentarei aplicá-las após isso, como vc disse Recriando o Quick Vehicle Spawner
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/
Seg 30 Out 2017, 13:49
Esta é uma versão cleo de um car spawner que fiz a um tempo atrás em Lua para moonloader, usa uns comandos que pode até vir a usar em outras coisas que for fazer no futuro como "GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS", quando descobri este comando mudou muitos a forma de eu fazer uns scripts.
No caso eu só mudei a mensagem ali que aparece. Este spawna de duas formas K + I pelo id e K+ N pelo nome.

código completo de um spawner usando cheat name:

Código:

SCRIPT_START
{
    NOP

    ADD_TEXT_LABEL CarS_H1 "~y~Cars Spawner ~w~~n~Digite o nome FXT do veiculo para o chamar imediatamente. Para cancelar aperte SPACE"
    ADD_TEXT_LABEL CarS_H2 "~y~Cars Spawner ~w~~n~Digite o NUM de modelo do veiculo para o chamar imediatamente. Para cancelar aperte SPACE"

    WHILE IS_PC_VERSION
        IF IS_KEY_PRESSED VK_KEY_K
            IF IS_KEY_PRESSED VK_KEY_N
                CLEO_CALL Get_Car_Name 0 0
            ENDIF
            IF IS_KEY_PRESSED VK_KEY_I
                CLEO_CALL Get_Car_Name 0 1
            ENDIF
            WHILE IS_KEY_PRESSED VK_KEY_I
            OR IS_KEY_PRESSED VK_KEY_N
                WAIT 0
            ENDWHILE
        ENDIF        
        WAIT 0
    ENDWHILE
    TERMINATE_THIS_CUSTOM_SCRIPT
}

{
    LVAR_INT imodel //-- in
    LVAR_INT scplayer vehicle
    LVAR_FLOAT posX posY posZ angle

    New_Car:
        IF IS_MODEL_AVAILABLE imodel
            //--
            GET_PLAYER_CHAR 0 scplayer
            GET_CHAR_HEADING scplayer angle
            GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer 0. 7. 0. posX posY posZ
            //--
            REQUEST_MODEL imodel
            LOAD_ALL_MODELS_NOW
            CREATE_CAR imodel posX posY posZ vehicle
            angle += 90.
            SET_CAR_HEADING vehicle angle
            MARK_MODEL_AS_NO_LONGER_NEEDED imodel
            MARK_CAR_AS_NO_LONGER_NEEDED vehicle
        ENDIF
    CLEO_RETURN 0 //vehicle
}

{
    LVAR_INT mode //-- in
    LVAR_INT i istring32 status
    LVAR_TEXT_LABEL str8

    Get_Car_Name:
        //--
        IF (mode = 0)
            PRINT_HELP_FOREVER CarS_H1
        ELSE
            PRINT_HELP_FOREVER CarS_H2
        ENDIF
        //--
        SET_HELP_MESSAGE_BOX_SIZE 300
        SET_PLAYER_CONTROL 0 FALSE
        SET_CAMERA_BEHIND_PLAYER
        GET_LABEL_POINTER buffer_string32 istring32
        //--
        status = 1
        WHILE NOT IS_KEY_PRESSED VK_SPACE
        AND (status = 1)
            i = 400
            WHILE (i <= 611)
                GET_NAME_OF_VEHICLE_MODEL i str8
                IF (mode = 0)
                //- spawner via fxt name
                    IF TEST_CHEAT $str8
                        GET_TEXT_LABEL_STRING $str8 istring32
                        PRINT_FORMATTED_NOW "~y~%s ~w~na sua mao!" 2500 $istring32
                        CLEO_CALL New_Car 0 (i)
                        status = -1
                    ENDIF
                ELSE
                //-- spawner via model id
                    STRING_FORMAT str8 "%i" i
                    IF TEST_CHEAT $str8
                        GET_NAME_OF_VEHICLE_MODEL i str8
                        GET_TEXT_LABEL_STRING $str8 istring32
                        PRINT_FORMATTED_NOW "~y~%s ~w~na sua mao!" 2500 $istring32
                        CLEO_CALL New_Car 0 (i)
                        status = -1
                    ENDIF  
                ENDIF              
                i ++
            ENDWHILE
            WAIT 0
        ENDWHILE
        //--
        RESTORE_CAMERA
        SET_PLAYER_CONTROL 0 TRUE
        CLEAR_HELP
        //--
    CLEO_RETURN 0
}
SCRIPT_END

buffer_string32:
DUMP
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ENDDUMP


Da forma que esta fazendo vai ter que fazer isto mais ou menos 211 vezes, o que vai dar mais de 1055 linha se incluir o WAIT 0 após cada checagem de cheat, mas você ja entrou no ritmo de como mexer com cleo.

______________________________

.::
Os mods que crio serão colocados no meu workshop link
Cyndaquill!
Cyndaquill!
Mensagens Nível 3
Mensagens Nível 3
Mensagens : 195
Reputação : 0
Desde : 28/10/2017
Localização : Pinhais - Paraná
Seg 30 Out 2017, 17:29
Obrigado @Um Geek! Estou querendo msm fazer essas 1055, mas talvez inclua parte do seu script aí!


Última edição por Cyndaquill! em Seg 30 Out 2017, 21:51, editado 1 vez(es)

______________________________
MAU PC (mau msm):

Processador: Intel Pentium Dual 2.20GHz
RAM: 2GB
Placa de vídeo: nn sei só sei q eh onboard do pc msm
OS: WIndows 7 Ultimate 32bits
avatar
Convidado
Convidado
Seg 30 Out 2017, 21:24
.


Última edição por Veryzon em Dom 01 Jul 2018, 07:54, editado 1 vez(es)
Cyndaquill!
Cyndaquill!
Mensagens Nível 3
Mensagens Nível 3
Mensagens : 195
Reputação : 0
Desde : 28/10/2017
Localização : Pinhais - Paraná
Seg 30 Out 2017, 21:51
Veryzon escreveu:[ ↑ ] Para mencionar um nome com caracteres espaçadores, use aspas. Por exemplo, @"someone"

Obg, nn sabia disso.

______________________________
MAU PC (mau msm):

Processador: Intel Pentium Dual 2.20GHz
RAM: 2GB
Placa de vídeo: nn sei só sei q eh onboard do pc msm
OS: WIndows 7 Ultimate 32bits
Conteúdo patrocinado
Permissões neste fórum
Você não pode responder aos tópicos