Sistema de Missao e Recompensa!
3 participantes
Página 1 de 1
Sistema de Missao e Recompensa!
Fala galera, eu queria saber como fazer um sistema de missoes e recompensa tipo, Mate 10 inimigos!.
Se ele matar os 10 ele ganha 500 de dinheiro e mude a missao ou aumente a quantidade de inimigos para ele matar!
Se ele matar os 10 ele ganha 500 de dinheiro e mude a missao ou aumente a quantidade de inimigos para ele matar!
Re: Sistema de Missao e Recompensa!
Simples: sempre que um inimigo morrer(vida == 0) faça que um variavel enemiesDies aumente seu valor em +1, logo em seguida verifique se o valor dela for igual a 10 (ou a um outro valor definido por alguma variavel) para entao dar a recompensa ao player. Pra fazer isso voce apenas vai precisar que seu inimigo tenha algum metodo que seja executado quando ele morre(vida <=0) e criar algum script que conte sempre que isso acontecer.
Então ja tentou algum codigo referente a isso? se sim poste aki.
Então ja tentou algum codigo referente a isso? se sim poste aki.
Re: Sistema de Missao e Recompensa!
Fiz umas coisinhas aqui agora, aparentemente esta funcional nao tenho como testar pq estou com um probleminha falarei abaixo.
Meu Script de Missao:
Adicionei Isso na void que chama a morte do meu Inimigo:
O Script esta comentando, Rs!
Agora o probleminha que estou tendo é o seguinte o meu jogo ele da spawn nos inimigos automaticamente tranguilo, mais oque esta acontecendo é o seguinde eu consigo matar o primeiro inimigo só depois os outros nao perdem vida como se eles estivessem sem o collider simplesmente nao acontece nada quando atiro neles, so consigo matar o primeiro.
Oque é estranho ja que nao mechi em nada do inimigo, so adicionei aquelas linha na void de morrer.
eu ja tentei remover essas linhas mais continua a msm coisa, e estava funcionando!
Não sei oque pode ser e eu nao quero desfazer tudo fiz!
Meu Script de Missao:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class Task : MonoBehaviour {
public static float enemiesDies = 0;
public static float quantosmatar = 10;
public static float valorRecompensa = 100;
public GameObject buttonRecompensa;
public Button receberrecompensa;
public static float receber;
void Start () {
if (enemiesDies >= quantosmatar) {
buttonRecompensa.SetActive (true);
} else if (enemiesDies < quantosmatar) {
buttonRecompensa.SetActive (false);
}
//=====SALVAR QUANTOS MATAR======//
if (PlayerPrefs.HasKey ("quantosmatar")) {
quantosmatar = PlayerPrefs.GetFloat ("quantosmatar");
} else {
PlayerPrefs.SetFloat ("quantosmatar", quantosmatar);
}
//=====SALVAR QUANTOS MATOU======//
if (PlayerPrefs.HasKey ("quantosmatou")) {
enemiesDies = PlayerPrefs.GetFloat ("quantosmatou");
} else {
PlayerPrefs.SetFloat ("quantosmatou", enemiesDies);
}
//=====SALVAR QUANTO RECEBER======//
if (PlayerPrefs.HasKey ("quantoreceber")) {
valorRecompensa = PlayerPrefs.GetFloat ("quantoreceber");
} else {
PlayerPrefs.SetFloat ("quantoreceber", valorRecompensa);
}
receberrecompensa.onClick = new Button.ButtonClickedEvent();
receberrecompensa.onClick.AddListener(() => Recompensa());
}
void Recompensa(){
//=====ENTREGAR RECOMPENSA======//
receber = valorRecompensa + PlayerPrefs.GetFloat ("Dinheiro");
PlayerPrefs.SetFloat ("Dinheiro", receber);
//=====AUMENTAR VALOR DE QUANTOS MATAR======//
quantosmatar = PlayerPrefs.GetFloat ("quantosmatar") + 10;
PlayerPrefs.SetFloat ("quantosmatar", quantosmatar);
//=====AUMENTAR VALOR DA RECOMPENSA======//
valorRecompensa = PlayerPrefs.GetFloat ("quantoreceber") + 100;
PlayerPrefs.SetFloat ("quantoreceber", valorRecompensa);
//=====ZERAR QUANTOS MATOU======//
enemiesDies = 0;
PlayerPrefs.SetFloat ("quantosmatou", enemiesDies);
//=====DA LOAD NA CENA 1======//
SceneManager.LoadScene (1);
}
}
Adicionei Isso na void que chama a morte do meu Inimigo:
- Código:
if (isDead == true) {
print ("+1");
Task.enemiesDies += 1;
PlayerPrefs.SetFloat ("quantosmatou", Task.enemiesDies);
}
O Script esta comentando, Rs!
Agora o probleminha que estou tendo é o seguinte o meu jogo ele da spawn nos inimigos automaticamente tranguilo, mais oque esta acontecendo é o seguinde eu consigo matar o primeiro inimigo só depois os outros nao perdem vida como se eles estivessem sem o collider simplesmente nao acontece nada quando atiro neles, so consigo matar o primeiro.
Oque é estranho ja que nao mechi em nada do inimigo, so adicionei aquelas linha na void de morrer.
eu ja tentei remover essas linhas mais continua a msm coisa, e estava funcionando!
Não sei oque pode ser e eu nao quero desfazer tudo fiz!
Re: Sistema de Missao e Recompensa!
TODOS os problemas do mundo acontecem por que você usa variáveis estáticas. Use variáveis públicas apenas e acesse elas através de "GetComponent"
Tópicos semelhantes
» Sistema de missão [Duvida]
» Tela de missão
» admob recompensa
» Recompensa diária
» Como fazer um script para que se o inimigo ver você cancela a missão?
» Tela de missão
» admob recompensa
» Recompensa diária
» Como fazer um script para que se o inimigo ver você cancela a missão?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos