Conectar-se
Quem está conectado
13 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 13 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 12/02/2010
Número de Mensagens : 11
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Meu player ataca rápido demais.

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
avatar
Data de inscrição : 11/08/2008
Número de Mensagens : 1121
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Meu player ataca rápido demais.

em Sab 13 Fev 2010, 11:05
Bom eu suspeirto que seja image_speed estou baixando depois edito.
avatar
Data de inscrição : 12/02/2010
Número de Mensagens : 11
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Meu player ataca rápido demais.

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ó!
avatar
Data de inscrição : 30/12/2009
Número de Mensagens : 1344
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://sitedosjogos.forumeiros.com

Re: Meu player ataca rápido demais.

em Sab 13 Fev 2010, 16:16
eu não entendi, explic direitinho o problema
avatar
Data de inscrição : 12/02/2010
Número de Mensagens : 11
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Meu player ataca rápido demais.

em Sab 13 Fev 2010, 16:17
Baixa o jogo e vê qual o problema, você vai entender rapidinho!
avatar
Data de inscrição : 26/09/2008
Número de Mensagens : 890
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 11

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Meu player ataca rápido demais.

em Sab 13 Fev 2010, 20:33
Você colocou num evento de colisão para tirar a vida do inimigo?
avatar
Data de inscrição : 22/12/2009
Número de Mensagens : 1164
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://nintendocenterbr.forumeiros.com

Re: Meu player ataca rápido demais.

em Sab 13 Fev 2010, 20:59
por que você não usa no evento alarm?
Data de inscrição : 10/02/2010
Número de Mensagens : 92
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://jogosjosevitoria.blogspot.com/

Re: Meu player ataca rápido demais.

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
avatar
Data de inscrição : 12/02/2010
Número de Mensagens : 11
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Meu player ataca rápido demais.

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 >.<
Data de inscrição : 10/02/2010
Número de Mensagens : 92
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://jogosjosevitoria.blogspot.com/

Re: Meu player ataca rápido demais.

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
avatar
Data de inscrição : 26/09/2008
Número de Mensagens : 890
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 11

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Meu player ataca rápido demais.

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
}
avatar
Data de inscrição : 12/02/2010
Número de Mensagens : 11
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Meu player ataca rápido demais.

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!
avatar
Data de inscrição : 26/09/2008
Número de Mensagens : 890
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 11

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Meu player ataca rápido demais.

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...)
avatar
Data de inscrição : 12/02/2010
Número de Mensagens : 11
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Meu player ataca rápido demais.

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 >.<
avatar
Data de inscrição : 24/09/2008
Número de Mensagens : 90
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Meu player ataca rápido demais.

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
avatar
Data de inscrição : 26/09/2008
Número de Mensagens : 890
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 11

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Meu player ataca rápido demais.

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.
avatar
Data de inscrição : 12/02/2010
Número de Mensagens : 11
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Meu player ataca rápido demais.

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!?
avatar
Data de inscrição : 10/02/2010
Número de Mensagens : 112
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Meu player ataca rápido demais.

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.
avatar
Data de inscrição : 26/09/2008
Número de Mensagens : 890
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 11

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Meu player ataca rápido demais.

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()}}
avatar
Data de inscrição : 12/02/2010
Número de Mensagens : 11
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Meu player ataca rápido demais.

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
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum