Beispiel #1
0
        /// <summary>
        /// 招募佣兵或招募灵魂
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="generalInfo"></param>
        /// <param name="type"></param>
        public static void UpdateUserGeneral(string userID, GeneralInfo generalInfo, GeneralType type, int num)
        {
            var         cacheSet    = new GameDataCacheSet <UserGeneral>();
            UserGeneral userGeneral = null;

            if (type == GeneralType.YongBing)
            {
                userGeneral = cacheSet.FindKey(userID, generalInfo.GeneralID);
                if (userGeneral == null)
                {
                    CreateUserGeneral(userID, generalInfo, type, num);
                }
                else
                {
                    UpdateUserGeneral(userID, generalInfo, GeneralType.Soul, num);
                }
            }
            else if (type == GeneralType.Soul)
            {
                userGeneral = cacheSet.FindKey(userID, generalInfo.SoulID);
                if (userGeneral == null)
                {
                    CreateUserGeneral(userID, generalInfo, type, num);
                }
                else
                {
                    userGeneral.AtmanNum = MathUtils.Addition(userGeneral.AtmanNum, num);
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// 升级加属性
        /// </summary>
        /// <param name="general"></param>
        /// <param name="property"></param>
        public static void UpdateGeneralPro(UserGeneral general, AbilityType type, decimal num)
        {
            if (type == AbilityType.Potential)
            {
                general.Potential = MathUtils.Addition(general.Potential, num).ToInt();
            }
            var property = general.Attribute.Find(s => s.AbilityType == type);

            if (property != null)
            {
                general.Attribute.UpdateNotify(obj =>
                {
                    property.AbilityValue = MathUtils.Addition(property.AbilityValue, num);
                    return(true);
                });
                //property.UpdateNotify(obj =>
                //{
                //    property.AbilityValue = num;
                //    return true;
                //});
            }
            else
            {
                property              = new GeneralProperty();
                property.AbilityType  = type;
                property.AbilityValue = num;
                general.Attribute.Add(property);
            }
        }
Beispiel #3
0
        public override void BuildPacket()
        {
            PushIntoStack(bossPlotID);
            PushIntoStack(_guild == null ? (short)0 : _guild.GuildBossInfo.BossLv);
            PushIntoStack(_guild == null ? 0 : _guild.ColdTime);
            PushIntoStack(_regNum);
            PushIntoStack(_guild == null ? (short)0 : _guild.CombatStatus.ToShort());
            PushIntoStack((_inspirePercent * 100).ToInt());
            PushIntoStack(_reLiveNum);


            PushIntoStack(_bossUserList.Count);
            foreach (BossUser bossUser in _bossUserList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(bossUser.NickName.ToNotNullString());
                UserGeneral userGeneral = UserGeneral.GetMainGeneral(bossUser.UserId);
                dsItem.PushIntoStack(userGeneral == null ? string.Empty : userGeneral.HeadID.ToNotNullString());
                dsItem.PushIntoStack(bossUser.IsRelive ? 0 : 1);
                dsItem.PushIntoStack(bossUser.CodeTime);
                dsItem.PushIntoStack(NoviceHelper.IsWingFestivalInfo(bossUser.UserId) ? (short)1 : (short)0);
                dsItem.PushIntoStack(0);
                PushIntoStack(dsItem);
            }
            PushIntoStack((_reliveInspirePercent * 100).ToInt());
        }
Beispiel #4
0
        /// <summary>
        /// 传承人或被传承人、传承类型选择
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="generalHeritagesList"></param>
        /// <param name="type"></param>
        public static void HeritageGeneral(GameUser user, int type)
        {
            if (user.HeritageList.Count == 0)
            {
                return;
            }
            GeneralHeritage heritage = user.HeritageList.Find(m => m.Type == HeritageType.Heritage);
            GeneralHeritage hGernal  = user.HeritageList.Find(m => m.Type == HeritageType.IsHeritage);

            if (heritage == null || hGernal == null)
            {
                return;
            }
            var         cacheSet = new GameDataCacheSet <UserGeneral>();
            UserGeneral ugeneral = cacheSet.FindKey(user.UserID, heritage.GeneralID);
            UserGeneral general  = cacheSet.FindKey(user.UserID, hGernal.GeneralID);

            if (ugeneral == null || general == null)
            {
                return;
            }
            heritage.GeneralLv = ugeneral.GeneralLv;
            OpsInfo info = HeritageOpsInfo(type);

            if (info != null)
            {
                int generLv = (heritage.GeneralLv * info.Num).ToFloorInt(); //().ToShort();
                if (generLv < general.GeneralLv)
                {
                    generLv = general.GeneralLv;
                }
                hGernal.GeneralLv = generLv.ToShort();
                hGernal.opsType   = type;
            }
        }
Beispiel #5
0
        public override bool TakeAction()
        {
            var userGeneralList = new GameDataCacheSet <UserGeneral>().FindAll(ContextUser.UserID,
                                                                               s =>
                                                                               s.GeneralID != generalID &&
                                                                               s.GeneralType == GeneralType.YongBing && s.GeneralType != GeneralType.Soul);

            foreach (var general in userGeneralList)
            {
                general.GeneralCard = string.Empty;
            }
            userGeneral = new GameDataCacheSet <UserGeneral>().FindKey(ContextUser.UserID, generalID);
            if (userGeneral != null)
            {
                nextLv = MathUtils.Addition(userGeneral.GeneralLv, (short)1);
                if (!string.IsNullOrEmpty(userGeneral.GeneralCard))
                {
                    strUserItemID = userGeneral.GeneralCard.TrimEnd(',').Split(',');
                }
            }
            var generalInfo = new ConfigCacheSet <GeneralInfo>().FindKey(generalID);

            if (generalInfo != null)
            {
                isUp = 1;
            }
            return(true);
        }
Beispiel #6
0
        public override bool TakeAction()
        {
            GeneralProperty property  = null;
            UserTrump       userTrump = new GameDataCacheSet <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);

            if (userTrump != null && userTrump.PropertyInfo.Count > 0)
            {
                property = userTrump.PropertyInfo.Find(m => m.AbilityType == propertyID);
            }
            if (property == null)
            {
                return(false);
            }
            if (ops == 1)
            {
                ErrorCode = ops;
                ErrorInfo = LanguageManager.GetLang().St1467_WorshipGridNotEnough;
                return(false);
            }
            else if (ops == 2)
            {
                ErrorCode = ops;
                userTrump.PropertyInfo.Remove(property);

                var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID);
                if (usergeneral != null)
                {
                    usergeneral.RefreshMaxLife();
                }
            }

            return(true);
        }
Beispiel #7
0
    void Awake()
    {
        // set the original spawn point
        // spawnPoint = m_OriginalPlayer.transform.position;

        // delete the default player (Singleton)
        if (Instance == null)
        {
            Instance = this;
        }
        else
        {
            // Destroy();
            Debug.Log("Destroyed Instance");
            return;
        }

        // DontDestroyOnLoad(gameObject);

        // set the player location to that of the original / default
        // m_player = GameObject.Find("Player");
        // m_player.transform.position = spawnPoint;
        // if (SL.GetSceneName().Equals("MainHub 1")){
        //     m_player.transform.rotation = Quaternion.Euler(0, 90, 0);
        // }
    }
Beispiel #8
0
        public override void BuildPacket()
        {
            PushIntoStack(moreTeam.MorePlot.PlotID);
            PushIntoStack(moreTeam.MorePlot.PlotName.ToNotNullString());
            PushIntoStack(moreTeam.UserList.Count);
            PushIntoStack(PlotTeamCombat.TeamMaxPeople);
            PushIntoStack(moreTeam.MorePlot.ItemId);
            PushIntoStack(moreTeam.MorePlot.ItemName.ToNotNullString());
            PushIntoStack(moreTeam.MorePlot.ItemNum);
            PushIntoStack(moreTeam.MorePlot.ExpNum);
            PushIntoStack(moreTeam.TeamUser != null && moreTeam.TeamUser.UserId.ToNotNullString().Equals(Uid) ? 1 : 0);
            PushIntoStack(moreTeam.Status);

            PushIntoStack(moreTeam.UserList.Count);
            foreach (var teamUser in moreTeam.UserList)
            {
                var         gameUser   = new GameDataCacheSet <GameUser>().FindKey(teamUser.UserId);
                UserGeneral general    = UserGeneral.GetMainGeneral(teamUser.UserId);
                CareerInfo  careerInfo = null;
                if (general != null)
                {
                    careerInfo = new ConfigCacheSet <CareerInfo>().FindKey(general.CareerID);
                }

                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(teamUser.UserId);
                dsItem.PushIntoStack(teamUser.NickName.ToNotNullString());
                dsItem.PushIntoStack(careerInfo == null ? 0 : (int)careerInfo.CareerID);
                dsItem.PushIntoStack(careerInfo == null ? string.Empty : careerInfo.CareerName.ToNotNullString());
                dsItem.PushIntoStack(gameUser == null ? (short)0 : gameUser.UserLv);
                PushIntoStack(dsItem);
            }
        }
Beispiel #9
0
        protected override int ComparerTo(UserRank x, UserRank y)
        {
            int result = 0;

            if (x == null && y == null)
            {
                return(0);
            }
            if (x != null && y == null)
            {
                return(1);
            }
            if (x == null)
            {
                return(-1);
            }
            result = y.UserLv.CompareTo(x.UserLv);
            if (result == 0)
            {
                var generalX = UserGeneral.GetMainGeneral(x.UserID);
                var generalY = UserGeneral.GetMainGeneral(y.UserID);
                if (generalX != null && generalY != null)
                {
                    result = generalY.CurrExperience.CompareTo(generalX.CurrExperience);
                    if (result == 0)
                    {
                        result = y.UserID.CompareTo(x.UserID);
                    }
                }
            }
            return(result);
        }
Beispiel #10
0
        public override bool TakeAction()
        {
            UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);

            if (userTrump != null && userTrump.PropertyInfo.Count > 0)
            {
                GeneralProperty property = userTrump.PropertyInfo.Find(m => m.AbilityType == propertyID);
                if (property != null)
                {
                    if (property.AbilityLv >= TrumpPropertyInfo.MaxTrumpPropertyLv)
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = LanguageManager.GetLang().St1466_OutPropertyMaxLv;
                        return(false);
                    }
                    TrumpPropertyInfo trumpProperty = new ConfigCacheSet <TrumpPropertyInfo>().FindKey(property.AbilityType, property.AbilityLv);
                    if (trumpProperty != null)
                    {
                        int upItemNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, trumpProperty.ItemID);
                        if (upItemNum < trumpProperty.ItemNum)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St1462_ItemNumNotEnough;
                            return(false);
                        }
                        if (ContextUser.GameCoin < trumpProperty.GameCoin)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St_GameCoinNotEnough;
                            return(false);
                        }
                        if (ContextUser.ObtainNum < trumpProperty.ObtainNum)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St_ObtainNumNotEnough;
                            return(false);
                        }
                        ContextUser.ObtainNum = MathUtils.Subtraction(ContextUser.ObtainNum, trumpProperty.ObtainNum);
                        ContextUser.GameCoin  = MathUtils.Subtraction(ContextUser.GameCoin, trumpProperty.GameCoin);
                        UserItemHelper.UseUserItem(ContextUser.UserID, trumpProperty.ItemID, trumpProperty.ItemNum);
                        short             upLv            = MathUtils.Addition(property.AbilityLv, (short)1, (short)TrumpPropertyInfo.MaxTrumpPropertyLv);
                        TrumpPropertyInfo uptrumpProperty = new ConfigCacheSet <TrumpPropertyInfo>().FindKey(property.AbilityType, upLv);
                        property.UpdateNotify(obj =>
                        {
                            property.AbilityLv    = MathUtils.Addition(property.AbilityLv, (short)1, TrumpPropertyInfo.MaxTrumpPropertyLv);
                            property.AbilityValue = uptrumpProperty.PropertyNum;
                            return(true);
                        });
                        var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID);
                        if (usergeneral != null)
                        {
                            usergeneral.RefreshMaxLife();
                        }
                        ErrorCode = 0;
                        ErrorInfo = LanguageManager.GetLang().St1464_UpgradeWasSsuccessful;
                    }
                }
            }
            return(true);
        }
Beispiel #11
0
        public override bool TakeAction()
        {
            var          package  = UserItemPackage.Get(ContextUser.UserID);
            UserItemInfo userItem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID == userItemID);

            if (userItem != null)
            {
                UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);
                if (userTrump != null && userTrump.TrumpLv >= GameConfigSet.MaxTrumpLv)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1456_OutTrumpMaxLv;
                    return(false);
                }
                ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(userItem.ItemID);
                if (itemInfo != null && itemInfo.PropType == 10)
                {
                    TrumpHelper.CheckTrumpEscalate(ContextUser.UserID, itemInfo.EffectNum);
                    UserItemHelper.UseUserItem(ContextUser.UserID, itemInfo.ItemID, 1);
                    var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID);
                    if (usergeneral != null)
                    {
                        usergeneral.RefreshMaxLife();
                    }
                }
            }
            return(true);
        }
Beispiel #12
0
        public override bool TakeAction()
        {
            string publicUserID = string.Empty;

            if (string.IsNullOrEmpty(toUserID))
            {
                publicUserID = ContextUser.UserID;
            }
            else
            {
                publicUserID = toUserID;
                UserCacheGlobal.LoadOffline(publicUserID);
            }
            generalInfo          = UserGeneral.GetMainGeneral(publicUserID);
            generalMedicineArray = new PersonalCacheStruct <GeneralMedicine>().FindAll(publicUserID, m => m.GeneralID == generalID);
            foreach (GeneralMedicine medicine in generalMedicineArray)
            {
                if (medicine.MedicineType == 1)
                {
                    powerNum = MathUtils.Addition(powerNum, (short)medicine.BaseNum, short.MaxValue);
                }
                else if (medicine.MedicineType == 2)
                {
                    soulNum = MathUtils.Addition(soulNum, (short)medicine.BaseNum, short.MaxValue);
                }
                else if (medicine.MedicineType == 3)
                {
                    intellectNum = MathUtils.Addition(intellectNum, (short)medicine.BaseNum, short.MaxValue);
                }
            }
            return(true);
        }
