Esempio n. 1
0
    Dictionary <string, object> getRetInfo(ParamFetchMoney p, long money, Dictionary <string, object> data)
    {
        Dictionary <string, object> ret = new Dictionary <string, object>();
        int atype = Convert.ToInt32(data["accType"]);

        ret["acc"]   = p.m_acc;
        ret["money"] = money;
        ret["isApi"] = (atype == AccType.ACC_API);
        if (data["home"] is DBNull)
        {
            ret["home"] = "";
        }
        else
        {
            ret["home"] = Convert.ToString(data["home"]);
        }
        ret["creator"] = Convert.ToString(data["createCode"]);

        if (data["gameClose"] is DBNull)
        {
            ret["gameClose"] = "";
        }
        else
        {
            ret["gameClose"] = Convert.ToString(data["gameClose"]);
        }
        return(ret);
    }
        protected void Page_Load(object sender, EventArgs e)
        {
            ParamFetchMoney param = new ParamFetchMoney();

            param.m_acc = Request.QueryString["acc"];

            DyOpFetchMoney dy     = new DyOpFetchMoney();
            string         retStr = dy.doDyop(param);

            Response.Write(retStr);

            // 哪个玩家账号

            /* string acc = Request.Params["acc"];
             * if (string.IsNullOrEmpty(acc))
             * {
             *   returnMsg(RetCode.RET_PARAM_NOT_VALID, "", 0);
             *   return;
             * }
             *
             * string cmd =
             *   string.Format("select money,enable from {0} WHERE acc='{1}'", TableName.PLAYER_ACCOUNT_XIANXIA, acc);
             *
             * string sqlServer = WebConfigurationManager.AppSettings["mysql"];
             *
             * MySqlDbServer db = new MySqlDbServer(sqlServer);
             * Dictionary<string, object> r = db.queryOne(cmd, MySqlDbName.DB_XIANXIA);
             * if (r != null)
             * {
             *   bool enable = true;
             *   if (!(r["enable"] is DBNull))
             *   {
             *       enable = Convert.ToBoolean(r["enable"]);
             *   }
             *
             *   long money = Convert.ToInt64(r["money"]);
             *
             *   if (enable)
             *   {
             *       cmd = string.Format("UPDATE {0} set state={1},lastLoginDate='{2}' where acc='{3}'",
             *           TableName.PLAYER_ACCOUNT_XIANXIA,
             *           PlayerState.STATE_GAME,
             *           DateTime.Now.ToString(ConstDef.DATE_TIME24),
             *           acc);
             *       db.executeOp(cmd, MySqlDbName.DB_XIANXIA);
             *
             *       returnMsg(RetCode.RET_SUCCESS, acc, money);
             *   }
             *   else
             *   {
             *       returnMsg(RetCode.RET_ACC_BLOCKED, acc, money);
             *   }
             *
             *   return;
             * }
             *
             * returnMsg(RetCode.RET_NO_PLAYER, acc, 0);*/
        }
Esempio n. 3
0
    void setOnlineMoney(MySqlDbServer sqlDb, long money, ParamFetchMoney p)
    {
        string sqlCmd = string.Format(SQL_UPDATE_ONLINE_MONEY,
                                      TableName.PLAYER_ACCOUNT_XIANXIA,
                                      money,
                                      p.m_acc);

        sqlDb.executeOp(sqlCmd, MySqlDbName.DB_XIANXIA);
    }
Esempio n. 4
0
    public override string doDyop(object param)
    {
        ParamFetchMoney p    = (ParamFetchMoney)param;
        int             code = p.isParamValid();

        if (code != 0)
        {
            return(returnMsg(code));
        }

        MySqlDbServer sqlDb = new MySqlDbServer(CC.MYSQL_IP);

        string sqlCmd = string.Format(SQL_QUERY_STATE,
                                      TableName.PLAYER_ACCOUNT_XIANXIA,
                                      p.m_acc);
        Dictionary <string, object> data = sqlDb.queryOne(sqlCmd, MySqlDbName.DB_XIANXIA);

        if (data == null)
        {
            return(returnMsg(RetCode.RET_NO_PLAYER));
        }

        // 取出原有状态
        int oriState = Convert.ToInt32(data["state"]);

        // sql命令
        string sqlCmd1 = string.Format(SQL_UPDATE,
                                       TableName.PLAYER_ACCOUNT_XIANXIA,
                                       PlayerState.STATE_GAME,
                                       DateTime.Now.ToString(ConstDef.DATE_TIME24),
                                       p.m_acc);

        int count = sqlDb.executeOpTran(sqlCmd1, MySqlDbName.DB_XIANXIA);

        if (count <= 0) // 没有成功
        {
            return(returnMsg(RetCode.RET_NO_PLAYER));
        }

        string sqlCmd2 = string.Format(SQL_QUERY, TableName.PLAYER_ACCOUNT_XIANXIA, TableName.GM_ACCOUNT, p.m_acc);

        data = sqlDb.queryOne(sqlCmd2, MySqlDbName.DB_XIANXIA);
        if (data != null)
        {
            bool enable = true;
            if (!(data["enable"] is DBNull))
            {
                enable = Convert.ToBoolean(data["enable"]);
            }

            long money = Convert.ToInt64(data["money"]);

            Dictionary <string, object> ret = getRetInfo(p, money, data);

            if (enable)
            {
                setOnlineMoney(sqlDb, money, p);
                return(returnMsg(RetCode.RET_SUCCESS, ret));
            }
            else // 被封号,将状态置为正常
            {
                if (oriState == PlayerState.STATE_IDLE) // 原有状态为离线,恢复
                {
                    string sqlCmd3 = string.Format(SQL_UPDATE_STATE,
                                                   TableName.PLAYER_ACCOUNT_XIANXIA,
                                                   PlayerState.STATE_IDLE,
                                                   p.m_acc);

                    sqlDb.executeOp(sqlCmd3, MySqlDbName.DB_XIANXIA);
                }

                return(returnMsg(RetCode.RET_ACC_BLOCKED, ret));
            }
        }

        return(returnMsg(RetCode.RET_NO_PLAYER));
    }