Onde as mentes criativas se encontram!


 
Avatar do usuário
SnowPi
Novato
Novato
Mensagens: 6
Registrado em: Dom Fev 11, 2018 5:00 am
Karma: 0

Re: Duvida sobre Game Maker

Dom Fev 11, 2018 7:14 am

Vou tentar ajudar com o primeiro problema, depois pensamos no segundo o/
Sinceramente, tentar montar seu código sem ter acesso a ele seria muito difícil, então me dei ao luxo de criar um do 0 e te passar pra você se basear nele, caso queira.
Aqui está o link pra baixar o projeto.

Exemplo do "sistema":
Imagem
Basicamente, quando o jogador(quadrado verde) ataca, caso tenha um inimigo na frente dele ele marca esse inimigo como um alvo(sei que não é exatamente o que você quer, mas foi um exemplo pra você adaptar).
Ao marcar esse inimigo como um alvo, o oManager vai criar o objeto de dano(quadrado azul) em cima dele.
Todos os monstros dentro do objeto de dano vão ser atingidos por ele.

Você pode mudar a ordem que as coisas acontecem pra ter resultados diferentes. Por exemplo criar o objeto de dano ao atacar e caso ele acerte alguém você marca esse alguém como alvo(e ai você tira vida ou alguma outra coisa).

Algo que eu queria deixar comentado aqui é esse trecho do oManager:
// Checar se existe algum inimigo
if(instance_exists(oRed)) {
    // Cria array com todos inimigos
    i = 0; repeat(instance_number(oRed)) {
        Enemy[i] = instance_find(oRed, i);    
        i++
    }
    
    // Pega cada inimigo no mapa pra poder manipular
    i = 0; repeat(array_length_1d(Enemy)) {
        with(Enemy[i]) {
            // Checa se ele é alvo e está vivo
            if(Target && isAlive) {
                // Cria objeto de dano em cima dele
                instance_create(x, y, oDamage);
            }
        }
        i++
    }
}

Essa é a parte importante pra você poder separar quem esta sendo alvo e quem não está.
Na verdade essa é a parte mais importante pra você lidar com os inimigos, hehe...

Enfim, espero que o código te ajude o/
See ya.

Tags:
 
GhostPower
Novato
Novato
Autor
Mensagens: 10
Registrado em: Qui Fev 01, 2018 10:38 am
Karma: 0

Re: Duvida sobre Game Maker

Dom Fev 11, 2018 10:51 am

Blz SnowPi

Vamos la cara:

Primeiramente obrigado pela sua ajuda a segunda duvida eu consegui fazer uma maneira de equipar e desequipar um item pelo objeto(ate agora esta funcionando).

Então o meu maior problema esta no objeto dano, pq não sei o que fazer para criar um objeto dano e ele calcular os danos em diferentes inimigos de uma  vez.
Se vc poder usar uma teoria ou um código no objeto dano e mostrar, eu agradeceria. 

Obs.: O HP do inimigo funciona (mesmo em área, ele calcular o dano de cada inimigo mesmo com a defesa ou atributo diferente), até sugeri em usar o events Draw para mostra o dano, pq ai eu eliminaria este objeto dano.

Deixo meu muito obrigado pela sua atenção e disposição.
 
Avatar do usuário
SnowPi
Novato
Novato
Mensagens: 6
Registrado em: Dom Fev 11, 2018 5:00 am
Karma: 0

Re: Duvida sobre Game Maker

Dom Fev 11, 2018 6:13 pm

O calculo do dano depende do teu sistema de batalha. Não tenho como simular um aqui porque a forma como você fez pode divergir muito da forma como eu faria...

Anyway, você pode, por exemplo, usar o código que eu deixei na minha última resposta DENTRO do objeto dano pra pegar todos os inimigos acertados(só precisaria mudar algumas coisas no código), depois disso você calcularia os danos e absorções...
 
GhostPower
Novato
Novato
Autor
Mensagens: 10
Registrado em: Qui Fev 01, 2018 10:38 am
Karma: 0

Re: Duvida sobre Game Maker

Ter Fev 13, 2018 10:18 am

Blz SnowPi,

Então vc poderia mostra o seu jeito de fazer? Ou sua ideia?

Obrigado pela ajuda, cara infelizmente não tenho ideia de como fazer isso.
 
Avatar do usuário
SnowPi
Novato
Novato
Mensagens: 6
Registrado em: Dom Fev 11, 2018 5:00 am
Karma: 0

Re: Duvida sobre Game Maker

Qua Fev 14, 2018 6:26 pm

Eu tinha escrito uma resposta legal aqui mas o fórum me deslogou e eu perdi tudo e infelizmente não tenho mais tempo pra refazer ela, mas eu deixei esse código aqui, basicamente:

// Checar se existe algum inimigo
if(instance_exists(oRed)) {
    // Cria array com todos inimigos
    i = 0; repeat(instance_number(oRed)) {
        Enemy[i] = instance_find(oRed, i);    
        i++
    }
    
    // Pega cada inimigo no mapa pra poder manipular
    i = 0; repeat(array_length_1d(Enemy)) {
        with(Enemy[i]) {
            if(place_meeting(x, y, oDano)) {
                // Tá colidindo com o dano
                Enemy[i].hp -= (oDano.dano - Enemy[i].defesa) 
            }
        }
        i++
    }
}


Exemplo de aplicação:
Caso o objeto dano fosse criado colidindo com 2 inimigos:
Goblin:
HP = 20
Defesa = 5

Ogro:
HP = 20
Defesa = 20

Se o dano for 25, o Goblin vai morrer(25 do ataque - 5 da defesa = 20 de dano) e o Ogro vai sobreviver(25 do ataque - 20 da defesa = 5 de dano).
Agora, pra não ter que colocar todo o calculo ali(talvez seu jogo tenha buffs e estados específicos, chance de acertar ou de dar crítico e etc...) eu criaria um script pra cuidar de tudo isso.
 
GhostPower
Novato
Novato
Autor
Mensagens: 10
Registrado em: Qui Fev 01, 2018 10:38 am
Karma: 0

Re: Duvida sobre Game Maker

Qui Fev 15, 2018 4:44 pm

Vlw SnowPi

Vou tentar usar este código no meu jogo, mas digo se tiver mais algumas ideia sobre isso estou a disposição.

Obrigado pela ajuda.

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante