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); }
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); } } } } } } }
//------------------------------------------------------------------------------------------------------- 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])); } } }
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); }
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; } }