示例#1
0
        public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer)
        {
            //当前流程是主流程
            if (GameProcedure.GetActiveProcedure() == (GameProcedure)GameProcedure.s_ProcMain)
            {
                CObjectManager pObjectManager = CObjectManager.Instance;
                GCDelObject    delObjPacket   = (GCDelObject)pPacket;
                //判断是否是本场景
                // 将场景ID和资源ID分开,不再使用资源ID代替场景ID [10/24/2011 Sun]
                if (WorldManager.Instance.GetActiveSceneID() != delObjPacket.getSceneID())
                {
                    return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
                }

                //寻找obj
                CObject           pDelObj = pObjectManager.FindServerObject((int)delObjPacket.getObjID());
                CObject_Character pObj    = pDelObj as CObject_Character;
                LogManager.Log("GCDelObjectHandler ObjID:" + delObjPacket.getObjID());
                if (pObj == null)
                {
                    CObjectManager.Instance.DestroyObject(pDelObj);
                    return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
                }

                if (CObjectManager.Instance.GetMainTarget() != null && pObj == CObjectManager.Instance.GetMainTarget())
                {
                    CObjectManager.Instance.SetMainTarget(-1, CObjectManager.DESTROY_MAIN_TARGET_TYPE.DEL_OBJECT);
                }
                // 判断obj是否在载具上面,在的话需要删除掉 [8/29/2011 Ivan edit] //todo
                if (pObj.GetCharacterType() == CHARACTER_TYPE.CT_PLAYEROTHER ||
                    pObj.GetCharacterType() == CHARACTER_TYPE.CT_PLAYERMYSELF)
                {
                    if (pObj.GetCharacterData().Get_BusObjID() != MacroDefine.UINT_MAX)
                    {
                        CObject pBus = CObjectManager.Instance.FindServerObject((int)pObj.GetCharacterData().Get_BusObjID());
                        if (pBus != null)
                        {
                            SCommand_Object cmdTemp = new SCommand_Object();
                            cmdTemp.m_wID = (int)OBJECTCOMMANDDEF.OC_BUS_REMOVE_PASSENGER;
                            cmdTemp.SetValue <int>(0, pObj.ServerID);
                            pBus.PushCommand(cmdTemp);
                        }
                    }
                }

                //删除对象
                CObjectManager.Instance.DestroyObject(pObj);
                //之后不能执行任何代码
            }

            return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
        }
示例#2
0
        internal string GetHeadIcon()
        {
            CObject_Character pCharObj = _GetTargetAsCharacter();

            if (pCharObj.GetCharacterType() == CHARACTER_TYPE.CT_MONSTER)
            {
                CObject_PlayerNPC npc = pCharObj as CObject_PlayerNPC;
                if (npc != null)
                {
                    return(npc.GetPortrait());
                }
                else
                {
                    return("");
                }
            }

            //得到玩家和自己的头像
            string pImageName = "";
            //打开生物定义表
            _DBC_CHAR_FACE pFaceImage = CDataBaseSystem.Instance.GetDataBase <_DBC_CHAR_FACE>(
                (int)DataBaseStruct.DBC_CHAR_FACE).Search_Index_EQU(pCharObj.GetCharacterData().Get_PortraitID());

            if (pFaceImage != null)
            {
                pImageName = pFaceImage.pImageSetName;
            }

            return(pImageName);
        }
示例#3
0
    // 组建队伍,设置队伍的 leader,并且加入为第一个成员
    public bool CreateTeam(TeamMemberInfo leader, short TeamID)
    {
        if (m_Type != TEAM_OR_GROUP_TYPE.INVAILD_TYPE)
        {
            throw new Exception("create team failed  type = " + m_Type.ToString());
        }

        m_Type = TEAM_OR_GROUP_TYPE.TEAM_TYPE;
        m_ID   = TeamID;
        SetLeaderGUID(leader.m_GUID);

        m_TeamMembers.Add(leader);

        //通知Talk Interface,队伍建立
        //Talk..TeamCreate(m_ID);
        //设置角色层数据
        CObjectManager.Instance.getPlayerMySelf().GetCharacterData().Set_HaveTeamFlag(true);

        // 更新队伍信息 [9/26/2011 Ivan edit]
        CObject_Character player = CObjectManager.Instance.FindServerObject(leader.m_OjbID) as CObject_Character;

        if (player != null)
        {
            player.GetCharacterData().RefreshName();
        }

        return(true);
    }
    // 客户端移除一个关系,通常用于移除临时好友
    public bool                                                             RemoveRelation(RELATION_GROUP RelationGroup, int idx)
    {
        RelationList pRelationList;

        pRelationList = GetRelationList(RelationGroup);
        if (pRelationList == null)
        {
            return(false);
        }

        if (idx < 0 || idx >= pRelationList.GetMemberCount())
        {
            return(false);
        }

        // keep name [10/9/2011 Ivan edit]
        string m_szName = pRelationList.GetMember(idx).m_szName;

        // 刷新头顶名字颜色 [9/26/2011 Ivan edit]
        CObject_Character player = (CObject_Character)(CObjectManager.Instance.FindCharacterByName(m_szName));

        if (player != null)
        {
            player.GetCharacterData().RefreshName();
        }
        pRelationList.Erase(idx);
        UpdateUIList(RelationGroup);
        return(true);
    }
示例#5
0
    void RemoveAllPassengers()
    {
        int i;

        for (i = 0; i < GameStruct_Bus.DEF_BUS_MAX_PASSENGER_COUNT; i++)
        {
            if (m_anPassengerIDs[i] != MacroDefine.INVALID_ID)
            {
                if (m_abPassengerAttacheds[i] && GetRenderInterface() != null)
                {
                    CObject pObj = CObjectManager.Instance.FindServerObject((int)m_anPassengerIDs[i]);
                    if (pObj != null && pObj.GetRenderInterface() != null)
                    {
                        CObject_Character player = pObj as CObject_Character;
                        if (player != null)
                        {
                            player.GetCharacterData().Set_BusObjID(0);
                        }
                        GetRenderInterface().Detach_Object(pObj.GetRenderInterface());
                        pObj.SetMapPosition(pObj.GetPosition().x, pObj.GetPosition().z);                    //角色离开飞行坐骑后刷新自己的位置  [8/22/2011 zzy]
                    }
                }
                m_anPassengerIDs[i]       = 0;
                m_abPassengerAttacheds[i] = false;
            }
        }
        m_nPassengerCount = 0;
    }
