Compartilhe
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21852
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

11. Comandos e argumentos

em Qui 26 Jan 2017, 19:59
Concluindo esta parte você vai:
Saber responder o que são, como usar e como procurar comandos;
Saber responder o que são e como usar argumentos dependente do data type pedido;

Agora você finalmente irá se aprofundar no uso dos comandos, que já usamos bastante, sem ao menos você entender realmente o que são!

Você já é um programador old school do Sanny Builder?
Comandos = Opcodes (não literalmente)
Argumentos = Parâmetros



O que são "comandos"?

Vamos ser diretos:
Os comandos servem para comandar
(eu devia parar com isso, mas é a realidade, as vezes as coisas são óbvias!)

Comandos é a coisa mais importante no GTA3script, pois praticamente tudo são comandos, o que inclusive isso difere bem das outras programações: GTA3script é uma linguagem de comandos, e comandos, e comandos!

Você está aqui, mas já sabe o que são comandos, pois eu entrei na sua mente e te introduzi naturalmente neles. Este tutorial é para explicar mais a fundo o que são e como usá-los:

Por exemplo, "WAIT" é um comando. E o que ele faz? Você já sabe!

"IS_KEY_PRESSED" também sabe. E também já até expliquei sobre ver a descrição dos comandos:


Fuçe! Quando quer alguma coisa, digite alguma palavra em específico.

Por exemplo, você quer armas, então digite "WEAPON":

E escolha o que você realmente quer, se você quer dar uma arma "GIVE", remover a arma "REMOVE" etc.

Atenção: Fique de olho se no GTA que você está programando há o tal comando disponível:

Senão dará o erro "unsupported command".
Inclusive alguns comandos nem operação tem — estão lá mas fazem nada, e na descrição estará escrito.

Em seguida, você irá "configurar" este comando dando os argumentos, dizendo qual arma e qual "char" (qual pessoa) — e é isso a parte mais importante!

Nota para programadores do Sanny Builder: Se você já mexe com Sanny Builder há um bom tempo vai se sentir muito incomodado de ter que trabalhar com nomes totalmente diferentes. Eu recomendo que você pegue o código do opcode do Sanny Builder e cole na caixa de pesquisa do Opcode Database, para assim cair "de cara" no novo nome do comando. (em raras vezes não ajudará, mas são muito raras...)


O que são "argumentos"?

Você também já sabe o que são!
Código:
WAIT 0
O "0" é um argumento integer (de número inteiro).

E se tentarmos dar um outro data type no lugar do integer deste comando?
Código:
WAIT 0.0
WAIT 100.0
Não funciona.

Você tem que dar os argumentos corretos que são pedidos.


Vamos criar um script passo-a-passo para pegar a coordenada do CJ e mostrar na tela?

Comece como sempre:



E o que é este "NOP"?
É só um comando sem operação! Não faz nada além de preencher algum espaço.
É que se você tiver uma label sem nenhum comando antes (excluindo declarações de variáveis, que não vão pro produto final) vai dar este erro:

Se tivesse algum comando antes da label, não daria, e o "NOP" é um comando, então colocá-lo sempre no topo do script ajuda a não passar por este erro. Mas na maioria das vezes você nem precisa tê-lo lá e você pode querer apagá-lo caso não precise (e assim economizar 2 bytes — o Julius aprovaria o seu script)

Agora defina uma variável INT com nome "scplayer" — Por que "scplayer"? O nome é de sua escolha, mas por organização, nós usamos "scplayer" para o CJ, pois foi assim que a Rockstar fez. Se você é anarquista, pode escolher não usar.

Embaixo, use o comando "GET_PLAYER_CHAR".
Este comando faz o seguinte: "CHAR" é uma pessoa, um ped (pedestre), um ator, um personagem. "GET" é "pegar", ou seja, nós estamos "pegando o CHAR do player", e assim, nós podemos usar os comandos para "CHAR" no nosso player (no CJ)!

Os argumentos pedidos do "GET_PLAYER_CHAR" são dois INT:
1 - player
2 - retorno

No primeiro argumento que é o "player", o "0" vale o "player 1" e o "1" vale o "player 2". Você sempre usará "0", afinal, você quer o CJ, não?

E no retorno, você deve enviar uma variável, e o valor daquela variável será um handle para o "CHAR" do CJ — leia isso como "O CJ em forma de CHAR para ser usado em comandos que pedem o CHAR".

O script ficará assim:


E vamos também adicionar um loop:


É muito comum você começar a criar um script que use o CJ para alguma coisa e começar digitando desta exata mesma forma, ou sem o NOP no topo (já que ele está desnecessário neste caso).

Agora vamos adicionar o comando "TEST_CHEAT", que é um comando condicional (perceba! Ele é condicional mas não começa com "IS_" nem "HAS_" nem "DOES_", vai contra nossas regras! É porque é um comando da CLEO) onde pede um argumento, que é uma string (text label):

Caso você digitar esta string, dará verdadadeiro! Ou seja, é como o IS_KEY_PRESSED, mas agora você DIGITA o comando ao invés de apertar uma tecla. Muito usado para ativar mods.

Certo, e o que faremos quando digitar a palavra "POSICAO"? Vamos usar o comando para pegar a coordenada do CJ: GET_CHAR_COORDINATES
(percebeu o "CHAR" no nome do comando? Então!)

Este comando nos pede 4 argumentos:
1- Handle do CHAR — perceba que está escrito "actor", pois está na época do Sanny Builder ainda. "actor" é a forma antiga de um "char" ser chamado. No futuro isso pode ser atualizado e aparecer "char".
2 - Coordenada X (retorno)
3 - Coordenada Y (retorno)
4 - Coordenada Z (retorno)
Ou seja, nós enviamos a variável com o nosso CHAR (que neste caso em particular é o CJ) e 3 variáveis para retornar a coordenada (X Y Z (ou seja, a posição 3D dele)), e assim nós podemos saber em que posição o CJ está no mapa!

Ei, não esqueça: Você ainda não tem variáveis float para guardar estas coordenadas.
Defina 3 variáveis float para poder usá-las no comando:

Nota: Não é necessário defini-las todas em uma só linha. Fiz assim pois é mais organizado do que fazer uma em cada linha.

"Por que FLOAT?"
Todas as coordenadas são float. Lembre-se.
Geralmente coisas do tipo "distância", "ângulo", velocidade etc são tudo em float (coisas que requerer mais definição). Não se preocupe também pois geralmente diz qual data type você tem que colocar, e se você colocar errado o compilador irá te informar também.

E por fim vamos mostrar as variáveis na tela com o comando PRINT_FORMATTED_NOW usando três "%f" para mostrar o valor das variáveis float "x y z".
Código:
PRINT_FORMATTED_NOW "X: %f Y: %f Z: %f" 1000 x y z

Perceba que o PRINT_FORMATTED_NOW nos pede 3 argumentos:
1 - string
2 - int (tempo)
3 - qualquer
O último são data types qualquer! Representados por "PARAM":

Que inclusive pode ser mais do que um, como nós mesmos fizemos, usamos 3 variáveis no "PARAM", e não somente uma, pois este comando aceita fazer isso.

E assim temos o nosso script que pega a coordenada do CJ e mostra na tela após digitar "POSICAO":


Faça mais!
1. Experiente remover a checagem de digitar "POSICAO" e fazer ficar pegando a coordenada  e mostrando na tela sem parar para dar um efeito diferente e mais legal. Ou então segurar uma tecla para mostrar a posição.
2. Experimente também mudar os "%f" para "%.3f", assim irá mostrar 3 casas decimais ao invés de 6, assim simplificando o float: Mostrando "327.416" ao invés de "327.416168".
3. E por fim, também experimente: Após ativar o script, pegar a coordenada, aumentar 10.0 em alguma coordenada (por exemplo z += 10.0) e usar o comando SET_CHAR_COORDINATES enviando as variáveis lá (de preferência o SET_CHAR_COORDINATES_NO_OFFSET na qual remove o offset que faz ir pra cima e ajustar o player no chão), assim, você enviará o CJ 10 metros para cima ou baixo (Z), ou leste ou oeste (X), ou norte ou sul (Y).


Viu como foi fácil? É só fazer o que pede!

E como já foi dito antes, se você enviasse alguma coisa errada, na grande maioria das vezes o compilador irá te corrigir, dizer que está errado.

Você pode ficar totalmente perdido em querer fazer tais coisas, por exemplo, se você nunca mexeu com isso antes e neste momento você quer criar uma pessoa e colocar arma nela, você sabe fazer isso? Você pode até tentar, pode até conseguir, mas muito possivelmente fará errado.

Por este motivo, este tutorial haverá uma seção chamada "Como fazer?" para você aprender a fazer tais coisas da forma correta. Basta dar uma olhada no Índice.
Inclusive, você pode perguntar pra nós em algum lugar, por exemplo criando um tópico aqui, ou simplesmente perguntando aqui como fazer tal coisa caso ainda não tenha tutorial.


Como fazer:
Criação de carros, pedestres, objetos (uso de modelos)
Fique de olho no índice que em breve terá novos!

Próxima parte:
12. Escopos


Última edição por Junior_Djjr em Sex 03 Fev 2017, 06:46, editado 4 vez(es) (Razão : Adicionado a dica de usar SET_CHAR_COORDINATES_NO_OFFSET)

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Mensagens Nível 4
Mensagens Nível 4
Mensagens : 411
Reputação : 12
Desde : 12/01/2016
Localização : 127.0.0.1:25565
Ver perfil do usuário

Re: 11. Comandos e argumentos

em Sex 27 Jan 2017, 22:30
Tentei fazer um noclip, mas o jogador ia para cima ao mesmo tempo que se movia para frente. facepalm
Queria aprender a facer GUI, com .TXD e tudo mais. E também usar arquivos INI megusta2
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 612
Reputação : 37
Desde : 19/08/2015
Idade : 14
Localização : Em algum lugar do brasil
Link : https://www.youtube.com/watch?v=lMB18XPgEWA
Ver perfil do usuário

Re: 11. Comandos e argumentos

em Sex 27 Jan 2017, 22:46
Usar arquivos INI é fácil

READ_INT_FROM_INI_FILE "arquivo.ini" "section" "key" int
READ_FLOAT_FROM_INI_FILE "arquivo.ini" "section" "key" float
READ_STRING_FROM_FILE "arquivo.ini" "section" "key" string


ja criar uma GUI com .txd é meio complicado

______________________________


avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21852
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: 11. Comandos e argumentos

em Sex 27 Jan 2017, 23:25
@DouglasB2310 escreveu:Tentei fazer um noclip, mas o jogador ia para cima ao mesmo tempo que se movia para frente. facepalm
Queria aprender a facer GUI, com .TXD e tudo mais. E também usar arquivos INI megusta2
SET_CHAR_COORDINATES_NO_OFFSET
Esse tira o OFFSET que faz ir pra cima.

@AguiaX2 escreveu:ja criar uma GUI com .txd é meio complicado
Vou ter que fazer um tutorial do tipo mesmo.

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 481
Reputação : 30
Desde : 08/02/2016
Localização : São Paulo
Ver perfil do usuário

Re: 11. Comandos e argumentos

em Sab 28 Jan 2017, 02:40
Cara, não demorei muito pra ler sobre o que já está postado. E pelo que estou vendo muita gente já está querendo aprender a brincar com a bagaça mesmo. Espero que dê certo.
@Junior_Djjr , pretende traduzir para inglês os tutoriais? Colocaria aqui ou na GTAForums? Caso queira, posso te ajudar nisso, quero praticar um pouco mais de inglês.
Seria interessante também passar pra linguagem todas as ferramentas e utilitários. Se precisar, ajudo nisso também.

Parabéns pelo tutorial.
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21852
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: 11. Comandos e argumentos

em Sab 28 Jan 2017, 03:52
@Deadstroke escreveu:Cara, não demorei muito pra ler sobre o que já está postado. E pelo que estou vendo muita gente já está querendo aprender a brincar com a bagaça mesmo. Espero que dê certo.
@Junior_Djjr , pretende traduzir para inglês os tutoriais? Colocaria aqui ou na GTAForums? Caso queira, posso te ajudar nisso, quero praticar um pouco mais de inglês.
Seria interessante também passar pra linguagem todas as ferramentas e utilitários. Se precisar, ajudo nisso também.

Parabéns pelo tutorial.
Eu queria que fosse traduzido mesmo, mas não tenho 1 pingo de coragem (vontade). Nota também que o tutorial é mais feito por imagens, e nestas imagens eu adicionei coisas em português também (até tentei evitar isso, mas fiz mesmo já imaginando que se fosse passar pra inglês iria precisar refazer umas mesmo).

Qualquer pessoa que traduzisse seria ótimo. Note até que o LINK/2012 adicionou o link deste tutorial no tópico oficial do GTA3script mesmo que este tutorial seja em português... (se bem que tem muito BR na GTAForums).

Algum dia vai necessitar existir um tutorial de GTA3script em inglês para o pessoal, e dá medo que tal tutorial seja mal feito, né? Sinceramente, nem os do Zaz e da Dutchy pro Sanny Builder eu gostei.

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 481
Reputação : 30
Desde : 08/02/2016
Localização : São Paulo
Ver perfil do usuário

Re: 11. Comandos e argumentos

em Sab 28 Jan 2017, 10:57
Entendi. Sinceramente, esses do GTA3script me pareceram estar bem melhores do que os anteriores, mas talvez seja por eu já entender sobre isso. Apesar de que já ter gente que nunca fez isso já tentar fazer alguma coisa.
Não tenho como fazer isso de uma vez, tentarei fazer aos poucos e ver como tá ficando.
As imagens são um problema, mas muitas são scripts de exemplo que você deixou o source (só tenho que traduzir os comentários...)
Mas seria interessante passar as ferramentas para GTA3script primeiro....
avatar
Designer - Intermediário
Designer - Intermediário
Mensagens : 3182
Reputação : 133
Desde : 13/10/2012
Idade : 16
Localização : Terra Mágica dos Poneys
Link : MixMods.com.br
Ver perfil do usuáriohttp://www.mixmods.blogspot.com

Re: 11. Comandos e argumentos

em Sab 28 Jan 2017, 14:17
Fiz esse script para reparar um carro ao digitar REPARAR, ficou bom? :
Código:

SCRIPT_START
{
    NOP
LVAR_INT scplayer carro
    main_loop:
    GET_PLAYER_CHAR 0 scplayer
    wait 0
    IF TEST_CHEAT REPARAR
        IF IS_CHAR_IN_ANY_CAR scplayer
        GET_CAR_CHAR_IS_USING scplayer carro
            FIX_CAR carro
            PRINT_STRING_NOW "Carro reparado!" 2000
        ELSE
            PRINT_STRING_NOW "Voce nao esta em um carro" 2000
        ENDIF
    ENDIF
    GOTO main_loop
}
SCRIPT_END

______________________________
Configs:

Processador : Intel Core 2 Quad Q8200 2.34 Ghz
Memória RAM : 4GB DDR3
Placa de Vídeo : GTX 750 1GB
Sistema Operacional :  Windows 10 64 Bits Pro
avatar
Designer - Intermediário
Designer - Intermediário
Mensagens : 3182
Reputação : 133
Desde : 13/10/2012
Idade : 16
Localização : Terra Mágica dos Poneys
Link : MixMods.com.br
Ver perfil do usuáriohttp://www.mixmods.blogspot.com

Re: 11. Comandos e argumentos

em Sab 28 Jan 2017, 15:57
Outro que fiz pro jogo ficar em camera lenta ao apertar 5 :
Código:

SCRIPT_START
{
    NOP

    main_loop:
    wait 0
    IF IS_KEY_PRESSED VK_KEY_5
        SET_TIME_SCALE 0.5
    WHILE IS_KEY_PRESSED VK_KEY_5
        wait 0
    ENDWHILE
    ELSE
        GOTO main_loop
ENDIF
    mid_loop:
    wait 0
    IF IS_KEY_PRESSED VK_KEY_5
        SET_TIME_SCALE 1.0
    WHILE IS_KEY_PRESSED VK_KEY_5
        wait 0
    ENDWHILE
        GOTO main_loop
    ELSE
        GOTO mid_loop
ENDIF
}
SCRIPT_END

______________________________
Configs:

Processador : Intel Core 2 Quad Q8200 2.34 Ghz
Memória RAM : 4GB DDR3
Placa de Vídeo : GTX 750 1GB
Sistema Operacional :  Windows 10 64 Bits Pro
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21852
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: 11. Comandos e argumentos

em Sab 28 Jan 2017, 16:26
@ThePedro004 escreveu:Fiz esse script para reparar um carro ao digitar REPARAR, ficou bom? :
Spoiler:
Código:

SCRIPT_START
{
    NOP
LVAR_INT scplayer carro
    main_loop:
    GET_PLAYER_CHAR 0 scplayer
    wait 0
    IF TEST_CHEAT REPARAR
        IF IS_CHAR_IN_ANY_CAR scplayer
        GET_CAR_CHAR_IS_USING scplayer carro
            FIX_CAR carro
            PRINT_STRING_NOW "Carro reparado!" 2000
        ELSE
            PRINT_STRING_NOW "Voce nao esta em um carro" 2000
        ENDIF
    ENDIF
    GOTO main_loop
}
SCRIPT_END
Você está pegando o player em loop, desnecessário, isso só precisa no início do script e não ficar em loop.
Prefira usar o IS_CHAR_SITTING_IN_ANY_CAR para checar se o CJ está sentado em um carro. O IS_CHAR_IN_ANY_CAR retorna verdadeiro mesmo saindo do carro.

@ThePedro004 escreveu:Outro que fiz pro jogo ficar em camera lenta ao apertar 5 :
Spoiler:
Código:

SCRIPT_START
{
    NOP

    main_loop:
    wait 0
    IF IS_KEY_PRESSED VK_KEY_5
        SET_TIME_SCALE 0.5
    WHILE IS_KEY_PRESSED VK_KEY_5
        wait 0
    ENDWHILE
    ELSE
        GOTO main_loop
ENDIF
    mid_loop:
    wait 0
    IF IS_KEY_PRESSED VK_KEY_5
        SET_TIME_SCALE 1.0
    WHILE IS_KEY_PRESSED VK_KEY_5
        wait 0
    ENDWHILE
        GOTO main_loop
    ELSE
        GOTO mid_loop
ENDIF
}
SCRIPT_END
O uso de TAB está bagunçado, e no tutorial de condições (e outros mesmo) mostra bem como usá-lo, só olhar e tentar igual.
O uso do GOTO com um ELSE funciona e tá deboa, mas pode ficar meio confuso, tipo, você poderia ter feito o segundo loop (mid_loop) após ativar, para assim não precisar ir pra baixo.
Código:
SCRIPT_START
{
NOP

enable_loop:
WAIT 0
IF IS_KEY_PRESSED VK_KEY_5
    SET_TIME_SCALE 0.5
    WHILE IS_KEY_PRESSED VK_KEY_5
        WAIT 0
    ENDWHILE

    disable_loop:
    WAIT 0
    IF IS_KEY_PRESSED VK_KEY_5
        SET_TIME_SCALE 1.0
        WHILE IS_KEY_PRESSED VK_KEY_5
            WAIT 0
        ENDWHILE
        GOTO enable_loop //desativou, volta pra ativar
    ENDIF
    GOTO disable_loop //roda o "desativador"

ENDIF
GOTO enable_loop
}
SCRIPT_END
Mas o melhor a se fazer mesmo é usar variável:
Código:
SCRIPT_START
{
NOP
LVAR_INT ativado

main_loop:
WAIT 0
IF IS_KEY_PRESSED VK_KEY_5
    IF ativado = FALSE
        SET_TIME_SCALE 0.5
        ativado = TRUE
    ELSE
        SET_TIME_SCALE 1.0
        ativado = FALSE
    ENDIF
    WHILE IS_KEY_PRESSED VK_KEY_5
        WAIT 0
    ENDWHILE
ENDIF
GOTO main_loop
}
SCRIPT_END

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Designer - Intermediário
Designer - Intermediário
Mensagens : 3182
Reputação : 133
Desde : 13/10/2012
Idade : 16
Localização : Terra Mágica dos Poneys
Link : MixMods.com.br
Ver perfil do usuáriohttp://www.mixmods.blogspot.com

Re: 11. Comandos e argumentos

em Sab 28 Jan 2017, 16:34
Entendi, consertei o script de consertar :
Código:

SCRIPT_START
{
    NOP
LVAR_INT scplayer carro

GET_PLAYER_CHAR 0 scplayer // Pega o personagem
    main_loop:
    wait 0
    IF TEST_CHEAT REPARAR
        IF IS_CHAR_SITTING_IN_ANY_CAR scplayer // Pergunta se o CJ está em algum carro
            GET_CAR_CHAR_IS_USING scplayer carro //Pega o carro que o CJ está usando e define ele com o valor CARRO
            FIX_CAR carro //conserta o veiculo com nome carro
            PRINT_STRING_NOW "Carro reparado!" 2000
        ELSE
            PRINT_STRING_NOW "Voce nao esta em um carro" 2000
        ENDIF
    ENDIF
    GOTO main_loop
}
SCRIPT_END

______________________________
Configs:

Processador : Intel Core 2 Quad Q8200 2.34 Ghz
Memória RAM : 4GB DDR3
Placa de Vídeo : GTX 750 1GB
Sistema Operacional :  Windows 10 64 Bits Pro
avatar
Designer - Intermediário
Designer - Intermediário
Mensagens : 3182
Reputação : 133
Desde : 13/10/2012
Idade : 16
Localização : Terra Mágica dos Poneys
Link : MixMods.com.br
Ver perfil do usuáriohttp://www.mixmods.blogspot.com

Re: 11. Comandos e argumentos

em Sab 28 Jan 2017, 18:06
Como eu faço por exemplo se eu quiser que o jogo leia algo que o jogador escreveu e jogue aquilo pra uma variavel, por exemplo pra fazer um spawner de veículos que ao segurar c+s a pessoa digite o nome do carro e aperte enter, ai no script eu jogo aquilo pra uma variavel e crio o carro usando aquele comando de SPAWN CAR BY CHEAT algo assim.

______________________________
Configs:

Processador : Intel Core 2 Quad Q8200 2.34 Ghz
Memória RAM : 4GB DDR3
Placa de Vídeo : GTX 750 1GB
Sistema Operacional :  Windows 10 64 Bits Pro
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Bicho Piruleta
Mensagens : 671
Reputação : 111
Desde : 22/09/2015
Idade : 19
Localização : Salvador - BA
Ver perfil do usuário

Re: 11. Comandos e argumentos

em Sab 28 Jan 2017, 18:51
Acho que ainda não tá na hora, isso aí só depois que o Jr postar sobre manuseamento de memória etc.

______________________________
" Everyone gonna remember my name ! "
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21852
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: 11. Comandos e argumentos

em Sab 28 Jan 2017, 18:56
@ThePedro004 escreveu:Como eu faço por exemplo se eu quiser que o jogo leia algo que o jogador escreveu e jogue aquilo pra uma variavel, por exemplo pra fazer um spawner de veículos que ao segurar c+s a pessoa digite o nome do carro e aperte enter, ai no script eu jogo aquilo pra uma variavel e crio o carro usando aquele comando de SPAWN CAR BY CHEAT algo assim.
Fique lendo o byte do endereço 0x00969110 na qual retorna o decimal da última letra digitada e cheque se não é um null, assim você adiciona ela em algum lugar da memória para montar uma string e escreva um null terminator no 0x00969110 para evitar pegar o byte novamente. Após isso você usa a string montada na função de endereço 0x004C5940 enviando: ponteiro de uma variável para retornar o ID do modelo, ponteiro para a string com a sequência de letras que você armazenou e uma variável de retorno para armazenar se a operação foi concluída. Assim você terá o ID do modelo, cheque se ele é válido e em seguida use a função 0x00403DA0 enviando o ID do modelo na qual retornará uma VMT que você lê 4 bytes do mesmo endereço, aumenta 0x10 para ter o tipo de modelo, lê mais 4 bytes e chame a função com o valor retornado na leitura, na qual esta função retornará o número do tipo de modelo, assim você checa se é do tipo 5 (um veículo). Em seguida é só criar o carro com o ID do modelo que você teve lá em cima.

