Beispiel #1
0
    private void CreatePlayer()
    {
        IPlayer player = ClientGlobal.Instance().MainPlayer;

        if (player != null)
        {
            int job   = player.GetProp((int)PlayerProp.Job);
            int sex   = player.GetProp((int)PlayerProp.Sex);
            int index = 0;
            EntityViewProp[] propList = new EntityViewProp[(int)Client.EquipPos.EquipPos_Max];
            propList[index++] = new EntityViewProp((int)Client.EquipPos.EquipPos_Body, 0);
            propList[index++] = new EntityViewProp((int)Client.EquipPos.EquipPos_Weapon, (int)0);

            mainPlayer = CreateMainPlayer(player.GetName(), job, sex, propList, true);
            if (mainPlayer != null)
            {
                mainPlayer.SendMessage(EntityMessage.EntityCommand_SetPos, new UnityEngine.Vector3(100, 0f, -100));

                PlayAni anim_param = new PlayAni();
                anim_param.strAcionName = EntityAction.Stand;
                anim_param.fSpeed       = 1;
                anim_param.nStartFrame  = 0;
                anim_param.nLoop        = -1;
                anim_param.fBlendTime   = 0.1f;
                mainPlayer.SendMessage(EntityMessage.EntityCommand_PlayAni, anim_param);
            }
        }


        KPlayer pPlayer = NewPlayer(0);

        pPlayer.m_pEntity = mainPlayer;

        AddPlayer(pPlayer, m_pCurScne);
    }
Beispiel #2
0
    private static void BuildRobotViewProp(table.RobotDataBase robotdata, ref EntityViewProp[] propList)
    {
        if (propList == null)
        {
            return;
        }
        if (propList.Length < 0 || propList.Length > (int)Client.EquipPos.EquipPos_Max)
        {
            Engine.Utility.Log.Error("BuildRobotViewProp:外观列表长度非法");
            return;
        }
        List <uint> equipList = new List <uint>();

        equipList.Add(robotdata.Hat);
        equipList.Add(robotdata.Shoulder);
        equipList.Add(robotdata.Coat);
        equipList.Add(robotdata.Leg);
        equipList.Add(robotdata.Adornl_1);
        equipList.Add(robotdata.Adornl_2);
        equipList.Add(robotdata.Shield);
        equipList.Add(robotdata.Equip);
        equipList.Add(robotdata.Shoes);
        equipList.Add(robotdata.Cuff);
        equipList.Add(robotdata.Belf);
        equipList.Add(robotdata.Necklace);

        int index = 0;

        propList[index++] = new EntityViewProp((int)Client.EquipPos.EquipPos_Body, 0);
        propList[index++] = new EntityViewProp((int)Client.EquipPos.EquipPos_Weapon, 0);

        for (int i = 0; i < equipList.Count; i++)
        {
            if (equipList[i] != 0)
            {
                table.EquipDataBase equipdb = GameTableManager.Instance.GetTableItem <table.EquipDataBase>(equipList[i]);
                if (equipdb != null)
                {
                    if (equipdb.act_show != 0)
                    {
                        table.SuitDataBase suitDb = GameTableManager.Instance.GetTableItem <table.SuitDataBase>(equipdb.act_show, 1);
                        if (suitDb != null)
                        {
                            int pos = GetPropPos((Client.EquipPos)suitDb.base_id, propList);
                            if (pos >= 0)
                            {
                                propList[pos] = new EntityViewProp((int)suitDb.type, (int)suitDb.base_id);
                            }
                            else
                            {
                                propList[index++] = new EntityViewProp((int)suitDb.type, (int)suitDb.base_id);
                            }
                        }
                    }
                }
            }
        }
    }
Beispiel #3
0
    //-------------------------------------------------------------------------------------------------------
    private static void BuildPlayerViewProp(GameCmd.t_MapUserData data, ref EntityViewProp[] propList)
    {
        if (propList == null)
        {
            return;
        }
        if (propList.Length < 0 || propList.Length > (int)Client.EquipPos.EquipPos_Max)
        {
            Engine.Utility.Log.Error("BuildPlayerPropList:外观列表长度非法");
            return;
        }

        // 处理时装外观数据
        int index = 0;

        propList[index++] = new EntityViewProp((int)Client.EquipPos.EquipPos_Body, 0);
        propList[index++] = new EntityViewProp((int)Client.EquipPos.EquipPos_Weapon, 0);

        if (data.userdata.equip_suit == null)
        {
            return;
        }

        if (data.userdata.equip_suit.Count > 0)
        {
            for (int i = 0; i < data.userdata.equip_suit.Count; ++i)
            {
                if (data.userdata.equip_suit[i] == null)
                {
                    continue;
                }

                // 忽略萌宠
                if (GameCmd.EquipSuitType.Magic_Pet_Type == data.userdata.equip_suit[i].suit_type)
                {
                    continue;
                }

                int pos = GetPropPos((Client.EquipPos)data.userdata.equip_suit[i].suit_type, propList);
                if (pos >= 0)
                {
                    propList[pos] = new EntityViewProp((int)data.userdata.equip_suit[i].suit_type, (int)data.userdata.equip_suit[i].baseid);
                }
                else
                {
                    Client.EquipPos equipPos = (Client.EquipPos)data.userdata.equip_suit[i].suit_type;
                    propList[index++] = new EntityViewProp((int)equipPos, (int)data.userdata.equip_suit[i].baseid);
                }
            }
        }
    }
    void CreatePlayer()
    {
        IPlayer player = ClientGlobal.Instance().MainPlayer;

        if (player != null)
        {
            int job   = player.GetProp((int)PlayerProp.Job);
            int sex   = player.GetProp((int)PlayerProp.Sex);
            int index = 0;
            EntityViewProp[] propList = new EntityViewProp[(int)Client.EquipPos.EquipPos_Max];
            propList[index++] = new EntityViewProp((int)Client.EquipPos.EquipPos_Body, 0);
            propList[index++] = new EntityViewProp((int)Client.EquipPos.EquipPos_Weapon, (int)0);
            //propList[index++] = new EntityViewProp((int)Client.EquipPos.EquipPos_Wing, (int)0);

            mainPlayer = HomeScene.Instance.AddPuppet(player.GetName(), job, sex, propList, true);
            if (mainPlayer != null && HomePlayerPos.Count == 2)
            {
                mainPlayer.SendMessage(EntityMessage.EntityCommand_SetPos, new Vector3(HomePlayerPos[0], 0f, -HomePlayerPos[1]));
            }
        }
    }
Beispiel #5
0
    public bool Create(List <GameCmd.SuitData> lstSuit, int nJob, int nSex, int nSize, GameObject parentObj, SkillSettingState eState = SkillSettingState.StateOne)
    {
        Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
        if (rs == null)
        {
            Engine.Utility.Log.Error("获取RenderSystem失败!");
            return(false);
        }

        // 对象创建
        if (m_Root == null)
        {
            m_Root = new GameObject("RTObj");
            if (parentObj != null)
            {
                m_Root.transform.parent = parentObj.transform;
            }
        }

        //
        m_RenderObj = null;

        Client.IEntitySystem es = Client.ClientGlobal.Instance().GetEntitySystem();
        if (es == null)
        {
            return(false);
        }

        Client.EntityCreateData data = new Client.EntityCreateData();
        data.ID      = ++s_uPuppetID;
        data.strName = "";

        //int speed = player.GetProp((int)WorldObjProp.MoveSpeed);
        data.PropList = new EntityAttr[(int)PuppetProp.End - (int)EntityProp.Begin];
        int index = 0;

        data.PropList[index++] = new EntityAttr((int)PuppetProp.Job, nJob);
        data.PropList[index++] = new EntityAttr((int)PuppetProp.Sex, nSex);
        //data.PropList[index++] = new EntityAttr((int)EntityProp.BaseID, 0);
        //data.PropList[index++] = new EntityAttr((int)WorldObjProp.MoveSpeed, speed);
        data.eSkillState = eState;
        data.bViewModel  = true;
        // 处理时装外观数据
        EntityViewProp[] propList = new EntityViewProp[(int)Client.EquipPos.EquipPos_Max];
        index             = 0;
        propList[index++] = new EntityViewProp((int)Client.EquipPos.EquipPos_Body, 0);
        propList[index++] = new EntityViewProp((int)Client.EquipPos.EquipPos_Weapon, 0);

        if (lstSuit.Count > 0)
        {
            for (int i = 0; i < lstSuit.Count; ++i)
            {
                if (lstSuit[i] == null)
                {
                    continue;
                }

                int pos = GetPropPos((Client.EquipPos)lstSuit[i].suit_type, propList);
                if (pos >= 0)
                {
                    propList[pos] = new EntityViewProp((int)lstSuit[i].suit_type, (int)lstSuit[i].baseid);
                }
                else
                {
                    Client.EquipPos equipPos = (Client.EquipPos)lstSuit[i].suit_type;
                    propList[index++] = new EntityViewProp((int)equipPos, (int)lstSuit[i].baseid);
                }
            }
        }

        data.ViewList = propList;
        data.nLayer   = LayerMask.NameToLayer("ShowModel");

        m_PuppetObj = es.CreateEntity(Client.EntityType.EntityType_Puppet, data, true) as Client.IPuppet;
        if (m_PuppetObj == null)
        {
            Engine.Utility.Log.Error("创建Renderobj失败{0}!", "");
            return(false);
        }

        m_RenderObj = m_PuppetObj.renderObj;
        if (m_RenderObj == null)
        {
            return(false);
        }

        // 默认播放站立动作
        m_RenderObj.Play(Client.EntityAction.Stand);
        m_RenderObj.SetLayer((int)Engine.RenderLayer.ShowModel); // showModel

        // CreateCamera
        Camera cam = CreateCamera();

        m_RenderText = new RenderTexture(nSize, nSize, 24, RenderTextureFormat.ARGB32);
        if (m_RenderText == null)
        {
            return(false);
        }
        cam.targetTexture = m_RenderText;

        // 对象挂在父节点上
        if (m_Root != null)
        {
            m_RenderObj.GetNode().GetTransForm().parent = m_Root.transform;
            m_Camera.transform.parent = m_Root.transform;
        }

        return(true);
    }