Beispiel #13
0
        /// <summary>
        /// 法宝每战斗M次就扣除N点寿命
        /// </summary>
        /// <param name="userID"></param>
        public static void CombatTrumpLift(string userID)
        {
            GameUser  user      = new GameDataCacheSet <GameUser>().FindKey(userID);
            UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(userID, TrumpInfo.CurrTrumpID);

            if (userTrump != null && user != null && user.UserExtend != null)
            {
                user.UserExtend.UpdateNotify(obj =>
                {
                    user.UserExtend.TrumpCombat = MathUtils.Addition(user.UserExtend.TrumpCombat, 1);
                    return(true);
                });
                if (user.UserExtend.TrumpCombat >= GameConfigSet.TrumpCombatNum)
                {
                    userTrump.LiftNum = MathUtils.Subtraction(userTrump.LiftNum, GameConfigSet.TrumpLifeNum);
                    user.UserExtend.UpdateNotify(obj =>
                    {
                        user.UserExtend.TrumpCombat = 0;
                        return(true);
                    });
                }
                var usergeneral = UserGeneral.GetMainGeneral(userID);
                if (userTrump.LiftNum <= 0 && usergeneral != null)
                {
                    usergeneral.RefreshMaxLife();
                }
            }
        }
Beispiel #14
0
        public override void BuildPacket()
        {
            PushIntoStack(isSuccess);
            PushIntoStack(memberArray.Count);
            foreach (GuildMember member in memberArray)
            {
                UserCacheGlobal.CheckLoadUser(member.UserID);
                GameUser    gameUser = new GameDataCacheSet <GameUser>().FindKey(member.UserID);
                UserGeneral general  = UserGeneral.GetMainGeneral(member.UserID);
                int         isHelp   = 0;
                if (member.DevilNum > 1)
                {
                    isHelp = 1;
                }
                else
                {
                    isHelp = 2;
                }
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(member.UserID);
                dsItem.PushIntoStack(gameUser == null ? string.Empty : gameUser.NickName.ToNotNullString());
                dsItem.PushIntoStack(general == null ? string.Empty : general.HeadID.ToNotNullString());
                dsItem.PushIntoStack(isHelp);

                PushIntoStack(dsItem);
            }
            PushIntoStack(currNum);
            PushIntoStack(isPilgrimage);
            PushIntoStack(chaoShengNum);
        }
Beispiel #15
0
        public override bool TakeAction()
        {
            int       upitemNum = 0;
            var       cacheSet  = new GameDataCacheSet <UserTrump>();
            UserTrump userTrump = cacheSet.FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);

            if (userTrump == null)
            {
                return(false);
            }
            WashConsumeInfo consumeInfo = TrumpHelper.GetWashConsumeInfo(userTrump.MatureNum);

            if (consumeInfo == null)
            {
                return(false);
            }
            upitemNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, consumeInfo.ItemID);
            if (ops == 1)
            {
                string success = ((double)consumeInfo.SuccessNum * 100).ToString();
                ErrorCode = ops;
                ErrorInfo = string.Format(LanguageManager.GetLang().St1458_UseBackDaysOrb, consumeInfo.ItemNum, consumeInfo.MatureNum, success);
                return(false);
            }
            else if (ops == 2)
            {
                ErrorCode = ops;
                if (upitemNum < consumeInfo.ItemNum)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1458_BackDaysOrbNotEnough;
                    return(false);
                }
                int maxMatrueNum = ConfigEnvSet.GetInt("Trump.MaxMatrueNum");
                if (userTrump.MatureNum >= maxMatrueNum)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1458_MaxMatrueNumFull;
                    return(false);
                }
                UserItemHelper.UseUserItem(ContextUser.UserID, consumeInfo.ItemID, consumeInfo.ItemNum);
                if (RandomUtils.IsHit(consumeInfo.SuccessNum))
                {
                    userTrump.MatureNum = MathUtils.Addition(userTrump.MatureNum, consumeInfo.MatureNum.ToShort(), maxMatrueNum.ToShort());
                    ErrorInfo           = LanguageManager.GetLang().St1458_XiLianSuccess;
                    var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID);
                    if (usergeneral != null)
                    {
                        usergeneral.RefreshMaxLife();
                    }
                }
                else
                {
                    ErrorInfo = LanguageManager.GetLang().St1458_XiLianFail;
                }
            }
            return(true);
        }
Beispiel #16
0
        /// <summary>
        /// 新手礼包
        /// </summary>
        /// <param name="user"></param>
        /// <param name="item"></param>
        /// <param name="noviceActivities"></param>
        /// <returns></returns>
        public static bool GetNoviceActivities(GameUser user, UserItemInfo item, NoviceActivities noviceActivities)
        {
            List <NoviceReward> noviceArray = noviceActivities.Reward.ToList();
            var package       = UserItemPackage.Get(user.UserID);
            var userItemArray = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemStatus == ItemStatus.BeiBao);
            int subPackNum    = MathUtils.Subtraction(user.GridNum, MathUtils.Subtraction(userItemArray.Count, 5, 0), 0);

            if (noviceArray.Count > subPackNum)
            {
                return(false);
            }

            bool isupdate = false;

            foreach (NoviceReward reward in noviceArray)
            {
                if (reward.Type == 1)
                {
                    isupdate       = true;
                    user.EnergyNum = MathUtils.Addition(user.EnergyNum, (short)reward.Num, short.MaxValue);
                }
                if (reward.Type == 2)
                {
                    isupdate      = true;
                    user.GameCoin = MathUtils.Addition(user.GameCoin, reward.Num, int.MaxValue);
                }
                else if (reward.Type == 3)
                {
                    ItemBaseInfo itemInfo    = new ShareCacheStruct <ItemBaseInfo>().FindKey(reward.Reward);
                    UserGeneral  userGeneral = UserGeneral.GetMainGeneral(user.UserID);
                    if (itemInfo.ItemType == ItemType.ZhuangBei && !itemInfo.CheckCareer(userGeneral.CareerID))
                    {
                        continue;
                    }
                    UserItemHelper.AddUserItem(user.UserID, itemInfo.ItemID, reward.Num);
                }
                else if (reward.Type == 4)
                {
                    //晶石
                    isupdate      = true;
                    user.GiftGold = MathUtils.Addition(user.GiftGold, reward.Num, int.MaxValue);
                }
            }
            UserItemHelper.UseUserItem(user.UserID, item.ItemID, 1);

            if (isupdate)
            {
                //user.Update();
            }

            if (item.ItemID == 5000 || item.ItemID == 5001 ||
                item.ItemID == 5002 || item.ItemID == 5003)
            {
                int itemID = MathUtils.Addition(item.ItemID, 1, int.MaxValue);
                UserItemHelper.AddUserItem(user.UserID, itemID, 1);
            }
            return(true);
        }
Beispiel #17
0
        public override bool TakeAction()
        {
            PlantType        pType            = (PlantType)Enum.Parse(typeof(PlantType), plantType.ToString());
            UserPlantQuality userPlantQuality = new GameDataCacheSet <UserPlantQuality>().FindKey(ContextUser.UserID, generalID, pType);

            if (userPlantQuality != null)
            {
                plantQualityType = (short)userPlantQuality.PlantQuality;
            }
            else
            {
                UserPlantQuality plant = new UserPlantQuality()
                {
                    UserID       = ContextUser.UserID,
                    GeneralID    = generalID,
                    PlantQuality = PlantQualityType.PuTong,
                    PlantType    = pType,
                    RefreshNum   = 0,
                    RefreshDate  = DateTime.Now,
                };
                new GameDataCacheSet <UserPlantQuality>().Add(plant);
                plantQualityType = 1;
            }
            PlantQualityType qualityType = (PlantQualityType)Enum.Parse(typeof(PlantQualityType), plantQualityType.ToString());
            short            generalLv   = 0;

            userGeneral = new GameDataCacheSet <UserGeneral>().FindKey(ContextUser.UserID, generalID);
            if (userGeneral == null)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                return(false);
            }
            if (pType == PlantType.Experience)
            {
                generalLv = ContextUser.UserLv;
            }
            else if (pType == PlantType.GameGoin)
            {
                generalLv = userGeneral.GeneralLv;
            }
            plantInfo = new ConfigCacheSet <PlantInfo>().FindKey(generalLv, plantType, qualityType);
            double addNum = FestivalHelper.SurplusPurchased(ContextUser.UserID, FestivalType.ManorAddition);//活动加成

            rewardNum = plantInfo.GainNum;
            UserLand land = new GameDataCacheSet <UserLand>().FindKey(ContextUser.UserID, landPostion);

            if (land != null && land.IsRedLand == 1)
            {
                rewardNum = MathUtils.Addition(rewardNum, (int)(rewardNum * 0.2), int.MaxValue);
            }
            if (land != null && land.IsBlackLand == 1)
            {
                rewardNum = MathUtils.Addition(rewardNum, (int)(rewardNum * 0.4), int.MaxValue);
            }
            rewardNum = (rewardNum * addNum).ToInt();
            return(true);
        }
Beispiel #18
0
        /// <summary>
        /// 佣兵升级加升级属性
        /// </summary>
        /// <param name="general"></param>
        public static void GeneralUpgradeproperty(UserGeneral general)
        {
            GeneralInfo generalInfo = new ConfigCacheSet <GeneralInfo>().FindKey(general.GeneralID);

            if (generalInfo != null && generalInfo.Mature.Count > 0)
            {
                foreach (var mature in generalInfo.Mature)
                {
                    UpdateGeneralPro(general, mature.AbilityType, mature.AbilityValue);
                }
            }
        }
Beispiel #19
0
        public override bool TakeAction()
        {
            if (ops == 1)
            {
                ErrorCode = ops;
                ErrorInfo = LanguageManager.GetLang().St1457_UseLifeExtension;
                return(false);
            }
            else if (ops == 2)
            {
                var            package       = UserItemPackage.Get(ContextUser.UserID);
                UserItemInfo[] userItemArray = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemType == ItemType.DaoJu && m.PropType == 11).ToArray();
                if (userItemArray.Length == 0)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1457_LifeExtensionNotEnough;
                    return(false);
                }
                ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(userItemArray[0].ItemID);
                if (itemInfo == null)
                {
                    return(false);
                }
                UserTrump userTrump = new PersonalCacheStruct <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);
                if (userTrump != null)
                {
                    TrumpInfo trumpInfo = new ShareCacheStruct <TrumpInfo>().FindKey(TrumpInfo.CurrTrumpID, userTrump.TrumpLv);
                    if (trumpInfo != null)
                    {
                        if (userTrump.LiftNum < trumpInfo.MaxLift)
                        {
                            userTrump.LiftNum = MathUtils.Addition(userTrump.LiftNum, itemInfo.EffectNum, trumpInfo.MaxLift);
                            UserItemHelper.UseUserItem(ContextUser.UserID, userItemArray[0].ItemID, 1);
                            var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID);
                            if (userTrump.LiftNum > 0 && usergeneral != null)
                            {
                                usergeneral.RefreshMaxLife();
                            }
                            ErrorCode = ops;
                            ErrorInfo = string.Format(LanguageManager.GetLang().St1457_ChangeLifeNum, itemInfo.EffectNum);
                        }
                        else
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St1457_MaxLifeExtension;
                            return(false);
                        }
                    }
                }
            }

            return(true);
        }
Beispiel #20
0
        /// <summary>
        /// 创建佣兵或佣兵灵魂
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="general"></param>
        /// <param name="type"></param>
        /// <param name="num"></param>
        public static void CreateUserGeneral(string userID, GeneralInfo general, GeneralType type, int num)
        {
            var        cacheSet   = new GameDataCacheSet <UserGeneral>();
            int        generalID  = 0;
            CareerInfo careerInfo = null;

            if (type == GeneralType.YongBing)
            {
                generalID  = general.GeneralID;
                careerInfo = new ConfigCacheSet <CareerInfo>().FindKey(general.CareerID);
            }
            else if (type == GeneralType.Soul)
            {
                generalID = general.SoulID;
            }
            if (generalID > 0)
            {
                UserGeneral userGeneral = new UserGeneral();
                userGeneral.UserID            = userID;
                userGeneral.GeneralID         = generalID;
                userGeneral.GeneralName       = general.GeneralName;
                userGeneral.HeadID            = general.HeadID;
                userGeneral.PicturesID        = general.PicturesID;
                userGeneral.GeneralLv         = 1;
                userGeneral.GeneralType       = type;
                userGeneral.CareerID          = general.CareerID;
                userGeneral.PowerNum          = general.PowerNum;
                userGeneral.SoulNum           = general.SoulNum;
                userGeneral.IntellectNum      = general.IntellectNum;
                userGeneral.TrainingPower     = 0;
                userGeneral.TrainingSoul      = 0;
                userGeneral.TrainingIntellect = 0;
                userGeneral.AbilityID         = general.AbilityID;
                userGeneral.Momentum          = 0;
                userGeneral.Description       = string.Empty;
                userGeneral.HitProbability    = ConfigEnvSet.GetDecimal("Combat.HitiNum");
                userGeneral.GeneralStatus     = GeneralStatus.DuiWuZhong;
                userGeneral.CurrExperience    = 0;
                userGeneral.Experience1       = 0;
                userGeneral.Experience2       = 0;
                if (careerInfo != null)
                {
                    userGeneral.LifeNum = MathUtils.Addition(general.LifeNum, careerInfo.LifeIncreaseNum * (MathUtils.Subtraction(careerInfo.Lv, (short)1, (short)0)), int.MaxValue);
                }
                if (type == GeneralType.Soul)
                {
                    userGeneral.AtmanNum = num;
                }
                userGeneral.HeritageType = HeritageType.Normal;
                userGeneral.AbilityNum   = 3;
                cacheSet.Add(userGeneral, GameEnvironment.CacheUserPeriod);
            }
        }
Beispiel #21
0
        public override bool TakeAction()
        {
            int maxGeneralNum    = ContextUser.GeneralMaxNum;
            var userGeneralsList = new GameDataCacheSet <UserGeneral>().FindAll(ContextUser.UserID, u => u.GeneralStatus == GeneralStatus.DuiWuZhong && u.GeneralType != GeneralType.Soul);

            if (userGeneralsList.Count >= MathUtils.Addition(maxGeneralNum, 1, int.MaxValue))
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1404_MaxGeneralNumFull;
                return(false);
            }
            var generalInfo = new ConfigCacheSet <GeneralInfo>().FindKey(generalID);

            if (generalInfo == null)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                return(false);
            }
            var userGeneral = new GameDataCacheSet <UserGeneral>().FindKey(ContextUser.UserID, generalID);

            if (userGeneral == null && GeneralHelper.IsGeneralRecruit(ContextUser.UserID, generalID) == 1)
            {
                userGeneral                   = new UserGeneral();
                userGeneral.UserID            = ContextUser.UserID;
                userGeneral.GeneralID         = generalID;
                userGeneral.GeneralName       = generalInfo.GeneralName;
                userGeneral.HeadID            = generalInfo.HeadID;
                userGeneral.PicturesID        = generalInfo.PicturesID;
                userGeneral.GeneralLv         = (short)generalInfo.GeneralLv;
                userGeneral.LifeNum           = generalInfo.LifeNum;
                userGeneral.GeneralType       = GeneralType.YongBing;
                userGeneral.CareerID          = generalInfo.CareerID;
                userGeneral.PowerNum          = generalInfo.PowerNum;
                userGeneral.SoulNum           = generalInfo.SoulNum;
                userGeneral.IntellectNum      = generalInfo.IntellectNum;
                userGeneral.TrainingPower     = 0;
                userGeneral.TrainingSoul      = 0;
                userGeneral.TrainingIntellect = 0;
                userGeneral.HitProbability    = ConfigEnvSet.GetDecimal("Combat.HitiNum");
                userGeneral.AbilityID         = generalInfo.AbilityID;
                userGeneral.Momentum          = 0;
                userGeneral.Description       = generalInfo.Description;
                userGeneral.GeneralStatus     = GeneralStatus.DuiWuZhong;
                userGeneral.CurrExperience    = 0;
                userGeneral.Experience1       = 0;
                userGeneral.Experience2       = 0;
                var cacheSet = new GameDataCacheSet <UserGeneral>();
                cacheSet.Add(userGeneral, GameEnvironment.CacheUserPeriod);
            }
            ErrorCode = 0;
            ErrorInfo = LanguageManager.GetLang().St1434_RecruitmentErfolg;
            return(true);
        }
Beispiel #22
0
        /// <summary>
        /// 法宝技能——属性转换
        /// </summary>
        /// <param name="userID"></param>
        /// <returns></returns>
        public static TList <GeneralProperty> AttributeConversion(string userID, decimal powerNum, decimal soulNum, decimal intellectNum)
        {
            decimal changeNum = 0;
            TList <GeneralProperty> propertyList = new TList <GeneralProperty>();
            UserGeneral             general      = UserGeneral.GetMainGeneral(userID);

            if (general == null)
            {
                return(propertyList);
            }
            UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(userID, TrumpInfo.CurrTrumpID);

            if (userTrump != null && userTrump.LiftNum > 0 && userTrump.SkillInfo.Count > 0)
            {
                foreach (SkillInfo skillInfo in userTrump.SkillInfo)
                {
                    AbilityInfo abilityInfo = new ConfigCacheSet <AbilityInfo>().FindKey(skillInfo.AbilityID);
                    if (abilityInfo != null && abilityInfo.AttackType == AttackType.Change)
                    {
                        SkillLvInfo skillLvInfo = new ConfigCacheSet <SkillLvInfo>().FindKey(skillInfo.AbilityID, skillInfo.AbilityLv);
                        if (skillLvInfo == null)
                        {
                            break;
                        }
                        switch (abilityInfo.ChangeAbility)
                        {
                        case AbilityType.PowerNum:
                            changeNum = powerNum;
                            break;

                        case AbilityType.SoulNum:
                            changeNum = soulNum;
                            break;

                        case AbilityType.IntelligenceNum:
                            changeNum = intellectNum;
                            break;

                        default:
                            changeNum = 0;
                            break;
                        }
                        GeneralProperty property = new GeneralProperty();
                        property.AbilityType  = abilityInfo.AfterAbility;
                        property.AbilityValue = changeNum * skillLvInfo.Coefficient;
                        propertyList.Add(property);
                    }
                }
            }
            return(propertyList);
        }
Beispiel #23
0
        /// <summary>
        /// 佣兵战斗死亡扣除N点寿命
        /// </summary>
        /// <param name="userID"></param>
        public static void GeneralOverTrumpLift(string userID, int generalID)
        {
            UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(userID, TrumpInfo.CurrTrumpID);

            if (userTrump != null && generalID == LanguageManager.GetLang().GameUserGeneralID)
            {
                userTrump.LiftNum = MathUtils.Subtraction(userTrump.LiftNum, GameConfigSet.GeneralOverLife);
                var usergeneral = UserGeneral.GetMainGeneral(userID);
                if (userTrump.LiftNum <= 0 && usergeneral != null)
                {
                    usergeneral.RefreshMaxLife();
                }
            }
        }
