public PlayerUnitData MakeEnemySyncData(ulong uuID, string nick, uint charIdx, uint level, uint vipLv, int att, uint costumeIdx , bool isHideCostume, List <int> equipIdxList, List <_PartnerData> parList, uint prefix, uint suffix, uint skillSetId) { PlayerUnitData enemyData = new PlayerUnitData(); List <_ItemData> equipList = new List <_ItemData>(); uint HELMETID = 0; uint CLOTHID = 0; uint WEAPONID = 0; for (int i = 0; i < equipIdxList.Count; i++) { Item.EquipmentInfo equipInfo = _LowDataMgr.instance.GetLowDataEquipItemInfo((uint)equipIdxList[i]); if (equipInfo == null) { continue; } switch ((ePartType)equipInfo.Type) { case ePartType.CLOTH: CLOTHID = equipInfo.Id; break; case ePartType.HELMET: HELMETID = equipInfo.Id; break; case ePartType.WEAPON: WEAPONID = equipInfo.Id; break; } equipList.Add(new _ItemData((ulong)equipIdxList[i], (uint)equipIdxList[i], 0, equipInfo.Grade, 0, 0)); } ushort[] skillLevel = new ushort[] { //스킬의 레벨을 현재는 알 수 없다. 1로 강제지정한다. 1, 1, 1, 1, 1 }; Dictionary <AbilityType, float> playerStats = CalcPlayerStats(charIdx, level, equipList, new _CostumeData((ulong)costumeIdx, (uint)costumeIdx, 1, 0, skillLevel, true, true)); if (isHideCostume) { } else { } //Item.CostumeInfo costumeData = _LowDataMgr.instance.GetLowDataCostumeInfo(costumeIdx); //서버에서 정상적인 데이터 오기전까지는 일렇게. if (skillSetId <= 0) { switch (charIdx) { case 11000: skillSetId = 100; break; case 12000: skillSetId = 200; break; case 13000: skillSetId = 300; break; } } enemyData.Init(0, (int)eTeamType.Team2, nick, uuID, uuID, charIdx, HELMETID, costumeIdx, CLOTHID, WEAPONID, skillSetId, isHideCostume, level, prefix, suffix, playerStats); uint skillIndex = 0; SkillTables.SkillSetInfo setInfo = _LowDataMgr.instance.GetLowDataSkillSet(skillSetId); for (int i = 0; i < setInfo.skill0.Count; i++) { uint.TryParse(setInfo.skill0[i], out skillIndex); enemyData.NormalAttackData[i] = new SkillData(skillIndex, (byte)skillLevel[0]); } enemyData.SkillData[0] = new SkillData(setInfo.skill1, (byte)1); enemyData.SkillData[1] = new SkillData(setInfo.skill2, (byte)1); enemyData.SkillData[2] = new SkillData(setInfo.skill3, (byte)1); enemyData.SkillData[3] = new SkillData(setInfo.skill4, (byte)1); for (int i = 0; i < setInfo.Chain.Count; i++) { uint.TryParse(setInfo.Chain[i], out skillIndex); enemyData.SkillData[4 + i] = new SkillData(skillIndex, (byte)skillLevel[1]); } _playerSyncData.playerSyncDatas.Add(enemyData); for (int i = 0; i < parList.Count; i++) { _PartnerData partner = parList[i]; if (partner != null) { Partner.PartnerDataInfo partnerInfo = partner.GetLowData(); if (partnerInfo == null) //테이블 변경으로 서버에서 가지고 있는 데이터와 다를 수 있다. { Debug.LogWarning("not found partner lowData error " + partner._partnerDataIndex); continue; } Dictionary <AbilityType, float> partnerStats = CalcPartnerStats(partner._NowLevel, partnerInfo, partnerInfo.Quality /*, partner._MinorGrade, partner._Enchant*/); PlayerUnitData partnerData = new PlayerUnitData(); partnerData.Init((byte)(i + 1), (byte)eTeamType.Team2, partner.GetLocName(), //"Partner0", 2 + (ulong)i, 2 + (ulong)i, partner._partnerDataIndex, partner._NowLevel, partnerStats); partnerData.NormalAttackData[0] = new SkillData(partnerInfo.skill0, 1); partnerData.SkillData[0] = new SkillData(partnerInfo.skill1, 1); partnerData.SkillData[1] = new SkillData(partnerInfo.skill2, 1); partnerData.SkillData[2] = new SkillData(partnerInfo.skill3, 1); partnerData.SkillData[3] = new SkillData(partnerInfo.skill4, 1); //파트너 버프 삭제 //if (partner.GetBuffSkillToSlot(0) != null) // if (partner.GetBuffSkillToSlot(0)._skillIndex != 0) // partnerData.PassiveBuff[0] = new SkillData(partner.GetBuffSkillToSlot(0)._skillIndex, (byte)partner.GetBuffSkillToSlot(0)._skillLevel); //if (partner.GetBuffSkillToSlot(1) != null) // if (partner.GetBuffSkillToSlot(1)._skillIndex != 0) // partnerData.PassiveBuff[1] = new SkillData(partner.GetBuffSkillToSlot(1)._skillIndex, (byte)partner.GetBuffSkillToSlot(1)._skillLevel); //if (partner.GetBuffSkillToSlot(2) != null) // if (partner.GetBuffSkillToSlot(2)._skillIndex != 0) // partnerData.PassiveBuff[2] = new SkillData(partner.GetBuffSkillToSlot(2)._skillIndex, (byte)partner.GetBuffSkillToSlot(2)._skillLevel); //if (partner.GetBuffSkillToSlot(3) != null) // if (partner.GetBuffSkillToSlot(3)._skillIndex != 0) // partnerData.PassiveBuff[3] = new SkillData(partner.GetBuffSkillToSlot(3)._skillIndex, (byte)partner.GetBuffSkillToSlot(3)._skillLevel); _playerSyncData.partnerSyncDatas.Add(partnerData); } } return(enemyData); }
public void MakePlayerSyncData(bool bMakePartnerData) { //내 플레이어용 싱크데이터 _playerSyncData = null; _playerSyncData = new _PlayerSyncData(); PlayerUnitData myData = new PlayerUnitData(); _playerSyncData.Init(); Dictionary <AbilityType, float> playerStats = CalcPlayerStats(); uint HELMETID = 0; uint CLOTHID = 0; uint WEAPONID = 0; Item.EquipmentInfo tempInfo = GetUserInfo().GetEquipPartsLowData(ePartType.HELMET); if (tempInfo == null) { HELMETID = 0; } else { HELMETID = tempInfo.Id; } tempInfo = GetUserInfo().GetEquipPartsLowData(ePartType.CLOTH); if (tempInfo == null) { CLOTHID = 0; } else { CLOTHID = tempInfo.Id; } tempInfo = GetUserInfo().GetEquipPartsLowData(ePartType.WEAPON); if (tempInfo == null) { WEAPONID = 0; } else { WEAPONID = tempInfo.Id; } ushort[] skillLevel = null; uint equipCostumeId = 0; if (GetUserInfo().GetEquipCostume() == null) { Newbie.NewbieInfo newbieinfo = _LowDataMgr.instance.GetNewbieCharacterData(GetUserInfo()._userCharIndex); equipCostumeId = newbieinfo.CostumIdx; skillLevel = new ushort[] { 1, 1, 1, 1, 1 }; } else { equipCostumeId = GetUserInfo().GetEquipCostume()._costmeDataIndex; skillLevel = GetUserInfo().GetEquipCostume()._skillLevel; } SkillSetData skillSetData = GetUserInfo().GetEquipSKillSet(); uint skillSetId = 0; uint[] skillIds = new uint[4]; uint[] skillLv = new uint[4]; if (skillSetData == null) { switch (GetUserInfo().GetCharIdx()) { case 11000: skillSetId = 100; break; case 12000: skillSetId = 200; break; case 13000: skillSetId = 300; break; } SkillTables.SkillSetInfo info = _LowDataMgr.instance.GetLowDataSkillSet(skillSetId); skillIds[0] = info.skill1; skillIds[1] = info.skill2; skillIds[2] = info.skill3; skillIds[3] = info.skill4; for (int i = 0; i < skillLv.Length; i++) { skillLv[i] = 1; } } else { skillSetId = skillSetData.SkillSetId; for (int i = 0; i < skillIds.Length; i++) { skillIds[i] = skillSetData.SkillId[i]; skillLv[i] = skillSetData.SkillLevel[i]; } } myData.Init(0, (int)eTeamType.Team1, Nickname, AccountUUID, 0, GetUserInfo().GetCharIdx(), HELMETID, equipCostumeId, CLOTHID, WEAPONID, skillSetId, GetUserInfo().isHideCostum, GetUserInfo()._Level, GetUserInfo()._LeftTitle, GetUserInfo()._RightTitle, playerStats); uint skillIndex = 0; SkillTables.SkillSetInfo setInfo = _LowDataMgr.instance.GetLowDataSkillSet(skillSetId); for (int i = 0; i < setInfo.skill0.Count; i++) { uint.TryParse(setInfo.skill0[i], out skillIndex); myData.NormalAttackData[i] = new SkillData(skillIndex, (byte)skillLevel[0]); } myData.SkillData[0] = new SkillData(skillIds[0], (byte)skillLv[0]); myData.SkillData[1] = new SkillData(skillIds[1], (byte)skillLv[1]); myData.SkillData[2] = new SkillData(skillIds[2], (byte)skillLv[2]); myData.SkillData[3] = new SkillData(skillIds[3], (byte)skillLv[3]); for (int i = 0; i < setInfo.Chain.Count; i++) { uint.TryParse(setInfo.Chain[i], out skillIndex); myData.SkillData[4 + i] = new SkillData(skillIndex, (byte)skillLevel[1]); } _playerSyncData.playerSyncDatas.Add(myData); if (!bMakePartnerData) { return; } for (int i = 0; i < 2; i++) //GetUserInfo().GetPartnerList().Count { _PartnerData partner = GetUserInfo().GetEquipPartner(i + 1); //슬롯 시작값이 1부터이다. i를 1부터 시작시키게 했다. if (partner != null) { Partner.PartnerDataInfo partnerInfo = partner.GetLowData(); Dictionary <AbilityType, float> partnerStats = CalcPartnerStats(partner._NowLevel, partnerInfo, partnerInfo.Quality /*, partner._MinorGrade, partner._Enchant*/); PlayerUnitData partnerData = new PlayerUnitData(); partnerData.Init((byte)(i + 1), (byte)eTeamType.Team1, partner.GetLocName(), //"Partner0", 2 + (ulong)i, 0, partner._partnerDataIndex, partner._NowLevel, partnerStats); partnerData.NormalAttackData[0] = new SkillData(partnerInfo.skill0, 1); partnerData.SkillData[0] = new SkillData(partnerInfo.skill1, 1); partnerData.SkillData[1] = new SkillData(partnerInfo.skill2, 1); partnerData.SkillData[2] = new SkillData(partnerInfo.skill3, 1); partnerData.SkillData[3] = new SkillData(partnerInfo.skill4, 1); //파트너 버프 삭제 //if (partner.GetBuffSkillToSlot(0) != null) // if (partner.GetBuffSkillToSlot(0)._skillIndex != 0) // partnerData.PassiveBuff[0] = new SkillData(partner.GetBuffSkillToSlot(0)._skillIndex, (byte)partner.GetBuffSkillToSlot(0)._skillLevel); //if (partner.GetBuffSkillToSlot(1) != null) // if (partner.GetBuffSkillToSlot(1)._skillIndex != 0) // partnerData.PassiveBuff[1] = new SkillData(partner.GetBuffSkillToSlot(1)._skillIndex, (byte)partner.GetBuffSkillToSlot(1)._skillLevel); //if (partner.GetBuffSkillToSlot(2) != null) // if (partner.GetBuffSkillToSlot(2)._skillIndex != 0) // partnerData.PassiveBuff[2] = new SkillData(partner.GetBuffSkillToSlot(2)._skillIndex, (byte)partner.GetBuffSkillToSlot(2)._skillLevel); //if (partner.GetBuffSkillToSlot(3) != null) // if (partner.GetBuffSkillToSlot(3)._skillIndex != 0) // partnerData.PassiveBuff[3] = new SkillData(partner.GetBuffSkillToSlot(3)._skillIndex, (byte)partner.GetBuffSkillToSlot(3)._skillLevel); _playerSyncData.partnerSyncDatas.Add(partnerData); } } }