Compartilhe
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 23
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br
  • Reputação da mensagem: 100% (1 votos)
em Seg 13 Fev 2017, 17:58


Última edição por Junior_Djjr em Dom 15 Jul 2018, 13:45, editado 3 vez(es)

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
avatar
Mensagens Nível 2
Mensagens Nível 2
Mensagens : 58
Reputação : 0
Desde : 18/02/2017
Ver perfil do usuário
em Seg 27 Fev 2017, 11:51
Só fui pulando de tutorial em tutorial pra ver como é o tamanho do texto denilson gostoso

E como diz em um desses tutoriais:

FUJA ENQUANTO HÁ TEMPO!

______________________________
Que merda em pokerface
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 23
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br
em Seg 27 Fev 2017, 12:36
@Perkzitos escreveu:Só fui pulando de tutorial em tutorial pra ver como é o tamanho do texto denilson gostoso

E como diz em um desses tutoriais:

FUJA ENQUANTO HÁ TEMPO!
Quando pessoas como você aparecem, ao invés de eu responder "não, não é bem assim, você consegue!" eu falo "foda-se, se você não tem força de vontade, nem tente" Fuch That Guy
(não literalmente, as vezes as pessoas ainda querem, mas sente medo exagerado, enfim)

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 653
Reputação : 38
Desde : 19/08/2015
Idade : 16
Localização : Em algum lugar do brasil
Link : https://www.youtube.com/watch?v=lMB18XPgEWA
Ver perfil do usuário
em Seg 27 Fev 2017, 12:43
Quando eu via os tutoriais do sanny builder eu achava bem grande mas eu tava foda-se pois era algo que me interessava :)

______________________________


avatar
Mensagens Nível 2
Mensagens Nível 2
Mensagens : 58
Reputação : 0
Desde : 18/02/2017
Ver perfil do usuário
em Seg 27 Fev 2017, 13:55
@Junior_Djjr escreveu:
@Perkzitos escreveu:Só fui pulando de tutorial em tutorial pra ver como é o tamanho do texto denilson gostoso

E como diz em um desses tutoriais:

FUJA ENQUANTO HÁ TEMPO!
Quando pessoas como você aparecem, ao invés de eu responder "não, não é bem assim, você consegue!" eu falo "foda-se, se você não tem força de vontade, nem tente" Fuch That Guy
(não literalmente, as vezes as pessoas ainda querem, mas sente medo exagerado, enfim)
ta serto
faa
(ou não)
YUNO

______________________________
Que merda em pokerface
avatar
Mensagens Nível 2
Mensagens Nível 2
Mensagens : 83
Reputação : 0
Desde : 01/03/2017
Idade : 14
Localização : São João da Boa Vista-SP
Ver perfil do usuário
em Qua 01 Mar 2017, 19:27
Belos e úteis tutoriais,tomara que as outras partes chegam logo.
avatar
Mensagens Nível 2
Mensagens Nível 2
Mensagens : 58
Reputação : 0
Desde : 18/02/2017
Ver perfil do usuário
em Qua 01 Mar 2017, 20:54
Código:

SCRIPT_START
[
NOP

IF IS_KEY_PRESED H
CREATE_CAR BMX
ENDIF
END
]
SCRIPT_END

(isso que eu aprendi com os tutoriais do Junior)

______________________________
Que merda em pokerface
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 981
Reputação : 36
Desde : 13/08/2015
Idade : 14
Localização : Passo de Torres - SC
Ver perfil do usuário
em Qui 02 Mar 2017, 04:43
î esse seu script ta uma poha

______________________________
Se eu te ajudei em algo, clique no botão de reputação (o "coraçãozinho" na parte de cima da mensagem).
avatar
Mensagens Nível 2
Mensagens Nível 2
Mensagens : 58
Reputação : 0
Desde : 18/02/2017
Ver perfil do usuário
em Qui 02 Mar 2017, 12:44
mathnoobsxx escreveu:î esse seu script ta uma poha
Sei disso, só fiquei passando de tutorial, li bem pouco =x

