[Resolvido]Como adicionar elementos/tipos?

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido [Resolvido]Como adicionar elementos/tipos?

Mensagem por Dialga111 em Dom 11 Jul 2010, 17:54

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 >.>

Dialga111

Número de Mensagens : 33
Data de inscrição : 13/03/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido eae

Mensagem por makano em Seg 12 Jul 2010, 12:16

eaea dialgo tudu bom?
bom eu naum sei resolver o seu problema Very Happy
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

Número de Mensagens : 12
Idade : 27
Data de inscrição : 10/07/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Como adicionar elementos/tipos?

Mensagem por Dialga111 em Seg 12 Jul 2010, 14:06

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

Número de Mensagens : 33
Data de inscrição : 13/03/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Como adicionar elementos/tipos?

Mensagem por Janx em Seg 12 Jul 2010, 16:59

Create:
Código:
fogo = 100;
agua = 25;

Quando for dar um dano de fogo:
Código:
danoF = Ataque/fogo;
EX:
Código:
danoF = 100/100; // = 1

Quando for dar um dano de agua:
Código:
danoA = Ataque/agua;
EX:
Código:
danoA = 100/25; // = 4

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Como adicionar elementos/tipos?

Mensagem por Dialga111 em Seg 12 Jul 2010, 17:02

entendi, mas como eu faço isso com 26 elementos diferentes sendo que cada um tem 3 fraquezas e 3 resistências diferentes??

Dialga111

Número de Mensagens : 33
Data de inscrição : 13/03/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Como adicionar elementos/tipos?

Mensagem por Janx em Seg 12 Jul 2010, 17:05

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.

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Como adicionar elementos/tipos?

Mensagem por Dialga111 em Seg 12 Jul 2010, 17:52

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)

Dialga111

Número de Mensagens : 33
Data de inscrição : 13/03/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Como adicionar elementos/tipos?

Mensagem por Janx em Seg 12 Jul 2010, 18:07

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?

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Como adicionar elementos/tipos?

Mensagem por Dialga111 em Seg 12 Jul 2010, 19:51

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??

Dialga111

Número de Mensagens : 33
Data de inscrição : 13/03/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Como adicionar elementos/tipos?

Mensagem por Janx em Seg 12 Jul 2010, 20:26

._."

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

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Como adicionar elementos/tipos?

Mensagem por Dialga111 em Seg 12 Jul 2010, 23:56

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:

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 Rolling Eyes)

Dialga111

Número de Mensagens : 33
Data de inscrição : 13/03/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Como adicionar elementos/tipos?

Mensagem por Janx em Ter 13 Jul 2010, 01:03

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é?

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Como adicionar elementos/tipos?

Mensagem por Kabeção em Ter 13 Jul 2010, 11:02

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


Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Como adicionar elementos/tipos?

Mensagem por Dialga111 em Ter 13 Jul 2010, 12:11

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

Número de Mensagens : 33
Data de inscrição : 13/03/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Como adicionar elementos/tipos?

Mensagem por Janx em Ter 13 Jul 2010, 16:48

Que bom que conseguiu! Boa sorte no projeto.



Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Como adicionar elementos/tipos?

Mensagem por Conteúdo patrocinado Hoje à(s) 13:25


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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