public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer) { GCDetailSkillList Packet = (GCDetailSkillList)pPacket; if (GameProcedure.GetActiveProcedure() == GameProcedure.s_ProcMain) { // CUIDataPool* pDataPool = (CUIDataPool*)(CGameProcedure::s_pDataPool); //确认是自己的数据 CObject_PlayerMySelf pMySelf = CObjectManager.Instance.getPlayerMySelf(); if (pMySelf.ServerID != Packet.ObjectID) { return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); } //清空所有技能 pMySelf.GetCharacterData().Skill_CleanAll(); //刷新到用户数据 _OWN_SKILL[] pOwnerSkill = Packet.Skill; byte[] nLevel = Packet.SkillLevel; for (short i = 0; i < Packet.numSkill; i++) { //LogManager.LogWarning("GCDetailSkillList " + i + " skillID " + pOwnerSkill[i].m_nSkillID + " level " + nLevel[i]); pMySelf.GetCharacterData().Set_Skill(pOwnerSkill[i].m_nSkillID, nLevel[i], true); } //刷新到UI CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_SKILL_UPDATE); //LogManager.Log("RECV GCDetailSkillList"); } return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); }
public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer) { GCSkillClass Packet = (GCSkillClass)pPacket; if (GameProcedure.GetActiveProcedure() == GameProcedure.s_ProcMain) { //CUIDataPool* pDataPool = (CUIDataPool*)(CGameProcedure::s_pDataPool); //确认是自己的数据 CObject_PlayerMySelf pMySelf = CObjectManager.Instance.getPlayerMySelf(); if (pMySelf.ServerID != Packet.ObjectID) { return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); } //刷新到用户数据 _OWN_XINFA[] xinFa = Packet.XinFa; for (short i = 0; i < Packet.numXinFa; i++) { pMySelf.GetCharacterData().Set_SkillClass(xinFa[i].m_nXinFaID, xinFa[i].m_nXinFaLevel); } CActionSystem.Instance.SkillClass_Update(); CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_SKILL_UPDATE); LogManager.Log("RECV GCDetailXinFaClass"); } return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); }
// 解散队伍 public void DismissTeam() { switch (m_Type) { case TEAM_OR_GROUP_TYPE.TEAM_TYPE: { // 队伍的情况 for (int i = 0; i < m_TeamMembers.Count; i++) { // 更新队员头顶信息颜色 [10/9/2011 Ivan edit] CObject_Character player = CObjectManager.Instance.FindServerObject((int)m_TeamMembers[i].m_OjbID) as CObject_Character; if (player != null) { player.GetCharacterData().RefreshName(); } } m_TeamMembers.Clear(); } break; case TEAM_OR_GROUP_TYPE.GROUP_TYPE: { m_TeamInfo.Clear(); } break; default: return; } CleanUp(); //设置角色层数据 CObject_PlayerMySelf self = CObjectManager.Instance.getPlayerMySelf(); if (self != null) { self.GetCharacterData().Set_HaveTeamFlag(false); self.GetCharacterData().Set_TeamLeaderFlag(false); self.GetCharacterData().Set_TeamFullFlag(false); self.GetCharacterData().Set_TeamFollowFlag(false); } }
// 得到自己的队伍信息(从自己的数据池获取) void FillMyInfo(TeamMemberInfo member) { if (member == null) { throw new NullReferenceException("team member in FillMyInfo(member)"); } CObject_PlayerMySelf pMe = CObjectManager.Instance.getPlayerMySelf(); CCharacterData pMyData = pMe.GetCharacterData(); if (null == pMyData) { return; } member.m_szNick = pMyData.Get_Name(); member.m_uFamily = pMyData.Get_MenPai(); member.m_uDataID = pMyData.Get_RaceID(); member.m_uLevel = pMyData.Get_Level(); member.m_nPortrait = pMyData.Get_PortraitID(); member.m_WorldPos.m_fX = pMe.GetPosition().x; member.m_WorldPos.m_fZ = pMe.GetPosition().z; member.m_nHP = pMyData.Get_HP(); member.m_dwMaxHP = pMyData.Get_MaxHP(); member.m_nMP = pMyData.Get_MP(); member.m_dwMaxMP = pMyData.Get_MaxMP(); member.m_nAnger = 100; // 客户端没有 member.m_WeaponID = pMyData.Get_Equip(HUMAN_EQUIP.HEQUIP_WEAPON); member.m_CapID = pMyData.Get_Equip(HUMAN_EQUIP.HEQUIP_CAP); member.m_ArmourID = pMyData.Get_Equip(HUMAN_EQUIP.HEQUIP_ARMOR); member.m_CuffID = pMyData.Get_Equip(HUMAN_EQUIP.HEQUIP_CUFF); member.m_FootID = pMyData.Get_Equip(HUMAN_EQUIP.HEQUIP_BOOT); member.m_uBackID = pMyData.Get_Equip(HUMAN_EQUIP.HEQUIP_BACK);// [8/30/2010 Sun] member.m_bDead = (pMe.CharacterLogic_Get() == ENUM_CHARACTER_LOGIC.CHARACTER_LOGIC_DEAD); member.m_uFaceMeshID = pMyData.Get_FaceMesh(); member.m_uHairMeshID = pMyData.Get_HairMesh(); member.m_uHairColor = pMyData.Get_HairColor(); }
public void UpdateFuncEnable() { if (funcList.Count == 0) { UnRegistConditions(); return; } CObject_PlayerMySelf mySelf = CObjectManager.Instance.getPlayerMySelf(); CDetailAttrib_Player myData = CDetailAttrib_Player.Instance; if (mySelf == null || myData == null) { return; } ////////////////////////////////////////////////////////////////////////// // 由于界面表现要有特殊标示,所以特殊对待 int x1Pos = 0; int y2Pos = 45; int index = -1; ////////////////////////////////////////////////////////////////////////// foreach (_DBC_FUNC_OPEN_LIST enumerator in funcList) { index++; bool showEnable = true; _DBC_FUNC_OPEN_LIST func = enumerator; if (func.needLevel != MacroDefine.INVALID_ID && mySelf.GetCharacterData().Get_Level() < func.needLevel) { showEnable = false; } else if (func.receiveMission != MacroDefine.INVALID_ID) { if ((myData.GetMissionIndexByID(func.receiveMission) == MacroDefine.INVALID_ID) && !myData.IsMissionHaveDone((uint)func.receiveMission)) { showEnable = false; } } else if (func.finishMission != MacroDefine.INVALID_ID) { if (!myData.IsMissionHaveDone((uint)func.finishMission)) { showEnable = false; } } if (uiGoList[index] == null) { uiGoList[index] = GameObject.Find(enumerator.uiName); } if (uiGoList[index] != null) { if (showEnable) { if (uiGoList[index].layer != LayerManager.UILayer) { uiGoList[index].layer = LayerManager.UILayer; } ////////////////////////////////////////////////////////////////////////// Vector3 pos = uiGoList[index].transform.localPosition; switch (enumerator.specialTag) { case 1: pos.x = x1Pos; x1Pos -= 45; break; case 2: pos.y = y2Pos; y2Pos += 45; break; default: break; } uiGoList[index].transform.localPosition = pos; ////////////////////////////////////////////////////////////////////////// // funcList.Remove(enumerator.Current.Key); // enumerator = funcList.GetEnumerator(); } else { if (uiGoList[index].layer == LayerManager.UILayer) { uiGoList[index].layer = LayerManager.DefaultLayer; } } } } }
/// <summary> /// 过滤任务 /// </summary> public void Sort() { oldNpcIds.Clear(); foreach (_DBC_MISSION_DEMAND_LIST miss in sceneMissions) { if (!oldNpcIds.Contains(miss.n_AcceptNpcID)) { oldNpcIds.Add(miss.n_AcceptNpcID); } if (!oldNpcIds.Contains(miss.n_FinishNpcID)) { oldNpcIds.Add(miss.n_FinishNpcID); } } sortMissions.Clear(); sceneMissions.Clear(); CObject_PlayerMySelf mySelf = CObjectManager.Instance.getPlayerMySelf(); CDetailAttrib_Player myData = CDetailAttrib_Player.Instance; // 没有玩家数据无法过滤 [6/14/2011 ivan edit] if (mySelf == null || myData == null) { return; } int currentScene = GameProcedure.s_pWorldManager.GetActiveSceneID(); foreach (_DBC_MISSION_DEMAND_LIST miss in allMissions) { // 是否已经接了该任务 // if (myData.GetMissionIndexByID(miss.n_MissionID) != MacroDefine.INVALID_ID) // continue; // 是否已经完成 if (myData.IsMissionHaveDone((uint)miss.n_MissionID)) { continue; } // 最低等级 if (miss.n_MinLevel != MacroDefine.INVALID_ID && !(mySelf.GetCharacterData().Get_Level() >= miss.n_MinLevel)) { continue; } // 最高等级 if (miss.n_MaxLevel != MacroDefine.INVALID_ID && !(mySelf.GetCharacterData().Get_Level() < miss.n_MaxLevel)) { continue; } // 前置任务 if (miss.n_PreMissionID != MacroDefine.INVALID_ID && !myData.IsMissionHaveDone((uint)miss.n_PreMissionID)) { continue; } sortMissions.Add(miss); // 整理出当前场景相关的任务 [4/6/2012 Ivan] if (miss.n_AcceptSceneId == currentScene || miss.n_FinishSceneId == currentScene) { sceneMissions.Add(miss); } } UpdateNpcState(); oldNpcIds.Clear(); // 刷新地图和可接任务列表 [4/6/2012 Ivan] CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_UI_INFOS, "SortMission"); }
bool IsMyPet(uint serverId) { CObject_PlayerMySelf mySelf = CObjectManager.Instance.getPlayerMySelf(); return(mySelf.GetCharacterData().IsMyPet(serverId)); }