Em resumo: Não tente. As coisas não são fáceis.

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Bicho Piruleta
Mensagens : 671
Reputação : 111
Desde : 22/09/2015
Idade : 19
Localização : Salvador - BA
Ver perfil do usuário

Re: 11. Comandos e argumentos

em Sab 28 Jan 2017, 19:06
Ué, mas o null terminator que ele diz seria só pra limpar a cheat_string, não acho que causaria problema.
@edit:  philosoraptor


Última edição por israel em Sab 28 Jan 2017, 20:07, editado 1 vez(es)

______________________________
" Everyone gonna remember my name ! "
avatar
Designer - Intermediário
Designer - Intermediário
Mensagens : 3182
Reputação : 133
Desde : 13/10/2012
Idade : 16
Localização : Terra Mágica dos Poneys
Link : MixMods.com.br
Ver perfil do usuáriohttp://www.mixmods.blogspot.com

Re: 11. Comandos e argumentos

em Sab 28 Jan 2017, 19:37
Melhor esperar mesmo :v
Qual é o comando que detecta quando o player está mirando com a arma? Eu procurei e não achei.

______________________________
Configs:

Processador : Intel Core 2 Quad Q8200 2.34 Ghz
Memória RAM : 4GB DDR3
Placa de Vídeo : GTX 750 1GB
Sistema Operacional :  Windows 10 64 Bits Pro
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Bicho Piruleta
Mensagens : 671
Reputação : 111
Desde : 22/09/2015
Idade : 19
Localização : Salvador - BA
Ver perfil do usuário
  • Reputação da mensagem: 100% (1 votos)

Re: 11. Comandos e argumentos

em Sab 28 Jan 2017, 19:55
@ThePedro004 escreveu:Melhor esperar mesmo :v
Qual é o comando que detecta quando o player está mirando com a arma? Eu procurei e não achei.
Depende, vê se é isso que você quer : GET_CHAR_PLAYER_IS_TARGETING (if and get).

______________________________
" Everyone gonna remember my name ! "
avatar
Designer - Intermediário
Designer - Intermediário
Mensagens : 3182
Reputação : 133
Desde : 13/10/2012
Idade : 16
Localização : Terra Mágica dos Poneys
Link : MixMods.com.br
Ver perfil do usuáriohttp://www.mixmods.blogspot.com

Re: 11. Comandos e argumentos

em Sab 28 Jan 2017, 20:08
Eh isso mesmo, eu fiquei procurando AIM e Point e n achava kkk philosoraptor
Vlw :)

______________________________
Configs:

Processador : Intel Core 2 Quad Q8200 2.34 Ghz
Memória RAM : 4GB DDR3
Placa de Vídeo : GTX 750 1GB
Sistema Operacional :  Windows 10 64 Bits Pro
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21852
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: 11. Comandos e argumentos

em Dom 29 Jan 2017, 13:26
Nota: Isso só vai retornar verdadeiro caso esteja mirando em alguma pessoa (como o próprio nome diz) e não simplesmente mirando.

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Designer - Intermediário
Designer - Intermediário
Mensagens : 3182
Reputação : 133
Desde : 13/10/2012
Idade : 16
Localização : Terra Mágica dos Poneys
Link : MixMods.com.br
Ver perfil do usuáriohttp://www.mixmods.blogspot.com

Re: 11. Comandos e argumentos

