Пример #1
0
    public EA_CCharUser CreateUser(ObjectInfo GameObjInfo, CharInfo charInfo)
    {
        GameObjInfo.m_eObjType = eObjectType.CT_PLAYER;
        EA_CCharUser pUser = (EA_CCharUser)CreateGameObject(GameObjInfo);

        if (pUser != null)
        {
            pUser.SetCharInfo(charInfo);
            pUser.PosInit();
        }

        return(pUser);
    }
Пример #2
0
    public EA_CObjectBase RemovePlayer(EAObjID _id)
    {
        EA_CCharUser pUser = GetPlayer(_id);

        if (pUser != null)
        {
            pUser.ResetInfo(eObjectState.CS_DEAD);
            m_mapPlayerList.Remove((uint)_id);
            m_pIDGenerator.FreeID(_id);
        }

        return(pUser);
    }
Пример #3
0
    EA_CCharUser GetPlayer(EAObjID _id)
    {
        EA_CCharUser pUser = null;

        m_mapPlayerList.TryGetValue(_id, out pUser);

        if (pUser == null && m_pMainPlayer.GetObjID() == _id)
        {
            return(m_pMainPlayer);
        }

        return(pUser);
    }
Пример #4
0
    public void Init()
    {
        //Debug.Log("EACObjManager Init");

        //  [3/6/2014 puos] Load template


        if (m_pMainPlayer == null)
        {
            m_pMainPlayer = new EA_CCharUser();

            ObjectInfo emptyObjInfo = new ObjectInfo();
            emptyObjInfo.m_eObjState = eObjectState.CS_MYENTITY;
            emptyObjInfo.m_eObjType  = eObjectType.CT_MYPLAYER;
            emptyObjInfo.m_GDObjId   = CObjGlobal.MyPlayerID;

            m_pMainPlayer.SetObjInfo(emptyObjInfo);

            CharInfo emptyCharInfo = new CharInfo();
            m_pMainPlayer.SetCharInfo(emptyCharInfo);
        }
    }
Пример #5
0
    /// <summary>
    /// The game object from the server is applied first and the Cry Entity is created by FirstUpdate ().
    /// </summary>
    /// <param name="GameObjInfo"></param>
    /// <returns></returns>
    public EA_CObjectBase CreateGameObject(ObjectInfo GameObjInfo)
    {
        EA_CObjectBase pReturnObject = null;

        GameObjInfo.m_eObjState = eObjectState.CS_SETENTITY;

        //	Temporarily specify ObjId (sometimes temporary use by external system)
        bool bCreateTempId = false;

        if (CObjGlobal.InvalidObjID == GameObjInfo.m_GDObjId)
        {
            GameObjInfo.m_GDObjId = (EAObjID)m_pIDGenerator.GenerateID();
            bCreateTempId         = true;
        }

        switch (GameObjInfo.m_eObjType)
        {
        case eObjectType.CT_MYPLAYER:
        {
            if (GetMainPlayer() != null)
            {
                //	My character is created at startup so I don't need to create it
                GetMainPlayer().SetObjInfo(GameObjInfo);

                pReturnObject = GetMainPlayer();
            }
        }
        break;

        case eObjectType.CT_PLAYER:
        {
            EA_CCharUser pCharPlayer = null;

            //	First check if it exists
            if (bCreateTempId == false)
            {
                pCharPlayer = GetPlayer(GameObjInfo.m_GDObjId);
            }

            //	If not, create a new one
            if (pCharPlayer == null)
            {
                pCharPlayer = new EA_CCharUser();

                if (pCharPlayer != null)
                {
                    m_mapPlayerList.Add(GameObjInfo.m_GDObjId, pCharPlayer);
                }
            }

            //	Enter the information of the created object and apply it
            if (pCharPlayer != null)
            {
                pCharPlayer.SetObjInfo(GameObjInfo);
            }

            pReturnObject = pCharPlayer;
        }
        break;

        case eObjectType.CT_NPC:
        {
            EA_CCharNPC pCharNPC = null;

            //	First check if it exists
            if (bCreateTempId == false)
            {
                pCharNPC = GetNPC(GameObjInfo.m_GDObjId);
            }

            //	If not, create a new one
            if (pCharNPC == null)
            {
                pCharNPC = new EA_CCharNPC();

                if (pCharNPC != null)
                {
                    m_mapNPCList.Add(GameObjInfo.m_GDObjId, pCharNPC);
                }
            }

            //	Apply the information to the generated number
            if (pCharNPC != null)
            {
                pCharNPC.SetObjInfo(GameObjInfo);
            }

            pReturnObject = pCharNPC;
        }
        break;

        case eObjectType.CT_MONSTER:
        {
            EA_CCharMob pCharPlayer = null;

            //	First check if it exists
            if (bCreateTempId == false)
            {
                pCharPlayer = GetMob(GameObjInfo.m_GDObjId);
            }

            //	If not, create a new one
            if (pCharPlayer == null)
            {
                pCharPlayer = new EA_CCharMob();

                if (pCharPlayer != null)
                {
                    m_mapMonsterList.Add(GameObjInfo.m_GDObjId, pCharPlayer);
                }
            }

            //	Apply the information to the generated number
            //			assert( pCharInfo && "No Character Info" );
            if (pCharPlayer != null)
            {
                pCharPlayer.SetObjInfo(GameObjInfo);
            }

            pReturnObject = pCharPlayer;
        }
        break;

        case eObjectType.CT_ITEMOBJECT:
        {
            EA_CItem pItem = null;

            //	First check if it exists
            if (bCreateTempId == false)
            {
                pItem = GetItemObject(GameObjInfo.m_GDObjId);
            }

            //	If not, create a new one
            if (pItem == null)
            {
                pItem = new EA_CItem();

                if (pItem != null)
                {
                    m_mapItemList.Add(GameObjInfo.m_GDObjId, pItem);
                }
            }

            //	Apply the information to the generated number
            if (pItem != null)
            {
                pItem.SetObjInfo(GameObjInfo);
            }

            pReturnObject = pItem;
        }
        break;

        case eObjectType.CT_MAPOBJECT:
        {
            EA_CMapObject pObject = null;

            //	First check if it exists
            if (bCreateTempId == false)
            {
                pObject = GetMapObject(GameObjInfo.m_GDObjId);
            }

            //	If not, create a new one
            if (pObject == null)
            {
                pObject = new EA_CMapObject();

                if (pObject != null)
                {
                    m_mapObjectList.Add(GameObjInfo.m_GDObjId, pObject);
                }
            }

            //	Apply the information to the generated number
            if (pObject != null)
            {
                pObject.SetObjInfo(GameObjInfo);
            }

            pReturnObject = pObject;
        }
        break;

            /*
             * case CT_QUEST:
             *  {
             *      //	First check if it exists
             *      if( false == bCreateTempId )
             *          pReturnObject = GetQuestItem(GameObjInfo.m_DiaObjId);
             *
             *      //	If not, create a new one
             *      if( NULL == pReturnObject )
             *      {
             *          pReturnObject = new IfDia_CObjectBase;
             *          assert( pReturnObject && "Not Create ItemObject" );
             *          if( pReturnObject )
             *              m_mapQuestList.insert( TQuestListMap::value_type(GameObjInfo.m_DiaObjId,pReturnObject) );
             *      }
             *
             *       //	Apply the information to the generated number
             *      if( pReturnObject )
             *      {
             *          pReturnObject->SetObjInfo(GameObjInfo);
             *      }
             *  }
             *  break;
             * /**/
        }

        //assert( pReturnObject );

        //	Apply the information to the generated number
        if (pReturnObject != null)
        {
            m_entityList.Add(pReturnObject);
        }

        return(pReturnObject);
    }