//TODO:玩家升级的逻辑处理 技能点 void LevelUp() { //Modify Hp Mp Level += 1; Exp = 0; Log.Net("AddLevelUp " + IsMine()); if (IsMine()) { var setSync = CGSetProp.CreateBuilder(); setSync.Key = (int)CharAttribute.CharAttributeEnum.EXP; setSync.Value = 0; KBEngine.Bundle.sendImmediate(setSync); var sync = CGAddProp.CreateBuilder(); sync.Key = (int)CharAttribute.CharAttributeEnum.LEVEL; sync.Value = 1; KBEngine.Bundle.sendImmediate(sync); } Util.ShowLevelUp(Level); var par = Instantiate(Resources.Load <GameObject>("particles/events/levelUp")) as GameObject; NGUITools.AddMissingComponent <RemoveSelf>(par); par.transform.parent = ObjectManager.objectManager.transform; par.transform.position = transform.position; if (IsMine()) { //MyEventSystem.myEventSystem.PushEvent(MyEvent.EventType.UpdateMainUI); MyEventSystem.myEventSystem.PushEvent(MyEvent.EventType.UpdatePlayerData); } }
//TODO: 单人副本中需要判断是否升级以及升级相关处理 public void ChangeExp(int e) { Exp += e; var maxExp = _ObjUnitData.MaxExp; if (Exp >= maxExp) { LevelUp(); } else { if (IsMine()) { var sync = CGAddProp.CreateBuilder(); sync.Key = (int)CharAttribute.CharAttributeEnum.EXP; sync.Value = e; KBEngine.Bundle.sendImmediate(sync); } } var evt = new MyEvent(MyEvent.EventType.UpdatePlayerData); evt.localID = GetLocalId(); MyEventSystem.myEventSystem.PushEvent(evt); if (IsMine()) { MyEventSystem.PushEventStatic(MyEvent.EventType.UpdatePlayerData); } }