______________________________
Que merda em pokerface
avatar
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/
Ver perfil do usuáriohttps://gta-geek.blogspot.com.br/
em Dom 12 Mar 2017, 19:13
CODIGO:

Código:


SCRIPT_START
{
NOP

LVAR_INT na_grove
na_grove = 0

LVAR_FLOAT coord[3], rnd, rndx, rndy, x, y, z
LVAR_INT scplayer, balas[4], chars[10], grupo, coin, contar, n, i, tempo

GET_PLAYER_CHAR 0 scplayer
tempo = 101
balas[1] = 102
balas[2] = 103
balas[3] = 104

mainloop:
wait 0
IF na_grove = 0
    IF LOCATE_CHAR_ANY_MEANS_3D scplayer 2489.7217, -1669.693, 13.3359, 10.0, 10.0, 10.0 FALSE
    GOSUB missao_emboscada_na_grove
    ENDIF
ELSE
    IF NOT LOCATE_CHAR_ANY_MEANS_3D scplayer 2489.7217, -1669.693, 13.3359, 50.0, 50.0, 20.0 FALSE
    PRINT_FORMATTED_NOW "~r~PARECE QUE NÃO FOI SEU DIA DE SORTE" 5000
    na_grove = 0
    ENDIF
ENDIF
GOSUB checar_missao
GOTO mainloop

missao_emboscada_na_grove:
IF na_grove = 0
na_grove = 1
    REQUEST_MODEL AK47
    REQUEST_MODEL MICRO_UZI
    LOAD_ALL_MODELS_NOW
    REPEAT 10 n
        wait 0
        GET_CHAR_COORDINATES scplayer coord[0] coord[1] coord[2]
        GENERATE_RANDOM_INT_IN_RANGE 1, 4 i
        REQUEST_MODEL balas[i]
        LOAD_ALL_MODELS_NOW
        rnd = coord[0] - 20.0
        GENERATE_RANDOM_FLOAT_IN_RANGE coord[0], rnd, rndx
        rnd = coord[1] - 15.0
        GENERATE_RANDOM_FLOAT_IN_RANGE coord[1], rnd, rndy  
        CREATE_CHAR PEDTYPE_GANG1 balas[i] rndx, rndy, coord[2], chars[n]
        GIVE_WEAPON_TO_CHAR chars[n],WEAPONTYPE_MICRO_UZI, 999
        wait 100
        MARK_MODEL_AS_NO_LONGER_NEEDED balas[i]
    ENDREPEAT
    CREATE_GROUP 0 grupo
    REPEAT 10 n
    SET_GROUP_MEMBER grupo chars[n]
    ENDREPEAT
    SET_GROUP_LEADER grupo chars[3]
    REMOVE_ALL_CHAR_WEAPONS chars[3]
    GIVE_WEAPON_TO_CHAR chars[3],WEAPONTYPE_AK47, 999
    MARK_MODEL_AS_NO_LONGER_NEEDED AK47
    MARK_MODEL_AS_NO_LONGER_NEEDED MICRO_UZI
ENDIF
//-- parte 1
if na_grove = 1
    PRINT_FORMATTED_NOW "~w~Mate os %d ~r~BALLAS~w~ antes que eles te matem ou sua municao acabe" 2000 n
    wait 2000
    PRINT_FORMATTED_NOW "~w~Fique de olho no tempo" 2000
    wait 2000
    na_grove = 2

ENDIF
RETURN

//-- parte 2
contar = 10
coin = 0
checar_missao:
IF na_grove = 2
    tempo -=1
    wait 1000
    IF NOT IS_CHAR_DEAD scplayer
        AND NOT tempo <= 0
        REPEAT 9 n
            GET_GROUP_SIZE grupo coin contar
            IF coin = 0
            PRINT_BIG(M_PASS, 1000, 1)
            na_grove = 5
            ENDIF
        ENDREPEAT
        PRINT_FORMATTED_NOW "~w~TEMPO ~y~%d" 2000 tempo coin
    ELSE
    PRINT_BIG(M_FAIL, 1000, 1)
    ENDIF
ENDIF
RETURN
}
SCRIPT_END


