Meu player ataca rápido demais.

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

Meu player ataca rápido demais.

Mensagem por PLinioX em Sab 13 Fev 2010, 03:47

Bem, vocês devem estar cansados de ouvirem essa pergunta, como eu diminuo a "velocidade de ataque" do meu personagem? Simplesmente o ataque dele é na velocidade da luz!
Eu estou seguindo alguns tutos do reddragon (não ao pé da letra, não gosto de serguir guias assim e talvez por isso esteja bugando, mas que seja).
Vou disponibilizar o arquivo .exe aqui para verem como está o jogo, me digam o que querem, como por exemplo: O step do player, o step do pirata, o create de não sei quem, que seja, qualquer coisa, só pedir que eu edito e coloco aqui!

Link para download:http://ifile.it/w4sx5ja/Piratas.exe

PLinioX

Número de Mensagens : 11
Idade : 23
Data de inscrição : 12/02/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por tata139 em Sab 13 Fev 2010, 11:05

Bom eu suspeirto que seja image_speed estou baixando depois edito.

tata139

Número de Mensagens : 1121
Data de inscrição : 11/08/2008
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por PLinioX em Sab 13 Fev 2010, 16:12

image_speed tá em 0.25
O problema não é a animação, o problema está nos "hits". A animação é normal, mas quando ele desenha, ele desenha um monte de "1", que é o meu ataque, e a vida dos piratas desce rápido demais ou então não desce, aí depois no outro ataque ele morre de uma vez só!

PLinioX

Número de Mensagens : 11
Idade : 23
Data de inscrição : 12/02/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por Henrique_GJ em Sab 13 Fev 2010, 16:16

eu não entendi, explic direitinho o problema

Henrique_GJ

Número de Mensagens : 1344
Idade : 19
Data de inscrição : 30/12/2009
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://sitedosjogos.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por PLinioX em Sab 13 Fev 2010, 16:17

Baixa o jogo e vê qual o problema, você vai entender rapidinho!

PLinioX

Número de Mensagens : 11
Idade : 23
Data de inscrição : 12/02/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por Igor KinGamer em Sab 13 Fev 2010, 20:33

Você colocou num evento de colisão para tirar a vida do inimigo?

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por donte em Sab 13 Fev 2010, 20:59

por que você não usa no evento alarm?

donte

Número de Mensagens : 1164
Idade : 18
Data de inscrição : 22/12/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://nintendocenterbr.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por jogos_jv em Sab 13 Fev 2010, 21:09

coloque este código no create do jogador(player):

podematar = true
no código de ataque do jogador ao inimigo(pirata):

if (podematar = true)
{
código de ataque
podematar = false
alarm[0] = 5
em codigo do ataque coloque o codigo que tira a vida do inimigo

crie um evento Alarm - Alarm 0 e coloque esse código nele:

podematar = true
se vc não entender alguma coisa ou der algum erro me avisa

jogos_jv

Número de Mensagens : 92
Data de inscrição : 10/02/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://jogosjosevitoria.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por PLinioX em Sab 13 Fev 2010, 22:01

Obrigado agora já consigo fazer com que o ataque saia mais devagar, mas agora o problema é outro!
Meus piratas estão imortais, segue meu script para o ataque e desenho do "hit"

if (podematar = true){
podematar = false
alarm[1] = 5
if obj_player.atacando = true and podematar = true{
vida -= atk
if vida <= 0{effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}
}
dano = instance_create(x,y,obj_dano);
dano.dano = atk
}

A variável "vida" é do pirata, que se chama obj_pirata, serve pra marcar quanto de vida ele ainda tem, se a vida for <=0 ele explode, mas agora eles não morrem mais.
Ai ai, que dor de cabeça que isso tá dando >.<

PLinioX

Número de Mensagens : 11
Idade : 23
Data de inscrição : 12/02/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por jogos_jv em Sab 13 Fev 2010, 22:22

PLinioX escreveu:
if (podematar = true){
podematar = false
alarm[1] = 5
if obj_player.atacando = true and podematar = true{
vida -= atk
if vida <= 0{effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}
}
dano = instance_create(x,y,obj_dano);
dano.dano = atk
}
o código abaixo está no alarm 1? se não coloque ele no alarm 1

podematar = true

e tente tirar o } dessa parte

dano = instance_create(x,y,obj_dano);
dano.dano = atk
}
se ainda continuar dando erro, mande o código do jogo(em .gmk ou .gm6) ou explique melhor o erro

jogos_jv

Número de Mensagens : 92
Data de inscrição : 10/02/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://jogosjosevitoria.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por Igor KinGamer em Sab 13 Fev 2010, 22:41

Você primeiro transforma a variável podematar em false ([1]) para depois testar se ela é true ([2]),o que se torna impossível:

if (podematar = true){
podematar = false/*[1]*/
alarm[1] = 5
if obj_player.atacando = true and podematar = true/*[2]*/{
vida -= atk
if vida <= 0{effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}
}
dano = instance_create(x,y,obj_dano);
dano.dano = atk
}


Você tem que transformá-la [1] no final do código e/ou parar de testar se podematar = true [2]. Independente de você transformar a variável em false no final ou não, esse teste é desnecessário, pois, para ele estar acontecendo, podematar tem que ser true (primeira linha do código).

Ou seja, o ideal seria deixar assim:

if (podematar = true){
alarm[1] = 5
if obj_player.atacando = true{
vida -= atk
if vida <= 0{effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}
}
dano = instance_create(x,y,obj_dano);
dano.dano = atk
podematar = false
}

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por PLinioX em Sab 13 Fev 2010, 22:49

http://ifile.it/0ur72ai/Piratas.gmk

Agora o erro é outro, mas cansei de tentar explicar por aqui, dá uma olhada aí e me diz o que tá errado >.<
Qualquer pessoa que puder me ajudar agradeço muito!

PLinioX

Número de Mensagens : 11
Idade : 23
Data de inscrição : 12/02/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por Igor KinGamer em Sab 13 Fev 2010, 23:19

Aqui, o erro que dá é o fato de eu não ter o GM pro...

Se esforça e tenta explicar o que tá dando errado (não roda mas dá para eu ver os códigos, posso tentar descobrir...)

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por PLinioX em Sab 13 Fev 2010, 23:44

Ok, agora quando eu ataco o problema é:



___________________________________________
ERROR in
action number 1
of Draw Event
for object obj_dano:

Error in code at line 1:
if obj_player.atacando = true {draw_text_color(x,y,string(dano),c_white,c_white,c_white,c_white,0.8 )}
^
at position 15: Unknown variable atacando

Bem, tá aí, é estranho, até porque ele lê essa variável em uma outra parte >.<

PLinioX

Número de Mensagens : 11
Idade : 23
Data de inscrição : 12/02/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por guiagge em Dom 14 Fev 2010, 09:28

Você não "inicializou" a variável no começo do jogo.
Tente colocar esse código no evento Create do objeto do jogador:
Código:
 atacando = 0

guiagge

Número de Mensagens : 90
Idade : 21
Data de inscrição : 24/09/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por Igor KinGamer em Dom 14 Fev 2010, 11:12

Achei o erro. Tem alguns erros na engine toda.
O código na colisão do player com o pirata está assim:

if (podematar = true){
alarm[1] = 11
if obj_player.atacando = true and podematar = true{
obj_pirata.vida -= atk
if obj_pirata.vida <= 0{effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}
}
podematar = false
dano = instance_create(x,y,obj_dano);
dano.dano = atk
}


Nesse código, dois erros:

obj_pirata.vida -= atk
if obj_pirata.vida <= 0{effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}


Primeiro: Esse código diminuirá a vida de todos os obj_pirata. Para diminuir só do que foi acertado, troque os "obj_pirata" por "other".
Segundo: Você está aplicando as funções effect_create_above() e instance_destroy() ao próprio player!!! Assim, ele é destruido e a variável atacando dele não existe mais, por isso dá aquele erro. Para aplicar ao pirata acertado, você tem que colocar with(other){effect_create_above([...]);instance_destroy()}.

Agora, no step do obj_pirata:

barra_vida = vida * 100 / 1

Primeiro, não tem nenhum motivo para dividir por 1, o que não muda o valor em nada. Segundo, como a variável vida começa em 1, um golpe já matará a criatura.

Sinceramente, francamente, é melhor você recomeçar esse sistema de ataque do início (mesmo arrumando o que eu disse, ele ainda tem erros), prestando bastante atenção ao que você está fazendo. Você tem que saber o que exatamente cada mísero código em cada objeto faz, assim, quando der um erro como esses, você poderá analisar e descobrir. Você tem que ter domínio total dos códigos do seu jogo, senão, terá sempre que vir aqui perguntar o que está dando erro.

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por PLinioX em Dom 14 Fev 2010, 15:32

Ok, vou refazer a engine, o problema é que eu tive que fazer alguns ajustes e como estava meio na pressa acabou ficano algumas coisas erradas =/
Estou refazendo, qualquer erro edito e posto aqui!

---EDIT---

Agora só falta eu ajeitar essa explosão do pirata, como eu faço explodir o pirata no script do player!?

PLinioX

Número de Mensagens : 11
Idade : 23
Data de inscrição : 12/02/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por Kronos em Dom 14 Fev 2010, 16:02

ai cara eu tambem tinhas problemas com isso mais eu usei.
Código:

image_speed=0.25
e a velocidade do ataque melhorou concideradamente.

Kronos

Número de Mensagens : 112
Idade : 20
Data de inscrição : 10/02/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por Igor KinGamer em Dom 14 Fev 2010, 17:19

PLinioX escreveu:Agora só falta eu ajeitar essa explosão do pirata, como eu faço explodir o pirata no script do player!?

Eu escrevi ali em cima, você tem que colocar with(other){effect_create_above(...);instance_destroy();}

obj_pirata.vida -= atk
if obj_pirata.vida <= 0{with(other){effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}}

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por PLinioX em Dom 14 Fev 2010, 18:14

Muito obrigado pela sua ajuda, eu não tinha entendi muito bem o with(other), estou mandando o link do .exe e do .gmk, só pra ver como ficou o resultado final, e se possível me dar mais algumas dicas.

GMK: http://ifile.it/oyzedtc/Piratas.gmk
EXE: http://ifile.it/zom01x9/Piratas.exe

PLinioX

Número de Mensagens : 11
Idade : 23
Data de inscrição : 12/02/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Meu player ataca rápido demais.

Mensagem por Conteúdo patrocinado Hoje à(s) 20:23


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