示例#6
0
    void UpdateMemberRenderInterfaceByIndex(int nIndex)
    {
        if (m_anPassengerIDs[nIndex] == 0)
        {
            return;
        }

        if (m_abPassengerAttacheds[nIndex])
        {
            return;
        }

        if (GetRenderInterface() != null && m_pBusData != null && m_pBusData.m_aSeatInfo[nIndex].m_pszLocator.Length > 0)
        {
            CObject pObj = CObjectManager.Instance.FindServerObject((int)m_anPassengerIDs[nIndex]);
            if (pObj != null && pObj.GetRenderInterface() != null)
            {
                GetRenderInterface().Attach_Object(pObj.GetRenderInterface(), m_pBusData.m_aSeatInfo[nIndex].m_pszLocator);
                CObject_Character player = pObj as CObject_Character;
                if (player != null)
                {
                    player.GetCharacterData().Set_BusObjID((uint)ServerID);
                }
                m_abPassengerAttacheds[nIndex] = true;
                UpdateAnimation();
                SetPosition(GetPosition());
            }
        }
    }
    // 移动一个关系,Srg 是原来的组,guid 是要移动的玩家 GUID,Dtype 是移动后的关系类型,Drg 是移动后的组
    public bool                                                             MoveRelation(RELATION_GROUP Srg, RELATION_TYPE Dtype, RELATION_GROUP Drg, uint guid)
    {
        RelationList pSRelationList;

        pSRelationList = GetRelationList(Srg);
        if (pSRelationList == null)
        {
            return(false);
        }

        RelationList pDRelationList;

        pDRelationList = GetRelationList(Drg);
        if (pDRelationList == null)
        {
            return(false);
        }

        SDATA_RELATION_MEMBER pMember;

        pMember = pSRelationList.GetMemberByGUID(guid);
        if (pMember == null)
        {
            return(false);
        }

        if (pSRelationList.RemoveByGUID(guid))
        {
            UpdateUIList(Srg);

            // 修改关系信息
            pMember.m_RelationType = Dtype;

            string m_szName = pMember.m_szName;
            bool   isFinish = false;
            if (pDRelationList.Add(pMember))
            {
                UpdateUIList(Drg);
                isFinish = true;
            }
            else
            {
                pMember  = null;
                isFinish = false;
            }

            // 必须等add完成后再刷新 [9/26/2011 Ivan edit]
            CObject_Character player = (CObject_Character)(CObjectManager.Instance.FindCharacterByName(m_szName));
            if (player != null)
            {
                player.GetCharacterData().RefreshName();
            }
            return(isFinish);
        }

        return(false);
    }
示例#8
0
        public string GetData(string typeName, int objServerID)
        {
            CObject_Character pCharObj = null;

            if (objServerID != -1)
            {
                pCharObj = (CObject_Character)(CDataPool.Instance.GetTargetEquip());
            }
            else
            {
                pCharObj = _GetTargetAsCharacter();
            }

            if (pCharObj == null)
            {
                return("没有得到Obj指针");
            }

            if (typeName == "LEVEL")   //等级
            {
                string ss;
                ss = pCharObj.GetCharacterData().Get_Level().ToString();
                return(ss);
            }
            else if (typeName == "NAME")   //名字
            {
                return(pCharObj.GetCharacterData().Get_Name());
            }
            else if (typeName == "ISPKENEMY")
            {
                if (CObjectManager.Instance.getPlayerMySelf().GetRelationOther(pCharObj) == 0)
                {
                    return("1");
                }
                return("0");
            }

            return("1");
        }
示例#9
0
        public string GetName()
        {
            CObject_Character pCharObj = _GetTargetAsCharacter();

            if (pCharObj != null)
            {
                return(pCharObj.GetCharacterData().Get_Name());
            }
            else
            {
                return("");
            }
        }
示例#10
0
    public OPERATE_RESULT IsCanUse_CheckLevel(int idUser, int idLevel)
    {
        CObject_Character pUser = (CObject_Character)(CObjectManager.Instance.FindObject(idUser));

        if (pUser == null)
        {
            return(OPERATE_RESULT.OR_ERROR);
        }
        int iSkillClass = m_pDefine.m_nSkillClass;
        int iLevel      = m_nLevel - 1;

        if (iLevel < 0)
        {
            iLevel = 0;
        }
        // 得到技能对应的心法数据
        SCLIENT_SKILLCLASS pSkillClass = CObjectManager.Instance.getPlayerMySelf().GetCharacterData().Get_SkillClass(iSkillClass);

        if (pSkillClass != null)
        {
            // 技能数据id
            int iSkillData_V1ID = 0;
            if (iLevel < 12)// 境界心法超过12级 [4/19/2012 SUN]
            {
                iSkillData_V1ID = m_pDefine.m_anSkillByLevel[iLevel];
            }
            else if (pSkillClass.IsJingJie())
            {
                iSkillData_V1ID = m_pDefine.m_anSkillByLevel[11];
            }
            //打开数据表
            _DBC_SKILLDATA_V1_DEPLETE pSkillData_V1 = CDataBaseSystem.Instance.GetDataBase <_DBC_SKILLDATA_V1_DEPLETE>((int)DataBaseStruct.DBC_SKILLDATA_V1_DEPLETE).Search_Index_EQU(iSkillData_V1ID);
            //搜索纪录
            if (pSkillData_V1 != null)
            {
                if (pSkillData_V1.nNeedLevel > pUser.GetCharacterData().Get_Level())
                {
                    return(OPERATE_RESULT.OR_NEED_HIGH_LEVEL_XINFA);
                }
            }
        }
        return(OPERATE_RESULT.OR_OK);
    }
示例#11
0
    bool RemovePassenger(uint nPassengerID)
    {
        if (nPassengerID == 0)
        {
            return(false);
        }

        int nCount = GetPassengerCount();

        if (nCount > 0)
        {
            int i;
            for (i = 0; i < nCount; i++)
            {
                if (m_anPassengerIDs[i] == nPassengerID)
                {
                    if (m_abPassengerAttacheds[i] && GetRenderInterface() != null)
                    {
                        CObject pObj = CObjectManager.Instance.FindServerObject((int)m_anPassengerIDs[i]);
                        if (pObj != null && pObj.GetRenderInterface() != null)
                        {
                            CObject_Character player = pObj as CObject_Character;
                            if (player != null)
                            {
                                player.GetCharacterData().Set_BusObjID(0);
                            }
                            GetRenderInterface().Detach_Object(pObj.GetRenderInterface());
                            pObj.SetMapPosition(pObj.GetPosition().x, pObj.GetPosition().z);                        //角色离开飞行坐骑后刷新自己的位置  [8/22/2011 zzy]
                        }
                    }
                    m_anPassengerIDs[i]                = m_anPassengerIDs[nCount - 1];
                    m_abPassengerAttacheds[i]          = m_abPassengerAttacheds[nCount - 1];
                    m_anPassengerIDs[nCount - 1]       = 0;
                    m_abPassengerAttacheds[nCount - 1] = false;
                    // 减少乘客 [8/26/2011 ivan edit]
                    --m_nPassengerCount;
                    return(true);
                }
            }
        }
        return(false);
    }
示例#12
0
    // 解散队伍
    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);
        }
    }
示例#13
0
    public CObject_Character FindCharacterByName(string szName)
    {
        CObject_Character pObject = null;

        if (mServerObjects.Count > 0)
        {
            foreach (int k in mServerObjects.Keys)
            {
                if (mServerObjects[k] is CObject_Character)
                {
                    CObject_Character character = (CObject_Character)mServerObjects[k];
                    if (character.GetCharacterData().Get_Name() == szName)
                    {
                        pObject = character;
                        break;
                    }
                }
            }
        }
        return(pObject);
    }
    // 从名单里移除,并释放数据
    public virtual bool                                             Erase(int idx)
    {
        if (m_vecRelationMember.Count <= idx || idx < 0)
        {
            return(false);
        }

        // 更新好友信息 [9/26/2011 Ivan edit]
        CObject_Character player = (CObject_Character)(CObjectManager.Instance.FindServerObject(
                                                           (int)m_vecRelationMember[idx].m_GUID));

        if (player != null)
        {
            player.GetCharacterData().RefreshName();
        }

        //   SAFE_DELETE( m_vecRelationMember[idx] );
        m_vecRelationMember.RemoveAt(idx);

        return(true);
    }
示例#15
0
    internal CObject FindCharacterByTableID(int idTable)
    {
        CObject_Character pObject = null;

        if (mServerObjects.Count != 0)
        {
            foreach (CObject obj in mServerObjects.Values)
            {
                CObject_Character npc = obj as CObject_Character;
                if (npc != null)
                {
                    if (idTable == npc.GetCharacterData().Get_RaceID())
                    {
                        pObject = npc;
                        break;
                    }
                }
            }
        }

        return(pObject);
    }
示例#16
0
        //加入好友功能(包括好友、临时好友、黑名单)
        public void addFriend(RELATION_GROUP nGroup, string name)
        {
            string            strva    = name;
            CGRelation        Msg      = new CGRelation();
            CObject_Character pCharObj = null;

            Msg.GetRelation().m_Type = (byte)RELATION_REQUEST_TYPE.REQ_ADDFRIEND;
            REQUEST_ADD_RELATION_WITH_GROUP pFriend = new REQUEST_ADD_RELATION_WITH_GROUP();

            Msg.GetRelation().mRelation = pFriend;
            pFriend.CleanUp();

            bool valueIsNum = false;                                /*Ogre::StringConverter::isNumber(strva.c_str());*/

            if (nGroup == RELATION_GROUP.RELATION_GROUP_FRIEND_ALL) // 如果直接一个名字,就自动往所有的列表里加,
            {
                nGroup = RELATION_GROUP.RELATION_GROUP_F1;
            }
            else if (nGroup == RELATION_GROUP.RELATION_GROUP_TEMPFRIEND) //临时好友
            {
                SDATA_RELATION_MEMBER pMember = new SDATA_RELATION_MEMBER();

                if (!valueIsNum)
                {
                    pCharObj = (CObject_Character)CObjectManager.Instance.FindCharacterByName(strva);
                    if (pCharObj == null)
                    {
                        return;
                    }
                    pMember.m_szName = strva;
                }
                else
                {
                    pCharObj = (CObject_Character)CObjectManager.Instance.GetMainTarget();
                    if (pCharObj == null)
                    {
                        return;
                    }
                    pMember.m_szName = pCharObj.GetCharacterData().Get_Name();
                }
                // 如果是玩家并且是统一阵营的才会添加
                ENUM_RELATION sCamp = Interface.GameInterface.Instance.GetCampType(pCharObj, CObjectManager.Instance.getPlayerMySelf());
                if ((pCharObj is CObject_PlayerOther) == false)
                {
                    return;
                }
                if (sCamp != ENUM_RELATION.RELATION_FRIEND)
                {
                    return;
                }

                int nTmpGroup = -1, nIndex = -1;
                CDataPool.Instance.GetRelation().GetRelationByName(pMember.m_szName, ref nTmpGroup, ref nIndex);
                if (nTmpGroup >= 0)
                {
                    return;
                }

                pMember.m_RelationType = RELATION_TYPE.RELATION_TYPE_TEMPFRIEND;
                if (CDataPool.Instance.GetRelation().AddRelation(RELATION_GROUP.RELATION_GROUP_TEMPFRIEND, pMember))
                {
                    string szText = "你将" + pMember.m_szName + " 添加为临时好友";
                    GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, szText);
                }
                CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_UPDATE_FRIEND);
                return;
            }
            else if (nGroup == RELATION_GROUP.RELATION_GROUP_BLACK)
            { // 增加黑名单的添加
                CGRelation Msg1                 = new CGRelation();
                Msg1.GetRelation().m_Type       = (byte)RELATION_REQUEST_TYPE.REQ_ADDTOBLACKLIST;
                REQUEST_ADD_RELATION pBlackName = new REQUEST_ADD_RELATION();
                Msg1.GetRelation().mRelation    = pBlackName;
                pBlackName.CleanUp();

                if (strva == "")
                {
                    pCharObj = (CObject_Character)CObjectManager.Instance.GetMainTarget();
                    if (pCharObj == null)
                    {
                        return;
                    }
                    pBlackName.SetTargetName(EncodeUtility.Instance.GetGbBytes(pCharObj.GetCharacterData().Get_Name()));
                }
                else if (valueIsNum)
                {
//                      pCharObj = (CObject_Character)CObjectManager.Instance.FindCharacterByRaceID(int.Parse(strva));
//                      if( pCharObj == null ) pCharObj = (CObject_Character*)CObjectManager::GetMe()->FindCharacterByName(strva.c_str());
//                      if( pCharObj == null ) return ;
//                      pBlackName->SetTargetGUID( Ogre::StringConverter::parseInt(strva.c_str()) );
                }
                else
                {
                    pCharObj = (CObject_Character)CObjectManager.Instance.FindCharacterByName(strva);
                    if (pCharObj == null)
                    {
                        return;
                    }
                    pBlackName.SetTargetName(EncodeUtility.Instance.GetGbBytes(strva));
                }

                if (pCharObj == CObjectManager.Instance.getPlayerMySelf())
                {
                    return;
                }

                if (pCharObj is CObject_PlayerOther)        // 如果是玩家
                {
                    ENUM_RELATION sCamp = Interface.GameInterface.Instance.GetCampType(pCharObj, CObjectManager.Instance.getPlayerMySelf());
                    if (sCamp != ENUM_RELATION.RELATION_FRIEND)
                    {
                        GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "不能添加不同阵营的人到黑名单");
                        return;
                    }
                }
                else
                {
                    GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "不能添加非玩家到黑名单");
                    return;
                }

                pBlackName.SetRelationType((byte)RELATION_TYPE.RELATION_TYPE_BLACKNAME);
                NetManager.GetNetManager().SendPacket(Msg1);
                return;
            }

            if (strva == "")
            {
                pCharObj = (CObject_Character)CObjectManager.Instance.GetMainTarget();
                if (pCharObj == null)
                {
                    return;
                }
                pFriend.SetTargetName(EncodeUtility.Instance.GetGbBytes(pCharObj.GetCharacterData().Get_Name()));
            }
            else if (valueIsNum)
            {
//              pCharObj = (CObject_Character)CObjectManager::GetMe()->FindCharacterByRaceID(Ogre::StringConverter::parseInt(strva.c_str()));
//              if( pCharObj == NULL ) pCharObj = (CObject_Character*)CObjectManager::GetMe()->FindCharacterByName(strva.c_str());
//              if( pCharObj == NULL ) return 0;
//              pFriend->SetTargetGUID( Ogre::StringConverter::parseInt(strva.c_str()) );
            }
            else
            {
                pFriend.SetTargetName(EncodeUtility.Instance.GetGbBytes(strva));
                pCharObj = (CObject_Character)CObjectManager.Instance.FindCharacterByName(strva);
                if (pCharObj == null)
                {
                    return;
                }
            }
            if (pCharObj == CObjectManager.Instance.getPlayerMySelf())      // 如果是自己,就不加
            {
                return;
            }

            if (pCharObj is CObject_PlayerOther)       // 如果是玩家
            {
                ENUM_RELATION sCamp = Interface.GameInterface.Instance.GetCampType(pCharObj, CObjectManager.Instance.getPlayerMySelf());
                if (sCamp != ENUM_RELATION.RELATION_FRIEND)             // 如果不是同一阵营的
                {
                    GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "不能添加不同阵营的人到好友");
                    return;
                }
//              // 改为势力判断 [9/26/2011 Ivan edit]
//              if (pCharObj.GetCharacterData().GetShiLi() !=
//                  CObjectManager::GetMe()->GetMySelf()->GetCharacterData()->GetShiLi())
//              {
//                  CGameProcedure::s_pEventSystem->PushEvent( GE_INFO_SELF, "不能添加不同势力的人到好友" );
//                  return 0;
//              }
            }
            else
            {
                GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "不能添加非玩家到好友");
                return;
            }

            pFriend.SetGroup((byte)nGroup);
            pFriend.SetRelationType((byte)RELATION_TYPE.RELATION_TYPE_FRIEND);

            NetManager.GetNetManager().SendPacket(Msg);

            return;
        }
        public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer)
        {
            if (GameProcedure.GetActiveProcedure() == (GameProcedure)GameProcedure.s_ProcMain)
            {
                GCRelation packet = (GCRelation)pPacket;
                if (GameProcedure.s_pUISystem == null)
                {
                    return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
                }

                GC_RELATION pReturn = packet.GetRelation();
                string      szText  = "其他好友操作。";

                Relation pRelation = CDataPool.Instance.GetRelation();
                if (pRelation == null)
                {
                    return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
                }

                switch ((RELATION_RETURN_TYPE )pReturn.m_Type)
                {
                case RELATION_RETURN_TYPE.RET_RELATIONLIST:
                {
                    GC_RELATIONLIST pRelationList = (GC_RELATIONLIST)pReturn.mRelation;

                    pRelation.SetMood(UIString.Instance.GetUnicodeString(pRelationList.GetMood()));

                    for (int i = 0; i < pRelationList.GetFriendCount(); ++i)
                    {
                        pRelation.AddRelation(pRelationList.GetFriend(i));
                    }

                    for (int i = 0; i < pRelationList.GetBlackCount(); ++i)
                    {
                        pRelation.AddRelation(pRelationList.GetBlackName(i));
                    }

                    // 需要 push 一个事件通知 UI
                    pRelation.UpdateUIList(RELATION_GROUP.RELATION_GROUP_FRIEND_ALL);
                    return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
                }
                break;

                case RELATION_RETURN_TYPE.RET_RELATIONINFO:
                {
                    pRelation.UpdateRelationInfo((RETURN_RELATION_INFO )pReturn.mRelation);
                    return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
                }
                break;

                case RELATION_RETURN_TYPE.RET_TEMPFRIEND_TO_FRIEND:
                case RELATION_RETURN_TYPE.RET_TEMPFRIEND_ADDTO_BLACKLIST:
                case RELATION_RETURN_TYPE.RET_ADDFRIEND:
                case RELATION_RETURN_TYPE.RET_ADDTOBLACKLIST:
                {
                    RETURN_ADD_RELATION pAddRelation = (RETURN_ADD_RELATION)pReturn.mRelation;
                    RELATION_GROUP      Drg;
                    string msg = UIString.Instance.GetUnicodeString(pAddRelation.GetRelationData().GetName());
                    if (pAddRelation.GetRelationType() == (byte)RELATION_TYPE.RELATION_TYPE_BLACKNAME)
                    {
                        szText = "你将" + msg + "加入黑名单。";
                        //			    strTemp = NOCOLORMSGFUNC("GCRelationHandler_Info_Add_Black_List", pAddRelation.GetRelationData().GetName());
                        //			    _snprintf(szText, _MAX_PATH, "%s", strTemp.c_str());
                        Drg = RELATION_GROUP.RELATION_GROUP_BLACK;
                    }
                    else if (pAddRelation.GetRelationType() == (byte)RELATION_TYPE.RELATION_TYPE_FRIEND)
                    {
                        szText = "你将" + msg + "添加为好友。";
                        //			    strTemp = NOCOLORMSGFUNC("GCRelationHandler_Info_Add_Firend_List", pAddRelation.GetRelationData().GetName());
                        //			    _snprintf(szText, _MAX_PATH, "%s", strTemp.c_str());
                        Drg = (RELATION_GROUP)pAddRelation.GetGroup();
                    }
                    else
                    {
                        szText = "意外的关系类型:" + pAddRelation.GetRelationType();
                        //				    strTemp = NOCOLORMSGFUNC("GCRelationHandler_Info_Err_Relation", pAddRelation.GetRelationData().GetName());
                        //				    _snprintf(szText, _MAX_PATH, "%s", strTemp.c_str());
                        //				    AssertEx(FALSE, szText);
                        return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
                    }

                    _RELATION pRelationData;
                    pRelationData = pAddRelation.GetRelationData();

                    // 如果是临时好友,则移除
                    pRelation.RemoveRelation(pRelationData.GetGUID());
                    pRelation.RemoveRelation(RELATION_GROUP.RELATION_GROUP_TEMPFRIEND, UIString.Instance.GetUnicodeString(pRelationData.GetName()));

                    SDATA_RELATION_MEMBER Member = new SDATA_RELATION_MEMBER();

                    Member.m_GUID         = pRelationData.GetGUID();
                    Member.m_szName       = UIString.Instance.GetUnicodeString(pRelationData.GetName());
                    Member.m_RelationType = (RELATION_TYPE)pAddRelation.GetRelationType();
                    Member.m_nLevel       = pRelationData.GetLevel();
                    Member.m_nMenPai      = pRelationData.GetMenPai();
                    Member.m_nPortrait    = pRelationData.GetPortrait();
                    Member.m_GuildID      = pRelationData.GetGuildID();
                    Member.m_szGuildName  = UIString.Instance.GetUnicodeString(pRelationData.GetGuildName());
                    Member.m_bOnlineFlag  = pRelationData.GetOnlineFlag() != 0;

                    if (Member.m_bOnlineFlag)
                    {
                        Member.m_szMood    = UIString.Instance.GetUnicodeString(pRelationData.GetMood());
                        Member.m_szTitle   = UIString.Instance.GetUnicodeString(pRelationData.GetTitle());
                        Member.m_SceneID   = pRelationData.GetSceneID();
                        Member.m_nTeamSize = pRelationData.GetTeamSize();
                    }

                    pRelation.AddRelation(Drg, Member);

                    // 更新好友信息 [9/26/2011 Ivan edit]
                    CObject_Character player = (CObject_Character)(CObjectManager.Instance.FindCharacterByName(Member.m_szName));
                    if (player != null)
                    {
                        player.GetCharacterData().RefreshName();
                    }
                }
                break;

                case RELATION_RETURN_TYPE.RET_TRANSITION:
                {
//                  RETURN_ADD_RELATION pAddRelation = (RETURN_ADD_RELATION)(pReturn.mRelation);
//                  RELATION_GROUP Drg;
//
//                  // 将好友分组到黑名单才提示 [6/23/2011 edit by ZL]
//                  if ( pAddRelation.GetRelationType() == (byte)RELATION_TYPE_BLACKNAME )
//                  {
//                      string name = UIString.Instance.GetUnicodeString(pAddRelation.GetRelationData().GetName());
//                         szText = "你将"+name+"加入黑名单";
//                      Drg = (RELATION_GROUP)RELATION_GROUP_BLACK;
//                      GameProcedure.s_pEventSystem.PushEvent( GAME_EVENT_ID.GE_INFO_SELF, szText );
//                  }

                    RELATION_GUID_UCHAR_UCHAR pRelationInfo = (RELATION_GUID_UCHAR_UCHAR)(pReturn.mRelation);

                    RELATION_GROUP Srg = RELATION_GROUP.RELATION_GROUP_FRIEND_ALL;
                    int            idx = 0;

                    pRelation.GetRelationPosition(pRelationInfo.GetTargetGUID(), ref Srg, ref idx);
                    pRelation.MoveRelation(Srg, (RELATION_TYPE)pRelationInfo.GetRelationType(),
                                           (RELATION_GROUP)pRelationInfo.GetGroup(), pRelationInfo.GetTargetGUID());

                    return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);;
                }
                break;

                case RELATION_RETURN_TYPE.RET_DELFRIEND:
                case RELATION_RETURN_TYPE.RET_DELFROMBLACKLIST:
                {
                    pRelation.RemoveRelation(((RELATION_GUID)pReturn.mRelation).GetTargetGUID());
                    return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
                }
                break;

                case RELATION_RETURN_TYPE.RET_ADDFRIENDNOTIFY:
                {
                    //				_snprintf(szText, _MAX_PATH, "%s已经将你添加为好友了。", pReturn.m_NotifyFriend.GetName() );
//                  ADDTALKMSG(szText);
//                                      strTemp = NOCOLORMSGFUNC("GCRelationHandler_Info_Add_You_To_Firend_List", pReturn.m_NotifyFriend.GetName());
//                                      _snprintf(szText, _MAX_PATH, "%s", strTemp.c_str());
//                                      CGameProcedure::s_pEventSystem.PushEvent( GE_INFO_SELF, szText );
//                                      // 询问是否加对方为好友 [6/22/2011 edit by ZL]
//                                      CGameProcedure::s_pEventSystem.PushEvent( GE_FRIEND_MSG_CONFIRM, "201", pReturn.m_NotifyFriend.GetName(), pReturn.m_NotifyFriend.GetGUID() );
                    return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);;
                }
                break;

                case RELATION_RETURN_TYPE.RET_ONLINELIST:
                {
                    RETURN_ONLINE_LIST pRecv = (RETURN_ONLINE_LIST)(pReturn.mRelation);

                    for (byte i = 0; i < pRecv.GetOnlineCount(); ++i)
                    {
                        pRelation.UpdateOnlineFriend(pRecv.GetOnlineRelation(i));
                    }

                    //CObjectManager::GetMe().GetMySelf().GetCharacterData().Get_IsMinorPwdSetup(TRUE);

                    return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);;
                }
                break;

                case RELATION_RETURN_TYPE.RET_RELATIONONLINE:
                {
                    RETURN_NOTIFY_ONLINE pRecv = (RETURN_NOTIFY_ONLINE)(pReturn.mRelation);
                    pRelation.RelationOnline(UIString.Instance.GetUnicodeString(pRecv.GetTargetName()), UIString.Instance.GetUnicodeString(pRecv.GetMood()));
                    return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
                }
                break;

                case RELATION_RETURN_TYPE.RET_RELATIONOFFLINE:
                {
                    pRelation.RelationOffLine(((RELATION_GUID )pReturn.mRelation).GetTargetGUID());
                    return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);;
                }
                break;

                case RELATION_RETURN_TYPE.RET_NEWMOOD:
                {
                    REQUEST_MODIFY_MOOD mood = (REQUEST_MODIFY_MOOD)pReturn.mRelation;
                    pRelation.SetMood((UIString.Instance.GetUnicodeString(mood.GetMood())));
                    return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);;
                }
                break;

                case RELATION_RETURN_TYPE.RET_ERR_PASSWDMISMATCH:
                {
                    CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_MINORPASSWORD_OPEN_UNLOCK_PASSWORD_DLG);
                }
                break;

                case RELATION_RETURN_TYPE.RET_ERR_TARGETNOTEXIST:
                case RELATION_RETURN_TYPE.RET_ERR_GROUPISFULL:
                case RELATION_RETURN_TYPE.RET_ERR_ISFRIEND:
                case RELATION_RETURN_TYPE.RET_ERR_ISBLACKNAME:
                case RELATION_RETURN_TYPE.RET_ERR_CANNOTTRANSITION:
                case RELATION_RETURN_TYPE.RET_ERR_ISNOTFRIEND:
                case RELATION_RETURN_TYPE.RET_ERR_ISNOTINBLACKLIST:
                case RELATION_RETURN_TYPE.RET_ERR_SPOUSETOBLACKLIST:
                case RELATION_RETURN_TYPE.RET_ERR_MASTERTOBLACKLIST:
                case RELATION_RETURN_TYPE.RET_ERR_PRENTICETOBLACKLIST:
                case RELATION_RETURN_TYPE.RET_ERR_BROTHERTOBLACKLIST:
                case RELATION_RETURN_TYPE.RET_ERR_DELSPOUSE:
                case RELATION_RETURN_TYPE.RET_ERR_DELMASTER:
                case RELATION_RETURN_TYPE.RET_ERR_DELPRENTICE:
                case RELATION_RETURN_TYPE.RET_ERR_DELBROTHER:
                case RELATION_RETURN_TYPE.RET_ERR_CANNOT_ADDFRIEND:
                case RELATION_RETURN_TYPE.RET_ERR_CANNOTRECEIVEMAIL:
                case RELATION_RETURN_TYPE.RET_ERR_NOTRECVSTRANGEMAIL:
                case RELATION_RETURN_TYPE.RET_ERR_RELATIONUNKNOWN:
                {
//                  STRING strTemp = "";
//                  strTemp = NOCOLORMSGFUNC(pRelationString[ pReturn.m_Type - RET_ERR_START ]);
//                  strncpy(szText, strTemp.c_str(), MAX_PATH-1);
//                  //strncpy(szText, pRelationString[ pReturn.m_Type - RET_ERR_START ], MAX_PATH-1);
                    szText = "错误";
                }
                break;

                case RELATION_RETURN_TYPE.RET_ERR_ISENEMY:
                {
                    szText = "阵营错误";
                }
                break;

                default:
                    return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);;
                }

                GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, szText);
            }

            return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);;
        }