Isto ai não é fácil não, e mesmo fazendo umas gambiarras tem coisa que não sei bem como funciona como saber quantos valores tem em uma array e como usa GET_GROUP_SIZE, coloquei uns valores ali e não comportou como eu queria, mesmo procurando ainda entendo assim GET_GROUP_SIZE [grupo], ?, ?  Um lugar onde achássemos o que significa as INT ajudaria (ONO)

mas acho que aprendi bastante até aqui, vou revisar mais também e esperar o que pode vir. vlw (COOL)
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 23
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br
em Seg 13 Mar 2017, 01:47
@Um Geek escreveu:Isto ai não é fácil não, e mesmo fazendo umas gambiarras tem coisa que não sei bem como funciona como saber quantos valores tem em uma array
Ué, mas é você quem dá a quantidade de valores pro array, como por exemplo o array "ballas" você deu "4" valores.

@Um Geek escreveu:e como usa GET_GROUP_SIZE, coloquei uns valores ali e não comportou como eu queria, mesmo procurando ainda entendo assim GET_GROUP_SIZE [grupo], ?, ?  Um lugar onde achássemos o que significa as INT ajudaria (ONO)
Este comando que você mandou é onde pega o número de integrantes do grupo, onde você envia o grupo (uma variável do tipo GROUP, no seu caso a "grupo"), e em seguida alguma variável para ter o número de integrantes.

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 47
Reputação : 0
Desde : 12/12/2015
Ver perfil do usuário
em Seg 13 Mar 2017, 21:02
Quando sai tutorial 17, dejota?
Ôh tutorial 17 amado, venha cá!

______________________________
American State Roleplay
Conheça meu projeto para o SA-MP clicando na imagem acima ^ ^
avatar
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/
Ver perfil do usuáriohttps://gta-geek.blogspot.com.br/
em Ter 14 Mar 2017, 17:50
@Junior_Djjr escreveu:
Este comando que você mandou é onde pega o número de integrantes do grupo, onde você envia o grupo (uma variável do tipo GROUP, no seu caso a "grupo"), e em seguida alguma variável para ter o número de integrantes.

São 3
Código:

GET_GROUP_SIZE grupo int int
Eu supus que a ultima pegaria o tamanho do grupo, agora a segunda eu coloquei qualquer coisa porque se faltasse uma não compilava (HMM)
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 23
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br
em Ter 14 Mar 2017, 18:02
Atá
O primeiro é onde vai ficar armazenado o número de líderes, e o segundo é o número de membros.
Era só você ir no "See online reference"
http://gtag.gtagaming.com/opcode-database/opcode/07F6/

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
avatar
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/
Ver perfil do usuáriohttps://gta-geek.blogspot.com.br/
em Ter 14 Mar 2017, 20:47
@Junior_Djjr escreveu:Atá
O primeiro é onde vai ficar armazenado o número de líderes, e o segundo é o número de membros.
Era só você ir no "See online reference"
http://gtag.gtagaming.com/opcode-database/opcode/07F6/

Valeuzão!

Meu firewall estava bloqueando o Visual Studio e por causa disto estava perdendo muitas dicas, vai ficar mais fácil agora (BG)
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 9
Reputação : 0
Desde : 18/07/2017
Idade : 27
Localização : parana
Ver perfil do usuário
em Dom 30 Jul 2017, 16:09
ola pessoas... tenho duvidas...

1- pq nao usamos o comando REQUEST_MODEL e definimos o PEDTYPE nos exemplos acima?
1.1- e ja que nao usamos, pq nao crashou? (nao era pra crashar?)
2- pq o comando REPEAT tem uma variavel como argumento? (nesse caso a variavel 'n'). qual o papel dessa variavel no 'REPEAT'?
3- se no exemplo acima, a variavel 'n' e igual a '0', pq foram criados varios char's diferentes (como mostra a imagem acima)?
4- uma duvida que me veio agora: pq quando vamos declarar (eh assim que se fala?) valor a uma variavel do tipo 'int', fazemos 'varIavel' ++,  e quando a variavel e do tipo float, isso nao funciona? como fazer isso com 'float' value? sei que "nas" float, nos temos que colocar '.x' no final, mas achei que se colocasse 'variavel' ++ o compilador entenderia.

tks for all!!
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 981
Reputação : 36
Desde : 13/08/2015
Idade : 14
Localização : Passo de Torres - SC
Ver perfil do usuário
em Dom 30 Jul 2017, 19:19
É o 1º exemplo, aquele que cria 20 atores (chars)? Se sim, acho que é isso:

1)  O comando de criar um ator (char) aleatório utiliza os modelos que já foram carregados no jogo. Sobre o pedtype: o ator (char) irá usar o pedtype definido para ele no peds.ide, na pasta data do jogo.

1.1) Como eu disse, ele vai usar o pedtype definido peds.ide, na pasta data.
2)  A variável está lá pois ela será repetida, na quantidade de vezes que foi estabelecido.
3) O REPEAT foi aumentando a variável. Se o WHILE tivesse sido usado, ficaria assim (darei o exemplo com o primeiro repeat):
Código:

WHILE n <= 10
    WAIT 0
    y += 1.0
    CREATE_RANDOM_CHAR x y z chars[n]
    n++
ENDWHILE
4) Não sei.

______________________________
Se eu te ajudei em algo, clique no botão de reputação (o "coraçãozinho" na parte de cima da mensagem).
Programador - Intermediário
Programador - Intermediário
Mensagens : 440
Reputação : 11
Desde : 02/06/2017
Idade : 99
Localização : Unidade Federal do Leste
Link : 127.0.0.1:80
Ver perfil do usuário
em Seg 31 Jul 2017, 07:30
.


Última edição por Veryzon em Dom 01 Jul 2018, 06:31, editado 2 vez(es)
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 1239
Reputação : 99
Desde : 04/03/2013
Idade : 18
Ver perfil do usuário
  • Reputação da mensagem: 100% (2 votos)
em Seg 31 Jul 2017, 17:40
@ThiagoD escreveu:4- uma duvida que me veio agora: pq quando vamos declarar (eh assim que se fala?) valor a uma variavel do tipo 'int', fazemos 'varIavel' ++,  e quando a variavel e do tipo float, isso nao funciona? como fazer isso com 'float' value? sei que "nas" float, nos temos que colocar '.x' no final, mas achei que se colocasse 'variavel' ++ o compilador entenderia.

tks for all!!
Uma declaração é pra você dizer ao compilador que tal coisa é uma variável (ou label):
Código:
LVAR_INT money // declaração da variável money
Código:
something: // declaração da label something

Uma atribuição é quando você muda o valor de algo, ou seja, apenas variáveis podem ser atribuídas:
Código:
LVAR_INT money // declaração da variável money
money = 100 // atribuição do valor 100 a variável money
Como essa é a primeira atribuição, também pode ser chamada de inicialização.

Quando você faz money++ (ou ++money, tem diferença, mas não sei se em GTA3script tem) por exemplo, você está fazendo uma atribuição equivalente a isso:
Código:
money = money + 1
// ou melhor:
money += 1

E não funciona com float simplesmente porque a linguagem não suporta isso, nesse caso basta você usar o outro método mesmo:
Código:
fMoney = fMoney + 1.0
// ou melhor:
fMoney += 1.0
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
  • Reputação da mensagem: 100% (1 votos)
em Seg 31 Jul 2017, 21:32
Nex' escreveu:Quando você faz money++ (ou ++money, tem diferença, mas não sei se em GTA3script tem) por exemplo, você está fazendo uma atribuição equivalente a isso: [...]
E não funciona com float simplesmente porque a linguagem não suporta isso, nesse caso basta você usar o outro método mesmo:

O motivo é que: o valor 1.0 não é um valor unitário para tipos float (em comparação com 1 de tipos int). Isso é devido ao como floats funcionam. Um valor unitário para float poderia ser um epsilon: o menor valor possível para ir de um valor para outro (tipo ir de 0 para 1 em ints, onde em floats seria ir de 0.0 para (0.0 + epsilon)). Continue lendo.

