public void SpawnAllDaoJu() { if (!IsSpawnDJ) { return; } PointList = new List <Transform>(); CheckDaoJuSpawnPointList(); int randVal = 0; int max = DaoJuArray.Length; Transform trEndPoint = null; for (int i = 0; i < max; i++) { randVal = Random.Range(0, 10000) % 100; if (randVal >= DaoJuGaiLv[i]) { continue; } trEndPoint = GetDaoJuSpawnPoint(i); if (trEndPoint == null) { continue; } GameObject daoJuObj = (GameObject)Instantiate(DaoJuArray[i], transform.position, transform.rotation); BuJiBaoCtrl buJiScript = daoJuObj.GetComponent <BuJiBaoCtrl>(); buJiScript.SetIsSpawnDaoJu(); buJiScript.MoveDaoJuToPoint(trEndPoint); } }
/// <summary> /// 创建大血包道具. /// </summary> bool CreateBigXueBaoDaoJu(PlayerEnum playerIndex) { bool isCreate = false; if (m_BigXueBaoDt != null && m_BigXueBaoDt.XueBaoPrefab != null) { int randVal = 0; randVal = Random.Range(0, 10000) % 100; if (randVal >= m_BigXueBaoDt.GaiLv) { //没有随机上. } else { Transform trEndPoint = null; //PointList = new List<Transform>(); //CheckDaoJuSpawnPointList(); //trEndPoint = GetDaoJuSpawnPoint(0); if (XKPlayerMoveCtrl.GetInstance(playerIndex) != null) { trEndPoint = XKPlayerMoveCtrl.GetInstance(playerIndex).transform; } if (trEndPoint == null) { //没有找到道具落点. } else { //产生道具. GameObject daoJuObj = (GameObject)Instantiate(m_BigXueBaoDt.XueBaoPrefab, transform.position, transform.rotation); BuJiBaoCtrl buJiScript = daoJuObj.GetComponent <BuJiBaoCtrl>(); if (buJiScript != null) { isCreate = true; buJiScript.SetIsSpawnDaoJu(playerIndex); //血包道具自动吸附到玩家位置. buJiScript.MoveDaoJuToPoint(trEndPoint); } } } } return(isCreate); }
/// <summary> /// 创建随机道具. /// </summary> public void CreatSuiJiDaoJu(PlayerEnum indexPlayer) { if (!IsCreatSuiJiDaoJu) { return; } int indexVal = (int)indexPlayer - 1; if (indexVal < 0 || indexVal > 2) { return; } if (XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.m_PlayerCoinData[indexVal].XuBiVal <= 0) { //不是续币玩家. return; } if (!XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.m_GameCaiPiaoData.GetIsChuCaiPiaoByDeCaiState(SSCaiPiaoDataManage.GameCaiPiaoData.DeCaiState.SuiJiDaoJu)) { //随机道具彩池的彩票积累的不够. return; } if (Random.Range(0f, 100f) / 100f > 0.4f) { //没有随机上产生随机道具. return; } if (XkGameCtrl.GetInstance().GetIsCreateSuiJiDaoJu() == false) { //产生随机道具的间隔时间未到. return; } UnityLog("CreatSuiJiDaoJu...................."); GameObject suiJiDaoJuPrefab = XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.GetSuiJiDaoJuPrefab(indexPlayer); if (suiJiDaoJuPrefab != null) { GameObject obj = (GameObject)Instantiate(suiJiDaoJuPrefab, XkGameCtrl.GetInstance().DaoJuArray, transform); if (obj != null) { BuJiBaoCtrl buJiBao = obj.GetComponent <BuJiBaoCtrl>(); if (buJiBao != null) { buJiBao.IsCaiPiaoDaoJu = true; buJiBao.SetIsSpawnDaoJu(); buJiBao.DelayRemoveSelf(indexPlayer); } //SSCaiPiaoSuiJiDaoJu suiJiDaoJu = obj.GetComponent<SSCaiPiaoSuiJiDaoJu>(); //if (suiJiDaoJu != null) //{ // suiJiDaoJu.CreatLiZi(indexPlayer); //} //else //{ // UnityLogWarning("CreatSuiJiDaoJu -> SSCaiPiaoSuiJiDaoJu was null.........."); //} } } else { UnityLogWarning("CreatSuiJiDaoJu -> suiJiDaoJuPrefab was null!"); } }
public void SpawnAllDaoJu(PlayerEnum playerIndex) { float timeLengQue = 60f; if (XkGameCtrl.GetInstance() != null) { timeLengQue = XkGameCtrl.GetInstance().m_NpcDiaoDaoJuTimeLengQue; } if (Time.time - m_TimeLastCreatDaoJu < timeLengQue) { //间隔时间小于x秒则不产生补给包. return; } m_TimeLastCreatDaoJu = Time.time; if (!IsSpawnDJ) { return; } bool isCreateBigXueBao = CreateBigXueBaoDaoJu(playerIndex); if (isCreateBigXueBao == true) { //如果产生了大血包道具就不再产生其它道具. return; } PointList = new List <Transform>(); CheckDaoJuSpawnPointList(); int randVal = 0; int max = DaoJuArray.Length; Transform trEndPoint = null; for (int i = 0; i < max; i++) { randVal = Random.Range(0, 10000) % 100; if (DaoJuGaiLv.Length > i && randVal >= DaoJuGaiLv[i]) { continue; } if (DaoJuArray[i] == null) { continue; } trEndPoint = null; BuJiBaoCtrl buJiBaoCom = DaoJuArray[i].GetComponent <BuJiBaoCtrl>(); if (buJiBaoCom != null && buJiBaoCom.BuJiBao == BuJiBaoType.BigYiLiaoBaoDJ || buJiBaoCom.BuJiBao == BuJiBaoType.YiLiaoBaoDJ) { //医疗包道具. if (XKPlayerMoveCtrl.GetInstance(playerIndex) != null) { trEndPoint = XKPlayerMoveCtrl.GetInstance(playerIndex).transform; } } if (trEndPoint == null) { trEndPoint = GetDaoJuSpawnPoint(i); } if (trEndPoint == null) { continue; } GameObject daoJuObj = (GameObject)Instantiate(DaoJuArray[i], transform.position, transform.rotation); BuJiBaoCtrl buJiScript = daoJuObj.GetComponent <BuJiBaoCtrl>(); buJiScript.SetIsSpawnDaoJu(playerIndex); buJiScript.MoveDaoJuToPoint(trEndPoint); } }