Exemplo n.º 1
0
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.H))
        {
            CreateObjFunction.CreateModelStoryObj(463, "JXZFastMove1", Test);
            LogModule.DebugLog("fffffffffff");
        }

        if (Input.GetKeyDown(KeyCode.K))
        {
            ObjSnare_Init_Data initData = new ObjSnare_Init_Data();
            initData.m_ServerID   = 10000000;
            initData.m_OwerGuid   = Singleton <ObjManager> .Instance.MainPlayer.GUID;
            initData.m_OwnerObjId = Singleton <ObjManager> .Instance.MainPlayer.ServerID;
            initData.m_fX         = 1;
            initData.m_fZ         = 5;
            initData.m_SnareID    = 1;
            CreateObjFunction.CreateModelSnareObj(initData);
        }

        if (Input.GetKeyDown(KeyCode.Y))
        {
            ObjYanHua_Init_Data initData = new ObjYanHua_Init_Data();
            initData.m_ServerID   = 10000000;
            initData.m_OwerGuid   = Singleton <ObjManager> .Instance.MainPlayer.GUID;
            initData.m_OwnerObjId = Singleton <ObjManager> .Instance.MainPlayer.ServerID;
            initData.m_fX         = 1;
            initData.m_fZ         = 1;
            initData.m_nYanHuaID  = 2;
            CreateObjFunction.CreateModelYanhuaObj(initData);
        }
    }
        public uint Execute(PacketDistributed ipacket)
        {
            GC_CREATE_SNARE packet = (GC_CREATE_SNARE )ipacket;

            if (null == packet)
            {
                return((uint)PACKET_EXE.PACKET_EXE_ERROR);
            }
            //enter your logic
            //判断ServerID是否合法
            if (packet.ServerId < 0)
            {
                return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
            }
            //安全措施,如果发现ServerID已经存在,则先移除掉
            if (Singleton <ObjManager> .GetInstance().IsObjExist(packet.ServerId))
            {
                Singleton <ObjManager> .GetInstance().RemoveObj(packet.ServerId);
            }

            ObjSnare_Init_Data initData = new ObjSnare_Init_Data();

            initData.m_ServerID   = packet.ServerId;
            initData.m_OwerGuid   = packet.Owerguid;
            initData.m_OwnerObjId = packet.OwerId;
            initData.m_fX         = ((float)packet.PosX) / 100;
            initData.m_fZ         = ((float)packet.PosZ) / 100;
            initData.m_SnareID    = packet.SnareId;
            CreateObjFunction.CreateModelSnareObj(initData);
            return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
        }
Exemplo n.º 3
0
        public bool Init(ObjSnare_Init_Data initData)
        {
            if (null == m_ObjTransform)
            {
                m_ObjTransform = transform;
            }

            //服务器发过来的信息
            ServerID  = initData.m_ServerID;
            SnareId   = initData.m_SnareID;
            OwerobjID = initData.m_OwnerObjId;
            OwnerGuid = initData.m_OwerGuid;
            m_ObjTransform.position = ActiveScene.GetTerrainPosition(new Vector3(initData.m_fX, 0, initData.m_fZ));
            Obj_Character ownerCharacter = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(OwerobjID);

            //修正陷阱的高度和陷阱释放者一样
            if (ownerCharacter != null)
            {
                Vector3 newPosVector3 = m_ObjTransform.position;
                newPosVector3.y         = ownerCharacter.ObjTransform.position.y;
                m_ObjTransform.position = newPosVector3;
            }

            //初始化特效
            if (ObjEffectController == null)
            {
                ObjEffectController = gameObject.AddComponent <ObjEffectBehaviourController>();
            }

            Tab_SnareObjInfo SnareInfo = TableManager.GetSnareObjInfoByID(SnareId, 0);

            if (SnareInfo != null)
            {
                //播放生存期特效
                for (int i = 0; i < SnareInfo.getAliveEffectIdCount(); i++)
                {
                    int AliveEffectId = SnareInfo.GetAliveEffectIdbyIndex(i);
                    if (AliveEffectId != -1 && ObjEffectController != null)
                    {
                        PlayEffect(AliveEffectId);
                    }
                }
                //播放生存期音效
                for (int i = 0; i < SnareInfo.getAliveSoundIdCount(); i++)
                {
                    int AliveSoundId = SnareInfo.GetAliveSoundIdbyIndex(i);
                    if (AliveSoundId != -1)
                    {
                        GameManager.gameManager.SoundManager.PlaySoundEffect(AliveSoundId);
                    }
                }
            }
            return(true);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 创建陷阱
        /// </summary>
        /// <param name="nCharModelID"></param>
        /// <param name="initData"></param>
        public static void CreateModelSnareObj(ObjSnare_Init_Data initData)
        {
            if (null == initData)
            {
                return;
            }

            //根据RoleBase的ID获得路径
            Tab_SnareObjInfo SnareObjInfo = TableManager.GetSnareObjInfoByID(initData.m_SnareID, 0);

            if (null == SnareObjInfo)
            {
                return;
            }
            int nCharModelID = SnareObjInfo.CharModelId;

            Tab_CharModel charModel = TableManager.GetCharModelByID(nCharModelID, 0);

            if (charModel == null)
            {
                LogModule.WarningLog("can not find char model id in table :{0}", nCharModelID);
                return;
            }
            GameObject SnareObj = ResourceManager.InstantiateResource("Prefab/Model/SnareRoot", initData.m_ServerID.ToString()) as GameObject;

            if (null != SnareObj)
            {
                //加载逻辑体,同时异步加载渲染体
                Obj_Snare objSnare = SnareObj.AddComponent <Obj_Snare>();;

                if (objSnare.Init(initData))
                {
                    objSnare.CanLogic = true;
                    Singleton <ObjManager> .Instance.AddPoolObj(objSnare.ServerID.ToString(), objSnare);
                }
                //ReloadModel(SnareObj, charModel.ResPath, AsycSnareObjOver, initData);
                LoadModelToRoot(nCharModelID, EResourceType.CharacterModel, LoadModelComplete, SnareObj, charModel, null);
            }
        }