示例#18
0
    // 增加一个组员,如果是团队的话,需要传入团队所在的小组号
    public void AddMember(TeamMemberInfo member, short TeamID, byte TeamIndex)
    {
        TeamMemberInfo pTMInfo = new TeamMemberInfo();

        pTMInfo.m_GUID      = member.m_GUID;
        pTMInfo.m_OjbID     = member.m_OjbID;                                   //
        pTMInfo.m_SceneID   = member.m_SceneID;
        pTMInfo.m_uFamily   = member.m_uFamily;                                 // 2.五行属性
        pTMInfo.m_uDataID   = member.m_uDataID;                                 // 3.性别
        pTMInfo.m_nPortrait = member.m_nPortrait;                               // 5.头像
        pTMInfo.m_szNick    = member.m_szNick;

        CObject_PlayerMySelf pObj = CObjectManager.Instance.getPlayerMySelf();

        switch (m_Type)
        {
        case TEAM_OR_GROUP_TYPE.INVAILD_TYPE:
        {
            if (CreateTeam(pTMInfo, TeamID) == false)
            {
                pTMInfo = null;
            }
        }
        break;

        case TEAM_OR_GROUP_TYPE.TEAM_TYPE:
        {         // 队伍加人的情况
            if (m_TeamMembers.Count >= GAMEDEFINE.MAX_TEAM_MEMBER)
            {
                pTMInfo = null;
                CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "队伍已满,无法加人");
                return;
            }

            m_TeamMembers.Add(pTMInfo);
            // 队伍满人标记 [6/14/2011 edit by ZL]
            if (m_TeamMembers.Count == GAMEDEFINE.MAX_TEAM_MEMBER)
            {
                CObjectManager.Instance.getPlayerMySelf().GetCharacterData().Set_TeamFullFlag(true);
            }
            // 更新队伍信息 [9/26/2011 Ivan edit]
            CObject_Character player = CObjectManager.Instance.FindServerObject((int)pTMInfo.m_OjbID) as CObject_Character;
            if (player != null)
            {
                player.GetCharacterData().RefreshName();
            }
        }
        break;

        case TEAM_OR_GROUP_TYPE.GROUP_TYPE:
        {         // 团队加人的情况
            if (TeamIndex < 0 || TeamIndex >= GAMEDEFINE.MAX_TEAMS_IN_GROUP)
            {
                pTMInfo = null;
                return;
            }

            ++TeamIndex;         // 默认传入的数字为 0 ~ MAX_TEAMS_IN_GROUP-1

            TeamInfo pTeamInfo = GetTeam(TeamIndex);

            if (pTeamInfo != null)
            {
                if (pTeamInfo.m_TeamMembers.Count >= GAMEDEFINE.MAX_TEAM_MEMBER)
                {
                    pTMInfo = null;
                    return;
                }
            }
            else
            {         // 如果该小组不存在,则创建,并添加入团队
                pTeamInfo          = new TeamInfo();
                pTeamInfo.m_TeamID = TeamIndex;
                m_TeamInfo.Add(pTeamInfo);

                //队伍满
                if (pTeamInfo.m_TeamMembers.Count >= GAMEDEFINE.MAX_TEAM_MEMBER)
                {
                    CObjectManager.Instance.getPlayerMySelf().GetCharacterData().Set_TeamFullFlag(true);
                }
            }

            pTeamInfo.m_TeamMembers.Add(pTMInfo);

            if (pTMInfo.m_GUID == pObj.GetServerGUID())
            {
                m_MyTeamID = TeamIndex;
            }
        }
        break;

        default:
            return;
        }

        if (pTMInfo.m_GUID != pObj.GetServerGUID())
        { // 需要加载队友的头像窗口
            // 请求该队友的数据
            CGAskTeamMemberInfo Msg = new CGAskTeamMemberInfo();
            Msg.SceneID = pTMInfo.m_SceneID;
            Msg.ObjID   = (uint)pTMInfo.m_OjbID;
            Msg.GUID    = pTMInfo.m_GUID;

            NetManager.GetNetManager().SendPacket(Msg);
        }
        else
        {
            FillMyInfo(pTMInfo);
        }

        //// 创建一个界面的模型.
        //pTMInfo.m_UIModel.CreateNewUIModel();
        //// 设置ui模型
        //// 设置性别
        //pTMInfo.m_UIModel.m_pAvatar.GetCharacterData().Set_RaceID(pTMInfo.m_uDataID);
    }
示例#19
0
    // 一个组员离开
    public void DelMember(uint guid)
    {
        switch (m_Type)
        {
        case TEAM_OR_GROUP_TYPE.TEAM_TYPE:
        {
            // Keep ObjId [10/9/2011 Ivan edit]
            int teamMemberObjId = MacroDefine.INVALID_ID;

            for (int i = 0; i < m_TeamMembers.Count; i++)
            {
                if (m_TeamMembers[i].m_GUID == guid)
                {
                    teamMemberObjId = m_TeamMembers[i].m_OjbID;
                    m_TeamMembers.RemoveAt(i);
                    break;
                }
            }

            //队伍不再满
            if (m_TeamMembers.Count < GAMEDEFINE.MAX_TEAM_MEMBER)
            {
                CObjectManager.Instance.getPlayerMySelf().GetCharacterData().Set_TeamFullFlag(false);
            }

            // 更新队伍信息 [9/26/2011 Ivan edit]
            CObject_Character player = CObjectManager.Instance.FindServerObject(teamMemberObjId) as CObject_Character;

            if (player != null)
            {
                player.GetCharacterData().RefreshName();
            }
        }
        break;

        case TEAM_OR_GROUP_TYPE.GROUP_TYPE:
        {         // 团队情况
            bool bFind = false;

            for (int i = 0; i < m_TeamInfo.Count; i++)
            {
                TeamInfo teamInfo = m_TeamInfo[i];
                for (int j = 0; j < teamInfo.m_TeamMembers.Count; j++)
                {
                    if (teamInfo.m_TeamMembers[j].m_GUID == guid)
                    {
                        teamInfo.m_TeamMembers.RemoveAt(j);
                        bFind = true;
                        if (teamInfo.m_TeamMembers.Count < 1)
                        {
                            m_TeamInfo.RemoveAt(i);
                        }

                        break;
                    }
                }
                if (bFind)
                {
                    break;
                }
            }
        }
        break;

        default:
            return;
        }

        if (guid == m_LeaderID)
        { // choose a new leader
            switch (m_Type)
            {
            case TEAM_OR_GROUP_TYPE.TEAM_TYPE:
            {         // 队伍情况
                if (m_TeamMembers.Count < 1)
                {     // 不在此处处理队伍解散的情况
                    return;
                }

                SetLeaderGUID(m_TeamMembers[0].m_GUID);
            }
            break;

            case TEAM_OR_GROUP_TYPE.GROUP_TYPE:
            {         // 团队情况,暂时不考虑团队选择新团长的规则
                      //Assert(FALSE);
            }
            break;

            default:
                //Assert(FALSE);
                return;
            }
        }
    }
