Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
[Resolvido]Como adicionar elementos/tipos?
4 participantes
Página 1 de 1
[Resolvido]Como adicionar elementos/tipos?
Sabe no pokémon que água tira o dobro de dano conta fogo, e fogo tira metade de água? Então, queria saber como faz isso. Procurei e não achei nada -.-
Eu já fiz várias tentativas, mas nada deu certo por enquanto. Transformei os elementos em variáveis e fiz um script que calcularia o dano baseado no valor do elemento, mas não deu certo, tira o mesmo dano pra todos os elementos >.>
Eu já fiz várias tentativas, mas nada deu certo por enquanto. Transformei os elementos em variáveis e fiz um script que calcularia o dano baseado no valor do elemento, mas não deu certo, tira o mesmo dano pra todos os elementos >.>
Dialga111- Data de inscrição : 13/03/2010
Reputação : 0
Número de Mensagens : 33
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
eae
eaea dialgo tudu bom?
bom eu naum sei resolver o seu problema
mas vc ta fazendo um jogo de pokemon?
que estilo é
pq eu tambem estou fazendo rsrs
ai ser for parecido poderiamos juntar as ideias
falows abraço
bom eu naum sei resolver o seu problema
mas vc ta fazendo um jogo de pokemon?
que estilo é
pq eu tambem estou fazendo rsrs
ai ser for parecido poderiamos juntar as ideias
falows abraço
makano- Data de inscrição : 10/07/2010
Reputação : 0
Número de Mensagens : 12
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Como adicionar elementos/tipos?
eae blz? Então, na vdd eu to fazendo um jogo de pokémon RPG sim, mas tb estou fazendo um de Megaman ZX (estilo plataforma). Essa coisa dos tipos eu vou usar nos 2 (pokémon com 18 tipos e megaman com 26). Me add no msn, ai a gente pode conversa melhor =D diaruga111@hotmail.com
Dialga111- Data de inscrição : 13/03/2010
Reputação : 0
Número de Mensagens : 33
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Como adicionar elementos/tipos?
Create:
Quando for dar um dano de fogo:
Quando for dar um dano de agua:
- Código:
fogo = 100;
agua = 25;
Quando for dar um dano de fogo:
- Código:
danoF = Ataque/fogo;
- Código:
danoF = 100/100; // = 1
Quando for dar um dano de agua:
- Código:
danoA = Ataque/agua;
- Código:
danoA = 100/25; // = 4
Janx- Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios :
x 0 x 0 x 0
x 0 x 2 x 0
x 0 x 0 x 0
Re: [Resolvido]Como adicionar elementos/tipos?
entendi, mas como eu faço isso com 26 elementos diferentes sendo que cada um tem 3 fraquezas e 3 resistências diferentes??
Dialga111- Data de inscrição : 13/03/2010
Reputação : 0
Número de Mensagens : 33
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Como adicionar elementos/tipos?
Como eu disse.
Você cria as variaveis de cada elemento, as que ele for mais resistente tem valor maior caso contrário são as fraquezas.
Dependendo do tipo do ataque, ve qual a resistencia para aquele elemento.
Você cria as variaveis de cada elemento, as que ele for mais resistente tem valor maior caso contrário são as fraquezas.
Dependendo do tipo do ataque, ve qual a resistencia para aquele elemento.
Janx- Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios :
x 0 x 0 x 0
x 0 x 2 x 0
x 0 x 0 x 0
Re: [Resolvido]Como adicionar elementos/tipos?
hm entendi, então tem que fazer todos os elementos pra todos os personagens?
Mais uma coisa, quando vc diz "qdo for dano de fogo", significa qndo entrar em contato com o ataque de fogo? se for, significa que eu tenho que fazer um evento de colisão pra cada ataque diferente, e não só pro ataque parent?? (fiz um parent pros ataques pq todos funcionam da mesma forma, mudando só o sprite e o elemento)
Mais uma coisa, quando vc diz "qdo for dano de fogo", significa qndo entrar em contato com o ataque de fogo? se for, significa que eu tenho que fazer um evento de colisão pra cada ataque diferente, e não só pro ataque parent?? (fiz um parent pros ataques pq todos funcionam da mesma forma, mudando só o sprite e o elemento)
Dialga111- Data de inscrição : 13/03/2010
Reputação : 0
Número de Mensagens : 33
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Como adicionar elementos/tipos?
Se você quardar os valores das resistencias em uma array, e usar o valor do elemento na checagem da pra fazer com o parent.
Tem que ter todos os elementos em todos os personagens, afinal, eles podem ser atingidos por qualquer tipo de ataque certo?
Tem que ter todos os elementos em todos os personagens, afinal, eles podem ser atingidos por qualquer tipo de ataque certo?
Janx- Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios :
x 0 x 0 x 0
x 0 x 2 x 0
x 0 x 0 x 0
Re: [Resolvido]Como adicionar elementos/tipos?
vo parecer muito noob se eu disser que não sei guardar valores em uma array? x.x
eu sei que eh tpo
alguma coisa[outra coisa]=sei lá
seria tipo
fogo[agua]=25
?
Se for isso, significa q eu vou ter que 26² arrays? uma pra cada combinação de elemento?? :S
ah e sim, todos podem ser acertados por todos os tipos
ah, e as variáveis e arrays tem que ser no personagem que vai sofrer o ataque ou no objeto do ataque??
eu sei que eh tpo
alguma coisa[outra coisa]=sei lá
seria tipo
fogo[agua]=25
?
Se for isso, significa q eu vou ter que 26² arrays? uma pra cada combinação de elemento?? :S
ah e sim, todos podem ser acertados por todos os tipos
ah, e as variáveis e arrays tem que ser no personagem que vai sofrer o ataque ou no objeto do ataque??
Dialga111- Data de inscrição : 13/03/2010
Reputação : 0
Número de Mensagens : 33
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Como adicionar elementos/tipos?
._."
Será que você não está tentando fazer algo muito complicado? Acho que seria melhor você tentar um jogo mais simples...
Você não teria 26 nem 26² arrays, teria 1 array com 26 elementos.
Assim:
Mas dai vc teria que colocar uma "ordem", tipo..
Isso em cada personagem/inimigo, já que são eles que tem resistencia aos tipos de elementos.
no Ataque, só tem o tipo de elemento que ele é e a força dele.
dai quando o ataque acertar o jogador, seria algo tipo:
Será que você não está tentando fazer algo muito complicado? Acho que seria melhor você tentar um jogo mais simples...
Você não teria 26 nem 26² arrays, teria 1 array com 26 elementos.
Assim:
- Código:
elementos[0] = 25;
elementos[1] = 50;
elementos[2] = 100;
elementos[3] = 75;
....
Mas dai vc teria que colocar uma "ordem", tipo..
- Código:
0 = fogo
1 = agua
2 = terra
3 = vento
...
Isso em cada personagem/inimigo, já que são eles que tem resistencia aos tipos de elementos.
no Ataque, só tem o tipo de elemento que ele é e a força dele.
dai quando o ataque acertar o jogador, seria algo tipo:
- Código:
other.vida -= FORCA/other.elementos[ELEMENTO];
Janx- Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios :
x 0 x 0 x 0
x 0 x 2 x 0
x 0 x 0 x 0
Re: [Resolvido]Como adicionar elementos/tipos?
Humm mais fácil xD. (sei que to parecendo noob, e provavelmente so mesmo, eu não só pensei em começar por um mais fácil como este é o mais fácil x.x O que eu quero fazer mesmo é provavelmente bem mais complicado que esse >.> esse aqui na vdd é um minigame pra eu aprende algumas coisas que eu vo precisa no outro (tipo elementos =) ))
então vamos recapitular:
no evento step de cada inimigo/personagem vai ter:
daí eu faço um evento colision com o objeto inimigo, o evento é feito no objeto ataque parent
100 é o total de vida do personagem. Se eu quero que o ataque tire 2 eu coloco 50, se eu quero que tire 4 eu coloco 25, se eu quero que tire 8 eu coloco 12.5, certo?
E se, ao invés de fazer essas divisões, eu fizesse que, por exemplo elemento[1]=4, daí no lugar de 100/other.elemento[elemento] eu colocasse só o other.elemento[elemento]?? Ia tirar só 4? Imagino que assim seja mais fácil...
Cara, muitíííííssimo obrigado, vc tá me ajudando mto, nem sei como agradecer!! (Obrigado pela paciência com o noob aki tb )
então vamos recapitular:
no evento step de cada inimigo/personagem vai ter:
- Código:
elemento[1]=50 pra tirar 2 (dano comum)
elemento[2]=25 pra tirar 4 (fraqueza)
elemento[3]=100 pra tirar 1 (resistência)
........
elemento[26]=100
//eu tenho anotado que número equivale a qual elemento, os números eu coloquei só como exemplo
daí eu faço um evento colision com o objeto inimigo, o evento é feito no objeto ataque parent
- Código:
other.global.vida_inimigo-=100/other.elemento[elemento]
http://global.vida_inimigo é o nome que eu dei pra variável da vida do inimigo, coloquei como global pra fazer o objeto barra de vida usando minhas sprites invés da barra comum do GM
100 é o total de vida do personagem. Se eu quero que o ataque tire 2 eu coloco 50, se eu quero que tire 4 eu coloco 25, se eu quero que tire 8 eu coloco 12.5, certo?
E se, ao invés de fazer essas divisões, eu fizesse que, por exemplo elemento[1]=4, daí no lugar de 100/other.elemento[elemento] eu colocasse só o other.elemento[elemento]?? Ia tirar só 4? Imagino que assim seja mais fácil...
Cara, muitíííííssimo obrigado, vc tá me ajudando mto, nem sei como agradecer!! (Obrigado pela paciência com o noob aki tb )
Dialga111- Data de inscrição : 13/03/2010
Reputação : 0
Número de Mensagens : 33
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Como adicionar elementos/tipos?
usar só
elemento[1]=4
e deixar esse ser o dano, vai fazer ficar sempre com um dano fixo... Não sei se é isso que você quer...
other.global.vida_inimigo-=100/other.elemento[elemento]
Não existe isso, "other.global.vida_inimigo".
Se for isso, você tem que tirar o other.
A vida do inimigo está salva numa variavel global? Estranho usar assim, mas tudo bem. É que nem pokemon, que luta só contra 1 oponente, né?
elemento[1]=4
e deixar esse ser o dano, vai fazer ficar sempre com um dano fixo... Não sei se é isso que você quer...
other.global.vida_inimigo-=100/other.elemento[elemento]
Não existe isso, "other.global.vida_inimigo".
Se for isso, você tem que tirar o other.
A vida do inimigo está salva numa variavel global? Estranho usar assim, mas tudo bem. É que nem pokemon, que luta só contra 1 oponente, né?
Janx- Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios :
x 0 x 0 x 0
x 0 x 2 x 0
x 0 x 0 x 0
Re: [Resolvido]Como adicionar elementos/tipos?
Atenção, este é post e extenso, leia duas vezes ou mais para entender! xD
Para algo assim eu preferiria calcular os danos adicionais em proporções ou escalas.
Se cada pokemon tem um tipo só de elemento e um tipo só de resistência você poderia fazer assim:
No evento Create de cada pokemon você coloca uma variável para dano adicional, uma para resistência e uma para saber o tipo dele mas só que em escalas, por exemplo:
Digamos que 1 = 100%, então 0.5 = 50%, 0.27 = 27%, 2 = 200% e etc.
Assim se o dano adicional da agua sobre o fogo é 2, então o dano vai ser 200% ( 2 vezes) mais forte independente da força atual do pokemon.
Mas porque usar escalas?
Vejo que você ainda é iniciante então e bom aprender isso desde o começo.
Nem sempre o ataque deles será o mesmo certo?
Ou eles podem aumentar de nivel no jogo ou você vai querer mudar os valores dos ataques algum dia então usando escalas os danos adicionais vão sempre acompanhar o poder de ataque deles.
Imagine que um pokemon de aguá começou com 20 de ataque e você pos o dano adicionau em 10, quando ele atacar um de fogo o dano será 30 certo?
Mas se ele subir alguns niveis é seu ataque mudar para 500?
Se você adicionar só dez em 500 será muito pouco já que o poder dos inimigos devem estar maiores também.
Usando a escala não tem esse problema se ele começa com 20 e o dano adicional em escala é 2 então seu ataque será 40, se seu ataque é 500 o dano sera 1000 e assim por diante.
Na pratica é algo assim:
Create:
Na hora de calcular o dano você pega o ataque e multiplica pela escala só quando o inimigo é do elemento inverso:
life -= dano*dano_add
life -= dano*res
Ex.:
dano = 30 e dano_add = 1.7
30*1.7 = 51
O dano adicional também pode ser global (um valor só para todos os pokemons de acordo com seu tipo).
Isso torna as coisas muito mais fáceis.
Na hora da checagem também é bem fácil:
Para algo assim eu preferiria calcular os danos adicionais em proporções ou escalas.
Se cada pokemon tem um tipo só de elemento e um tipo só de resistência você poderia fazer assim:
No evento Create de cada pokemon você coloca uma variável para dano adicional, uma para resistência e uma para saber o tipo dele mas só que em escalas, por exemplo:
Digamos que 1 = 100%, então 0.5 = 50%, 0.27 = 27%, 2 = 200% e etc.
Assim se o dano adicional da agua sobre o fogo é 2, então o dano vai ser 200% ( 2 vezes) mais forte independente da força atual do pokemon.
Mas porque usar escalas?
Vejo que você ainda é iniciante então e bom aprender isso desde o começo.
Nem sempre o ataque deles será o mesmo certo?
Ou eles podem aumentar de nivel no jogo ou você vai querer mudar os valores dos ataques algum dia então usando escalas os danos adicionais vão sempre acompanhar o poder de ataque deles.
Imagine que um pokemon de aguá começou com 20 de ataque e você pos o dano adicionau em 10, quando ele atacar um de fogo o dano será 30 certo?
Mas se ele subir alguns niveis é seu ataque mudar para 500?
Se você adicionar só dez em 500 será muito pouco já que o poder dos inimigos devem estar maiores também.
Usando a escala não tem esse problema se ele começa com 20 e o dano adicional em escala é 2 então seu ataque será 40, se seu ataque é 500 o dano sera 1000 e assim por diante.
Na pratica é algo assim:
Create:
- Código:
// Pokemon de agua
tipo = "agua";
life = 200
dano = 30; // dano normal
dano_add = 1.7; // dano adicional
res = 0.7 // resistência de 70% a fogo
- Código:
// Pokemon de fogo
tipo = "fogo";
life = 400
dano = 50; // dano normal
dano_add = 2; // dano adicional
res = 0.3 // resistencia de 30%
Na hora de calcular o dano você pega o ataque e multiplica pela escala só quando o inimigo é do elemento inverso:
life -= dano*dano_add
life -= dano*res
Ex.:
dano = 30 e dano_add = 1.7
30*1.7 = 51
O dano adicional também pode ser global (um valor só para todos os pokemons de acordo com seu tipo).
Isso torna as coisas muito mais fáceis.
Na hora da checagem também é bem fácil:
- Código:
a = false // variável auxiliar, será false quando não dano adicional e nem resistencia
// Adicional
if inimigo.tipo = "agua" && tipo = "fogo"
{
life -= inimigo.dano*inimigo.dano_add;
a = true // testou avisando que há dano adicional
}
// Resistência
if inimigo.tipo = "fogo" && tipo = "agua"
{
life -= inimigo.dano*inimigo.res;
a = true; // testou avisando que há resistência
}
// Se não tem adicional e nem resistência
if a = false
{
life -= inimigo.dano;
}
a = false // reseta a variável auxiliar para seu valor padrão
Re: [Resolvido]Como adicionar elementos/tipos?
Janx escreveu:usar só
elemento[1]=4
e deixar esse ser o dano, vai fazer ficar sempre com um dano fixo... Não sei se é isso que você quer...
Na vdd é isso sim que eu quero =] Não é um RPG que nem pokémon, é pra um jogo de plataforma onde cada personagem tem 2 ataques, mas todos os ataques são tratados da mesma forma, mudando só o elemento. O dano vai ser o mesmo em todos, mudando só as fraquezas e resistências =]
Não existe isso, "other.global.vida_inimigo".
Se for isso, você tem que tirar o other.
A vida do inimigo está salva numa variavel global? Estranho usar assim, mas tudo bem. É que nem pokemon, que luta só contra 1 oponente, né?
aah, tah, vlw. Num tinha me tocado que se já é global não precisa por o other >.<
E sim, é só um contra um, mas em plataforma, não em RPG.
Kabeção escreveu:Atenção, este é post e extenso, leia duas vezes ou mais para entender! xD
Para algo assim eu preferiria calcular os danos adicionais em proporções ou escalas.
Se cada pokemon tem um tipo só de elemento e um tipo só de resistência você poderia fazer assim:
No evento Create de cada pokemon você coloca uma variável para dano adicional, uma para resistência e uma para saber o tipo dele mas só que em escalas, por exemplo:
Digamos que 1 = 100%, então 0.5 = 50%, 0.27 = 27%, 2 = 200% e etc.
Assim se o dano adicional da agua sobre o fogo é 2, então o dano vai ser 200% ( 2 vezes) mais forte independente da força atual do pokemon.
Mas porque usar escalas?
Vejo que você ainda é iniciante então e bom aprender isso desde o começo.
Nem sempre o ataque deles será o mesmo certo?
Ou eles podem aumentar de nivel no jogo ou você vai querer mudar os valores dos ataques algum dia então usando escalas os danos adicionais vão sempre acompanhar o poder de ataque deles.
Imagine que um pokemon de aguá começou com 20 de ataque e você pos o dano adicionau em 10, quando ele atacar um de fogo o dano será 30 certo?
Mas se ele subir alguns niveis é seu ataque mudar para 500?
Se você adicionar só dez em 500 será muito pouco já que o poder dos inimigos devem estar maiores também.
Usando a escala não tem esse problema se ele começa com 20 e o dano adicional em escala é 2 então seu ataque será 40, se seu ataque é 500 o dano sera 1000 e assim por diante.
Humm entendi. (Sim, eu realmente entendi! (Aliás acho que é por isso que tá chovendo aki...)) Não vou usar desse jeito por enquanto, porque no jogo que eu to fazendo o dano vai ser fixo mesmo, e os personagens não passam de nível, mas assim que eu acabar esse eu tb pretendo fazer um de pokémon (pelo menos um simpleszinho) pra aprende RPG tb, aí eu faço desse jeito =]
vlw gente! Consegui programar os elementos e realmente tira o quanto tinha que tirar!
Dialga111- Data de inscrição : 13/03/2010
Reputação : 0
Número de Mensagens : 33
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Como adicionar elementos/tipos?
Que bom que conseguiu! Boa sorte no projeto.
Janx- Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios :
x 0 x 0 x 0
x 0 x 2 x 0
x 0 x 0 x 0
Tópicos semelhantes
» [Resolvido]Tipos de Arquivo
» [Resolvido]Tipos de Arquivos de Imagem
» [Resolvido] player atirar em varios tipos de inimigos
» [resolvido]como adicionar um evento
» [Resolvido]Como Adicionar titulo?
» [Resolvido]Tipos de Arquivos de Imagem
» [Resolvido] player atirar em varios tipos de inimigos
» [resolvido]como adicionar um evento
» [Resolvido]Como Adicionar titulo?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos