Merge branch 'master' into TreasureMission
| | |
| | | public const string NodeName_Event = "Event_"; |
| | | public const string NodeName_Transfer = "Transfer_"; |
| | | |
| | | private int m_TriggerSeed; |
| | | private int m_EventSeed; |
| | | public int GetTriggerSeed() |
| | | { |
| | | return m_TriggerSeed; |
| | | } |
| | | public int GetEventSeed() |
| | | { |
| | | return m_EventSeed; |
| | | } |
| | | public int RequestTriggerID() |
| | | { |
| | | return m_TriggerSeed++; |
| | | } |
| | | public int RequestEventID() |
| | | { |
| | | return m_EventSeed++; |
| | | } |
| | | public void SetTriggerID(int id) |
| | | { |
| | | m_TriggerSeed = id; |
| | | } |
| | | public void SetEventID(int id) |
| | | { |
| | | m_EventSeed = id; |
| | | } |
| | | |
| | | public void Save(BinaryWriter bw) |
| | | { |
| | | bw.Write(id); |
| | |
| | | monsters[i].Load(br); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | float delay = Time.now |
| | | float interval |
| | | int index |
| | | |
| | | update |
| | | if refreshType == all |
| | | for index = 0; index < monsters.Length; ++index |
| | | doRefresh(monsters[index]); |
| | | else if refreshType == onebyoneTime |
| | | if Time.now - delay > interval |
| | | doRefresh(monster[index]); |
| | | index++; |
| | | delay = Time.now; |
| | | else if refreshType == onebyoneDie |
| | | if prevNpc.isDie |
| | | prevNpc = doRefresh(monster[index]); |
| | | index++; |
| | | |
| | | int deadCount |
| | | float overTime = conditionParam * 0.001f; |
| | | float timePast = Time.now |
| | | |
| | | over |
| | | if condition == None |
| | | return true; |
| | | else if condition == DeadCount |
| | | return deadCount > monsters.Length || deadCount > conditionParam; |
| | | else if condition == Time |
| | | return Time.now - timePast >= overTime; |
| | | */ |
| | | } |
| | | } |
| | |
| | | private string LS_KEY_SAVEPATH; |
| | | private string LS_KEY_EXPORTPATH; |
| | | |
| | | private int m_TriggerSeed; |
| | | private int m_EventSeed; |
| | | private int m_TransferSeed; |
| | | private int RequestTriggerID() |
| | | { |
| | | return m_TriggerSeed++; |
| | | } |
| | | private int RequestEventID() |
| | | { |
| | | return m_EventSeed++; |
| | | } |
| | | |
| | | private Evt.E_EventType eventType = Evt.E_EventType.Enemy; |
| | | |
| | | [MenuItem("程序/MapEditor | 地图编辑器")] |
| | |
| | | _root.AddComponent<MeshCollider>(); |
| | | _root.transform.position = _go.transform.position; |
| | | _root.transform.rotation = _go.transform.rotation; |
| | | _root.transform.localScale = _go.transform.localScale; |
| | | _root.layer = LayerUtility.Walkble; |
| | | break; |
| | | } |
| | |
| | | { |
| | | if (GUILayout.Button("测试")) |
| | | { |
| | | var m = MapData.LoadFormFile(10120); |
| | | if (m == null) |
| | | { |
| | | Debug.Log("加载失败"); |
| | | } |
| | | ClientSceneManager.Instance.TriggerTest(8); |
| | | } |
| | | if (gUISkin == null) |
| | | { |
| | |
| | | private void CreateTrigger() |
| | | { |
| | | var _mapData = target as Bhv_MapData; |
| | | var _id = RequestTriggerID(); |
| | | var _id = _mapData.RequestTriggerID(); |
| | | var _trigger = CreateNewGO(Bhv_MapData.NodeName_Trigger + _id); |
| | | var _triggerBhv = _trigger.AddComponent<Bhv_MapTrigger>(); |
| | | _triggerBhv.id = _id; |
| | |
| | | |
| | | if (type == Evt.E_EventType.Enemy) |
| | | { |
| | | int _id = RequestEventID(); |
| | | int _id = _mapData.RequestEventID(); |
| | | var _event = CreateNewGO(Bhv_MapData.NodeName_Event + "RefreshEvemy_" + _id); |
| | | var _eventBhv = _event.AddComponent<Bhv_Evt_RefreshMonster>(); |
| | | _eventBhv.id = _id; |
| | |
| | | } |
| | | else if (type == Evt.E_EventType.SceneObject) |
| | | { |
| | | int _id = RequestEventID(); |
| | | int _id = _mapData.RequestEventID(); |
| | | var _event = CreateNewGO(Bhv_MapData.NodeName_Event + "RefreshSceneObject_" + _id); |
| | | var _eventBhv = _event.AddComponent<Bhv_Evt_RefreshSceneObject>(); |
| | | _eventBhv.id = _id; |
| | |
| | | _mapData.Load(_binaryReader); |
| | | EditorPrefs.SetString(LS_KEY_SAVEPATH, Directory.GetParent(_path).FullName); |
| | | |
| | | |
| | | foreach (var _event in _mapData.eventList) |
| | | { |
| | | if (_event.id >= m_EventSeed) |
| | | if (_event.id >= _mapData.GetEventSeed()) |
| | | { |
| | | m_EventSeed = _event.id + 1; |
| | | _mapData.SetEventID(_event.id + 1); |
| | | } |
| | | } |
| | | |
| | | foreach (var _trigger in _mapData.triggerList) |
| | | { |
| | | if (_trigger.id >= m_TriggerSeed) |
| | | if (_trigger.id >= _mapData.GetTriggerSeed()) |
| | | { |
| | | m_TriggerSeed = _trigger.id + 1; |
| | | _mapData.SetTriggerID(_trigger.id + 1); |
| | | } |
| | | } |
| | | } |
| | |
| | |
|
| | |
|
| | |
|
| | | public class DTCB501_tagGCAuctionItemInfo : DtcBasic {
|
| | | public class DTCB501_tagGCAuctionItemInfo : DtcBasic
|
| | | {
|
| | | AuctionInquiryModel model { get { return ModelCenter.Instance.GetModel<AuctionInquiryModel>(); } }
|
| | | public override void Done(GameNetPackBasic vNetPack) {
|
| | | public override void Done(GameNetPackBasic vNetPack)
|
| | | {
|
| | | base.Done(vNetPack);
|
| | | HB501_tagGCAuctionItemInfo vNetData = vNetPack as HB501_tagGCAuctionItemInfo;
model.AuctionItemInfo(vNetData);
|
| | | }
|
| | |
| | |
|
| | |
|
| | |
|
| | | public class DTCB502_tagGCPlayerAuctionItemInfo : DtcBasic {
|
| | | public class DTCB502_tagGCPlayerAuctionItemInfo : DtcBasic
|
| | | {
|
| | | AuctionInquiryModel model { get { return ModelCenter.Instance.GetModel<AuctionInquiryModel>(); } }
|
| | | public override void Done(GameNetPackBasic vNetPack) {
|
| | | public override void Done(GameNetPackBasic vNetPack)
|
| | | {
|
| | | base.Done(vNetPack);
|
| | | HB502_tagGCPlayerAuctionItemInfo vNetData = vNetPack as HB502_tagGCPlayerAuctionItemInfo;
model.PlayerAuctionItemInfo(vNetData);
|
| | | }
|
| | |
| | |
|
| | |
|
| | |
|
| | | public class DTCB505_tagGCFamilyAuctionItemInfo : DtcBasic {
|
| | | public class DTCB505_tagGCFamilyAuctionItemInfo : DtcBasic
|
| | | {
|
| | | AuctionInquiryModel model { get { return ModelCenter.Instance.GetModel<AuctionInquiryModel>(); } }
|
| | | public override void Done(GameNetPackBasic vNetPack) {
|
| | | public override void Done(GameNetPackBasic vNetPack)
|
| | | {
|
| | | base.Done(vNetPack);
|
| | | HB505_tagGCFamilyAuctionItemInfo vNetData = vNetPack as HB505_tagGCFamilyAuctionItemInfo;
model.FamilyAuctionItemInfo(vNetData);
|
| | | }
|
| | |
| | |
|
| | |
|
| | |
|
| | | public class DTCB508_tagGCRefreshAuctionItemInfo : DtcBasic {
|
| | | public class DTCB508_tagGCRefreshAuctionItemInfo : DtcBasic
|
| | | {
|
| | | AuctionInquiryModel model { get { return ModelCenter.Instance.GetModel<AuctionInquiryModel>(); } }
|
| | | public override void Done(GameNetPackBasic vNetPack) {
|
| | | public override void Done(GameNetPackBasic vNetPack)
|
| | | {
|
| | | base.Done(vNetPack);
|
| | | HB508_tagGCRefreshAuctionItemInfo vNetData = vNetPack as HB508_tagGCRefreshAuctionItemInfo;
model.RefreshAuctionItem(vNetData);
|
| | | }
|
| | |
| | | TransBytes (out AuctionItemList[i].ItemCount, vBytes, NetDataType.WORD);
|
| | | TransBytes (out AuctionItemList[i].AddTime, vBytes, NetDataType.Chars, 19);
|
| | | TransBytes (out AuctionItemList[i].BidderPrice, vBytes, NetDataType.WORD);
|
| | | TransBytes (out AuctionItemList[i].BiddingTime, vBytes, NetDataType.Chars, 19);
|
| | | TransBytes (out AuctionItemList[i].UserDataLen, vBytes, NetDataType.WORD);
|
| | | TransBytes (out AuctionItemList[i].UserData, vBytes, NetDataType.Chars, AuctionItemList[i].UserDataLen);
|
| | | }
|
| | |
| | | public ushort ItemCount;
|
| | | public string AddTime; //上架时间 yyyy-MM-dd hh:mm:ss
|
| | | public ushort BidderPrice; //竞拍玩家出价
|
| | | public string BiddingTime; //竞价时间 yyyy-MM-dd hh:mm:ss
|
| | | public ushort UserDataLen;
|
| | | public string UserData; //自定义数据
|
| | | }
|
| | |
| | | TransBytes (out AuctionItemList[i].ItemCount, vBytes, NetDataType.WORD);
|
| | | TransBytes (out AuctionItemList[i].AddTime, vBytes, NetDataType.Chars, 19);
|
| | | TransBytes (out AuctionItemList[i].BidderPrice, vBytes, NetDataType.WORD);
|
| | | TransBytes (out AuctionItemList[i].BiddingTime, vBytes, NetDataType.Chars, 19);
|
| | | TransBytes (out AuctionItemList[i].UserDataLen, vBytes, NetDataType.WORD);
|
| | | TransBytes (out AuctionItemList[i].UserData, vBytes, NetDataType.Chars, AuctionItemList[i].UserDataLen);
|
| | | }
|
| | |
| | | public ushort ItemCount;
|
| | | public string AddTime; //上架时间 yyyy-MM-dd hh:mm:ss
|
| | | public ushort BidderPrice; //竞拍玩家出价
|
| | | public string BiddingTime; //竞价时间 yyyy-MM-dd hh:mm:ss
|
| | | public ushort UserDataLen;
|
| | | public string UserData; //自定义数据
|
| | | }
|
| | |
| | | TransBytes (out AuctionItemList[i].ItemCount, vBytes, NetDataType.WORD);
|
| | | TransBytes (out AuctionItemList[i].AddTime, vBytes, NetDataType.Chars, 19);
|
| | | TransBytes (out AuctionItemList[i].BidderPrice, vBytes, NetDataType.WORD);
|
| | | TransBytes (out AuctionItemList[i].BiddingTime, vBytes, NetDataType.Chars, 19);
|
| | | TransBytes (out AuctionItemList[i].UserDataLen, vBytes, NetDataType.WORD);
|
| | | TransBytes (out AuctionItemList[i].UserData, vBytes, NetDataType.Chars, AuctionItemList[i].UserDataLen);
|
| | | TransBytes (out AuctionItemList[i].FamilyPlayerIDLen, vBytes, NetDataType.WORD);
|
| | |
| | | public ushort ItemCount;
|
| | | public string AddTime; //上架时间 yyyy-MM-dd hh:mm:ss
|
| | | public ushort BidderPrice; //竞拍玩家出价
|
| | | public string BiddingTime; //竞价时间 yyyy-MM-dd hh:mm:ss
|
| | | public ushort UserDataLen;
|
| | | public string UserData; //自定义数据
|
| | | public ushort FamilyPlayerIDLen;
|
| | |
| | | TransBytes (out AuctionItemList[i].ItemCount, vBytes, NetDataType.WORD);
|
| | | TransBytes (out AuctionItemList[i].AddTime, vBytes, NetDataType.Chars, 19);
|
| | | TransBytes (out AuctionItemList[i].BidderPrice, vBytes, NetDataType.WORD);
|
| | | TransBytes (out AuctionItemList[i].BiddingTime, vBytes, NetDataType.Chars, 19);
|
| | | TransBytes (out AuctionItemList[i].UserDataLen, vBytes, NetDataType.WORD);
|
| | | TransBytes (out AuctionItemList[i].UserData, vBytes, NetDataType.Chars, AuctionItemList[i].UserDataLen);
|
| | | }
|
| | |
| | | public ushort ItemCount;
|
| | | public string AddTime; //上架时间 yyyy-MM-dd hh:mm:ss
|
| | | public ushort BidderPrice; //竞拍玩家出价
|
| | | public string BiddingTime; //竞价时间 yyyy-MM-dd hh:mm:ss
|
| | | public ushort UserDataLen;
|
| | | public string UserData; //自定义数据
|
| | | }
|
| | |
| | | TransBytes (out RefreshAuctionItemList[i].AddTime, vBytes, NetDataType.Chars, 19);
|
| | | TransBytes (out RefreshAuctionItemList[i].BidderID, vBytes, NetDataType.DWORD);
|
| | | TransBytes (out RefreshAuctionItemList[i].BidderPrice, vBytes, NetDataType.DWORD);
|
| | | TransBytes (out RefreshAuctionItemList[i].BiddingTime, vBytes, NetDataType.Chars, 19);
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | public string AddTime; //上架时间
|
| | | public uint BidderID; //最高竞拍玩家ID,也就是当前最高竞价玩家ID
|
| | | public uint BidderPrice; //最高竞拍价格
|
| | | public string BiddingTime; //竞价时间 yyyy-MM-dd hh:mm:ss
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | TransBytes (out AuctionItemList[i].AddTime, vBytes, NetDataType.Chars, 19);
|
| | | TransBytes (out AuctionItemList[i].BidderID, vBytes, NetDataType.DWORD);
|
| | | TransBytes (out AuctionItemList[i].BidderPrice, vBytes, NetDataType.WORD);
|
| | | TransBytes (out AuctionItemList[i].BiddingTime, vBytes, NetDataType.Chars, 19);
|
| | | TransBytes (out AuctionItemList[i].UserDataLen, vBytes, NetDataType.WORD);
|
| | | TransBytes (out AuctionItemList[i].UserData, vBytes, NetDataType.Chars, AuctionItemList[i].UserDataLen);
|
| | | }
|
| | |
| | | public string AddTime; //上架时间 yyyy-MM-dd hh:mm:ss
|
| | | public uint BidderID; //竞拍玩家ID,也就是当前最高竞价玩家ID
|
| | | public ushort BidderPrice; //竞拍玩家出价
|
| | | public string BiddingTime; //竞价时间 yyyy-MM-dd hh:mm:ss
|
| | | public ushort UserDataLen;
|
| | | public string UserData; //自定义数据
|
| | | }
|
| | |
| | | if (_clientNpc != null
|
| | | && _clientNpc.belongEventID != -1)
|
| | | {
|
| | | ClientSceneManager.Instance.NpcDead(_clientNpc.belongEventID, _clientNpc);
|
| | | ClientSceneManager.Instance.NpcDead(_clientNpc.belongEventID, _clientNpc, _clientNpc.NpcConfig.NPCID);
|
| | | }
|
| | | // 前期战斗只发送石头人的
|
| | | //if (1000 == _target.NpcConfig.NPCID)
|
| | |
| | | case E_ActorClassType.NpcClientFunc:
|
| | | _actor = new GA_NpcClientFunc();
|
| | | break;
|
| | | case E_ActorClassType.NpcCollect:
|
| | | _actor = new GA_NpcClientCollect();
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | if (_actor != null)
|
| | | {
|
| | | _actor.InitNpcConfig((int)npcID);
|
| | | _actor.Init(serverInstID, m_ClientId.Request(), group, null);
|
| | |
|
| | | BuildManagerRelation(_actor, _actorClassType);
|
| | |
| | | {
|
| | | return (byte)E_ActorClassType.PVPClientPlayer;
|
| | | }
|
| | | else if (_type == typeof(GA_NpcClientCollect))
|
| | | {
|
| | | return (byte)E_ActorClassType.NpcCollect;
|
| | | }
|
| | |
|
| | | return (byte)E_ActorClassType.UnDefine;
|
| | | }
|
| New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using Snxxz.UI; |
| | | using UnityEngine; |
| | | using UnityEngine.Events; |
| | | |
| | | public class GA_NpcClientCollect : GA_NpcClientFunc |
| | | { |
| | | private static List<uint> m_ArrivedList = new List<uint>(); |
| | | public static event UnityAction<uint, int> OnArrive; |
| | | public static event UnityAction<uint, int> OnLeave; |
| | | |
| | | private bool m_IsMainWinOpen = false; |
| | | |
| | | protected override void OnInit(GameNetPackBasic package) |
| | | { |
| | | base.OnInit(package); |
| | | |
| | | WindowCenter.Instance.windowAfterOpenEvent += CheckOpenCollectIcon; |
| | | WindowCenter.Instance.windowAfterCloseEvent += AfterCloseMainWin; |
| | | |
| | | NPCInteractProcessor.s_NpcInteractEvent += HandleCallback; |
| | | } |
| | | |
| | | private void HandleCallback(E_NpcType type, int npcID, uint sid) |
| | | { |
| | | if (sid == ServerInstID) |
| | | { |
| | | OnClick(); |
| | | } |
| | | } |
| | | |
| | | protected override void OnUnit() |
| | | { |
| | | if (m_ArrivedList.Contains(ServerInstID)) |
| | | { |
| | | if (OnLeave != null) |
| | | { |
| | | OnLeave(ServerInstID, NpcConfig.NPCID); |
| | | } |
| | | m_ArrivedList.Remove(ServerInstID); |
| | | } |
| | | |
| | | WindowCenter.Instance.windowAfterOpenEvent -= CheckOpenCollectIcon; |
| | | WindowCenter.Instance.windowAfterCloseEvent -= AfterCloseMainWin; |
| | | } |
| | | |
| | | private void CheckOpenCollectIcon(Window obj) |
| | | { |
| | | if (obj is MainInterfaceWin) |
| | | { |
| | | m_IsMainWinOpen = true; |
| | | |
| | | if (NpcConfig.NPCID != GeneralDefine.GatherSoulDZ) |
| | | { |
| | | GA_Hero _hero = PlayerDatas.Instance.hero; |
| | | |
| | | if (_hero != null) |
| | | { |
| | | float _distSqrt = MathUtility.DistanceSqrtXZ(_hero.Pos, Pos); |
| | | |
| | | if (_distSqrt < Mathf.Pow(NpcConfig.ModelRadius + 0.4f + GeneralDefine.CloseNpcDist, 2)) |
| | | { |
| | | Arrive(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void AfterCloseMainWin(Window obj) |
| | | { |
| | | if (obj is MainInterfaceWin) |
| | | { |
| | | m_IsMainWinOpen = false; |
| | | Leave(); |
| | | } |
| | | } |
| | | |
| | | public override void OnClick() |
| | | { |
| | | if (GA_Hero.s_MapSwitching) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | GA_Hero _hero = PlayerDatas.Instance.hero; |
| | | |
| | | if (_hero == null) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | _hero.LockTarget = this; |
| | | _hero.SelectTarget = this; |
| | | |
| | | float _chkDistSqrt = MathUtility.DistanceSqrtXZ(_hero.Pos, Pos); |
| | | |
| | | // 这里判断是否要走向此对象 |
| | | if (_chkDistSqrt > 2f) |
| | | { |
| | | _hero.MoveToPosition(Pos, 1f); |
| | | } |
| | | |
| | | if (_chkDistSqrt < 4) |
| | | { |
| | | StartCollect(); |
| | | } |
| | | } |
| | | |
| | | private bool m_StartCollect; |
| | | private float m_CollectTime; |
| | | |
| | | public void StartCollect() |
| | | { |
| | | if (m_StartCollect) |
| | | { |
| | | return; |
| | | } |
| | | m_CollectTime = 0; |
| | | NormalCollectWin.s_CollectInfo = new PrepareHandler.ClientH0812() |
| | | { |
| | | PlayerID = PlayerDatas.Instance.PlayerId, |
| | | PrepareState = (byte)PrepareHandler.E_PrepareType.pstMissionCollecting, |
| | | MaxTime = 2000, |
| | | PrepareID = NpcConfig.NPCID, |
| | | }; |
| | | PrepareHandler.Instance.isPreparing = true; |
| | | WindowCenter.Instance.Open<NormalCollectWin>(); |
| | | m_StartCollect = true; |
| | | } |
| | | |
| | | public void StopCollect() |
| | | { |
| | | PrepareHandler.Instance.isPreparing = false; |
| | | WindowCenter.Instance.Close<NormalCollectWin>(); |
| | | m_StartCollect = false; |
| | | } |
| | | |
| | | protected override void OnUpdate() |
| | | { |
| | | if (m_StartCollect) |
| | | { |
| | | GA_Hero m_Hero = PlayerDatas.Instance.hero; |
| | | |
| | | m_CollectTime += Time.deltaTime; |
| | | |
| | | if (m_CollectTime > 2f) |
| | | { |
| | | StopCollect(); |
| | | |
| | | if (m_Hero != null) |
| | | { |
| | | if (m_Hero.LockTarget == this) |
| | | { |
| | | m_Hero.LockTarget = null; |
| | | } |
| | | if (m_Hero.SelectTarget == this) |
| | | { |
| | | m_Hero.SelectTarget = null; |
| | | } |
| | | } |
| | | |
| | | if (belongEventID != -1) |
| | | { |
| | | ClientSceneManager.Instance.NpcDead(belongEventID, this, NpcConfig.NPCID); |
| | | } |
| | | |
| | | GAMgr.Instance.Release(this); |
| | | } |
| | | |
| | | if (!m_Hero.IsIdle() && !m_Hero.IsCollect()) |
| | | { |
| | | StopCollect(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public override void OnSelect() |
| | | { |
| | | if (NpcConfig.NPCID != 10204200) |
| | | { |
| | | SelectionManager.Request(SelectionManager.E_Type.Green, this, NpcConfig.ModelRadius * 2); |
| | | } |
| | | |
| | | GA_Hero _hero = PlayerDatas.Instance.hero; |
| | | Vector3 _forward = MathUtility.ForwardXZ(Pos, _hero.Pos); |
| | | |
| | | _hero.Forward = _forward; |
| | | |
| | | if (NpcConfig.AutomaticFace == 1) |
| | | { |
| | | _forward = MathUtility.ForwardXZ(_hero.Pos, Pos); |
| | | Forward = _forward; |
| | | } |
| | | } |
| | | public override void OnUnSelect() |
| | | { |
| | | base.OnUnSelect(); |
| | | if (m_ArrivedList.Contains(ServerInstID)) |
| | | { |
| | | if (OnLeave != null) |
| | | { |
| | | OnLeave(ServerInstID, NpcConfig.NPCID); |
| | | } |
| | | m_ArrivedList.Remove(ServerInstID); |
| | | } |
| | | } |
| | | |
| | | protected override void OnFixedUpdate() |
| | | { |
| | | base.OnFixedUpdate(); |
| | | |
| | | if (!m_IsMainWinOpen) |
| | | { |
| | | m_IsMainWinOpen = WindowCenter.Instance.IsOpen<MainInterfaceWin>(); |
| | | return; |
| | | } |
| | | |
| | | GA_Hero _hero = PlayerDatas.Instance.hero; |
| | | |
| | | if (_hero != null) |
| | | { |
| | | float _distSqrt = MathUtility.DistanceSqrtXZ(_hero.Pos, Pos); |
| | | |
| | | if (_distSqrt < Mathf.Pow(NpcConfig.ModelRadius + 0.4f + GeneralDefine.CloseNpcDist, 2)) |
| | | { |
| | | Arrive(); |
| | | } |
| | | else |
| | | { |
| | | if (m_ArrivedList.Contains(ServerInstID)) |
| | | { |
| | | if (OnLeave != null) |
| | | { |
| | | OnLeave(ServerInstID, NpcConfig.NPCID); |
| | | } |
| | | m_ArrivedList.Remove(ServerInstID); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void Arrive() |
| | | { |
| | | if (!m_ArrivedList.Contains(ServerInstID)) |
| | | { |
| | | if (OnArrive != null) |
| | | { |
| | | OnArrive(ServerInstID, NpcConfig.NPCID); |
| | | } |
| | | m_ArrivedList.Add(ServerInstID); |
| | | Debug.Log("靠近了采集物: " + NpcConfig.NPCID); |
| | | } |
| | | } |
| | | |
| | | public void Leave() |
| | | { |
| | | if (m_ArrivedList.Contains(ServerInstID)) |
| | | { |
| | | if (OnLeave != null) |
| | | { |
| | | OnLeave(ServerInstID, NpcConfig.NPCID); |
| | | } |
| | | m_ArrivedList.Remove(ServerInstID); |
| | | Debug.Log("离开了采集物: " + NpcConfig.NPCID); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 5d176ae09b0a918488a325b4304a2d2d |
| | | timeCreated: 1553583520 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| | |
| | | |
| | | public class GA_NpcClientFightNorm : GActorNpcFight |
| | | { |
| | | public int belongEventID; |
| | | private HeadUpName m_HeadUpName; |
| | | private LifeBar m_LifeBar; |
| | | |
| | |
| | | Rotation = Quaternion.Euler(0, UnityEngine.Random.Range(0, 360), 0);
|
| | | }
|
| | |
|
| | | ActorType = GameObjType.gotNPC;
|
| | | Root.gameObject.layer = LayerUtility.Monster;
|
| | |
|
| | | if (CanBeSelected())
|
| | | {
|
| | | CapsuleCollider _collider = Root.AddMissingComponent<CapsuleCollider>();
|
| | | _collider.center = new Vector3(0, NpcConfig.ModleHeight * .5f, 0);
|
| | | _collider.radius = NpcConfig.ModelRadius;
|
| | | _collider.height = NpcConfig.ModleHeight;
|
| | |
|
| | | m_NPCInteractProcessor = Root.AddMissingComponent<NPCInteractProcessor>();
|
| | | m_NPCInteractProcessor.npcIntergactEvent += OnClick;
|
| | | }
|
| | |
|
| | | RequestShadow();
|
| | |
|
| | | if (NpcConfig.NPCEffect != 0)
|
| | | {
|
| | | m_AppearEffect = SFXPlayUtility.Instance.PlayBattleEffect(NpcConfig.NPCEffect, this);
|
| | | }
|
| | |
|
| | | // 开始异步加载表现层
|
| | | InstanceResourcesLoader.AsyncLoadNpc(NpcConfig.NPCID, OnPrefabLoadFinished);
|
| | | }
|
| | |
|
| | | protected override void OnUnit()
|
| | |
| | | protected Transform m_Root = null;
|
| | | public Transform Root { get { return m_Root; } }
|
| | |
|
| | | /// <summary>
|
| | | /// 如果有,杀死这个npc的角色服务器实例ID
|
| | | /// </summary>
|
| | | private uint m_KillServerInstID;
|
| | | public uint KillerServerInstID
|
| | | {
|
| | | get { return m_KillServerInstID; }
|
| | | set { m_KillServerInstID = value; }
|
| | | }
|
| | | public int belongEventID;
|
| | | private Vector3 m_BornPos;
|
| | | public virtual Vector3 BornPos
|
| | | {
|
| | | get { return m_BornPos; }
|
| | | set { m_BornPos = value; }
|
| | | }
|
| | |
|
| | | private Vector3 m_Pos;
|
| | | public Vector3 Pos
|
| | | {
|
| | |
| | | m_SearchType = E_SearchType.Dynamic;
|
| | | TargetActor = target;
|
| | |
|
| | | // if (this is GA_Hero)
|
| | | // {
|
| | | // Debug.Log("开始寻路至目标: " + target);
|
| | | // }
|
| | | // 这里记录坐标的意义
|
| | | // 在可能发生坐标动态变化的目标用以与之前记录坐标比较
|
| | | // 判断是否在寻路过程中需要重新执行寻路
|
| | |
| | | m_SearchType = E_SearchType.Static;
|
| | | MoveTo(_validPos, keepDist);
|
| | | }
|
| | | // if (this is GA_Hero)
|
| | | // {
|
| | | // Debug.Log("开始寻路至点: " + destPos);
|
| | | // }
|
| | | }
|
| | |
|
| | | public void ClearPathFindTarget()
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | // if (this is GA_Hero)
|
| | | // {
|
| | | // Debug.Log("停止寻路");
|
| | | // }
|
| | |
|
| | | TargetActor = null;
|
| | | DestPos = Vector3.zero;
|
| | | m_CornerIndex = 0;
|
| | |
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 如果有,杀死这个npc的角色服务器实例ID
|
| | | /// </summary>
|
| | | private uint m_KillServerInstID;
|
| | | public uint KillerServerInstID
|
| | | {
|
| | | get { return m_KillServerInstID; }
|
| | | set { m_KillServerInstID = value; }
|
| | | }
|
| | | /// <summary>
|
| | | /// 如果有,杀死这个npc使用的死亡飞行配置
|
| | | /// </summary>
|
| | | public int DeadFlyID { get; set; }
|
| | |
| | | /// </summary>
|
| | | protected float m_LastCantAtkedTime;
|
| | |
|
| | | private Vector3 m_BornPos;
|
| | | public virtual Vector3 BornPos
|
| | | {
|
| | | get { return m_BornPos; }
|
| | | set { m_BornPos = value; }
|
| | | }
|
| | |
|
| | | public override int NextAction
|
| | | {
|
| | | get
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public virtual void InitNpcConfig(int npcID)
|
| | | {
|
| | | if (NpcConfig != null && NpcConfig.NPCID == npcID)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | if (npcID > 0)
|
| | | {
|
| | | NpcConfig = NPCConfig.Get(npcID);
|
| | | }
|
| | | }
|
| | |
|
| | | protected override void OnInit(GameNetPackBasic package)
|
| | | {
|
| | | m_LoadDefaultRes = false;
|
| | |
| | | {
|
| | | if (_npc != null)
|
| | | {
|
| | | NPCInteractProcessor.InvokeEvent(E_NpcType.Func, NpcID, _npc.ServerInstID);
|
| | | if (_npc is GA_NpcClientFightNorm)
|
| | | {
|
| | | NPCInteractProcessor.InvokeEvent(E_NpcType.Func, NpcID, _npc.ServerInstID);
|
| | | }
|
| | | }
|
| | | }
|
| | | Clear();
|
| | |
| | | private Dictionary<int, uint> m_TriggerIDToMissionIDDict = new Dictionary<int, uint>(); |
| | | private Dictionary<int, TriggerHandler> m_TriggerHandlerDict = new Dictionary<int, TriggerHandler>(); |
| | | private List<int> m_ReadyRemoveTriggerList = new List<int>(); |
| | | private Dictionary<int, List<GActorNpcFight>> m_EventActorDict = new Dictionary<int, List<GActorNpcFight>>(); |
| | | private Dictionary<int, List<GActor>> m_EventActorDict = new Dictionary<int, List<GActor>>(); |
| | | public bool IsClientFightMode { get; private set; } |
| | | |
| | | private IEnumerator DelayUnTrigger(int id) |
| | |
| | | } |
| | | } |
| | | |
| | | public void NpcBorn(int eventID, GActorNpcFight npc) |
| | | public void NpcBorn(int eventID, GActor npc) |
| | | { |
| | | if (!m_EventActorDict.ContainsKey(eventID)) |
| | | { |
| | | m_EventActorDict.Add(eventID, new List<GActorNpcFight>()); |
| | | m_EventActorDict.Add(eventID, new List<GActor>()); |
| | | } |
| | | |
| | | if (!m_EventActorDict[eventID].Contains(npc)) |
| | |
| | | } |
| | | } |
| | | |
| | | public void NpcDead(int eventID, GActorNpcFight npc) |
| | | public void NpcDead(int eventID, GActor npc, int npcID) |
| | | { |
| | | if (eventID < 0 || npc == null) |
| | | { |
| | |
| | | var _eventHandler = GetEventHandler(eventID) as EventRefreshNPCHandler; |
| | | if (_eventHandler != null) |
| | | { |
| | | _eventHandler.NpcDead(npc.NpcConfig.NPCID); |
| | | _eventHandler.NpcDead(npcID); |
| | | } |
| | | |
| | | if (m_EventActorDict.ContainsKey(eventID)) |
| | |
| | | return _targetPos; |
| | | } |
| | | |
| | | public void TriggerTest(int triggerID) |
| | | { |
| | | SnxxzGame.Instance.StartCoroutine(DelayTrigger(99999999, triggerID)); |
| | | } |
| | | |
| | | private IEnumerator DelayTrigger(uint missionID, int triggerID) |
| | | { |
| | | // ID为0, 约定为清空触发 |
| | |
| | | if (m_RefreshCount >= 0 && m_RefreshCount < m_Evt.monsters.Length) |
| | | { |
| | | var _data = m_Evt.monsters[m_RefreshCount]; |
| | | var _npc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightNorm>(_data.npcID, E_ActorGroup.Enemy); |
| | | var _npcConfig = NPCConfig.Get((int)_data.npcID); |
| | | GActor _npc = null; |
| | | if (_npcConfig.NPCType == (int)E_NpcType.Collect) |
| | | { |
| | | _npc = GAMgr.Instance.ReqClntNoFightNpc<GA_NpcClientCollect>(_data.npcID, E_ActorGroup.FuncNpc); |
| | | } |
| | | else |
| | | { |
| | | _npc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightNorm>(_data.npcID, E_ActorGroup.Enemy); |
| | | } |
| | | _npc.BornPos = _npc.Pos = _data.position; |
| | | _npc.belongEventID = m_Evt.id; |
| | | ClientSceneManager.Instance.NpcBorn(m_Evt.id, _npc); |
| | |
| | | { |
| | | foreach (var _data in m_Evt.monsters) |
| | | { |
| | | var _npc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightNorm>(_data.npcID, E_ActorGroup.Enemy); |
| | | var _npcConfig = NPCConfig.Get((int)_data.npcID); |
| | | GActor _npc = null; |
| | | if (_npcConfig.NPCType == (int)E_NpcType.Collect) |
| | | { |
| | | _npc = GAMgr.Instance.ReqClntNoFightNpc<GA_NpcClientCollect>(_data.npcID, E_ActorGroup.FuncNpc); |
| | | } |
| | | else |
| | | { |
| | | _npc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightNorm>(_data.npcID, E_ActorGroup.Enemy); |
| | | } |
| | | _npc.BornPos = _npc.Pos = _data.position; |
| | | _npc.belongEventID = m_Evt.id; |
| | | ClientSceneManager.Instance.NpcBorn(m_Evt.id, _npc); |
| | |
| | | m_Step = 11; |
| | | GA_Hero.s_MapSwitching = true; |
| | | _hero.StopPathFind(); |
| | | _hero.Behaviour.StopHandupAI(true); |
| | | startPoint = i; |
| | | if (i == 0) |
| | | { |
| | |
| | | public int AuctionTaxrate3 = 0;//仙盟拍品个人税率
|
| | |
|
| | | public int MaxFocusCount = 10;//最大可关注数量
|
| | | public int ExtensionTime = 0;//延长时间(秒)
|
| | | private int selectedGenreNow = 0;
|
| | | public int SelectedGenreNow//当前选择的页签
|
| | | {
|
| | |
| | | }
|
| | | public override void Init()
|
| | | {
|
| | | var funconfig = FuncConfigConfig.Get("AuctionHouse").Numerical5; |
| | | MaxFocusCount = int.Parse(funconfig);
|
| | | var funconfig = FuncConfigConfig.Get("AuctionHouse"); |
| | | MaxFocusCount = int.Parse(funconfig.Numerical5);
|
| | | ExtensionTime = int.Parse(funconfig.Numerical4);
|
| | | var AuctionTaxrateConfig = FuncConfigConfig.Get("AuctionTaxrate");
|
| | | AuctionTaxrate1 = int.Parse(AuctionTaxrateConfig.Numerical1);
|
| | | AuctionTaxrate2 = int.Parse(AuctionTaxrateConfig.Numerical2);
|
| | |
| | | } |
| | | |
| | | protected override void OnPreClose() |
| | | { |
| | | CloseImmediately();
|
| | | {
|
| | | if (!WindowCenter.Instance.IsOpen<MainInterfaceWin>())
|
| | | {
|
| | | WindowCenter.Instance.Open<MainInterfaceWin>();
|
| | |
| | | public int ItemID;//物品ID
|
| | | public int ItemCount;
|
| | | public string TimeStr;//上架时间 yyyy-MM-dd hh:mm:ss
|
| | | public DateTime Time;
|
| | | public DateTime Time;//上架时间
|
| | | public DateTime TimeEnd;//最后上架时间
|
| | | public int BidderPrice;//竞拍玩家出价
|
| | | public string UserData;//自定义数据
|
| | | public string FamilyPlayerIDInfo;//可获得收益的仙盟玩家ID信息
|
| | |
| | | PlayerDatas.Instance.fairyData.OnRefreshFairyMine += OnRefreshFairyMine;
|
| | | }
|
| | |
|
| | | |
| | |
|
| | | public override void UnInit()
|
| | | {
|
| | |
|
| | |
| | |
|
| | | private void OnRefreshFairyMine()//用于被提出仙盟清除仙盟拍品
|
| | | {
|
| | | if (!PlayerDatas.Instance.fairyData.HasFairy)
|
| | | if (PlayerDatas.Instance.baseData.FamilyId == 0)
|
| | | {
|
| | | FamilyAuctionItemDic.Clear();
|
| | | if (ClearFamilyAuctionUpdate != null)
|
| | |
| | | playerAuctionItemClass.ItemCount = (int)PlayerAuctionItem.ItemCount;
|
| | | playerAuctionItemClass.TimeStr = PlayerAuctionItem.AddTime;
|
| | | playerAuctionItemClass.Time = DateTime.Parse(PlayerAuctionItem.AddTime);
|
| | | var str = UIHelper.ServerStringTrim(PlayerAuctionItem.BiddingTime);
|
| | | if (!str.Equals(string.Empty))
|
| | | {
|
| | | playerAuctionItemClass.TimeEnd = DateTime.Parse(str);
|
| | | }
|
| | | playerAuctionItemClass.BidderPrice = PlayerAuctionItem.BidderPrice;
|
| | | playerAuctionItemClass.UserData = PlayerAuctionItem.UserData;
|
| | | var index = FullServiceAuctionList.FindIndex((x) => { return x.ItemGUID == PlayerAuctionItem.ItemGUID; });
|
| | |
| | | {
|
| | | FullServiceAuctionList.InsertRange(FullServiceAuctionList.Count - 1, fullServiceAuctionList);
|
| | | }
|
| | | |
| | |
|
| | | }
|
| | | else if (info.QueryDir == 2)//往前查询
|
| | | {
|
| | |
| | | FullServiceAuctionList.InsertRange(FullServiceAuctionList.Count - 1, fullServiceAuctionList);
|
| | | }
|
| | | LocationQuery = true;
|
| | | WindowCenter.Instance.Open<AuctionHouseWin>(true,0);//定位查询
|
| | | WindowCenter.Instance.Open<AuctionHouseWin>(true, 0);//定位查询
|
| | | }
|
| | |
|
| | | if (FullServiceAuctionUpdate != null)
|
| | |
| | | playerAuctionItemClass.ItemCount = (int)PlayerAuctionItem.ItemCount;
|
| | | playerAuctionItemClass.TimeStr = PlayerAuctionItem.AddTime;
|
| | | playerAuctionItemClass.Time = DateTime.Parse(PlayerAuctionItem.AddTime);
|
| | | var str = UIHelper.ServerStringTrim(PlayerAuctionItem.BiddingTime);
|
| | | if (!str.Equals(string.Empty))
|
| | | {
|
| | | playerAuctionItemClass.TimeEnd = DateTime.Parse(str);
|
| | | }
|
| | | playerAuctionItemClass.BidderPrice = PlayerAuctionItem.BidderPrice;
|
| | | playerAuctionItemClass.UserData = PlayerAuctionItem.UserData;
|
| | | if (PlayerAuctionItemInfoDic.ContainsKey(playerAuctionItemClass.ItemGUID))
|
| | |
| | | familyAuctionItemClass.ItemCount = (int)FamilyAuctionItem.ItemCount;
|
| | | familyAuctionItemClass.TimeStr = FamilyAuctionItem.AddTime;
|
| | | familyAuctionItemClass.Time = DateTime.Parse(FamilyAuctionItem.AddTime);
|
| | | var str = UIHelper.ServerStringTrim(FamilyAuctionItem.BiddingTime);
|
| | | if (!str.Equals(string.Empty))
|
| | | {
|
| | | familyAuctionItemClass.TimeEnd = DateTime.Parse(str);
|
| | | }
|
| | | familyAuctionItemClass.BidderPrice = FamilyAuctionItem.BidderPrice;
|
| | | familyAuctionItemClass.UserData = FamilyAuctionItem.UserData;
|
| | | familyAuctionItemClass.FamilyPlayerIDInfo = FamilyAuctionItem.FamilyPlayerIDInfo;
|
| | |
| | | playerAuctionItemClass.ItemCount = (int)AttentionAuctionItem.ItemCount;
|
| | | playerAuctionItemClass.TimeStr = AttentionAuctionItem.AddTime;
|
| | | playerAuctionItemClass.Time = DateTime.Parse(AttentionAuctionItem.AddTime);
|
| | | var str = UIHelper.ServerStringTrim(AttentionAuctionItem.BiddingTime);
|
| | | if (!str.Equals(string.Empty))
|
| | | {
|
| | | playerAuctionItemClass.TimeEnd = DateTime.Parse(str);
|
| | | }
|
| | | playerAuctionItemClass.BidderPrice = AttentionAuctionItem.BidderPrice;
|
| | | playerAuctionItemClass.UserData = AttentionAuctionItem.UserData;
|
| | | if (AttentionAuctionItemDic.ContainsKey(playerAuctionItemClass.ItemGUID))
|
| | |
| | | {
|
| | | FamilyAuctionItem.TimeStr = RefreshAuctionItem.AddTime;
|
| | | FamilyAuctionItem.Time = DateTime.Parse(RefreshAuctionItem.AddTime);
|
| | | var str = UIHelper.ServerStringTrim(RefreshAuctionItem.BiddingTime);
|
| | | if (!str.Equals(string.Empty))
|
| | | {
|
| | | FamilyAuctionItem.TimeEnd = DateTime.Parse(str);
|
| | | }
|
| | | FamilyAuctionItem.BidderID = (int)RefreshAuctionItem.BidderID;
|
| | | FamilyAuctionItem.BidderPrice = (int)RefreshAuctionItem.BidderPrice;
|
| | | FamilyAuctionItemDic[RefreshAuctionItem.ItemGUID] = FamilyAuctionItem;
|
| | |
| | | BiddingItemClass.FamilyID = (int)BiddingItem.FamilyID;
|
| | | BiddingItemClass.TimeStr = BiddingItem.AddTime;
|
| | | BiddingItemClass.Time = DateTime.Parse(BiddingItem.AddTime);
|
| | | var str = UIHelper.ServerStringTrim(BiddingItem.BiddingTime);
|
| | | if (!str.Equals(string.Empty))
|
| | | {
|
| | | BiddingItemClass.TimeEnd = DateTime.Parse(str);
|
| | | }
|
| | | BiddingItemClass.BidderPrice = BiddingItem.BidderPrice;//竞拍玩家出价
|
| | | BiddingItemClass.BidderID = (int)BiddingItem.BidderID;//竞拍玩家ID,也就是当前最高竞价玩家ID
|
| | | BiddingItemClass.UserData = BiddingItem.UserData;
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | private void SetRedPoint()
|
| | | private void SetRedPoint()
|
| | | {
|
| | | int GetDayOfYear = DateTime.Now.DayOfYear;
|
| | | int GetDayOfYear = DateTime.Now.DayOfYear;
|
| | | string strKey = "AuctionRedPoint" + PlayerDatas.Instance.baseData.PlayerID;
|
| | | int day = LocalSave.GetInt(strKey);
|
| | | if (day != GetDayOfYear)
|
| | |
| | | return;
|
| | | }
|
| | | AuctionItem = auctionItem;
|
| | | var jobBool = itemConfig.JobLimit == PlayerDatas.Instance.baseData.Job;
|
| | | var equipNeedBool = auctionHelpModel.WhetherEquipped(itemConfig.LV, itemConfig.EquipPlace);
|
| | | if (!equipNeedBool)//是否需要
|
| | | if (!equipNeedBool && jobBool)//是否需要
|
| | | {
|
| | | m_NeedImage.SetActive(true);
|
| | | }
|
| | |
| | | m_EquipmentScoreObj.SetActive(true);
|
| | | m_Score.text = cellModel.score.ToString();
|
| | | var equipScore = auctionHelpModel.GetEquipScore(itemConfig.LV, itemConfig.EquipPlace);
|
| | | m_StateIcon.SetActive(cellModel.score > equipScore);
|
| | | m_DeclineIcon.SetActive(equipScore > cellModel.score);
|
| | | m_StateIcon.SetActive(cellModel.score > equipScore && jobBool);
|
| | | m_DeclineIcon.SetActive(equipScore > cellModel.score && jobBool);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | }
|
| | | if (m_BiddingButton.interactable && needMoney >= maxMoney && AuctionItem.BuyoutPrice != 0)
|
| | | {
|
| | | m_PriceButton.interactable = false;
|
| | | m_PriceImage.gray = true;
|
| | | m_BiddingButton.interactable = false;
|
| | | m_BiddingImage.gray = true;
|
| | | }
|
| | | int seconds = AuctionItem.FamilySaleMinutes * 60 - ((int)timeSpan.TotalSeconds - AuctionItem.NoticeSaleMinutes * 60);
|
| | | m_TimeText.text = Language.Get("PMH_04", TimeUtility.SecondsToHMS(seconds));
|
| | |
| | | return;
|
| | | }
|
| | | AuctionItem = auctionItem;
|
| | | var jobBool = itemConfig.JobLimit == PlayerDatas.Instance.baseData.Job;
|
| | | var equipNeedBool = auctionHelpModel.WhetherEquipped(itemConfig.LV, itemConfig.EquipPlace);
|
| | | if (!equipNeedBool)
|
| | | if (!equipNeedBool && jobBool)
|
| | | {
|
| | | m_NeedImage.SetActive(true);
|
| | | }
|
| | |
| | | m_EquipmentScoreObj.SetActive(true);
|
| | | m_Score.text = cellModel.score.ToString();
|
| | | var equipScore = auctionHelpModel.GetEquipScore(itemConfig.LV, itemConfig.EquipPlace);
|
| | | m_StateIcon.SetActive(cellModel.score > equipScore);
|
| | | m_DeclineIcon.SetActive(equipScore> cellModel.score);
|
| | | m_StateIcon.SetActive(cellModel.score > equipScore && jobBool);
|
| | | m_DeclineIcon.SetActive(equipScore> cellModel.score && jobBool);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | if (AuctionItem != null && FullServiceAuction != null)
|
| | | {
|
| | | var timeNow = TimeUtility.ServerNow;
|
| | | TimeSpan timeSpan = timeNow - FullServiceAuction.Time;
|
| | | TimeSpan timeSpan = timeNow - FullServiceAuction.Time; |
| | | int minute = (int)timeSpan.TotalMinutes;
|
| | |
|
| | | DateTime extensionTime = FullServiceAuction.TimeEnd.AddSeconds(auctionHelpModel.ExtensionTime);
|
| | | if (minute < AuctionItem.NoticeSaleMinutes)//预热中
|
| | | {
|
| | | if (m_PriceButton.interactable)
|
| | |
| | | int seconds = AuctionItem.NoticeSaleMinutes * 60 - (int)timeSpan.TotalSeconds;
|
| | | m_TimeText.text = Language.Get("PMH_03", TimeUtility.SecondsToHMS(seconds));
|
| | | }
|
| | | else if (minute >= AuctionItem.NoticeSaleMinutes && minute <= AuctionItem.WorldSaleMinutes)//拍卖中
|
| | | else if (minute <= AuctionItem.WorldSaleMinutes)//拍卖中
|
| | | {
|
| | | var maxMoney = AuctionItem.BuyoutPrice * FullServiceAuction.ItemCount;
|
| | | var needMoney = 0;
|
| | |
| | | }
|
| | | if (m_BiddingButton.interactable && needMoney >= maxMoney && AuctionItem.BuyoutPrice != 0)
|
| | | {
|
| | | m_PriceButton.interactable = false;
|
| | | m_PriceImage.gray = true;
|
| | | m_BiddingButton.interactable = false;
|
| | | m_BiddingImage.gray = true;
|
| | | }
|
| | | int seconds = AuctionItem.WorldSaleMinutes * 60 - ((int)timeSpan.TotalSeconds - AuctionItem.NoticeSaleMinutes * 60);
|
| | | m_TimeText.text = Language.Get("PMH_04", TimeUtility.SecondsToHMS(seconds));
|
| | | }
|
| | | else if(timeNow< extensionTime)
|
| | | {
|
| | | m_TimeText.text = Language.Get("PMH_04",0);
|
| | | TimeSpan timeSpan2 = extensionTime - timeNow;
|
| | | int timeSeconds = (int)timeSpan2.TotalSeconds;
|
| | | DebugEx.LogError(Language.Get("PMH_04", TimeUtility.SecondsToHMS(timeSeconds)));
|
| | | }
|
| | | }
|
| | | }
|
| | | } |
| | |
| | | DebugEx.LogError("拍卖物品表没有找到该物品,物品ID为" + myAuction.ItemID);
|
| | | return;
|
| | | }
|
| | | var jobBool = itemConfig.JobLimit == PlayerDatas.Instance.baseData.Job;
|
| | | AuctionItem = auctionItem;
|
| | | m_Income.text = 0.ToString();
|
| | | if (myAuction.BidderPrice == 0)
|
| | |
| | | int auctionTaxrate = Mathf.CeilToInt((float)(auctionHelpModel.
|
| | | AuctionTaxrate2 * myAuction.BidderPrice * myAuction.ItemCount) / 100);//仙盟税收
|
| | | int number = myAuction.BidderPrice * myAuction.ItemCount - auctionTaxrate;
|
| | | int incomeMax = number - Mathf.CeilToInt((float)(number * auctionHelpModel.AuctionTaxrate3) / 100);
|
| | | int incomeMax =Mathf.CeilToInt((float)(number * auctionHelpModel.AuctionTaxrate3) / 100);
|
| | | int incomeNumber = Mathf.FloorToInt((float)number / myAuction.FamilyPlayerIDList.Count);
|
| | | if (incomeMax >= incomeNumber)
|
| | | {
|
| | |
| | | m_EquipmentScoreObj.SetActive(true);
|
| | | m_Score.text = cellModel.score.ToString();
|
| | | var equipScore = auctionHelpModel.GetEquipScore(itemConfig.LV, itemConfig.EquipPlace);
|
| | | m_StateIcon.SetActive(cellModel.score > equipScore);
|
| | | m_DeclineIcon.SetActive(equipScore > cellModel.score);
|
| | | m_StateIcon.SetActive(cellModel.score > equipScore && jobBool);
|
| | | m_DeclineIcon.SetActive(equipScore > cellModel.score && jobBool);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | return;
|
| | | }
|
| | | AuctionItem = auctionItem;
|
| | | var jobBool = itemConfig.JobLimit == PlayerDatas.Instance.baseData.Job;
|
| | | var equipNeedBool = auctionHelpModel.WhetherEquipped(itemConfig.LV, itemConfig.EquipPlace);
|
| | | if (!equipNeedBool)//是否需要
|
| | | if (!equipNeedBool && jobBool)//是否需要
|
| | | {
|
| | | m_NeedImage.SetActive(true);
|
| | | }
|
| | |
| | | m_EquipmentScoreObj.SetActive(true);
|
| | | m_Score.text = cellModel.score.ToString();
|
| | | var equipScore = auctionHelpModel.GetEquipScore(itemConfig.LV, itemConfig.EquipPlace);
|
| | | m_StateIcon.SetActive(cellModel.score > equipScore);
|
| | | m_DeclineIcon.SetActive(equipScore > cellModel.score);
|
| | | m_StateIcon.SetActive(cellModel.score > equipScore && jobBool);
|
| | | m_DeclineIcon.SetActive(equipScore > cellModel.score && jobBool);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | }
|
| | | if (m_BiddingButton.interactable && needMoney >= maxMoney && AuctionItem.BuyoutPrice != 0)
|
| | | {
|
| | | m_PriceButton.interactable = false;
|
| | | m_PriceImage.gray = true;
|
| | | m_BiddingButton.interactable = false;
|
| | | m_BiddingImage.gray = true;
|
| | | }
|
| | | if (!m_BiddingTextObj.activeSelf)
|
| | | {
|
| | |
| | | |
| | | protected override void OnAfterOpen() |
| | | { |
| | | model.AttentionAuctionItemUdate += Reset; |
| | | model.ClearAuctionUpdate += Reset;
|
| | | model.AttentionAuctionItemUdate += ResetUpdate; |
| | | model.ClearAuctionUpdate += ResetUpdate;
|
| | | model.RefreshAuctionItemUpdate -= AuctionItemUpdate;//刷新 |
| | | model.FamilyAuctionItemUpdate += Reset; |
| | | model.FamilyAuctionItemUpdate += ResetUpdate; |
| | | model.AddAuctionItemInfoUpdate += AddAuctionItemInfoUpdate; |
| | | model.BiddingItemInfoUpdate += ResetUpdate; |
| | | }
|
| | |
|
| | |
|
| | |
|
| | | protected override void OnPreClose() |
| | | {
|
| | | model.AttentionAuctionItemUdate -= Reset;
|
| | | model.ClearAuctionUpdate -= Reset;
|
| | | model.AttentionAuctionItemUdate -= ResetUpdate;
|
| | | model.ClearAuctionUpdate -= ResetUpdate;
|
| | | model.RefreshAuctionItemUpdate -= AuctionItemUpdate;//刷新
|
| | | model.FamilyAuctionItemUpdate -= Reset; |
| | | model.FamilyAuctionItemUpdate -= ResetUpdate;
|
| | | model.AddAuctionItemInfoUpdate -= AddAuctionItemInfoUpdate;
|
| | | model.BiddingItemInfoUpdate -= ResetUpdate; |
| | | }
|
| | |
|
| | |
|
| | |
| | | }
|
| | | #endregion |
| | |
|
| | | private void Reset()
|
| | | private void AddAuctionItemInfoUpdate()
|
| | | {
|
| | | AuctionInquiry.Instance.SendQueryAttentionAuctionItem();//查询拍卖行的关注物品
|
| | | ResetUpdate();
|
| | | }
|
| | | private void ResetUpdate()
|
| | | {
|
| | | GetMyFocusList(); |
| | | ListSotr();
|
| | |
| | | itemCell.Init(cellModel);
|
| | | itemCell.button.SetListener(() =>
|
| | | {
|
| | | ItemAttrData attrData = new ItemAttrData(itemConfig.ID, true, (ulong)1);
|
| | | ItemAttrData attrData = new ItemAttrData(itemConfig.ID, true, (ulong)auctionRecord.ItemCount);
|
| | | itemTipsModel.SetItemTipsModel(attrData);
|
| | | });
|
| | | textName.text = itemConfig.ItemName;
|
| | |
| | | [SerializeField] Image m_IconFrame; |
| | | [SerializeField] RectTransform m_LockContainer; |
| | | [SerializeField] Text m_UnLockCondition; |
| | | [SerializeField] Text m_Star; |
| | | |
| | | EquipModel model { get { return ModelCenter.Instance.GetModel<EquipModel>(); } } |
| | | PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } } |
| | | ItemTipsModel tipModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } |
| | | EquipStarModel starModel { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } } |
| | | |
| | | int level = 0; |
| | | int place = 0; |
| | |
| | | if (unLocked) |
| | | { |
| | | m_LockContainer.gameObject.SetActive(false); |
| | | m_SlotName.gameObject.SetActive(string.IsNullOrEmpty(slot.equip.value)); |
| | | |
| | | var hasEquip = string.IsNullOrEmpty(slot.equip.value); |
| | | m_SlotName.gameObject.SetActive(!hasEquip); |
| | | } |
| | | else |
| | | { |
| | |
| | | m_SlotName.gameObject.SetActive(true); |
| | | m_Icon.SetSprite(GetDefaultEquipIcon(slot.equipPosition.y)); |
| | | m_IconFrame.SetSprite("ItemNormal_a"); |
| | | |
| | | m_Star.gameObject.SetActive(false); |
| | | } |
| | | else |
| | | { |
| | | m_SlotName.gameObject.SetActive(false); |
| | | m_Icon.SetSprite(equip.config.IconKey); |
| | | m_IconFrame.SetItemBackGround(equip.config.ItemColor); |
| | | |
| | | var starLevel = starModel.GetEquipStarLevel(slot.equipPosition); |
| | | m_Star.gameObject.SetActive(true); |
| | | m_Star.text = starLevel >= 1 ? string.Format("{0}星", starLevel) : ""; |
| | | } |
| | | } |
| | | } |
| | |
| | | m_StarToggles[1].SetActive(maxLevel >= 3); |
| | | m_StarToggles[0].SetActive(true); |
| | | |
| | | if (eightSuitLevel < 0) |
| | | { |
| | | m_StarToggles[0].Select(); |
| | | } |
| | | else if (eightSuitLevel < 3) |
| | | { |
| | | m_StarToggles[1].Select(); |
| | | } |
| | | else if (eightSuitLevel < 6) |
| | | { |
| | | m_StarToggles[2].Select(); |
| | | } |
| | | else |
| | | if (eightSuitLevel >= 6 && maxLevel >= 9) |
| | | { |
| | | m_StarToggles[3].Select(); |
| | | } |
| | | else if (eightSuitLevel >= 3 && maxLevel >= 6) |
| | | { |
| | | m_StarToggles[2].Select(); |
| | | } |
| | | else if (eightSuitLevel >= 0 && maxLevel >= 3) |
| | | { |
| | | m_StarToggles[1].Select(); |
| | | } |
| | | else |
| | | { |
| | | m_StarToggles[0].Select(); |
| | | } |
| | | |
| | | } |
| | | |
| | | public void DisplaySuitPlaces(List<int> places) |
| | |
| | | [SerializeField] Text m_EquipPlaceName;
|
| | | [SerializeField] Transform m_ContainerSelect;
|
| | | [SerializeField] ItemCell m_Item;
|
| | | [SerializeField] Text m_EquipStar;
|
| | | [SerializeField] Text m_ItemName;
|
| | | [SerializeField] TinyGem[] m_TinyGems;
|
| | | [SerializeField] Button m_Select;
|
| | |
| | | m_Item.Init(item);
|
| | | m_ItemName.text = item.config.ItemName;
|
| | | m_ItemName.color = UIHelper.GetUIColor(item.config.ItemColor, true);
|
| | |
|
| | | var maxStar = EquipStarModel.GetMaxStarLevel(item.config.ItemColor, item.config.LV);
|
| | | var starLevel = Mathf.Min(maxStar, equipStarModel.GetEquipStarLevel(new Int2(equipLevel, equipPlace)));
|
| | | m_EquipStar.text = starLevel == 0 ? string.Empty : Language.Get("EquipStarLevel", starLevel);
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | {
|
| | | [SerializeField] ScrollerController m_Controller;
|
| | | [SerializeField] ItemCell m_EquipItem;
|
| | | [SerializeField] Text m_EquipStar;
|
| | | [SerializeField] EquipGemHoleBehaviour[] m_GemHoles;
|
| | | |
| | | EquipGemModel model
|
| | |
| | | |
| | | EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } } |
| | | PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } } |
| | | EquipStarModel equipStarModel { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } } |
| | | |
| | | #region Built-in
|
| | | protected override void BindController()
|
| | |
| | | itemTipsModel.SetItemTipsModel(PackType.Item, equipGuid, false, true);
|
| | | itemTipsModel.ShowUICtrl();
|
| | | });
|
| | |
|
| | | var maxStar = EquipStarModel.GetMaxStarLevel(equip.config.ItemColor, equip.config.LV);
|
| | | var starLevel = Mathf.Min(maxStar, equipStarModel.GetEquipStarLevel(equipPosition));
|
| | | m_EquipStar.text = starLevel == 0 ? string.Empty : Language.Get("EquipStarLevel", starLevel);
|
| | | }
|
| | |
|
| | | for (int i = 0; i < m_GemHoles.Length; i++)
|
| | |
| | | {3,new LogicString () }, |
| | | {4,new LogicString () }, |
| | | {5,new LogicString () }, |
| | | {6,new LogicString () }, |
| | | }; |
| | | |
| | | public readonly LogicInt specialMaterial = new LogicInt(); |
| | | public readonly LogicInt starResultEffect = new LogicInt(); |
| | | |
| | | Dictionary<int, EquipSetStar> equipStars = new Dictionary<int, EquipSetStar>(); |
| | |
| | | return; |
| | | } |
| | | |
| | | var specialMaterial = packModel.GetItemByGuid(materials[6].value); |
| | | if (config.CostItemDict.x > 0 && (specialMaterial == null || specialMaterial.config.ID != config.CostItemDict.x)) |
| | | if (config.CostItemDict.x > 0 && packModel.GetItemCountByID(PackType.Item, config.CostItemDict.x) < config.CostItemDict.y) |
| | | { |
| | | SysNotifyMgr.Instance.ShowTip("StarLevelUp2", config.CostItemDict.x); |
| | | return; |
| | |
| | | } |
| | | } |
| | | |
| | | for (var i = 1; i <= 6; i++) |
| | | for (var i = 1; i <= 5; i++) |
| | | { |
| | | var placedMaterialGuid = GetMaterialLogicStringByIndex(i).value; |
| | | var materialItem = packModel.GetItemByGuid(placedMaterialGuid); |
| | |
| | | if (config.CostItemDict.x > 0) |
| | | { |
| | | var itemId = config.CostItemDict.x; |
| | | var items = packModel.GetItemsById(PackType.Item, itemId); |
| | | materials[6].value = items.IsNullOrEmpty() ? string.Empty : items[0].guid; |
| | | specialMaterial.value = itemId; |
| | | } |
| | | else |
| | | { |
| | | materials[6].value = string.Empty; |
| | | specialMaterial.value = 0; |
| | | } |
| | | } |
| | | else |
| | |
| | | DisplayBaseInfo(this.isUnLocked); |
| | | DisplayDynamicInfo(true); |
| | | |
| | | m_AddMaterial.SetListener(OpenCandidateMaterials); |
| | | m_AddMaterial.SetListener(AddMaterials); |
| | | m_RemoveMaterial.SetListener(RemoveMaterial); |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | private void OpenCandidateMaterials() |
| | | private void AddMaterials() |
| | | { |
| | | model.operateMaterialIndex.value = m_Index; |
| | | } |
| New file |
| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: 第二世界 |
| | | // [ Date ]: Tuesday, March 26, 2019 |
| | | //-------------------------------------------------------- |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | using UnityEngine.UI; |
| | | |
| | | namespace Snxxz.UI |
| | | { |
| | | |
| | | public class EquipStarUpgradeSpecialMaterialBehaviour : MonoBehaviour |
| | | { |
| | | [SerializeField] RectTransform m_Empty; |
| | | [SerializeField] ItemBehaviour m_Item; |
| | | [SerializeField] Button m_AddMaterial; |
| | | [SerializeField] RectTransform m_Locked; |
| | | |
| | | PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } } |
| | | |
| | | bool isUnLocked = false; |
| | | int itemId = 0; |
| | | |
| | | public void Display(bool isUnLocked, int itemId) |
| | | { |
| | | this.isUnLocked = isUnLocked; |
| | | this.itemId = itemId; |
| | | |
| | | DisplayBaseInfo(); |
| | | m_AddMaterial.SetListener(AddMaterials); |
| | | } |
| | | |
| | | private void DisplayBaseInfo() |
| | | { |
| | | m_Locked.gameObject.SetActive(!isUnLocked); |
| | | if (isUnLocked) |
| | | { |
| | | var own = packModel.GetItemCountByID(PackType.Item, itemId); |
| | | if (own > 0) |
| | | { |
| | | m_Item.gameObject.SetActive(true); |
| | | m_Item.SetItem(itemId, 1); |
| | | |
| | | m_Empty.gameObject.SetActive(false); |
| | | m_AddMaterial.gameObject.SetActive(false); |
| | | } |
| | | else |
| | | { |
| | | m_Item.gameObject.SetActive(false); |
| | | m_Empty.gameObject.SetActive(true); |
| | | m_AddMaterial.gameObject.SetActive(true); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | m_Empty.gameObject.SetActive(true); |
| | | m_AddMaterial.gameObject.SetActive(false); |
| | | m_Item.gameObject.SetActive(false); |
| | | } |
| | | } |
| | | |
| | | private void AddMaterials() |
| | | { |
| | | ModelCenter.Instance.GetModel<GetItemPathModel>().SetChinItemModel(itemId); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 739e6ee2c7736cf4aaaeacb69f7fd362 |
| | | timeCreated: 1553586646 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| | |
| | | [SerializeField] Button m_StarUpgrade; |
| | | [SerializeField] RectTransform m_MaxStarLevelHint; |
| | | [SerializeField] EquipStarMaterialCandidateWidget m_MaterialCandidateWidget; |
| | | [SerializeField] UIEffect m_EffectSuccessfu1; |
| | | [SerializeField] UIEffect m_EffectSuccessfu2; |
| | | [SerializeField] UIEffect m_EffectStarFill; |
| | | [SerializeField] UIEffect m_EffectSuccess; |
| | | [SerializeField] UIEffect m_EffectFailed; |
| | | |
| | | List<EquipStarLevelSelectBehaviour> levelBehaviours = new List<EquipStarLevelSelectBehaviour>(); |
| | |
| | | |
| | | if (!upgradable || isMax) |
| | | { |
| | | for (var i = 1; i <= 6; i++) |
| | | for (var i = 1; i <= 5; i++) |
| | | { |
| | | m_Materials[i].Display(false); |
| | | } |
| | | |
| | | m_Materials.materialSpecial.Display(false, 0); |
| | | } |
| | | else |
| | | { |
| | |
| | | m_Materials[i].Display(starConfig != null && i <= starConfig.CostEquipCnt); |
| | | } |
| | | |
| | | m_Materials[6].Display(starConfig != null && starConfig.CostItemDict.x != 0); |
| | | m_Materials.materialSpecial.Display(starConfig != null && starConfig.CostItemDict.x != 0, starConfig.CostItemDict.x); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | private void PlayStarUpgradeEffect(int result) |
| | | { |
| | | if (result == 1) |
| | | if (result == 1 || result == -1) |
| | | { |
| | | StopCoroutine("Co_PlaySuccessEffect"); |
| | | StopCoroutine("Co_PlayFailedEffect"); |
| | | } |
| | | |
| | | if (result == 1) |
| | | { |
| | | StartCoroutine("Co_PlaySuccessEffect"); |
| | | } |
| | | else if (result == -1) |
| | | { |
| | | PlayFailedEffect(); |
| | | StartCoroutine("Co_PlayFailedEffect"); |
| | | } |
| | | } |
| | | |
| | | IEnumerator Co_PlaySuccessEffect() |
| | | { |
| | | m_EffectSuccessfu1.Play(); |
| | | yield return WaitingForSecondConst.WaitMS500; |
| | | m_EffectSuccessfu2.Play(); |
| | | m_EffectStarFill.Play(); |
| | | yield return WaitingForSecondConst.WaitMS700; |
| | | m_EffectSuccess.Play(); |
| | | } |
| | | |
| | | private void PlayFailedEffect() |
| | | IEnumerator Co_PlayFailedEffect() |
| | | { |
| | | m_EffectStarFill.Play(); |
| | | yield return WaitingForSecondConst.WaitMS700; |
| | | m_EffectFailed.Play(); |
| | | } |
| | | |
| | |
| | | public EquipStarUpgradeMaterialBehaviour m_Material3; |
| | | public EquipStarUpgradeMaterialBehaviour m_Material4; |
| | | public EquipStarUpgradeMaterialBehaviour m_Material5; |
| | | public EquipStarUpgradeMaterialBehaviour m_MaterialSpecial; |
| | | public EquipStarUpgradeSpecialMaterialBehaviour materialSpecial; |
| | | |
| | | public EquipStarUpgradeMaterialBehaviour this[int index] { |
| | | get { |
| | |
| | | return m_Material4; |
| | | case 5: |
| | | return m_Material5; |
| | | case 6: |
| | | return m_MaterialSpecial; |
| | | default: |
| | | return null; |
| | | } |
| | |
| | | public bool isAuction; |
| | | public bool isEquiped; |
| | | |
| | | public int star; |
| | | public int score; |
| | | public int auctionSurplusTime; |
| | | } |
| | |
| | | private static BaseInfo GetBaseInfo(string guid) |
| | | { |
| | | var item = packModel.GetItemByGuid(guid); |
| | | |
| | | var isEquiped = equipModel.GetEquip(new Int2(item.config.LV, item.config.EquipPlace)) == guid; |
| | | var star = isEquiped ? starModel.GetEquipStarLevel(new Int2(item.config.LV, item.config.EquipPlace)) : -1; |
| | | var baseInfo = new BaseInfo() |
| | | { |
| | | itemId = item.itemId, |
| | | isAuction = item.isAuction, |
| | | isEquiped = equipModel.GetEquip(new Int2(item.config.LV, item.config.EquipPlace)) == guid, |
| | | isEquiped = isEquiped, |
| | | score = item.score, |
| | | auctionSurplusTime = item.auctionSurplusTime, |
| | | star = star, |
| | | }; |
| | | |
| | | return baseInfo; |
| | |
| | | |
| | | button.SetListener(() => |
| | | { |
| | | EquipTipUtility.Operate(operateType, this.guid); |
| | | WindowCenter.Instance.Close<EquipTipWin>(); |
| | | EquipTipUtility.Operate(operateType, this.guid); |
| | | }); |
| | | } |
| | | |
| | |
| | | [SerializeField] Image m_Realm; |
| | | [SerializeField] RectTransform m_SurplusTimeContainer; |
| | | [SerializeField] Text m_SurplusTime; |
| | | [SerializeField] Text m_Star; |
| | | |
| | | public void Display(EquipTipUtility.BaseInfo baseInfo) |
| | | { |
| | |
| | | { |
| | | m_Label.gameObject.SetActive(true); |
| | | m_Label.SetSprite("Equiped_a"); |
| | | m_Star.text = string.Format("{0}星", baseInfo.star); |
| | | } |
| | | else if (baseInfo.isAuction) |
| | | { |
| | | m_Label.gameObject.SetActive(true); |
| | | m_Label.SetSprite("Item_Auction_2"); |
| | | m_Star.text = ""; |
| | | } |
| | | else |
| | | { |
| | | m_Star.text = ""; |
| | | m_Label.gameObject.SetActive(false); |
| | | } |
| | | |
| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: 第二世界 |
| | | // [ Date ]: Tuesday, February 19, 2019 |
| | | //-------------------------------------------------------- |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | using UnityEngine.UI; |
| | | |
| | | //--------------------------------------------------------
|
| | | // [Author]: 第二世界
|
| | | // [ Date ]: Tuesday, February 19, 2019
|
| | | //--------------------------------------------------------
|
| | | using UnityEngine;
|
| | | using System.Collections;
|
| | | using UnityEngine.UI;
|
| | |
|
| | | namespace Snxxz.UI
|
| | | { |
| | | |
| | | {
|
| | |
|
| | | public class MainButtonMisc : MonoBehaviour
|
| | | {
|
| | | [SerializeField] Button m_RedBag;//红包入口按钮
|
| | |
| | | CheckSendRedpackBtn();
|
| | | ShowFairyGrabBoss();
|
| | | IsCrossServerOneVsOne();
|
| | | |
| | |
|
| | | RedPacketModel.OnRedBagGetEvent += OnRedBagGet;
|
| | | OSEnvelopeModel.OSRedEnvelopeUpdateEvent += OnRedBagGet;
|
| | | OSEnvelopeModel.OSRedEnvelopeInfoEnvent += OnRedBagGet;
|
| | |
| | | PlayerDatas.Instance.playerDataRefreshEvent += Updatefighting;
|
| | | GA_NpcCollect.OnArrive += OnArriveCollectNPC;
|
| | | GA_NpcCollect.OnLeave += OnLeaveCollectNpc;
|
| | | GA_NpcClientCollect.OnArrive += OnArriveCollectNPC;
|
| | | GA_NpcClientCollect.OnLeave += OnLeaveCollectNpc;
|
| | | wishModel.UpdateWishAwardEvent += UpdateWishAwardImag;
|
| | | purchaseModel.UpdateNewMysticalEvent += UpdateMysticalPurchaseImag;
|
| | | assistModel.UpdateRedpointEvent += UpdateDungeonAssistImag;
|
| | |
| | | fairyGrabBossModel.gotoBossStateUpdate += ShowFairyGrabBoss;
|
| | | ChatTip.OnChatUpEvent += RefreshAdaptiveChat;
|
| | | fairyModel.UpdateFairyRequestEvent += UpdateFairyRequest;
|
| | | } |
| | | }
|
| | | public void OnActived()
|
| | | {
|
| | | RefreshAdaptiveChat();
|
| | | RefreshAdaptiveChat();
|
| | |
|
| | | } |
| | | }
|
| | | public void Unit()
|
| | | {
|
| | | m_CollectBehaviour.Dispose();
|
| | |
| | | {
|
| | | m_CollectBehaviour.Dispose();
|
| | | m_CollectBehaviour.gameObject.SetActive(false);
|
| | | } |
| | | }
|
| | | private void ClickWishAward()
|
| | | {
|
| | | WindowCenter.Instance.Open<WishingGetItemWin>();
|
| | | } |
| | | }
|
| | | private void UpdateWishAwardImag()
|
| | | {
|
| | | m_WishingAwardImg.gameObject.SetActive(wishModel.wishingAwardDict.Count > 0 ? true : false);
|
| | |
| | | private void ClickDungeonAssist()
|
| | | {
|
| | | WindowCenter.Instance.Open<DungeonAssistWin>();
|
| | | } |
| | | }
|
| | | private void UpdateDungeonAssistImag()
|
| | | {
|
| | | m_DungeonAssistImg.gameObject.SetActive(assistModel.IsNewAssistInfo);
|
| | |
| | | {
|
| | | if (fairyGrabBossModel.flyToGrabBossRemind)
|
| | | {
|
| | | var money = (int)UIHelper.GetMoneyCnt(1) ;
|
| | | var money = (int)UIHelper.GetMoneyCnt(1);
|
| | | if (money >= 1)
|
| | | {
|
| | | FlyShoesUseCallback();
|
| | |
| | | private void OnClickFriendQuest()
|
| | | {
|
| | | WindowCenter.Instance.Open<FriendQuestWin>();
|
| | | } |
| | | }
|
| | | private void OnFairyRequestClick()
|
| | | {
|
| | | WindowCenter.Instance.Open<FairyInviteWin>();
|
| | | } |
| | | }
|
| | | private void UpdateFairyRequest()
|
| | | {
|
| | | m_FairyRequestBtn.gameObject.SetActive(fairyModel.FairyRequestRedPoint.count > 0);
|
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
| | | using System;
|
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | | using UnityEngine;
|
| | | using UnityEngine.UI;
|
| | |
|
| | | namespace Snxxz.UI
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | } |
| | | |
| | | }
|
| | |
|
| | |
| | | if (NewBieCenter.Instance.inGuiding || ModelCenter.Instance.GetModel<TreasureModel>().newGotShowing) |
| | | { |
| | | return; |
| | | } |
| | | }
|
| | |
|
| | | bool IsOpenMain = WindowCenter.Instance.IsOpen<MainInterfaceWin>();
|
| | | |
| | | var state = GetQuestState(taskID); |
| | | var config = StoryMissionsConfig.GetConfig(taskID, state); |
| | | bool IsOpenMain = WindowCenter.Instance.IsOpen<MainInterfaceWin>(); |
| | | if (config != null) |
| | | var state = 0;
|
| | | if (TryGetCustomTaskState(taskID, out state))
|
| | | {
|
| | | if (NPCid == config.NpcID)
|
| | | var config = StoryMissionsConfig.GetConfig(taskID, state);
|
| | | if (config != null && NPCid == config.NpcID)
|
| | | {
|
| | | if (!WindowCenter.Instance.IsOpen<DialogueDuidanceWin>() && IsOpenMain
|
| | | && !WindowCenter.Instance.ExistAnyFullScreenOrMaskWin())
|
| | |
| | | WindowCenter.Instance.Open<DialogueDuidanceWin>();
|
| | | }
|
| | | return;
|
| | | } |
| | | if (!WindowCenter.Instance.IsOpen<TaskBoxBGMWin>() && IsOpenMain) |
| | | { |
| | | WindowCenter.Instance.Close<MainInterfaceWin>(); |
| | | WindowCenter.Instance.Open<TaskBoxBGMWin>(); |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | if (BountyDic.ContainsKey(_TaskNow) || FairyAuDic.ContainsKey(_TaskNow)) |
| | | { |
| | | if (!ModelCenter.Instance.GetModel<TeamModel>().teamPrepare.isPreparing) |
| | | { |
| | | RequestGetTaskAward("OK"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (!WindowCenter.Instance.IsOpen<TaskBoxBGMWin>() && IsOpenMain) |
| | | { |
| | | WindowCenter.Instance.Close<MainInterfaceWin>(); |
| | | WindowCenter.Instance.Open<TaskBoxBGMWin>(); |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | if (BountyDic.ContainsKey(_TaskNow) || FairyAuDic.ContainsKey(_TaskNow)) |
| | | { |
| | | if (!ModelCenter.Instance.GetModel<TeamModel>().teamPrepare.isPreparing) |
| | | { |
| | | RequestGetTaskAward("OK"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | }
|
| | | }
|
| | | if (!WindowCenter.Instance.IsOpen<TaskBoxBGMWin>() && IsOpenMain)
|
| | | {
|
| | | WindowCenter.Instance.Close<MainInterfaceWin>();
|
| | | WindowCenter.Instance.Open<TaskBoxBGMWin>();
|
| | | return;
|
| | | }
|
| | | if (BountyDic.ContainsKey(_TaskNow) || FairyAuDic.ContainsKey(_TaskNow))
|
| | | {
|
| | | if (!ModelCenter.Instance.GetModel<TeamModel>().teamPrepare.isPreparing)
|
| | | {
|
| | | RequestGetTaskAward("OK");
|
| | | }
|
| | | }
|
| | | } |
| | | |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | public bool TryGetCustomTaskState(int taskId, out int state)
|
| | | {
|
| | | state = 0;
|
| | | if (ReplaceDic.ContainsKey(taskId))
|
| | | {
|
| | | var keyValue = ReplaceDic[taskId];
|
| | | if (keyValue.ContainsKey("state"))
|
| | | {
|
| | | state = keyValue["state"];
|
| | | return true;
|
| | | }
|
| | | }
|
| | | return false;
|
| | | } |
| | | |
| | | void AddMission(int MissionID, int MissionState, int DiscriptionIndex)//添加任务 |
| | | { |
| | | var config = PyTaskConfig.Get(MissionID); |
| | |
| | | {
|
| | | var progress = 1 - (float)(endTime - TimeUtility.ServerNow).TotalMilliseconds / s_CollectInfo.MaxTime;
|
| | | m_SmoothSlider.value = progress;
|
| | |
|
| | | progress = (float)Math.Round(progress * 100, 0);
|
| | | if (currentProgress != progress)
|
| | | {
|
| | |
| | | m_Progress.text = StringUtility.Contact(currentProgress, "%");
|
| | | }
|
| | |
|
| | | if (currentProgress >= 1)
|
| | | if (currentProgress >= 100)
|
| | | {
|
| | | CloseImmediately();
|
| | | }
|
| | |
| | | Guard,
|
| | | NpcFightNorm,
|
| | | NpcFightBoss,
|
| | | NpcCollect,
|
| | | NpcSummonFunc,
|
| | | NpcCollect,
|
| | | NpcSummonFight,
|
| | | NpcFunc,
|
| | | Pet,
|