em Dom 29 Jan 2017, 13:31
Hmm? Então qual q retorna verdadeiro se mirar em qualquer lugar?

______________________________
Configs:

Processador : Intel Core 2 Quad Q8200 2.34 Ghz
Memória RAM : 4GB DDR3
Placa de Vídeo : GTX 750 1GB
Sistema Operacional :  Windows 10 64 Bits Pro
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Bicho Piruleta
Mensagens : 671
Reputação : 111
Desde : 22/09/2015
Idade : 19
Localização : Salvador - BA
Ver perfil do usuário

Re: 11. Comandos e argumentos

em Dom 29 Jan 2017, 13:39
Checar se está mirando
@Edit : Agora que vi, isso ai é só pra sniper e rpg. philosoraptor
Vou ver o que faço aqui.

______________________________
" Everyone gonna remember my name ! "
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Bicho Piruleta
Mensagens : 671
Reputação : 111
Desde : 22/09/2015
Idade : 19
Localização : Salvador - BA
Ver perfil do usuário

Re: 11. Comandos e argumentos

em Dom 29 Jan 2017, 14:05
Aqui.

Função :
Código:
{
Aiming:
LVAR_INT cammode
READ_MEMORY 0xB6F1A8 2 0 cammode
 
IF cammode = 7 // Sniper Rifle
OR cammode = 8 // RPG
OR cammode = 51 // Missile Launcher
OR cammode = 53 // Others
    NOP
ENDIF

CLEO_RETURN 0
}
Chamada :
Código:
IF CLEO_CALL Aiming 0
    // tá mirando
ENDIF
Testa ai pra ver.

...
Spoiler:

Código:
IS_BUTTON_PRESSED 0 6
philosoraptor

______________________________
" Everyone gonna remember my name ! "
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Título : Noob
Mensagens : 857
Reputação : 28
Desde : 13/08/2015
Localização : Passo de Torres - SC
Ver perfil do usuário

Re: 11. Comandos e argumentos

em Seg 30 Jan 2017, 12:44
Criei um mod de teleporte pra bolinha vermelha do mapa, tá bom isso?:
Spoiler:

Código:

SCRIPT_START
{
NOP

LVAR_INT scplayer key1 key2
LVAR_FLOAT x y z

GET_PLAYER_CHAR 0 scplayer

READ_INT_FROM_INI_FILE "cleo/TELEPORTE.ini" "MAIN" "KEY1" key1
READ_INT_FROM_INI_FILE "cleo/TELEPORTE.ini" "MAIN" "KEY2" key2

MAIN_LOOP:
WAIT 0

IF IS_KEY_PRESSED key1
AND IS_KEY_PRESSED key2
    GET_TARGET_BLIP_COORDS x y z
    SET_CHAR_COORDINATES scplayer x y -100.0
    PRINT_FORMATTED_NOW "Teleported to: X: %f Y: %f Z: %f" 3000 x y z
ENDIF

GOTO MAIN_LOOP
}
SCRIPT_END


______________________________
Caso te ajudei em algo, clique no botão de reputação (o "+" no canto superior direito da mensagem).

avatar
Mensagens Nível 4
Mensagens Nível 4
Mensagens : 453
Reputação : 30
Desde : 11/01/2016
Ver perfil do usuário

Re: 11. Comandos e argumentos

em Seg 30 Jan 2017, 13:05
Tem como fazer aparecer um texto definido em um arquivo .ini?
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Bicho Piruleta
Mensagens : 671
Reputação : 111
Desde : 22/09/2015
Idade : 19
Localização : Salvador - BA
Ver perfil do usuário

Re: 11. Comandos e argumentos

em Seg 30 Jan 2017, 13:05
Ficou muito bom, mas o NOP é desnecessário nesse caso e se o mapa não tiver marcado vai teleportar pro centro do mapa. :)
@Und escreveu:Tem como fazer aparecer um texto definido em um arquivo .ini?
Lê o arquivo .INI pra uma var string e printa ela na tela.

______________________________
" Everyone gonna remember my name ! "
Conteúdo patrocinado

Re: 11. Comandos e argumentos

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