Beispiel #24
0
        public override bool TakeAction()
        {
            List <UserFriends> userFriendsesArray = new ShareCacheStruct <UserFriends>().FindAll(m => m.UserID == ContextUser.UserID && m.FriendType == _friendType);

            userFriendsesArray.QuickSort((x, y) =>
            {
                if (x == null && y == null)
                {
                    return(0);
                }
                if (x != null && y == null)
                {
                    return(1);
                }
                if (x == null)
                {
                    return(-1);
                }
                //普通的玩家根据等级来排序 如果是仇敌的话需要用最后战斗时间来排序
                int result = 0;
                if (_friendType != FriendType.ChouDi)
                {
                    GameUser userx      = new GameDataCacheSet <GameUser>().FindKey(x.UserID);
                    GameUser usery      = new GameDataCacheSet <GameUser>().FindKey(y.UserID);
                    int userLvx         = userx == null ? 0 : userx.UserLv;
                    int userLvy         = usery == null ? 0 : usery.UserLv;
                    int currExperiencex = (UserGeneral.GetMainGeneral(x.UserID) ?? new UserGeneral()).CurrExperience;
                    int currExperiencey = (UserGeneral.GetMainGeneral(y.UserID) ?? new UserGeneral()).CurrExperience;
                    result = userLvy.CompareTo(userLvx);
                    if (result == 0)
                    {
                        result = currExperiencey.CompareTo(currExperiencex);
                    }
                }
                else
                {
                    result = x.FightTime.CompareTo(y.FightTime);
                    if (result == 0)
                    {
                        result = x.UserID.CompareTo(y.UserID);
                    }
                }
                return(result);
            });
            _userFriendList = userFriendsesArray.GetPaging(_pageIndex, _pageSize, out _pageCount);
            return(true);
        }
Beispiel #25
0
        public override void BuildPacket()
        {
            PushIntoStack(cityInfo == null ? string.Empty : cityInfo.CityName.ToNotNullString());
            PushIntoStack(gameUserArray.Count);
            foreach (GameUser user in gameUserArray)
            {
                UserGeneral uGeneral = UserGeneral.GetMainGeneral(user.UserID);
                string      HeadID   = string.Empty;
                if (uGeneral != null)
                {
                    CareerInfo careerInfo = new ShareCacheStruct <CareerInfo>().FindKey(uGeneral.CareerID);
                    HeadID = user.Sex ? careerInfo.HeadID2 : careerInfo.HeadID;
                }
                UserGuild userGuild = new ShareCacheStruct <UserGuild>().FindKey(user.MercenariesID);
                string    pictureID = string.Empty;

                //原因:排除月饼和双倍材料卡
                List <UserProps> propsArray = new PersonalCacheStruct <UserProps>().FindAll(user.UserID, u => u.PropType == 3 && u.ItemID != 5200 && u.ItemID != 7003);
                if (propsArray.Count > 0 && propsArray[0].DoRefresh() > 0)
                {
                    ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(propsArray[0].ItemID);
                    if (itemInfo != null)
                    {
                        pictureID = itemInfo.PictrueID;
                    }
                }
                else
                {
                    pictureID = string.Empty;
                }

                DataStruct ds = new DataStruct();
                ds.PushIntoStack(user.UserID.ToNotNullString());
                ds.PushIntoStack(user.NickName.ToNotNullString());
                ds.PushIntoStack(HeadID.ToNotNullString());
                ds.PushIntoStack(user.MercenariesID.ToNotNullString());
                ds.PushIntoStack(userGuild == null ? string.Empty : userGuild.GuildName.ToNotNullString());
                ds.PushIntoStack((short)user.UserStatus);
                ds.PushIntoStack(user.PointX);
                ds.PushIntoStack(user.PointY);
                ds.PushIntoStack(pictureID.ToNotNullString());
                ds.PushIntoStack(NoviceHelper.IsWingFestivalInfo(user.UserID) ? (short)1 : (short)0);
                ds.PushIntoStack(0);
                PushIntoStack(ds);
            }
        }
Beispiel #26
0
        private int GetOverGeneralNum(List <CombatEmbattle> userEmbattleList)
        {
            int num = 0;

            foreach (CombatEmbattle item in userEmbattleList)
            {
                if (!string.IsNullOrEmpty(item.UserID))
                {
                    var general = UserGeneral.GetMainGeneral(item.UserID);
                    if (general != null && general.IsOver)
                    {
                        num += 1;
                    }
                }
            }
            return(num);
        }
Beispiel #27
0
        public override void BuildPacket()
        {
            this.PushIntoStack(cityName.ToNotNullString());
            this.PushIntoStack(codeTime);
            this.PushIntoStack(stage.ToShort());
            this.PushIntoStack(guildStr.Length);
            foreach (var guildID in guildStr)
            {
                short            isLead;
                short            guildNum     = 0;
                List <FightUser> memberCombat = new List <FightUser>();
                UserGuild        userGuild    = new ShareCacheStruct <UserGuild>().FindKey(guildID);
                ServerFight      fight        = new ShareCacheStruct <ServerFight>().FindKey(fightCombat.FastID, guildID);
                if (fight != null && !string.IsNullOrEmpty(fight.CombatMember))
                {
                    string combatMember = fight.CombatMember.TrimEnd(',');
                    if (combatMember.Length > 1)
                    {
                        guildNum = (short)combatMember.Split(',').Length;
                    }
                    memberCombat = GuildFightCombat._fightUserList.FindAll(m => !m.IsRemove && m.GuildID == guildID);
                }
                isLead = GuildIsLead(guildID, stage, fightCombat.FastID) ? (short)1 : (short)0;
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(guildID.ToNotNullString());
                dsItem.PushIntoStack(userGuild == null ? string.Empty : userGuild.GuildName.ToNotNullString());
                dsItem.PushIntoStack(userGuild == null ? (short)0 : (short)userGuild.GuildLv);
                dsItem.PushIntoStack((short)guildNum);
                dsItem.PushIntoStack((short)isLead);
                dsItem.PushIntoStack(memberCombat.Count);
                foreach (var member in memberCombat)
                {
                    GameUser    user        = UserCacheGlobal.CheckLoadUser(member.UserId);
                    UserGeneral userGeneral = UserGeneral.GetMainGeneral(member.UserId);
                    DataStruct  dsItem1     = new DataStruct();
                    dsItem1.PushIntoStack(member.UserId.ToNotNullString());
                    dsItem1.PushIntoStack(user == null ? string.Empty : user.NickName.ToNotNullString());
                    dsItem1.PushIntoStack(userGeneral == null ? string.Empty : userGeneral.HeadID.ToNotNullString());
                    dsItem1.PushIntoStack(user == null ? (short)0 : (short)user.UserLv);

                    dsItem.PushIntoStack(dsItem1);
                }
                this.PushIntoStack(dsItem);
            }
            this.PushIntoStack(fatigue.ToNotNullString());
        }
Beispiel #28
0
        private void CreateGeneral(CareerInfo careerInfo)
        {
            GeneralInfo        general          = new ConfigCacheSet <GeneralInfo>().FindKey(generalID);
            List <UserGeneral> userGeneralArray = new GameDataCacheSet <UserGeneral>().FindAll(Uid);

            if (userGeneralArray.Count > 0 || general == null)
            {
                return;
            }

            UserGeneral userGeneral = new UserGeneral();

            userGeneral.UserID            = Uid;
            userGeneral.GeneralID         = general.GeneralID;
            userGeneral.GeneralName       = general.GeneralName;
            userGeneral.HeadID            = general.HeadID;
            userGeneral.PicturesID        = general.PicturesID;
            userGeneral.GeneralLv         = (short)careerInfo.Lv;
            userGeneral.GeneralType       = GeneralType.YongHu;
            userGeneral.CareerID          = _careerID;
            userGeneral.PowerNum          = general.PowerNum;
            userGeneral.SoulNum           = general.SoulNum;
            userGeneral.IntellectNum      = general.IntellectNum;
            userGeneral.TrainingPower     = 0;
            userGeneral.TrainingSoul      = 0;
            userGeneral.TrainingIntellect = 0;
            userGeneral.AbilityID         = general.AbilityID;
            userGeneral.Momentum          = 0;
            userGeneral.Description       = string.Empty;
            userGeneral.HitProbability    = ConfigEnvSet.GetDecimal("Combat.HitiNum");
            userGeneral.GeneralStatus     = GeneralStatus.DuiWuZhong;
            userGeneral.CurrExperience    = 0;
            userGeneral.Experience1       = 0;
            userGeneral.Experience2       = 0;
            //userGeneral.LifeNum = MathUtils.Addition(general.LifeNum, careerInfo.LifeIncreaseNum * (MathUtils.Subtraction(careerInfo.Lv, (short)1, (short)0)), int.MaxValue);
            userGeneral.RefreshMaxLife();
            userGeneral.HeritageType = HeritageType.Normal;
            userGeneral.AbilityNum   = 3;
            var cacheSet = new GameDataCacheSet <UserGeneral>();

            cacheSet.Add(userGeneral);
            cacheSet.Update();
            UserAbilityHelper.AddUserAbility(general.AbilityID, Uid.ToInt(), generalID, 1);
        }
Beispiel #29
0
        public override bool TakeAction()
        {
            string publicUserID = string.Empty;

            if (string.IsNullOrEmpty(toUserID))
            {
                publicUserID = ContextUser.UserID;
            }
            else
            {
                publicUserID = toUserID;
            }
            var package = UserCrystalPackage.Get(publicUserID);

            userCrystalArray = package.CrystalPackage.FindAll(m => m.GeneralID.Equals(_generalID));
            userGeneral      = new GameDataCacheSet <UserGeneral>().FindKey(ContextUser.UserID, _generalID);
            var generalInfo = new ConfigCacheSet <GeneralInfo>().FindKey(userGeneral != null ? userGeneral.GeneralID : 0);

            _maxHeadID = generalInfo != null ? generalInfo.PicturesID : string.Empty;
            return(true);
        }
Beispiel #30
0
        private void Process(string userID, int generalID)
        {
            GeneralInfo generalInfo = new ConfigCacheSet <GeneralInfo>().FindKey(generalID);

            if (generalInfo != null)
            {
                var cacheSet    = new GameDataCacheSet <UserGeneral>();
                var usergeneral = cacheSet.FindKey(userID, generalID);
                if (usergeneral == null)
                {
                    usergeneral = new UserGeneral()
                    {
                        UserID            = userID,
                        GeneralID         = generalID,
                        GeneralName       = generalInfo.GeneralName,
                        HeadID            = generalInfo.HeadID,
                        PicturesID        = generalInfo.PicturesID,
                        GeneralLv         = generalInfo.GeneralLv,
                        LifeNum           = generalInfo.LifeNum,
                        GeneralType       = GeneralType.YongBing,
                        CareerID          = generalInfo.CareerID,
                        PowerNum          = generalInfo.PowerNum,
                        SoulNum           = generalInfo.SoulNum,
                        IntellectNum      = generalInfo.IntellectNum,
                        TrainingPower     = 0,
                        TrainingSoul      = 0,
                        TrainingIntellect = 0,
                        AbilityID         = generalInfo.AbilityID,
                        Momentum          = 25,
                        HitProbability    = 85,
                        GeneralStatus     = GeneralStatus.DuiWuZhong,
                        Experience1       = 0,
                        Experience2       = 0,
                        CurrExperience    = 0,
                        Description       = string.Empty,
                    };
                    cacheSet.Add(usergeneral);
                }
            }
        }