Beispiel #1
0
    // Update is called once per frame
    protected void LateUpdate()
    {
        if (
            m_pEffectBaseInfo.m_EffectResourceType == eEffectResourceType.eDecal &&
            m_pEffectBaseInfo.m_bForceAxis == true
            )
        {
            EA_CObjectBase pObjectBase = EACObjManager.instance.GetGameObject(m_pEffectBaseInfo.m_AttachObjectId);

            if (pObjectBase != null && pObjectBase.GetLinkEntity() != null)
            {
                Vector3 position = Vector3.zero;

                position.x = pObjectBase.GetLinkEntity().transform.position.x;
                position.y = m_pEffectBaseInfo.m_fForceYpos;
                position.z = pObjectBase.GetLinkEntity().transform.position.z;

                transform.position = position;
            }
        }

        if (m_pSfx != null && m_bAutoDelete == true)
        {
            if (m_pSfx.IsAlive() == false)
            {
                if (m_pEffectBaseInfo.m_GDEffectId != CObjGlobal.InvalidEffectID)
                {
                    //Debug.Log("delete sfx :" + m_pEffectBaseInfo.m_GDEffectId );
                    EACEffectManager.instance.RemoveEffect(m_pEffectBaseInfo.m_GDEffectId);
                }
            }
        }
    }
Beispiel #2
0
 public void RemoveEntity(EA_CObjectBase gameEntity)
 {
     if (gameEntity != null)
     {
         m_entityList.Remove(gameEntity);
     }
 }
Beispiel #3
0
    public static bool EntityUnSetting(EA_CObjectBase pDelObjBase)
    {
        if (pDelObjBase != null)
        {
            if (pDelObjBase.GetObjInfo().m_eObjState == eObjectState.CS_SETENTITY)
            {
                //  [3/6/2014 puos] entity unsetting error check
                Debug.Log("EntityUnSetting error : " + pDelObjBase.GetObjInfo().m_strGameName);
                return(false);
            }

            GameObject pGameObject = pDelObjBase.GetLinkEntity();

            if (pGameObject == null)
            {
                Debug.Log("EntityUnSetting gameobject is null : " + pDelObjBase.GetObjInfo().m_strGameName);
                return(false);
            }

            // puos 20141019 null parent set
            pGameObject.transform.parent = null;

            CObjResourcePoolingManager.instance.Despawn(pDelObjBase.GetLinkEntity());

            pDelObjBase.SetLinkEntity(null);

            //Debug.Log("EntityUnSetting pSetObject :" + pDelObjBase.GetObjInfo().m_strGameName);
        }
        return(true);
    }
Beispiel #4
0
    public EA_CObjectBase GetGameObject(EAObjID _id)
    {
        EA_CObjectBase obj = null;

        obj = (obj == null) ? GetActor(_id) : obj;
        obj = (obj == null) ? GetItemObject(_id) : obj;
        obj = (obj == null) ? GetMapObject(_id) : obj;

        return(obj);
    }
Beispiel #5
0
    public bool DeleteGameObject(eObjectType DelObjectType, EAObjID _id)
    {
        if (CObjGlobal.InvalidObjID != _id)
        {
            EA_CObjectBase obj = null;

            switch (DelObjectType)
            {
            default:
            case eObjectType.CT_MYPLAYER:
            {
                break;
            }

            case eObjectType.CT_PLAYER:
            {
                obj = RemovePlayer(_id);
                break;
            }

            case eObjectType.CT_NPC:
            {
                obj = RemoveNPC(_id);
                break;
            }

            case eObjectType.CT_MONSTER:
            {
                obj = RemoveMob(_id);
                break;
            }

            case eObjectType.CT_ITEMOBJECT:
            {
                obj = RemoveItem(_id);
                break;
            }

            case eObjectType.CT_MAPOBJECT:
            {
                obj = RemoveMapObject(_id);
            }
            break;
            }

            RemoveEntity(obj);
        }

        return(false);
    }
Beispiel #6
0
    public GameObject GetOwner()
    {
        if (GetItemBase() != null)
        {
            EAObjID _objID = GetItemBase().GetItemInfo().m_HavenUser;

            EA_CObjectBase pObjectBase = EACObjManager.instance.GetGameObject(_objID);

            if (pObjectBase != null)
            {
                return(pObjectBase.GetLinkEntity());
            }
        }

        return(null);
    }
Beispiel #7
0
    protected void GuidedProjectileType()
    {
        GameObject     pEntity     = null;
        EA_CObjectBase pObjectBase = null;

        if (!string.IsNullOrEmpty(WeaponInfo.m_strTargetActorBoneName))
        {
            pObjectBase = EACObjManager.instance.GetActor(WeaponInfo.m_TargetActorId);
        }
        else
        {
            pObjectBase = EACObjManager.instance.GetGameObject(WeaponInfo.m_TargetActorId);
        }

        if (pObjectBase != null && pObjectBase.GetLinkEntity())
        {
            pEntity = pObjectBase.GetLinkEntity();

            Collider c = pObjectBase.collider;

            Vector3 vColliderPos = Vector3.zero;

            if (c != null)
            {
                vColliderPos = c.bounds.extents;
            }

            Vector3 vTargetPos = (pEntity.gameObject.transform.position) + vColliderPos;

            Vector3 vDiff = vTargetPos - transform.position;

            m_vDir = vDiff;
            m_vDir.Normalize();
        }
        else
        {
            WeaponInfo.m_TargetActorId = CObjGlobal.InvalidObjID;
            m_vDir = m_vStartDir;
        }

        Debug.DrawLine(transform.position, transform.position + m_vDir * WeaponInfo.fProjectileSpeed * Time.deltaTime, Color.yellow);

        Vector3 vPos = transform.position + m_vDir * WeaponInfo.fProjectileSpeed * Time.deltaTime;

        SetVPos(vPos);
    }
Beispiel #8
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);
    }
Beispiel #9
0
    public static bool EffectSetting(EA_CEffectNode pEffectNode, EA_EffectBaseInfo effectinfo)
    {
        if (null == pEffectNode)
        {
            Debug.Log("pEffectNode is null : " + effectinfo.m_GDEffectId);
            return(false);
        }


        if (eEffectState.ES_Load != effectinfo.m_eEffectState)
        {
            return(false);
        }

        //	Object basic information
        string sPoolType = effectinfo.m_EffectTableIndex;

        GameObject pGameObject = null;

        switch (effectinfo.m_eAttachType)
        {
        case eEffectAttachType.eWorld:
        {
            pGameObject = CEffectResourcePoolingManager.instance.Spwan(sPoolType);

            if (pGameObject != null)
            {
                pGameObject.transform.position = Vector3.zero;
            }
        }
        break;

        case eEffectAttachType.eLinkOffset:
        {
            EA_CObjectBase pObjectBase = EACObjManager.instance.GetGameObject(effectinfo.m_AttachObjectId);

            if (pObjectBase != null && pObjectBase.GetLinkEntity() != null)
            {
                GameObject IEntity = pObjectBase.GetLinkEntity();

                pGameObject = CEffectResourcePoolingManager.instance.Spwan(sPoolType);

                if (pGameObject != null)
                {
                    pGameObject.transform.parent = IEntity.transform;

                    pGameObject.transform.localPosition = Vector3.zero;
                    pGameObject.transform.localRotation = Quaternion.identity;
                }
            }
        }
        break;

        case eEffectAttachType.eLinkBone:
        {
            EA_CObjectBase pObjectBase = EACObjManager.instance.GetGameObject(effectinfo.m_AttachObjectId);

            if (pObjectBase != null)         //  [4/11/2014 puos]                        attach to the actor bone
            {
                GameObject pBone = pObjectBase.GetObjectInActor(effectinfo.m_AttachBoneName);

                if (pBone != null)
                {
                    pGameObject = CEffectResourcePoolingManager.instance.Spwan(sPoolType);

                    if (pGameObject != null)
                    {
                        pGameObject.transform.parent        = pBone.transform;
                        pGameObject.transform.localPosition = Vector3.zero;
                        pGameObject.transform.localRotation = Quaternion.identity;
                    }
                }
            }
        }
        break;
        }

        if (pGameObject == null)
        {
            Debug.Log("EffectSetting gameobject is null : " + effectinfo.m_GDEffectId);
            return(false);
        }

        if (pGameObject.GetComponent <EAEffectModule>() == null)
        {
            pGameObject.AddComponent <EAEffectModule>();
        }

        pEffectNode.SetLinkEffect(pGameObject.GetComponent <EAEffectModule>());

        return(true);
    }
Beispiel #10
0
    public static bool EntitySetting(EA_CObjectBase pSetObject, ObjectInfo SetObjinfo)
    {
        if (null == pSetObject)
        {
            Debug.Log("EntitySetting pSetObject is null :" + SetObjinfo.m_strGameName);
            return(false);
        }

        if (eObjectState.CS_SETENTITY != SetObjinfo.m_eObjState)
        {
            return(false);
        }

        string poolType = SetObjinfo.m_ModelTypeIndex;

        GameObject pGameObject = CObjResourcePoolingManager.instance.Spwan(poolType);

        pSetObject.SetLinkEntity(pGameObject);

        if (pGameObject == null)
        {
            Debug.LogError("EntitySetting Game object is invalid. type : " + poolType + ", name : " + pSetObject.GetObjInfo().m_strGameName);
            return(false);
        }

        // Modify class creation logic [3/30/2018 puos]
        if (SetObjinfo.m_objClassType != default(Type))
        {
            if (pGameObject.GetComponent(SetObjinfo.m_objClassType) == null)
            {
                pGameObject.AddComponent(SetObjinfo.m_objClassType);
            }
        }

        //	Create around object table
        switch (SetObjinfo.m_eObjType)
        {
        case eObjectType.CT_NPC:
        case eObjectType.CT_MONSTER:
        case eObjectType.CT_PLAYER:
        case eObjectType.CT_MYPLAYER:
        {
            EAActor actor = pGameObject.GetComponent <EAActor>();

            if (actor == null)
            {
                actor = pGameObject.AddComponent <EAActor>();
                SetObjinfo.m_objClassType = typeof(EAActor);
            }

            ((EA_CCharBPlayer)pSetObject).SetLinkActor(actor);
        }
        break;

        case eObjectType.CT_MAPOBJECT:
        {
            EAMapObject mapObject = pGameObject.GetComponent <EAMapObject>();

            if (mapObject == null)
            {
                mapObject = pGameObject.AddComponent <EAMapObject>();
                SetObjinfo.m_objClassType = typeof(EAMapObject);
            }

            ((EA_CMapObject)pSetObject).SetLinkMapObject(mapObject);
        }
        break;

        case eObjectType.CT_ITEMOBJECT:
        {
            EAItem itemObject = pGameObject.GetComponent <EAItem>();

            if (itemObject == null)
            {
                itemObject = pGameObject.AddComponent <EAItem>();
                SetObjinfo.m_objClassType = typeof(EAItem);
            }

            ((EA_CItem)pSetObject).SetLinkItem(itemObject);
        }
        break;
        }

        //Debug.Log("EntitySetting pSetObject :" + SetObjinfo.m_ModelTypeIndex);

        return(true);
    }