using System.Collections.Generic;
|
using UnityEngine;
|
|
public class JiaPlayerManager
|
{
|
public static bool Start = false;
|
|
public static FuncConfigConfig gemTypeConfig = FuncConfigConfig.Get("FakePlayer");
|
// 等级限制
|
private static int m_LevelLimit = int.Parse(gemTypeConfig.Numerical1);
|
// 创建间隔
|
private static float m_CraeteInterval = 2f;
|
// 计算创建间隔
|
private static float m_CraeteCalcTime = 0;
|
// 最大的玩家数量
|
private static int m_MaxPlayerCount = int.Parse(gemTypeConfig.Numerical3);
|
// 每个的持续时间
|
public static float EachPlayerLastTime = 20f;
|
// 开服天内
|
public static int ServerDayLimit = int.Parse(gemTypeConfig.Numerical2);
|
|
// 装备配置
|
// 境界 | 职业 | [衣服,武器,副手]
|
private static List<Dictionary<int, List<int>>> m_Equip = new List<Dictionary<int, List<int>>>()
|
{
|
new Dictionary<int, List<int>>()
|
{
|
{ 1,new List<int>(){1011040,1011010, 1011020} },
|
{ 2,new List<int>(){2011040,2011010, 2011020} }
|
}
|
};
|
|
private static List<JiaPlayerController> m_ControllerList = new List<JiaPlayerController>();
|
|
public static void Update()
|
{
|
if (!Start)
|
{
|
return;
|
}
|
|
if (AdventureStage.Instance.IsInAdventureStage)
|
{
|
return;
|
}
|
|
for (int i = m_ControllerList.Count - 1; i >= 0; --i)
|
{
|
if (m_ControllerList[i] == null)
|
{
|
continue;
|
}
|
m_ControllerList[i].Update();
|
if (m_ControllerList[i].IsDone)
|
{
|
m_ControllerList[i].UnInit();
|
m_ControllerList.RemoveAt(i);
|
}
|
}
|
|
if (TimeUtility.OpenDay > ServerDayLimit) return;
|
|
if (PlayerDatas.Instance.baseData.LV > m_LevelLimit)
|
{
|
return;
|
}
|
|
if (Time.time - m_CraeteCalcTime < m_CraeteInterval)
|
{
|
return;
|
}
|
|
m_CraeteCalcTime = Time.time;
|
|
int _curPlayerCount = 0;
|
|
var _playerList = GAMgr.Instance.GetTypeList(E_ActorClassType.Player);
|
if (_playerList != null)
|
{
|
_curPlayerCount = _playerList.Count;
|
}
|
|
_playerList = GAMgr.Instance.GetTypeList(E_ActorClassType.JiaPlayer);
|
if (_playerList != null)
|
{
|
_curPlayerCount += _playerList.Count;
|
}
|
|
if (_curPlayerCount >= m_MaxPlayerCount)
|
{
|
return;
|
}
|
|
int _ranJob = Random.Range(1, 3);
|
// 随机类型
|
int _ran = Random.Range(0, (int)(JiaPlayerController.E_BehaviourType.MaxType));
|
|
var _controller = new JiaPlayerController();
|
_controller.Init(new JiaPlayerController.JiaPlayerData()
|
{
|
job = _ranJob,
|
name = StringUtility.Contact(RandomNameConfig.GetFirstName(_ranJob), RandomNameConfig.GetSecondName(_ranJob)),
|
clothes = m_Equip[PlayerDatas.Instance.baseData.realmLevel][_ranJob][0],
|
weapon = m_Equip[PlayerDatas.Instance.baseData.realmLevel][_ranJob][1],
|
sedcondary = m_Equip[PlayerDatas.Instance.baseData.realmLevel][_ranJob][2],
|
behaviourType = (JiaPlayerController.E_BehaviourType)_ran
|
});
|
|
m_ControllerList.Add(_controller);
|
}
|
|
public static void UnInit()
|
{
|
for (int i = m_ControllerList.Count - 1; i >= 0; --i)
|
{
|
if (m_ControllerList[i] == null)
|
{
|
continue;
|
}
|
m_ControllerList[i].UnInit();
|
}
|
m_ControllerList.Clear();
|
}
|
}
|