Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

XP em gml

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Trevors
Membro
Membro
Reações: 0
Mensagens: 28

XP em gml

Mensagem por Trevors » Dom Fev 16, 2020 10:39 pm

Quera a ajuda de vcs to pensando em fazer um sitema de xp mais to com duvida e espero que vcs possam me ajudar. EX tenho um obj_soldado
e outro chamado obj_inimigo, dentro da room tenho 3 obj_soldado e 1 obj_inimigo, os 3 obj_soldado atiram em ordem aleatoria sem que eu p-ossa escolher entao eu queria, e se tem como, que quando o obj_inimigo for destruido vá XP para o ultimo obj_soldado que deu o tiro e o destruiu.
PFV Galera me ajudem.

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 5
Mensagens: 198

Re: XP em gml

Mensagem por Chuaschinai » Seg Fev 17, 2020 1:28 pm

Fácil, é só salvar o ID do ultimo soldado que atirou no objeto inimigo, tendo em mente que você possui um objeto bala que colidira com o inimigo.
No objeto bala você cria um variável que salvara o ID do soldado, assim:

- Objeto Bala

Código: Selecionar todos

/// Create Event
id_soldado = noone;
Quando a bala for instanciada você salva o ID do Soldado
- Objeto Soldado

Código: Selecionar todos

// Step Event
var bala = instance_create(x, y, obj_bala);
    bala.id_soldado = id; // Salva o id do soldado no objeto bala
Quando colidir com o inimigo e ele morrer, é adicionado xp no objeto soldado que o matou
- Objeto inimigo

Código: Selecionar todos

/// Colision Event
if(vida_inimigo - dano_da_bala <= 0){
   var soldado = other.id_soldado; // pega o id do soldado através da bala 
       soldado.xp += 20; // adiciona o xp ao soldado
   instance_destroy(); // destroi o inimigo
}
Não testei mas deve funcionar.

Avatar do usuário
Trevors
Membro
Membro
Reações: 0
Mensagens: 28

Re: XP em gml

Mensagem por Trevors » Ter Fev 18, 2020 10:25 pm

// Step Event
var bala = instance_create(x, y, obj_bala);
bala.id_soldado = id; // Salva o id do soldado no objeto bala
esse codigo ficaria no obj_soldade ne?

e oque siginifica o traço nesse codigo? " - "
if(vida_inimigo - dano_da_bala <= 0)

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 5
Mensagens: 198

Re: XP em gml

Mensagem por Chuaschinai » Qua Fev 19, 2020 11:08 am

Sim o código ficaria no objeto soldado.

Esse "traço" é o simbolo de Subtração, vida atual do inimigo menos o dano da bala, caso esse numero seja menor ou igual a 0 ele executa o código determinado.

Responder

Quem está online

Usuários navegando neste fórum: Ahrefs [Bot], Bing [Bot], Google [Bot], Google Adsense [Bot] e 9 visitantes