Esempio n. 1
0
    protected override void InitManagers()
    {
        base.InitManagers();

        G_GameInfo.CharacterMgr.allrUUIDDic.Clear();

        //내데이터 만듬
        _PlayerSyncData syncData = NetData.instance._playerSyncData;

        CreatePlayerController(syncData.playerSyncDatas[0], syncData.partnerSyncDatas);

        //상대편 데이터 만듬 - 임시로 나와동일한 캐릭

        Vector3 spawnPos = GetSpawnTransform(eTeamType.Team2) != null?GetSpawnTransform(eTeamType.Team2).position : Vector3.zero;

        Quaternion spawnRot = GetSpawnTransform(eTeamType.Team2) != null?GetSpawnTransform(eTeamType.Team2).rotation : Quaternion.identity;

        ////게임 인포를 통한 유닛 생성
        GameObject EnemyLeader = G_GameInfo.GameInfo.SpawnUnit(1234567, (byte)eTeamType.Team2, syncData.playerSyncDatas[1], spawnPos, spawnRot, false);

        for (int idx = 0; idx < syncData.partnerSyncDatas.Count; idx++)
        {
            if (syncData.partnerSyncDatas[idx]._TeamID != (byte)eTeamType.Team2)
            {
                continue;
            }

            Vector3 pos = spawnPos + (idx == 0 ? new Vector3(1.5f, 0, -1.5f) : new Vector3(-1.5f, 0, -1.5f));
            G_GameInfo.GameInfo.SpawnPartner((ulong)(1234567 + idx + 1), (byte)eTeamType.Team2, syncData.partnerSyncDatas[idx], pos, spawnRot, true, EnemyLeader.GetComponent <Unit>());
        }

        InitSpawnCtlr();
    }
    protected override void InitManagers()
    {
        base.InitManagers();
        G_GameInfo.CharacterMgr.allrUUIDDic.Clear();
        //NetData.instance.MakePlayerSyncData(false);
        _PlayerSyncData syncData = NetData.instance._playerSyncData;

        CreatePlayerController(syncData.playerSyncDatas[0], null);

        InitSpawnCtlr();
    }
Esempio n. 3
0
    protected override void InitManagers()
    {
        base.InitManagers();

        G_GameInfo.CharacterMgr.allrUUIDDic.Clear();
        //NetData.instance.MakePlayerSyncData(true);     //우선 난투전에서는 싱크데이터를 만들어 준다.

        _PlayerSyncData syncData = NetData.instance._playerSyncData;

        CreatePlayerController(syncData.playerSyncDatas[0], syncData.partnerSyncDatas);

        InitSpawnCtlr();
    }
Esempio n. 4
0
    public _PlayerSyncData OtherPcSyncData(ulong AccountUUID, ulong a_rUUID, string a_Nick, uint a_CharIdx, uint a_userCostumeIdx, uint a_userLevel, uint prefix, uint suffix, uint maxSuperArmor, uint skillSetId)
    {
        _PlayerSyncData otherPcSyncData = new _PlayerSyncData();
        //if (_playerSyncData == null)
        //    return;

        PlayerUnitData myData = new PlayerUnitData();

        Dictionary <AbilityType, float> playerStats = new Dictionary <AbilityType, float>();

        //기본 스탯 넣어주자
        uint iLevel = 1;

        //일단 기본캐릭만
        Character.CharacterInfo charInfo = _LowDataMgr.instance.GetCharcterData(11000);
        playerStats.Add(AbilityType.HP, (float)(charInfo.BaseHp + iLevel * _LowDataMgr.instance.GetFormula(FormulaType.LEVELUP_CALIBRATION, 1) * charInfo.LevelUpHp));
        playerStats.Add(AbilityType.DAMAGE, (float)(charInfo.BaseAtk + iLevel * _LowDataMgr.instance.GetFormula(FormulaType.LEVELUP_CALIBRATION, 1) * charInfo.LevelUpAtk));
        playerStats.Add(AbilityType.HIT_RATE, (float)(charInfo.BaseHit * 0.1f + iLevel * _LowDataMgr.instance.GetFormula(FormulaType.LEVELUP_CALIBRATION, 1) * charInfo.LevelHitRate));
        playerStats.Add(AbilityType.DODGE_RATE, (float)(charInfo.BaseAvoid * 0.1f + iLevel * _LowDataMgr.instance.GetFormula(FormulaType.LEVELUP_CALIBRATION, 1) * charInfo.LevelAvoidRate));
        playerStats.Add(AbilityType.CRITICAL_RATE, (float)(charInfo.BaseCriticalRate * 0.1f));
        playerStats.Add(AbilityType.CRITICAL_RES, (float)(charInfo.BaseCriticalResist * 0.1f));
        playerStats.Add(AbilityType.CRITICAL_DAMAGE, (float)(charInfo.BaseCriticalDamage * 0.1f));
        playerStats.Add(AbilityType.DRAIN_HP, (float)(charInfo.BaseLifeSteal * 0.1f));
        playerStats.Add(AbilityType.DEFENCE_IGNORE, (float)(charInfo.BaseIgnoreAtk));
        playerStats.Add(AbilityType.DAMAGE_DECREASE, (float)(charInfo.BaseDamageDown));
        playerStats.Add(AbilityType.DAMAGE_DECREASE_RATE, (float)(charInfo.BaseDamageDownRate * 0.1f));
        playerStats.Add(AbilityType.EXP_UP, 0f);
        playerStats.Add(AbilityType.ALLSTAT_RATE, 0f);
        playerStats.Add(AbilityType.SUPERARMOR, maxSuperArmor);
        playerStats.Add(AbilityType.SUPERARMOR_RECOVERY, (float)(charInfo.SuperArmorRecovery));
        playerStats.Add(AbilityType.SUPERARMOR_RECOVERY_RATE, (float)(charInfo.SuperArmorRecoveryRate));
        playerStats.Add(AbilityType.SUPERARMOR_RECOVERY_TIME, (float)(charInfo.SuperArmorRecoveryTime));

        /*
         * for (int i = 0; i < (int)ePartType.PART_MAX; i++)
         * _ItemData equipItem = GetUserInfo().GetEquipParts((ePartType)i);
         *
         * if (equipItem != null)
         * {
         * var enumerator = equipItem.Stats.GetEnumerator();
         * while (enumerator.MoveNext())
         * {
         *  if (playerStats.ContainsKey(enumerator.Current.Key))
         *  {
         *      //있는거면 더해주기
         *      playerStats[enumerator.Current.Key] += RealValue(enumerator.Current.Key, enumerator.Current.Value);
         *  }
         *  else
         *  {
         *      //없는거면 추가
         *      playerStats.Add(enumerator.Current.Key, RealValue(enumerator.Current.Key, enumerator.Current.Value));
         *  }
         *
         * }
         * }
         * }
         */

        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;
        }

        //서버에서 정상적인 데이터 오기전까지는 일렇게.
        if (skillSetId <= 0)
        {
            switch (a_CharIdx)
            {
            case 11000:
                skillSetId = 100;
                break;

            case 12000:
                skillSetId = 200;
                break;

            case 13000:
                skillSetId = 300;
                break;
            }
        }

        myData.Init(0,
                    0,
                    a_Nick,
                    AccountUUID,
                    a_rUUID,
                    a_CharIdx,
                    0,
                    a_userCostumeIdx,
                    0,
                    0,
                    skillSetId,
                    false,
                    1,
                    prefix,
                    suffix,
                    playerStats);

        //Item.CostumeInfo costumeData = _LowDataMgr.instance.GetLowDataCostumeInfo(a_userCostumeIdx);

        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)1);
        }

        myData.SkillData[0] = new SkillData(setInfo.skill1, (byte)1);
        myData.SkillData[1] = new SkillData(setInfo.skill2, (byte)1);
        myData.SkillData[2] = new SkillData(setInfo.skill3, (byte)1);
        myData.SkillData[3] = new SkillData(setInfo.skill4, (byte)1);

        for (int i = 0; i < setInfo.Chain.Count; i++)
        {
            uint.TryParse(setInfo.Chain[i], out skillIndex);
            myData.SkillData[4 + i] = new SkillData(skillIndex, (byte)1);
        }

        otherPcSyncData.playerSyncDatas.Add(myData);

        return(otherPcSyncData);
    }
Esempio n. 5
0
    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);
            }
        }
    }
