示例#1
0
        public static GoodsData GetResGoodsData(MoneyTypes type, int gcount)
        {
            GoodsData result;

            if (gcount <= 0)
            {
                result = null;
            }
            else
            {
                int goodsID = GoodsUtil.GetResGoodsID(type);
                if (goodsID == 0)
                {
                    result = null;
                }
                else
                {
                    GoodsData goodsData = new GoodsData
                    {
                        GoodsID = goodsID,
                        GCount  = gcount
                    };
                    result = goodsData;
                }
            }
            return(result);
        }
示例#2
0
文件: RuleBase.cs 项目: adteven/alabo
        /// <summary>
        /// 转换成结果字符串
        /// </summary>
        /// <param name="shareAmount"></param>
        /// <param name="shareUser"></param>
        /// <param name="ruleResult"></param>
        protected void ToResult(decimal shareAmount, User shareUser, ref RuleResult ruleResult)
        {
            if (shareAmount > 0 && shareUser != null && shareUser.Status == Status.Normal)
            {
                foreach (var rule in Config.RewardRule.AssetsRules)
                {
                    var ruleAmount    = shareAmount * rule.Ratio;
                    var ruleMoneyType = MoneyTypes.FirstOrDefault(r => r.Id == rule.MoneyTypeId);
                    if (ruleMoneyType == null)
                    {
                        continue;
                    }

                    var shareResult = new RuleResultItem {
                        OrderUser       = base.OrderUser,
                        ShareUser       = shareUser,
                        ShareOrder      = base.ShareTrade,
                        Amount          = ruleAmount,
                        MoneyTypeId     = rule.MoneyTypeId,
                        RuleId          = base.RewardRule.Id,
                        ModuleId        = this.RewardRule.ModuleId,
                        SmsNotification = base.RewardRule.Base.TemplateRule.SmsNotification
                    };

                    shareResult.Intro    = ReplaceTemplate(Config.RewardRule.Base.TemplateRule.LoggerTemplate, shareUser, ruleMoneyType, ruleAmount);
                    shareResult.SmsIntro = ReplaceTemplate(Config.RewardRule.Base.TemplateRule.SmsTemplate, shareUser, ruleMoneyType, ruleAmount);
                    ruleResult.Result.Add(shareResult);
                }
            }
        }
        public int GetMoneyOffline(string name, MoneyTypes type)
        {
            var typeString = "";

            switch (type)
            {
            case MoneyTypes.Cash:
                typeString = "cash";
                break;

            case MoneyTypes.Bank:
                typeString = "bank";
                break;

            case MoneyTypes.Untaxed:
                typeString = "untaxed";
                break;
            }
            var names = name.Split(' ');

            if (names.Length < 2)
            {
                Utility.Instance.Log("INVALID NAME GIVEN FOR GET MONEY OFFLINE METHOD!"); return(-1);
            }
            var data = DatabaseManager.Instance.StartQuery("SELECT " + typeString + " FROM CHARACTERS WHERE firstname='" + names[0] + "' AND lastname='" + names[1] + "';").Result;

            while (data.Read())
            {
                return(Convert.ToInt32(data[typeString]));
            }
            DatabaseManager.Instance.EndQuery(data);
            return(-1);
        }
        public void RemoveMoneyOffline(string name, MoneyTypes type, int amount)
        {
            var typeString = "";

            switch (type)
            {
            case MoneyTypes.Cash:
                typeString = "cash";
                break;

            case MoneyTypes.Bank:
                typeString = "bank";
                break;

            case MoneyTypes.Untaxed:
                typeString = "untaxed";
                break;
            }
            var names = name.Split(' ');

            if (names.Length < 2)
            {
                Utility.Instance.Log("INVALID NAME GIVEN FOR GET MONEY OFFLINE METHOD!"); return;
            }
            var newAmount = GetMoneyOffline(name, type) - amount;

            DatabaseManager.Instance.Execute("UPDATE CHARACTERS SET " + typeString + "=" + newAmount + " WHERE firstname='" + names[0] + "' AND lastname='" + names[1] + "';");
        }
        public void SetMoney(Player player, MoneyTypes type, int amount)
        {
            var user      = UserManager.Instance.GetUserFromPlayer(player);
            var character = user.CurrentCharacter;
            var money     = character.Money;

            switch (type)
            {
            case MoneyTypes.Cash:
                money.Cash = amount;
                Utility.Instance.SendChatMessage(player, "[Money]", "You cash has been set to " + amount + ".", 0, 170, 60);
                break;

            case MoneyTypes.Bank:
                money.Bank = amount;
                Utility.Instance.SendChatMessage(player, "[Money]", "You bank account has been set to " + amount + ".", 0, 170, 60);
                break;

            case MoneyTypes.Untaxed:
                money.UnTaxed = amount;
                Utility.Instance.SendChatMessage(player, "[Money]", "You untaxed stash has been set to " + amount + ".", 0, 170, 60);
                break;
            }

            RefreshMoney(player);
            user.CurrentCharacter.Money = money;
        }
        public void RemoveMoney(Player player, MoneyTypes type, int amount)
        {
            var user      = UserManager.Instance.GetUserFromPlayer(player);
            var character = user.CurrentCharacter;
            var money     = character.Money;

            switch (type)
            {
            case MoneyTypes.Cash:
                money.Cash -= amount;
                Utility.Instance.SendChatMessage(player, "[Money]", amount.ToString() + " has been removed from your cash.", 0, 170, 60);
                break;

            case MoneyTypes.Bank:
                money.Bank -= amount;
                Utility.Instance.SendChatMessage(player, "[Money]", amount.ToString() + " has been removed from your bank account.", 0, 170, 60);
                break;

            case MoneyTypes.Untaxed:
                money.UnTaxed -= amount;
                Utility.Instance.SendChatMessage(player, "[Money]", amount.ToString() + " has been removed from your untaxed stash.", 0, 170, 60);
                break;
            }

            RefreshMoney(player);
            user.CurrentCharacter.Money = money;
        }
示例#7
0
 public int GetMonetaryValue(MoneyTypes type)
 {
     if (MonetaryValue.ContainsKey(type))
     {
         return(MonetaryValue[type]);
     }
     return(0);
 }
示例#8
0
 public AudioClip GetRandomCollectionAudio(MoneyTypes type)
 {
     if (collisionAudio.ContainsKey(type))
     {
         int index = Random.Range(0, collectionAudio[type].Length);
         return(collectionAudio[type][index]);
     }
     return(null);
 }
示例#9
0
 public GameObject Instantiate(MoneyTypes type)
 {
     if (moneyProjectiles.ContainsKey(type))
     {
         return(Instantiate(moneyProjectiles[type]));
     }
     Debug.LogError("HeistManager did not know about a money projectile prefab for the type" + type.ToString() + "\n\tReturning Null");
     return(null);
 }
示例#10
0
        public MoneyProjectile CreateMoneyProjectile(MoneyTypes moneyType)
        {
            GameObject go = HeistManager.Inst.Instantiate(moneyType);

            if (go != null)
            {
                return(go.GetComponent <MoneyProjectile>());
            }
            return(null);
        }
示例#11
0
        public string GetSeperator(MoneyTypes moneyType)
        {
            switch (moneyType)
            {
                case MoneyTypes.Euro:
                    return ",";
                case MoneyTypes.Dollar:
                    return ".";
                case MoneyTypes.Locale:
                    return CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator;
                default:
                    break;
            }

            return string.Empty;
        }
示例#12
0
            public ChainPitchInfo(int pitchCount = 1, MoneyTypes onlyMoneyTypePitched = MoneyTypes.GoldBar, TypeOfPitch type = TypeOfPitch.FromSameSource, float delayBetweenEachPitch = .5f)
            {
                StartDelay      = 0;
                NumberOfPitches = pitchCount;

                pitchType           = type;
                delayBetweenPitches = new float[NumberOfPitches];
                for (int i = 0; i < NumberOfPitches; i++)
                {
                    delayBetweenPitches[i] = delayBetweenEachPitch;
                }
                PitchContents = new MoneyTypes[NumberOfPitches];
                for (int i = 0; i < NumberOfPitches; i++)
                {
                    PitchContents[i] = onlyMoneyTypePitched;
                }
            }
