| | |
| | |
|
| | | public void Initialize()
|
| | | {
|
| | | FuncConfigConfig _funcModel = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("ConversationDistanc");
|
| | | FuncConfigConfig _funcModel = Config.Instance.Get<FuncConfigConfig>("ConversationDistanc");
|
| | | if (_funcModel != null)
|
| | | {
|
| | | conversationDistSqrt = float.Parse(_funcModel.Numerical1);
|
| | |
| | |
|
| | | if (mapID != PlayerDatas.Instance.baseData.MapID)
|
| | | {
|
| | | if (_model.IsMapUnLocked(mapID) == false)
|
| | | if (_model.IsMapUnlocked(mapID) == false)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("Map_Delivery");
|
| | | return;
|
| | |
| | |
|
| | | public void MoveToNPC(int npcID)
|
| | | {
|
| | | NPCConfig _config = ConfigManager.Instance.GetTemplate<NPCConfig>(npcID);
|
| | | NPCConfig _config = Config.Instance.Get<NPCConfig>(npcID);
|
| | |
|
| | | if (_config == null)
|
| | | {
|
| | |
| | | GActor _npc = null;
|
| | |
|
| | | // 加入判断是否世界BOSS判断
|
| | | WorldBossConfig _worldBoss = ConfigManager.Instance.GetTemplate<WorldBossConfig>(npcID);
|
| | | bool _isWorldBoss = _worldBoss != null;
|
| | | if (_isWorldBoss && _findLocation)
|
| | | WorldBossConfig _worldBoss = Config.Instance.Get<WorldBossConfig>(npcID);
|
| | | FairyGrabBossConfig _fairyBoss = Config.Instance.Get<FairyGrabBossConfig>(npcID);
|
| | | bool _isBoss = _worldBoss != null || _fairyBoss != null;
|
| | | if (_isBoss && _findLocation)
|
| | | {
|
| | | //Debug.LogFormat("目标是世界boss");
|
| | | //Debug.LogFormat("目标是boss");
|
| | | _npc = GAMgr.Instance.GetCloserNPC(_hero.Pos, npcID);
|
| | |
|
| | | if (_npc != null)
|
| | |
| | | else
|
| | | {
|
| | | //Debug.LogFormat(" |-- 不在视野内");
|
| | | var _mapConfig = ConfigManager.Instance.GetTemplate<MapConfig>(_npcLocation.mapId);
|
| | | var _mapConfig = Config.Instance.Get<MapConfig>(_npcLocation.mapId);
|
| | |
|
| | | var _lineID = 0;
|
| | | var _forceTransfer = false;
|
| | |
|
| | | // 判断仙盟boss逻辑
|
| | | var _fairyBossModel = ModelCenter.Instance.GetModel<FairyGrabBossModel>();
|
| | | if (_fairyBossModel != null)
|
| | | {
|
| | | // 是仙盟boss
|
| | | if (_fairyBossModel.bosses != null
|
| | | && _fairyBossModel.bosses.Contains(npcID))
|
| | | {
|
| | | //Debug.LogFormat(" |-- 这是一只活动boss");
|
| | | // 取得分线
|
| | | if (GeneralConfig.Instance.fairyGrabBossMapLines != null)
|
| | | {
|
| | | _lineID = GeneralConfig.Instance.fairyGrabBossMapLines.ContainsKey(_npcLocation.mapId) ?
|
| | | GeneralConfig.Instance.fairyGrabBossMapLines[_npcLocation.mapId] : 0;
|
| | | // 如果当前处于不同的分线, 则下面的处理中,地图ID相同也切线
|
| | | if (_lineID != PlayerDatas.Instance.baseData.FBID)
|
| | | {
|
| | | //Debug.LogFormat(" |-- 不在同一分线: {0} != {1}", _lineID, PlayerDatas.Instance.baseData.FBID);
|
| | | _forceTransfer = true;
|
| | | npcID = 0;
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | Debug.LogErrorFormat("对应的地图ID: {0} 在配置中没有对应的分线id", _npcLocation.mapId);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | // 如果不是处于相同地图, 则切图
|
| | | if (_npcLocation.mapId != PlayerDatas.Instance.baseData.MapID)
|
| | | if (_npcLocation.mapId != PlayerDatas.Instance.baseData.MapID || _forceTransfer)
|
| | | {
|
| | | if (PlayerDatas.Instance.extersion.pkState == 1)
|
| | | {
|
| | |
| | | //Debug.LogFormat(" |-- 不在本地图");
|
| | | var mapId = _npcLocation.mapId;
|
| | | var position = new Vector3(_mapConfig.BornPoints[0].x, 0, _mapConfig.BornPoints[0].y);
|
| | | Send_WorldTransfer(mapId, position, MapTransferType.WorldTransport, 0, npcID);
|
| | | Send_WorldTransfer(mapId, position, MapTransferType.WorldTransport, (byte)_lineID, npcID);
|
| | |
|
| | | if (BossFakeLineUtility.Instance.IsShuntBoss(npcID))
|
| | | {
|
| | |
| | | if (((lastMoveToWorldBossNpcID == npcID
|
| | | && Time.realtimeSinceStartup - lastMoveToWorldBossTime < 60)
|
| | | && PlayerDatas.Instance.baseData.FBID == 0)
|
| | | || BossFakeLineUtility.Instance.showFakeLine)
|
| | | || BossFakeLineUtility.Instance.showFakeLine
|
| | | || (_fairyBossModel.bosses != null
|
| | | && _fairyBossModel.bosses.Contains(npcID)))
|
| | | {
|
| | | //Debug.LogFormat(" |-- 非想去的boss为60秒内行为产生且为同一只boss, {0}, {1}", BossFakeLineUtility.Instance.showFakeLine,
|
| | | //PlayerDatas.Instance.baseData.FBID);
|
| | |
| | | }
|
| | |
|
| | | // 判断地图是否解锁
|
| | | if (_model.IsMapUnLocked(_npcLocation.mapId) == false)
|
| | | if (_model.IsMapUnlocked(_npcLocation.mapId) == false)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("Map_Delivery");
|
| | | return;
|
| | | }
|
| | |
|
| | | var _curMapConfig = ConfigManager.Instance.GetTemplate<MapConfig>(PlayerDatas.Instance.baseData.MapID);
|
| | | var _curMapConfig = Config.Instance.Get<MapConfig>(PlayerDatas.Instance.baseData.MapID);
|
| | | // 副本中不可以传送
|
| | | if (_curMapConfig.MapFBType != 0)
|
| | | {
|
| | |
| | | // 如果处于相同地图且距离小于一定的值, 则不传送
|
| | | if (mapId == PlayerDatas.Instance.baseData.MapID)
|
| | | {
|
| | | FuncConfigConfig _func = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("flyMinDistance");
|
| | | FuncConfigConfig _func = Config.Instance.Get<FuncConfigConfig>("flyMinDistance");
|
| | | if (_func != null)
|
| | | {
|
| | | float _distance = float.Parse(_func.Numerical1);
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | var _curMapConfig = ConfigManager.Instance.GetTemplate<MapConfig>(PlayerDatas.Instance.baseData.MapID);
|
| | | var _curMapConfig = Config.Instance.Get<MapConfig>(PlayerDatas.Instance.baseData.MapID);
|
| | | // 副本中不可以传送(某些特定地图可以进行传送Zxw)
|
| | | var mainModel = ModelCenter.Instance.GetModel<PlayerMainDate>();
|
| | | int MapId = PlayerDatas.Instance.baseData.MapID;
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | if (_model.IsMapUnLocked(npcLocation.mapId) == false)
|
| | | if (_model.IsMapUnlocked(npcLocation.mapId) == false)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("Map_Delivery");
|
| | | return;
|
| | |
| | | // 如果处于相同地图且距离小于一定的值, 则不传送
|
| | | if (mapID == PlayerDatas.Instance.baseData.MapID && lineID == PlayerDatas.Instance.baseData.FBID)
|
| | | {
|
| | | FuncConfigConfig _func = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("flyMinDistance");
|
| | | FuncConfigConfig _func = Config.Instance.Get<FuncConfigConfig>("flyMinDistance");
|
| | | if (_func != null)
|
| | | {
|
| | | float _distance = float.Parse(_func.Numerical1);
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | var _curMapConfig = ConfigManager.Instance.GetTemplate<MapConfig>(PlayerDatas.Instance.baseData.MapID);
|
| | | var _curMapConfig = Config.Instance.Get<MapConfig>(PlayerDatas.Instance.baseData.MapID);
|
| | |
|
| | | // 副本中不可以传送
|
| | | if (_curMapConfig.MapFBType != 0)
|
| | |
| | |
|
| | | MapModel _model = ModelCenter.Instance.GetModel<MapModel>();
|
| | |
|
| | | if (_model.IsMapUnLocked(mapID) == false)
|
| | | if (_model.IsMapUnlocked(mapID) == false)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("Map_Delivery");
|
| | | return;
|
| | |
| | |
|
| | | public static bool Send_WorldTransfer(int mapId, Vector3 position, MapTransferType type, byte lineID = 255, int _npcId = 0)
|
| | | {
|
| | | if (!AssetSource.sceneFromEditor && VersionConfig.Get().assetAccess != InstalledAsset.IngoreDownLoad && !AssetVersionUtility.unPriorAssetDownLoadDone)
|
| | | if (!AssetSource.sceneFromEditor && !AssetVersionUtility.IsUnpriorAssetDownLoadOk())
|
| | | {
|
| | | var mapResConfig = DTCA127_tagMCStartChangeMap.GetMapResourcesConfig(mapId, 0);
|
| | | var assetVersion = AssetVersionUtility.GetAssetVersion(StringUtility.Contact("maps/", mapResConfig.MapResources.ToLower()));
|
| | |
| | | // return;
|
| | | //}
|
| | |
|
| | | //NPCConfig _npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(NpcID);
|
| | | //NPCConfig _npcConfig = Config.Instance.Get<NPCConfig>(NpcID);
|
| | | //if (_npcConfig == null)
|
| | | //{
|
| | | // return;
|
| | |
| | | }
|
| | |
|
| | | // 找不到配置, 不做后续操作
|
| | | NPCConfig _npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(NpcID);
|
| | | NPCConfig _npcConfig = Config.Instance.Get<NPCConfig>(NpcID);
|
| | | if (_npcConfig == null)
|
| | | {
|
| | | Clear();
|