Esempio n. 6
0
    public void MakePlayerFreeFightSyncData(PMsgBattleMapEnterMapS netData)
    {
        //내 플레이어용 싱크데이터
        _playerSyncData = null;
        _playerSyncData = new _PlayerSyncData();

        PlayerUnitData myData = new PlayerUnitData();

        _playerSyncData.Init();

        Dictionary <AbilityType, float> playerStats = CalcPlayerStats();

        playerStats[AbilityType.HP]         = netData.UnHp;
        playerStats[AbilityType.SUPERARMOR] = netData.UnMaxSuperArmor;

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

        ushort[] skillLevel     = null;
        uint     equipCostumeId = 0;

        equipCostumeId = (uint)netData.UnCostumeId;
        skillLevel     = new ushort[] { 1, 1, 1, 1, 1 };

        //Item.CostumeInfo costumeData = _LowDataMgr.instance.GetLowDataCostumeInfo(equipCostumeId);
        SkillSetData skillSetData = GetUserInfo().GetEquipSKillSet();

        myData.Init(0,
                    0,
                    Nickname,
                    NetData.instance.AccountUUID,
                    0,
                    GetUserInfo().GetCharIdx(),
                    HELMETID,
                    equipCostumeId,
                    CLOTHID,
                    WEAPONID,
                    skillSetData.SkillSetId,
                    GetUserInfo().isHideCostum,
                    GetUserInfo()._Level,
                    GetUserInfo()._LeftTitle,
                    GetUserInfo()._RightTitle,
                    playerStats);

        uint skillIndex = 0;

        SkillTables.SkillSetInfo setInfo = _LowDataMgr.instance.GetLowDataSkillSet(skillSetData.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(skillSetData.SkillId[0], (byte)skillSetData.SkillLevel[0]);
        myData.SkillData[1] = new SkillData(skillSetData.SkillId[1], (byte)skillSetData.SkillLevel[1]);
        myData.SkillData[2] = new SkillData(skillSetData.SkillId[2], (byte)skillSetData.SkillLevel[2]);
        myData.SkillData[3] = new SkillData(skillSetData.SkillId[3], (byte)skillSetData.SkillLevel[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);
    }
    public void FreeFightUserEnter(PMsgBattleMapRoleInfoS anotherUserInfo)
    {
        if (!(G_GameInfo.CharacterMgr.FindRoomUnit((ulong)anotherUserInfo.UllRoleId) != null))
        {
            Vector3 pos = NaviTileInfo.instance.GetTilePos(anotherUserInfo.UnPosX, anotherUserInfo.UnPosY);

            NavMeshHit navHit;
            if (NavMesh.SamplePosition(pos, out navHit, 20, -1))
            {
                pos = navHit.position;
            }

            _PlayerSyncData syncData = NetData.instance.OtherPcSyncData((ulong)anotherUserInfo.UllRoleId, (ulong)anotherUserInfo.UllRoleId
                                                                        , anotherUserInfo.SzName, (uint)anotherUserInfo.UnType, (uint)anotherUserInfo.UnCostumeId, 1
                                                                        , anotherUserInfo.UnTitlePrefix, anotherUserInfo.UnTitleSuffix, (uint)anotherUserInfo.UnMaxSuperArmor, 0);  //싱크 데이터를 하나 만들어 주고

            byte TeamID = (byte)eTeamType.Min;
            if (FreeFightGameState.GameMode == GAME_MODE.FREEFIGHT)
            {
                TeamID = (byte)eTeamType.Team2;
            }
            else if (FreeFightGameState.GameMode == GAME_MODE.COLOSSEUM || FreeFightGameState.GameMode == GAME_MODE.MULTI_RAID)
            {
                TeamID = (byte)eTeamType.Team1;
            }

            G_GameInfo.GameInfo.SpawnNetworkUnit((ulong)anotherUserInfo.UllRoleId, TeamID, syncData.playerSyncDatas[0], pos, Quaternion.identity, false);

            Unit player = G_GameInfo.CharacterMgr.FindRoomUnit((ulong)anotherUserInfo.UllRoleId);
            if (player != null)
            {
                player.CharInfo.MaxHp         = anotherUserInfo.UnMaxHp;
                player.CharInfo.Hp            = anotherUserInfo.UnHp;
                player.CharInfo.SuperArmor    = (uint)anotherUserInfo.UnSuperArmor;
                player.CharInfo.MaxSuperArmor = (uint)anotherUserInfo.UnMaxSuperArmor;

                player.StaticState(false);
                player.SetTarget(GameDefine.unassignedID);

                //버프도 적용
                for (int i = 0; i < anotherUserInfo.CInfo.Count; i++)
                {
                    SkillTables.BuffInfo buff = _LowDataMgr.GetBuffData((uint)anotherUserInfo.CInfo[i].UnBuffId);

                    player.BuffCtlr.AttachBuff(null, player, buff, 10000, (uint)anotherUserInfo.CInfo[i].FBuffTime);
                }

                G_GameInfo.CharacterMgr.RoomPlayerEnter((ulong)anotherUserInfo.UllRoleId, player);
            }


            UIBasePanel board = UIMgr.GetUIBasePanel("UIPanel/InGameBoardPanel");
            if (board != null)
            {
                (board as InGameBoardPanel).ChangeNameColor();
            }

            return;
        }


        UIBasePanel board1 = UIMgr.GetUIBasePanel("UIPanel/InGameBoardPanel");

        if (board1 != null)
        {
            (board1 as InGameBoardPanel).ChangeNameColor();
        }
    }