示例#20
0
    public OPERATE_RESULT IsCanUse_CheckDeplete(int idUser)
    {
        CObject_Character pUser = (CObject_Character)CObjectManager.Instance.FindObject(idUser);

        if (pUser == null)
        {
            return(OPERATE_RESULT.OR_ERROR);
        }

        CCharacterData pCharData = CDataPool.Instance.CharacterData_Get(idUser);

        if (pCharData == null)
        {
            return(OPERATE_RESULT.OR_ERROR);
        }

        // 心法要求
        //const SCLIENT_XINFA* pXinfa = CObjectManager::GetMe()->GetMySelf()->GetCharacterData()->Get_XinFa(m_pDefine->m_nXinFaID);
        //if ( pXinfa && pXinfa->m_nLevel <m_pDefine->m_nXinFaLevelRequirement )
        //{
        //	return OR_NEED_HIGH_LEVEL_XINFA;
        //}

        // 武器判断
        if (m_pDefine.m_bMustUseWeapon != 0)
        {
            if (pUser.GetCharacterData().Get_Equip(HUMAN_EQUIP.HEQUIP_WEAPON) == MacroDefine.INVALID_ID)
            {
                return(OPERATE_RESULT.OR_NEED_A_WEAPON);
            }
        }

        // 消耗判断
        if (m_pDeplete == null)
        {
            //Assert( m_pDeplete != NULL && "SCLIENT_SKILL::IsCanUse_CheckDeplete" );
            return(OPERATE_RESULT.OR_OK);
        }
        //待实现
        CImpact_Character impactChar = pUser.Impact;
        uint nDerateAllImpactID      = MacroDefine.UINT_MAX;

        if (impactChar.isExistEffect(nDerateAllImpactID))
        {
            return(OPERATE_RESULT.OR_OK);
        }

        // 是否有减免当前技能消耗的BUFF
        uint nDerateCurImpactID = MacroDefine.UINT_MAX;

        if (impactChar.isExistEffect(nDerateCurImpactID))
        {
            return(OPERATE_RESULT.OR_OK);
        }
//
        if (m_pDeplete.m_nHP > 0)
        {
            // 是否有减免HP消耗的BUFF
            uint nDerateHPImpactID = MacroDefine.UINT_MAX;
            if (!impactChar.isExistEffect(nDerateHPImpactID))
            {
                if (pCharData.Get_HP() < m_pDeplete.m_nHP)
                {
                    return(OPERATE_RESULT.OR_NOT_ENOUGH_HP);
                }
            }
        }
//
        if (m_pDeplete.m_nMP > 0)
        {
            // 是否有减免MP消耗的BUFF
            uint nDerateMPImpactID = MacroDefine.UINT_MAX;
            if (!impactChar.isExistEffect(nDerateMPImpactID))
            {
                if (pCharData.Get_MP() < m_pDeplete.m_nMP)
                {
                    return(OPERATE_RESULT.OR_LACK_MANA);
                }
            }
        }
//
        //if (m_pDeplete.m_nSP > 0)
        //{
        //    // 是否有减免SP消耗的BUFF
        //    uint nDerateSPImpactID = MacroDefine.UINT_MAX;
        //    if (!impactChar.isExistEffect(nDerateSPImpactID))
        //    {
        //        if (pCharData.Get_Rage() < m_pDeplete.m_nSP)
        //            return OPERATE_RESULT.OR_NOT_ENOUGH_RAGE;
        //    }
        //}
//
        if (m_pDeplete.m_nStrikePoint > 0)
        {
            // 是否有减免StrikePoint消耗的BUFF
            // 这里的m_pDeplete->m_nStrikePoint为连技段
            uint nDerateStrikePointImpactID = MacroDefine.UINT_MAX;
            if (!impactChar.isExistEffect(nDerateStrikePointImpactID))
            {
                int nStrikePoint = m_pDeplete.m_nStrikePoint * 3;
                if (pCharData.Get_StrikePoint() < nStrikePoint)
                {
                    return(OPERATE_RESULT.OR_NOT_ENOUGH_STRIKE_POINT);
                }
            }
        }
//
        if (m_pDeplete.m_nItemID != MacroDefine.INVALID_ID)
        {
            // 是否有减免Item消耗的BUFF
            uint nDerateItemImpactID = MacroDefine.UINT_MAX;
            if (!impactChar.isExistEffect(nDerateItemImpactID))
            {
                int nIndex = CDataPool.Instance.UserBag_GetItemIndexByID(m_pDeplete.m_nItemID);
                if (nIndex == -1)
                {
                    return(OPERATE_RESULT.OR_NOT_ENOUGH_ITEM);
                }
            }
        }
        return(OPERATE_RESULT.OR_OK);
    }
示例#21
0
        public float GetMPPercent()
        {
            CObject_Character pCharObj = _GetTargetAsCharacter();

            return(pCharObj.GetCharacterData().Get_MPPercent());
        }