E por que não usar 1.0 como valor unitário? Pois se você fizer um teste aí, perceberá que ao incrementar um float repetidamente com o valor 1.0, o valor final não vai ser o esperado. E isso não é só pro número 1.0. Por exemplo, incrementar dez vezes o valor 0.1 em sum (com valor inicial 0.0) vai resultar em:

Código:

  float f = 0.1f;
  float sum = 0.f;

  for (int i = 0; i < 10; ++i)
      sum += f;

  float product = f * 10;
  printf("sum = %1.15f, mul = %1.15f, mul2 = %1.15f\n",
          sum, product, f * 10);

Saída:
Código:
sum = 1.000000119209290, mul = 1.000000000000000, mul2 = 1.000000000000000

A ideia era que o sum chegasse a 1.0, certo? Mas claramente a resposta não foi essa. Veja: *sum = 1.000000119209290*. Isso se dá ao fato de que o número 0.1 (e nem 1.0) não pode ser representado precisamente em binário para floats. A situação é mais visível usando os tipos double, cuja precisão é maior que de floats (e aí você consegue ver o resto do número representado). Em sistemas decimais, nós conseguimos representar 1.0 sem nenhum problema, porém isso se deve ao fato de que, na base 10, os números são divisíveis por 2, 5 e 10. Assim fica fácil representar, por exemplo, 0.5 = 1.0/2.0, 2.0 = 10.0 / 5.0 etc. Em base binária, os números são apenas divisíveis por 2. Então, pegando do exemplo anterior, como você representaria 2.0?

E por esse mesmo problema é que você, também, não deve fazer comparações de igualdade com floats. Porque a probabilidade de 1.0 == X dar true é minúscula. Porém, comparações relacionais são de boa (< > <= >=).

Enfim, acho que deu pra entender.
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 1239
Reputação : 99
Desde : 04/03/2013
Idade : 18
Ver perfil do usuário
em Seg 31 Jul 2017, 21:48
Bem explicativo ↑
Só sabia da imprecisão do float (e double).
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 23
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br
em Ter 01 Ago 2017, 05:16
Nex' escreveu:Quando você faz money++ (ou ++money, tem diferença, mas não sei se em GTA3script tem)
Não tem.

@Thelost escreveu:E por esse mesmo problema é que você, também, não deve fazer comparações de igualdade com floats. Porque a probabilidade de 1.0 == X dar true é minúscula. Porém, comparações relacionais são de boa (< > <= >=).
Bem lembrado, eu acho que eu deveria incrementar isso em algum canto do tutorial, pode ser óbvio para alguns, mas para iniciantes não.

Por exemplo, você quer fazer uma coisa quando o player estiver com o ângulo apontado para o norte:
Código:
IF heading = 0.0
Não faça isso!!! Praticamente nunca retornará verdadeiro. O correto seria, por exemplo:
Código:
IF heading > 350.0
OR heading < 10.0

E se não me engano...
Código:
float = 0.01

IF float = 0.0 // vai retornar verdadeiro

IF float = 0.00 // vai retornar falso
Lembro que eu já notei isso, mas não tirei a prova agora, enfim.

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 14
Reputação : 0
Desde : 21/04/2018
Localização : Bangladesh
Link : gtaforums.com/uploads/profile/photo-1056481.jpg
Ver perfil do usuáriohttps://inanahammad.blogspot.com/
em Sab 12 Maio 2018, 11:40
In the last example:

Código:
REPEAT 20 n
    GENERATE_RANDOM_FLOAT_IN_RANGE -10.0 10.0 random
    novo_x = x + random
    GENERATE_RANDOM_FLOAT_IN_RANGE -10.0 10.0 random
    novo_y = y + random
    GENERATE_RANDOM_INT_IN_RANGE 102 105 random_model
    CREATE_CHAR PEDTYPE_GANG1 random_model (novo_x novo_y z) chars[n]
ENDREPEAT

What if one of the balls get spawned in a building?Anyway to prevent that?or i need to adjust the co ordinates,so that they arent spawned in building?
Conteúdo patrocinado
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum