少年修仙传客户端代码仓库
Client_PangDeRong
2019-01-04 585e6707c065e3265f69a1652966101e6ac88137
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
8个文件已修改
324 ■■■■ 已修改文件
Core/GameEngine/Model/Config/PetClassCostConfig.cs 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/PetClassCostConfig.cs.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GatheringSoul/GatherSoulResolveWin.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/HeadPortraitTip.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/MainInterfaceWin.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/PlayerMainDate.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Mount/PlayerMountDatas.cs 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Pet/PlayerPetDatas.cs 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/PetClassCostConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Saturday, January 06, 2018
//    [  Date ]:           Friday, January 04, 2019
//--------------------------------------------------------
using UnityEngine;
@@ -11,11 +11,12 @@
    
    public partial class PetClassCostConfig : ConfigBase {
        public int ID { get ; private set ; }
        public int PetID { get ; private set ; }
        public int Rank { get ; private set ; }
        public int UpNeedExp { get ; private set ; }
        public int AtkAdd { get ; private set ; }
        public int ID { get ; private set ; }
        public int PetID { get ; private set ; }
        public int Rank { get ; private set ; }
        public int UpNeedExp { get ; private set ; }
        public int AtkAdd { get ; private set ; }
        public int NeedExpTotal { get ; private set ; }
        public override string getKey()
        {
@@ -25,15 +26,17 @@
        public override void Parse() {
            try
            {
                ID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0;
                PetID=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0;
                Rank=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0;
                UpNeedExp=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0;
                AtkAdd=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0;
                ID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0;
                PetID=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0;
                Rank=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0;
                UpNeedExp=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0;
                AtkAdd=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0;
                NeedExpTotal=IsNumeric(rawContents[5]) ? int.Parse(rawContents[5]):0;
            }
            catch (Exception ex)
            {
Core/GameEngine/Model/Config/PetClassCostConfig.cs.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: a58409c48a307e24eb39a8c2e933c8e8
timeCreated: 1515213576
licenseType: Pro
timeCreated: 1546593597
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
System/GatheringSoul/GatherSoulResolveWin.cs
@@ -238,6 +238,67 @@
                return;
            }
            bool existUnEquipBetterProperty = false;
            var count = model.holeCount;
            var error = 0;
            for (int i = 0; i < model.resolveItems.Count; i++)
            {
                var item = model.resolveItems[i];
                if (item != null && model.CheckExist(item))
                {
                    if (model.IsSamePropertyCompareHoles(-1, item) == -1)
                    {
                        existUnEquipBetterProperty = true;
                        break;
                    }
                    for (int k = 0; k < count; k++)
                    {
                        GatherSoulItem holeItem;
                        if (model.TryGetItem(k, out holeItem))
                        {
                            if (model.SatisfyReplace(k, item) && item.Compare(holeItem) == 1)
                            {
                                existUnEquipBetterProperty = true;
                                break;
                            }
                        }
                        else if (model.SatisfyEquipSoul(item, k, out error))
                        {
                            existUnEquipBetterProperty = true;
                            break;
                        }
                    }
                }
                if (existUnEquipBetterProperty)
                {
                    break;
                }
            }
            if (existUnEquipBetterProperty)
            {
                ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("GatherSoulResolveConfirm"), (bool isOk) =>
                  {
                      if (isOk)
                      {
                          TryResolve();
                      }
                  });
            }
            else
            {
                TryResolve();
            }
        }
        void TryResolve()
        {
            if (model.resolveItems.Count == 0)
            {
                return;
            }
            List<ushort> list = new List<ushort>();
            for (int i = 0; i < model.resolveItems.Count; i++)
            {
System/MainInterfacePanel/HeadPortraitTip.cs
@@ -212,27 +212,19 @@
            bool IsBossBool = MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);//是否在Boss区域
            if (atkInt.Length > 1)
            {
                if (PlayerDatas.Instance.baseData.MapID == 10040 && IsBossBool)//逍遥城boss区域特殊处理(可切换状态)
                if (PlayerDatas.Instance.baseData.MapID == 10040 && IsBossBool && !fairyGrabBossModel.grabBossHintOpen)//逍遥城boss区域特殊处理(可切换状态)
                {
                    if (fairyGrabBossModel.grabBossHintOpen)//活动Boss不让切状态
                    WindowCenter.Instance.Open<CombatModeWin>();
                    if (WindowCenter.Instance.IsOpen<FunctionForecastWin>())
                    {
                        return;
                        WindowCenter.Instance.Close<FunctionForecastWin>();
                    }
                    else
                    {
                        WindowCenter.Instance.Open<CombatModeWin>();
                        if (WindowCenter.Instance.IsOpen<FunctionForecastWin>())
                        {
                            WindowCenter.Instance.Close<FunctionForecastWin>();
                        }
                        return;
                    }
                    return;
                }
                var activityline = 0;
                fairyGrabBossModel.TryGetFairyGrabBossLine(out activityline);
                if (mapID == 10010 || mapID == 10020 || mapID == 10030)//Boss争夺战前三只保底只能是和平模式
                if (onMainModel.ShieldedArea.Contains(mapID))//Boss争夺战前三只保底只能是和平模式
                {
                    SysNotifyMgr.Instance.ShowTip("Map_AtkType");
                    return;
System/MainInterfacePanel/MainInterfaceWin.cs
@@ -566,35 +566,23 @@
            var config = Config.Instance.Get<MapConfig>(mapID);
            int[] atkInt = pKModel.GetArea(config.AtkType).ToArray();
            bool IsBossBool = MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);//是否在Boss区域
            if (onMainModel.ShieldedArea.Contains(PlayerDatas.Instance.baseData.MapID))//前三只Boss和活动Boss特殊处理
            if (PlayerDatas.Instance.baseData.MapID == 10040 && IsBossBool && !fairyGrabBossModel.grabBossHintOpen)//逍遥城普通Boss区域处理
            {
                onMainModel.AreaState = Buffmodel.PkType;
                DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)5);
                return;
            }
            if (onMainModel.ShieldedArea.Contains(PlayerDatas.Instance.baseData.MapID))//前四只Boss和活动Boss特殊处理
            {
            }
            else
            {
                if (mapID == 10040)
                if (IsBossBool && atkInt.Length > 1 && Buffmodel.PkType != 5)
                {
                    if (!fairyGrabBossModel.grabBossHintOpen && IsBossBool)//boss区域可以切换状态
                    {
                        onMainModel.AreaState = Buffmodel.PkType;
                        DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)5);
                    }
                    else if (fairyGrabBossModel.grabBossHintOpen && IsBossBool)//活动boss不让切
                    {
                        DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)onMainModel.AreaState);
                    }
                    onMainModel.AreaState = Buffmodel.PkType;
                    DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)5);
                }
                else
                {
                    if (IsBossBool && atkInt.Length > 1 && Buffmodel.PkType != 5)
                    {
                        onMainModel.AreaState = Buffmodel.PkType;
                        DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)5);
                    }
                }
            }
        }
System/MainInterfacePanel/PlayerMainDate.cs
@@ -165,6 +165,7 @@
        ShieldedArea.Add(10010);
        ShieldedArea.Add(10020);
        ShieldedArea.Add(10030);
        ShieldedArea.Add(10040);
        string WaHuangHighestFloorStr= Config.Instance.Get<FuncConfigConfig>("WaHuangHighestFloor").Numerical1;
        WaHuangHighestFloor = int.Parse(WaHuangHighestFloorStr);
        ruinsTranscriptMapId = int.Parse(Config.Instance.Get<FuncConfigConfig>("SpRewardMapID").Numerical1);//娲皇地图ID
System/Mount/PlayerMountDatas.cs
@@ -332,22 +332,23 @@
        }
        int GetMinLV = 100;
        int GetMountID = 0;
        for (int j = 0; j < SortMount.Count; j++)//选取出可升级坐骑等级最低且有未激活技能的坐骑
        List<int> IntListSkill = new List<int>();
        for (int j = 0; j < SortMount.Count; j++)//选取出可升级坐骑等级最低且有未激活技能的坐骑切经验最少
        {
            int Id = SortMount[j].HorseID;
            int GetHorseMaxLv = GetMountSkillMaxLV(Id);
            if (IntList.Contains(Id) && _DicHorse.ContainsKey(Id))
            {
                if (_DicHorse[Id].Lv < GetMinLV && _DicHorse[Id].Lv< GetHorseMaxLv)
                if (_DicHorse[Id].Lv < GetHorseMaxLv)
                {
                    GetMinLV = _DicHorse[Id].Lv;
                    GetMountID = Id;
                    IntListSkill.Add(Id);
                }
            }
        }
        if (GetMountID != 0 && ASingleFeedRedPoint.ContainsKey(GetMountID))
        int SkillHorseId = GetRedPointMountID(IntListSkill);
        if (SkillHorseId != 0 && ASingleFeedRedPoint.ContainsKey(SkillHorseId))
        {
            ASingleFeedRedPoint[GetMountID].state = RedPointState.Simple;
            ASingleFeedRedPoint[SkillHorseId].state = RedPointState.Simple;
            return;
        }
@@ -372,7 +373,7 @@
    }
    public int GetMinExpMount()
    {
    {
        foreach (var key in ASingleFeedRedPoint.Keys)//当存在驯养红点时选中当有红点的那只
        {
            if (ASingleFeedRedPoint[key].state == RedPointState.Simple)
@@ -382,11 +383,25 @@
        }
        int GetMountID = 0;
        int MountLV = 999;
        List<int> IntListSkill = new List<int>();
        foreach (var key in _DicHorse.Keys)
        {
            var mountConfig = Config.Instance.Get<HorseConfig>(key);
            if (_DicHorse[key].Lv < mountConfig.MaxLV)
            {
                IntListSkill.Add(key);
            }
        }
        int SkillHorseId = GetRedPointMountID(IntListSkill);
        if (SkillHorseId != 0)
        {
            GetMountID = SkillHorseId;
            return GetMountID;
        }
        foreach (var key in _DicHorse.Keys)//无红点时跳转选中最低阶数且未满级
        {
            var mountConfig = Config.Instance.Get<HorseConfig>(key);
            if (_DicHorse[key].Lv < MountLV && _DicHorse[key].Lv< mountConfig.MaxLV)
            if (_DicHorse[key].Lv < MountLV && _DicHorse[key].Lv < mountConfig.MaxLV)
            {
                GetMountID = key;
                MountLV = _DicHorse[key].Lv;
@@ -395,6 +410,56 @@
        return GetMountID;
    }
    private int GetRedPointMountID(List<int> MountList)
    {
        int GetSkillMinLv = 999;
        for (int i = 0; i < MountList.Count; i++)
        {
            int SkillminLv = GetSkillLvDis(MountList[i]);
            if (SkillminLv < GetSkillMinLv)
            {
                GetSkillMinLv = SkillminLv;
            }
        }
        int mountId = 0;
        int ExpNumber = 999999999;
        for (int i = 0; i < MountList.Count; i++)
        {
            int SkillLv = GetSkillLvDis(MountList[i]);
            if (SkillLv > GetSkillMinLv)
            {
                continue;
            }
            var Hor1 = HorseUpConfig.GetHorseIDAndLV(MountList[i], SkillLv);
            var Hor2 = HorseUpConfig.GetHorseIDAndLV(MountList[i],_DicHorse[(MountList[i])].Lv);
            int Exp = Hor1.NeedExpTotal - Hor2.NeedExpTotal - _DicHorse[(MountList[i])].Exp;
            if (Exp < ExpNumber)
            {
                ExpNumber = Exp;
                mountId = MountList[i];
            }
        }
        return mountId;
    }
    private int GetSkillLvDis(int MountId)//获取离升级最近的技能等级
    {
        int SkillLv = 0;
        foreach (var key in GetMountSkillAndItem.Keys)
        {
            if (_DicHorse.ContainsKey(MountId) && GetMountSkillAndItem[key].HorseID == MountId)
            {
                if (GetMountSkillAndItem[key].HorseLV > _DicHorse[MountId].Lv)
                {
                    SkillLv = GetMountSkillAndItem[key].HorseLV;
                    return SkillLv;
                }
            }
        }
        return SkillLv;
    }
    public int GetMountSkillMaxLV(int MountId)//获取坐骑最大技能等级
    {
        int SkillLv = 0;
System/Pet/PlayerPetDatas.cs
@@ -340,7 +340,7 @@
                int _NeedExp = PetClassCostConfig.GetPetIdAndRank(petID, _DicPetBack[petID].PetClass).UpNeedExp;
                int NeedExp = _NeedExp - _DicPetBack[petID].petExp;
                int NeedNumber = Mathf.CeilToInt((float)NeedExp / PetDanExp);
                if (itemCount>= NeedNumber)
                if (itemCount >= NeedNumber)
                {
                    ListInt.Add(petID);
                }
@@ -356,7 +356,8 @@
                return;
            }
        }
        for (int i = 0; i < ListInt.Count; i++)//选择出升级灵宠等级最低且有技能未解锁的
        List<int> IntListSkill = new List<int>();
        for (int i = 0; i < ListInt.Count; i++)//选择出升级灵宠等级最低且有技能未解锁的且经验最接近
        {
            if (_DicPetBack.ContainsKey(ListInt[i]))
            {
@@ -366,17 +367,17 @@
                    return;
                }
                int[] SkillUnLockInt = PetConfig.SkillUnLock;
                int SkillLvMax = SkillUnLockInt[(SkillUnLockInt.Length-1)];
                if (_DicPetBack[(ListInt[i])].PetClass < petLv && _DicPetBack[(ListInt[i])].PetClass<SkillLvMax)
                int SkillLvMax = SkillUnLockInt[(SkillUnLockInt.Length - 1)];
                if (_DicPetBack[(ListInt[i])].PetClass < SkillLvMax)
                {
                    petLv = _DicPetBack[(ListInt[i])].PetClass;
                    GetPetId = (ListInt[i]);
                    IntListSkill.Add((ListInt[i]));
                }
            }
        }
        if (GetPetId != 0 && CultivateRedPoint.ContainsKey(GetPetId))
        int SkillPetId = GetRedPointPetID(IntListSkill);
        if (SkillPetId != 0 && CultivateRedPoint.ContainsKey(SkillPetId))
        {
            CultivateRedPoint[GetPetId].state = RedPointState.Simple;
            CultivateRedPoint[SkillPetId].state = RedPointState.Simple;
            return;
        }
@@ -399,8 +400,60 @@
        }
    }
    private int GetRedPointPetID(List<int> PetList)
    {
        int GetSkillMinLv = 999;
        for (int i = 0; i < PetList.Count; i++)
        {
            int SkillminLv = GetSkillLvDis(PetList[i]);
            if (SkillminLv < GetSkillMinLv)
            {
                GetSkillMinLv = SkillminLv;
            }
        }
        int petId = 0;
        int ExpNumber = 999999999;
        for (int i = 0; i < PetList.Count; i++)
        {
            int SkillLv = GetSkillLvDis(PetList[i]);
            if (SkillLv > GetSkillMinLv)
            {
                continue;
            }
            var Pet1 = PetClassCostConfig.GetPetIdAndRank(PetList[i], SkillLv);
            var Pet2 = PetClassCostConfig.GetPetIdAndRank(PetList[i], _DicPetBack[(PetList[i])].PetClass);
            int Exp = Pet1.NeedExpTotal - Pet2.NeedExpTotal - _DicPetBack[(PetList[i])].petExp;
            if (Exp < ExpNumber)
            {
                ExpNumber = Exp;
                petId = PetList[i];
            }
        }
        return petId;
    }
    private int GetSkillLvDis(int PetId)//获取离升级最近的技能等级
    {
        int SkillLv = 0;
        var petInfo = Config.Instance.Get<PetInfoConfig>(PetId);
        if (petInfo == null)
        {
            return 0;
        }
        int[] ListPetSkillUnLock = petInfo.SkillUnLock;
        for (int i = 0; i < ListPetSkillUnLock.Length; i++)
        {
            if (_DicPetBack.ContainsKey(PetId) && ListPetSkillUnLock[i] > _DicPetBack[PetId].PetClass)
            {
                SkillLv = ListPetSkillUnLock[i];
                return SkillLv;
            }
        }
        return SkillLv;
    }
    public int GetMinPetExp()
    {
    {
        foreach (var key in CultivateRedPoint.Keys)//当存在培养红点时,选中当有红点的那只
        {
            if (CultivateRedPoint[key].state == RedPointState.Simple)
@@ -408,9 +461,24 @@
                return key;
            }
        }
        List<int> IntListSkill = new List<int>();
        foreach (var key in _DicPetBack.Keys)
        {
            var petConfig = Config.Instance.Get<PetInfoConfig>(key);
            if (_DicPetBack[key].PetClass < petConfig.MaxRank)
            {
                IntListSkill.Add(key);
            }
        }
        int SkillPetId = GetRedPointPetID(IntListSkill);
        if (SkillPetId != 0)
        {
            return SkillPetId;
        }
        int GetPetId = 0;
        int GetPetLv = 999;
        foreach (var key in _DicPetBack.Keys)//无红点时跳转选中等级最低的
        {
            var config = Config.Instance.Get<PetInfoConfig>(key);