示例#13
0
        public static int GetResGoodsID(MoneyTypes type)
        {
            Dictionary <int, int> dict = GoodsUtil.GetGoodsIdDict;

            if (null != dict)
            {
                lock (dict)
                {
                    int goodsId;
                    if (dict.TryGetValue((int)type, out goodsId))
                    {
                        return(goodsId);
                    }
                }
            }
            return(0);
        }
        public int GetMoney(Player player, MoneyTypes type)
        {
            var user      = UserManager.Instance.GetUserFromPlayer(player);
            var character = user.CurrentCharacter;
            var money     = character.Money;

            switch (type)
            {
            case MoneyTypes.Cash:
                return(money.Cash);

            case MoneyTypes.Bank:
                return(money.Bank);

            case MoneyTypes.Untaxed:
                return(money.UnTaxed);
            }
            return(-1);
        }
示例#15
0
        public string GetChangeHandler(MoneyTypes moneyType)
        {
            switch (moneyType)
            {
                case MoneyTypes.Euro:
                    return string.Format("var val = Ax.EUMoney(newValue); if(val.indexOf('NaN') != -1) val = ''; var hiddenValueField = #{{{0}_Value}}; if(hiddenValueField) {{ if(val != '') {{ var hiddenVal = val; while (hiddenVal.indexOf('.') != -1) {{ hiddenVal = hiddenVal.replace(/\\./, '') }} hiddenValueField.setValue(hiddenVal.replace(/[{1}]/g, '').replace(/\\,/, '{2}').replace(' ', '')); }} else {{ hiddenValueField.setValue(''); }} }} item.setValue(val);", this.ID, GetSymbol(MoneyType), CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator);
                case MoneyTypes.Dollar:
                    return string.Format("var val = Ax.UsMoney(newValue); if(val.indexOf('NaN') != -1) val = ''; var hiddenValueField = #{{{0}_Value}}; if(hiddenValueField) {{ if(val != '') {{ var hiddenVal = val; while (hiddenVal.indexOf(',') != -1) {{ hiddenVal = hiddenVal.replace(/\\,/, '') }} hiddenValueField.setValue(hiddenVal.replace(/[{1}]/g, '').replace(/\\./, '{2}').replace(' ', '')); }} else {{ hiddenValueField.setValue(''); }} }} item.setValue(val);", this.ID, GetSymbol(MoneyType), CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator);
                case MoneyTypes.Locale:
                    string value = 1.ToString("C");
                    bool hasSpace = value.IndexOf(" ") != -1;
                    bool isLeft = value.StartsWith(CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol);
                    return string.Format("while (newValue.indexOf('{3}') != -1) {{ newValue = newValue.replace(/\\{3}/, '') }} newValue = newValue.replace(/[{1}]/g, '').replace(/\\,/, '.'); var val = Ax.MoneyFormat({4}, newValue, '{3}', '{2}', '{1}', {5}); if(val.indexOf('NaN') != -1) val = ''; var hiddenValueField = #{{{0}_Value}}; if(hiddenValueField) {{ if(val != '') {{ var hiddenVal = val; while (hiddenVal.indexOf('{3}') != -1) {{ hiddenVal = hiddenVal.replace(/\\{3}/, '') }} hiddenValueField.setValue(hiddenVal.replace(/[{1}]/g, '').replace(' ', '')); }} else {{ hiddenValueField.setValue(''); }} }} item.setValue(val);", this.ID, GetSymbol(MoneyType), CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator, CultureInfo.CurrentCulture.NumberFormat.CurrencyGroupSeparator, hasSpace.ToString().ToLower(), isLeft.ToString().ToLower());
                default:
                    break;
            }

            return string.Empty;
        }
示例#16
0
 public bool CheckTrade(GameClient client, MoneyTypes moneyType, bool notify = true)
 {
     if (moneyType == MoneyTypes.YuanBao)
     {
         if ((Data.OpenData.paimaihangzuanshi == 2 && client.ClientSocket.session.IsAdult == 0) || Data.OpenData.paimaihangzuanshi <= 0)
         {
             if (notify)
             {
                 string tip = GLang.GetLang(37, new object[0]);
                 GameManager.ClientMgr.NotifyHintMsg(client, tip);
             }
             return(false);
         }
     }
     else if (moneyType == MoneyTypes.MoBi)
     {
         if ((Data.OpenData.paimaihangmobi == 2 && client.ClientSocket.session.IsAdult != 0) || Data.OpenData.paimaihangmobi <= 0)
         {
             if (notify)
             {
                 string tip = GLang.GetLang(38, new object[0]);
                 GameManager.ClientMgr.NotifyHintMsg(client, tip);
             }
             return(false);
         }
     }
     else if (moneyType == MoneyTypes.YinLiang)
     {
         if ((Data.OpenData.paimaihangjinbi == 2 && client.ClientSocket.session.IsAdult != 0) || Data.OpenData.paimaihangjinbi <= 0)
         {
             if (notify)
             {
                 string tip = GLang.GetLang(39, new object[0]);
                 GameManager.ClientMgr.NotifyHintMsg(client, tip);
             }
             return(false);
         }
     }
     return(true);
 }
示例#17
0
        /// <summary>
        /// 添加货币、代币日志
        /// </summary>
        /// <param name="client">角色对象</param>
        /// <param name="optType">操作类型</param>
        /// <param name="optTag"></param>
        /// <param name="addValue">正负值</param>
        /// <param name="curValue">如果不知道,可以传-1</param>
        /// <param name="msg">附加消息</param>
        public static void AddMoneyEvent(GameClient client, OpTypes optType, OpTags optTag, MoneyTypes moneyType, long addValue, long curValue = -1, string msg = "none")
        {
            try
            {
                if (!GameManager.FlagEnableMoneyEventLog)
                {
                    return;
                }

                //不变化不记录
                if (optType == OpTypes.AddOrSub && addValue == 0)
                {
                    return;
                }

                //获取当前值
                if (curValue == -1)
                {
                    switch (moneyType)
                    {
                    case MoneyTypes.YuanBao:
                        curValue = client.ClientData.UserMoney;
                        break;

                    case MoneyTypes.YinLiang:
                        curValue = client.ClientData.YinLiang;
                        break;

                    case MoneyTypes.TongQian:
                        curValue = client.ClientData.Money1;
                        break;

                    case MoneyTypes.BindYuanBao:
                        curValue = client.ClientData.Money2;
                        break;

                    case MoneyTypes.BangGong:
                        curValue = client.ClientData.BangGong;
                        break;

                    case MoneyTypes.XingHun:
                        curValue = client.ClientData.StarSoul;
                        break;

                    case MoneyTypes.Exp:
                        curValue = client.ClientData.Experience;
                        break;
                    }
                }

                AddMoneyEvent(client.ServerId, client.ClientData.ZoneID, client.strUserID, client.ClientData.RoleID, optType, optTag, moneyType, addValue, curValue, msg);
            }
            catch (System.Exception ex)
            {
                LogManager.WriteLog(LogTypes.Exception, ex.ToString());
            }
        }
示例#18
0
        /// <summary>
        /// 添加货币、代币日志
        /// </summary>
        /// <param name="serverId"></param>
        /// <param name="userId"></param>
        /// <param name="roleId"></param>
        /// <param name="optType"></param>
        /// <param name="optTag"></param>
        /// <param name="addValue"></param>
        /// <param name="curValue"></param>
        /// <param name="msg"></param>
        public static void AddMoneyEvent(int serverId, int zoneId, string userId, long roleId, OpTypes optType, OpTags optTag, MoneyTypes moneyType, long addValue, long curValue, string msg)
        {
            try
            {
                if (!GameManager.FlagEnableMoneyEventLog)
                {
                    return;
                }

                if (!LogFilterConfig.LogMoneyTypeLog((int)moneyType))
                {
                    return;
                }

                if (zoneId == 0)
                {
                    zoneId = CacheManager.GetZoneIdByRoleId(roleId, serverId);
                }

                string eventMsg = string.Format("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}\t{8}\t{9}\t{10}",
                                                (int)LogRecordType.MoneyEvent,
                                                serverId,
                                                zoneId,
                                                userId,
                                                roleId,
                                                (int)moneyType,
                                                (int)optType,
                                                (int)optTag,
                                                addValue,
                                                curValue,
                                                msg
                                                );

                SystemRoleEvents[(int)RoleEvent.MoneyEvent].AddEvent(eventMsg, EventLevels.Important);
            }
            catch (System.Exception ex)
            {
                LogManager.WriteLog(LogTypes.Exception, ex.ToString());
            }
        }
示例#19
0
        public string GetSymbol(MoneyTypes moneyType)
        {
            switch (moneyType)
            {
                case MoneyTypes.Euro:
                    return "€";
                case MoneyTypes.Dollar:
                    return "$";
                case MoneyTypes.Locale:
                    return CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol;
                case MoneyTypes.Custom:
                    return CustomType.CurrencySymbol;
                default:
                    break;
            }

            return string.Empty;
        }