Beispiel #6
0
    private static void BuildNPCViewProp(GameCmd.t_MapNpcDataPos data, ref EntityViewProp[] propList)
    {
        if (propList == null)
        {
            return;
        }

        if (propList.Length < 0 || propList.Length > (int)Client.EquipPos.EquipPos_Max)
        {
            Engine.Utility.Log.Error("BuildPlayerPropList:外观列表长度非法");
            return;
        }

        // 处理时装外观数据
        if (data.mapnpcdata.npcdata.arenanpctype == ArenaNpcType.ArenaNpcType_Player || data.mapnpcdata.npcdata.arenanpctype == ArenaNpcType.ArenaNpcType_Npc)
        {
            int index = 0;
            if (data.mapnpcdata.npcdata.sex == 0)
            {
                Engine.Utility.Log.Error("BuildPlayerPropList:性别数据{0}非法!", data.mapnpcdata.npcdata.sex);
                data.mapnpcdata.npcdata.sex = 1;
            }
            var table_data = table.SelectRoleDataBase.Where((GameCmd.enumProfession)data.mapnpcdata.npcdata.job, (GameCmd.enmCharSex)data.mapnpcdata.npcdata.sex);
            if (table_data == null)
            {
                Engine.Utility.Log.Error("BuildPlayerPropList:job{0}或者sex{1}数据非法!", data.mapnpcdata.npcdata.job, data.mapnpcdata.npcdata.sex);
                return;
            }
            uint uClothID  = table_data.bodyPathID;
            uint uWeaponID = table_data.weaponPath;

            propList[index++] = new EntityViewProp((int)Client.EquipPos.EquipPos_Body, (int)uClothID);
            propList[index++] = new EntityViewProp((int)Client.EquipPos.EquipPos_Weapon, (int)uWeaponID);
            for (int i = 0; i < data.mapnpcdata.npcdata.suit_data.Count; ++i)
            {
                if (data.mapnpcdata.npcdata.suit_data[i] == null)
                {
                    return;
                }

                uint nSultID = 0;
                int  pos     = GetPropPos((Client.EquipPos)data.mapnpcdata.npcdata.suit_data[i].suit_type, propList);
                if (pos >= 0)
                {
                    if (data.mapnpcdata.npcdata.suit_data[i].suit_type == EquipSuitType.Clothes_Type && data.mapnpcdata.npcdata.suit_data[i].suit_type == 0)
                    {
                        nSultID = uClothID;
                    }
                    else
                    {
                        nSultID = data.mapnpcdata.npcdata.suit_data[i].baseid;
                    }

                    if (data.mapnpcdata.npcdata.suit_data[i].suit_type == EquipSuitType.Qibing_Type && data.mapnpcdata.npcdata.suit_data[i].suit_type == 0)
                    {
                        nSultID = uWeaponID;
                    }
                    else
                    {
                        nSultID = data.mapnpcdata.npcdata.suit_data[i].baseid;
                    }

                    propList[pos] = new EntityViewProp((int)data.mapnpcdata.npcdata.suit_data[i].suit_type, (int)nSultID);
                }
                else
                {
                    Client.EquipPos equipPos = (Client.EquipPos)data.mapnpcdata.npcdata.suit_data[i].suit_type;
                    propList[index++] = new EntityViewProp((int)equipPos, (int)nSultID);
                }
            }
        }
        else
        {
            propList = null;
        }
    }