コード例 #1
0
        public string relogin(string unionid, string token, string openid, string client_uuid)
        {
            playerproxy _proxy = get_player_unionid(unionid);

            if (_proxy != null)
            {
                string old_uuid = _proxy.relogin(client_uuid, token);

                if (!_proxy.player_info.ContainsKey("openid"))
                {
                    _proxy.player_info["openid"] = openid;
                    _proxy.update_player_to_db(new List <string> {
                        "openid"
                    });
                }

                if (players_uuid.ContainsKey(old_uuid))
                {
                    players_uuid.Remove(old_uuid);
                }

                players_uuid.Add(client_uuid, _proxy);

                return(old_uuid);
            }

            return("");
        }
コード例 #2
0
ファイル: lobby.cs プロジェクト: qianqians/abelkhan_demo_mj
        void create_mj_huanghuang_room_callback_client(playerproxy _proxy, string hub_name, Int64 room_id, Int64 peopleNum, Int64 gameScore, Int64 gameTimes, Int64 payRule)
        {
            log.log.trace(new System.Diagnostics.StackFrame(true), service.timerservice.Tick, "creat_room_callback_client,hub_name:{0}, room_id:{1}", hub_name, room_id);
            hub.hub.gates.call_client(_proxy.uuid, "room", "on_create_mj_huanghuang_room", hub_name, room_id);

            _proxy.room_list.Add(room_id.ToString(), new Hashtable()
            {
                { "gameScore", gameScore }, { "gameTimes", gameTimes }, { "payRule", payRule }, { "peopleNum", peopleNum }, { "playerNum", (Int64)0 }, { "inGame", false }
            });
            hub.hub.gates.call_client(_proxy.uuid, "room", "room_list", _proxy.room_list);
        }
コード例 #3
0
        public playerproxy reg_player(string uuid, Hashtable _data)
        {
            if (!players.ContainsKey((string)_data["token"]) && !players_uuid.ContainsKey(uuid))
            {
                playerproxy _proxy = new playerproxy(uuid, _data);

                players.Add((string)_data["token"], _proxy);
                players_uuid.Add(uuid, _proxy);

                return(_proxy);
            }

            Console.WriteLine("error player register info");

            return(null);
        }
コード例 #4
0
        public playerproxy reg_player_account(string uuid, string token, Hashtable _data)
        {
            if (!players.ContainsKey((string)_data["unionid"]) && !players_uuid.ContainsKey(uuid))
            {
                playerproxy _proxy = new playerproxy(uuid, token, "nick", "", 1, _data);

                players.Add((string)_data["unionid"], _proxy);
                players_uuid.Add(uuid, _proxy);

                return(_proxy);
            }

            log.log.trace(new System.Diagnostics.StackFrame(true), service.timerservice.Tick, "error player register info");

            return(null);
        }
コード例 #5
0
        public playerproxy reg_player(string uuid, string token, string openid, Hashtable _data)
        {
            if (!players.ContainsKey((string)_data["unionid"]) && !players_uuid.ContainsKey(uuid))
            {
                playerproxy _proxy = new playerproxy(uuid, token, _data);

                if (!_proxy.player_info.ContainsKey("openid"))
                {
                    _proxy.player_info["openid"] = openid;
                    _proxy.update_player_to_db(new List <string> {
                        "openid"
                    });
                }

                players.Add((string)_data["unionid"], _proxy);
                players_uuid.Add(uuid, _proxy);

                return(_proxy);
            }

            return(null);
        }
コード例 #6
0
        public string relogin(string token, string client_uuid)
        {
            playerproxy _proxy = get_player_token(token);

            if (_proxy != null)
            {
                string old_uuid = _proxy.relogin(client_uuid);

                if (players_uuid.ContainsKey(old_uuid))
                {
                    players_uuid.Remove(old_uuid);
                }
                else
                {
                    Console.WriteLine("relogin:error player register info");
                }

                players_uuid.Add(client_uuid, _proxy);

                return(old_uuid);
            }

            return("");
        }
コード例 #7
0
ファイル: payUtil.cs プロジェクト: qianqians/abelkhan_demo_mj
        public static void tick_player_pay()
        {
            var str_json_out_trade_no = redis_proxy.GetDatabase().ListLeftPop("out_trade_no").ToString();

            if (str_json_out_trade_no == null)
            {
                return;
            }

            Hashtable json_out_trade_no = Json.Jsonparser.unpack(str_json_out_trade_no) as Hashtable;
            string    str_out_trade_no  = json_out_trade_no["out_trade_no"] as string;
            Int64     total_fee         = (Int64)json_out_trade_no["total_fee"];

            playerproxy _proxy = null;

            lock (out_trade_no)
            {
                if (out_trade_no.ContainsKey(str_out_trade_no))
                {
                    _proxy = out_trade_no[str_out_trade_no];
                    out_trade_no.Remove(str_out_trade_no);
                }
            }

            if (_proxy == null)
            {
                log.log.error(new System.Diagnostics.StackFrame(true), service.timerservice.Tick, "out_trade_no:{0}", str_out_trade_no);
                return;
            }

            Hashtable _data = new Hashtable();

            _data.Add("total_fee", (Int64)total_fee);
            _data.Add("player_reg_key", (Int64)_proxy.player_info["reg_key"]);
            _data.Add("player_nickname", _proxy.nickname);
            if (_proxy.player_info.ContainsKey("agent_reg_key"))
            {
                _data.Add("agent_reg_key", (Int64)_proxy.player_info["agent_reg_key"]);
            }
            _data.Add("object_type", "pay_record");
            _data.Add("account_type", "wechat");
            _data.Add("time", (Int64)service.timerservice.Tick);
            hub.hub.dbproxy.getCollection("test", "objects").createPersistedObject(_data, () => { });


            Int64 diamond = 0;

            if (server.rate_index == 2)
            {
                diamond = calc_pay_discount(total_fee);
            }
            else
            {
                if (_proxy.player_info.ContainsKey("agent_reg_key"))
                {
                    diamond = calc_pay_rate_agent(total_fee);
                }
                else
                {
                    diamond = calc_pay_rate(total_fee);
                }
            }
            _proxy.player_info["diamond"]   = (Int64)_proxy.player_info["diamond"] + diamond;
            _proxy.player_info["pay_total"] = (Int64)_proxy.player_info["pay_total"] + (Int64)total_fee;
            _proxy.update_player_to_db_and_client(new List <string> {
                "diamond", "pay_total"
            });
            log.log.operation(new System.Diagnostics.StackFrame(true), service.timerservice.Tick, "DiamondInc:{0}...{1}...{2}", (Int64)_proxy.player_info["reg_key"], GameCommon.DiamondInc.Pay, (Int64)diamond);
        }