O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Processo Paralelo e Tocar Evento ao mesmo tempo?

Iniciado por Harden, 14/02/2016 às 12:52

14/02/2016 às 12:52 Última edição: 16/02/2016 às 12:19 por Skyloftian
Ola,

Estou com um pequeno problema em algo que estou tentando criar.

Eu preciso que um evento siga em processo paralelo e ao mesmo tempo siga em tocar evento/player.
Há alguma condição que eu possa usar para que seja verificado se o evento toca o jogador? Algum comando de script ou algo assim.

Cogitei usar variaveis X e Y da posicao do personagem, mas acabaria dando conflito por serem varios eventos do mesmo tipo no mesmo mapa.

Alguem sabe algum metodo?
Your drill is the drill that will pierce the Heavens!

Deve haver algo mais fácil, mas pode tentar:

Cria dois eventos para o mesmo, o que está em processo paralelo com o char e outro sem char, nesse sem char coloca em tocar jogador, agora cria outro evento em processo paralelo que vai buscar as coordenadas da posição do que tem o char e mete definir posição do sem char as coordenadas que retirou anteriormente! Percebeu?


Podia ser mais específico quanto ao evento?

A ideia é a seguinte:

Ao pressionar determinado botão o evento receberá dano, um monstro, no caso, mas caso o monstro toque o personagem, ele leva dano.
Porém o monstro pode receber dano apenas a X tiles do personagem. Sacou?
Your drill is the drill that will pierce the Heavens!

Bem cara, você pode fazer deste género:



Agora só adicionar a condição se a posição do ator for igual ao atacar dá o dano xD

Game_Event.prototype.isLima = function() {
    var sx = Math.abs(this.deltaXFrom($gamePlayer.x));
    var sy = Math.abs(this.deltaYFrom($gamePlayer.y));
    return sx + sy < 2;
};

Coloque dentro de um plugin! Pode simplesmente abrir bloco de notas, e meter o nome.js, e marcar todos os tipos, depois é só adicionar ao projeto
Bem cara esse pequeno trecho de código pode ajudar! Ele basicamente verifica se o heroi está a 1 tile do mosntro, contudo o monstro pode estar a olhar para qualquer lado que ataca na mesma! Mas espero que ajuda!

Para funcionar é só preciso adicionar condição e Script e insere isto:
$gameMap._events[3].isLima()


e dentro coloca a condição, experimente colocar mostrar mensagem

em vez de 3, deve ter o id do evento do monstro!

Opa, vou testar esse plugin!

A questao eh uma habilidade onde o jogador empurra o monstro e tal, vou tentar trabalhar com isso!

Obrigado.
Your drill is the drill that will pierce the Heavens!

Depois diga-me se funcionou e se quer mais alguma coisa xD

Ok, funcionou perfeitamente.

Agora mais uma duvida: como o evento é em processo paralelo e eu preciso que o personagem leve dano, acaba que ele leva uma quantidade excessiva de dano.

Onde, neste evento, eu consigo encaixar o dano para que aconteça apenas uma vez por contato, ou algo assim.

Your drill is the drill that will pierce the Heavens!

Depois de dar o dano, manda para uma switch local e mete novamente a condição ...isLima(), e em vez de meter logo a seguir à condição mete no else, e no else desativa a switch local, ou seja, e ele não estiver perto do personagem vai voltar a poder atacar, entendeu?

Fiz um pouco diferente mas funcionou, acabou que voce me deu uma ideia pra usar e tal.

Ha a possibilidade de aumentar a distancia do plugin? Colocando algum numero depois do "$gameMap._events[3].isLima()"
Your drill is the drill that will pierce the Heavens!

Game_Event.prototype.isLima = function(dist) {
    var sx = Math.abs(this.deltaXFrom($gamePlayer.x));
    var sy = Math.abs(this.deltaYFrom($gamePlayer.y));
    return sx + sy < dist + 1;
};


agora passe o valor da distância dentro dos parênteses:

$gameMap._events[3].isLima(2)

Vai ter 2 tiles!
Isto em linguagem C funciona em js não experimentei, experimente e diga algo!


Perfeito!

Podem trancar o topico ja s2
Your drill is the drill that will pierce the Heavens!