예제 #1
0
파일: Money.cs 프로젝트: sxtgyrq/VRPGame
        internal async Task <string> SaveMoney(SaveMoney saveMoney)
        {
            // var doSaveMoney = false;
            long          money     = 0;
            List <string> notifyMsg = new List <string>();

            lock (this.PlayerLock)
            {
                if (this._Players.ContainsKey(saveMoney.Key))
                {
                    if (this._Players[saveMoney.Key].Bust)
                    {
                    }
                    else
                    {
                        var player = this._Players[saveMoney.Key];
                        switch (saveMoney.dType)
                        {
                        case "half":
                        {
                            money = this._Players[saveMoney.Key].MoneyForSave / 2;
                            if (money > 0)
                            {
                                //  doSaveMoney = true;
                                player.MoneySet(player.Money - money, ref notifyMsg);
                            }
                        }; break;

                        case "all":
                        {
                            money = this._Players[saveMoney.Key].MoneyForSave;
                            if (money > 0)
                            {
                                //  doSaveMoney = true;
                                player.MoneySet(player.Money - money, ref notifyMsg);
                            }
                        }; break;
                        }
                    }
                }
            }
            for (var i = 0; i < notifyMsg.Count; i += 2)
            {
                var url     = notifyMsg[i];
                var sendMsg = notifyMsg[i + 1];
                Console.WriteLine($"url:{url}");
                if (!string.IsNullOrEmpty(url))
                {
                    await Startup.sendMsg(url, sendMsg);
                }
            }

            if (money > 0)
            {
                DalOfAddress.MoneyAdd.AddMoney(saveMoney.address, money);
                //Thread th = new Thread(() => );
                //th.Start();
            }
            return("");
        }
예제 #2
0
파일: Room.cs 프로젝트: sxtgyrq/VRPGame
        internal static async Task <string> Donate(State s, Donate donate)
        {
            var sm = new SaveMoney()
            {
                c       = "SaveMoney",
                Key     = s.Key,
                address = donate.address,
                dType   = donate.dType
            };
            var msg = Newtonsoft.Json.JsonConvert.SerializeObject(sm);
            await Startup.sendInmationToUrlAndGetRes(Room.roomUrls[s.roomIndex], msg);

            return("");
        }