예제 #1
0
    private string exitGame(MySqlDbServer sqlDb, ParamSaveMoney p)
    {
        // sql命令
        string sqlCmd = string.Format(SQL_QUERY,
                                      TableName.PLAYER_ACCOUNT_XIANXIA,
                                      p.m_acc);

        Dictionary <string, object> data = sqlDb.queryOne(sqlCmd, MySqlDbName.DB_XIANXIA);

        if (data != null)
        {
            int state = Convert.ToInt32(data["state"]);
            if (state != PlayerState.STATE_GAME)
            {
                return("");
            }

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

            sqlCmd = string.Format(SQL_UPDATE,
                                   TableName.PLAYER_ACCOUNT_XIANXIA,
                                   PlayerState.STATE_IDLE,
                                   p.m_money,
                                   p.m_acc);
            int count = sqlDb.executeOp(sqlCmd, MySqlDbName.DB_XIANXIA);

            if (count > 0)
            {
                addGameLog(sqlDb, p.m_acc, oriMoney, p.m_money);
                return("ok");
            }
        }

        return("");
    }
예제 #2
0
    public string exitToLobby(MySqlDbServer sqlDb, ParamSaveMoney p)
    {
        string sqlCmd = string.Format(SQL_UPDATE_TEMP_MONEY,
                                      TableName.PLAYER_ACCOUNT_XIANXIA,
                                      p.m_money,
                                      p.m_acc);
        int count = sqlDb.executeOp(sqlCmd, MySqlDbName.DB_XIANXIA);

        return(count > 0 ? "ok" : "");
    }
        protected void Page_Load(object sender, EventArgs e)
        {
            ParamSaveMoney param = new ParamSaveMoney();

            param.m_acc      = Request.QueryString["acc"];
            param.m_moneyStr = Request.QueryString["money"];
            param.m_exit     = Request.QueryString["exitType"];

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

            Response.Write(retStr);

            // 哪个玩家账号

            /*string acc = Request.Params["acc"];
             * string m = Request.Params["money"];
             * if (string.IsNullOrEmpty(acc) ||
             *  string.IsNullOrEmpty(m))
             * {
             *  return;
             * }
             *
             * // 现在的钱
             * long money = Convert.ToInt64(m);
             *
             * string cmd =
             *  string.Format("select state,money 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)
             * {
             *  int state = Convert.ToInt32(r["state"]);
             *  if (state != PlayerState.STATE_GAME)
             *  {
             *      return;
             *  }
             *
             *  long oriMoney = Convert.ToInt64(r["money"]);
             *
             *  cmd = string.Format("UPDATE {0} set state={1},money={2} where acc='{3}'",
             *      TableName.PLAYER_ACCOUNT_XIANXIA,
             *      PlayerState.STATE_IDLE,
             *      money,
             *      acc);
             *  int cnt = db.executeOp(cmd, MySqlDbName.DB_XIANXIA);
             *  if (cnt > 0)
             *  {
             *      addGameLog(db, acc, oriMoney, money);
             *      Response.Write("ok");
             *  }
             * }  */
        }
예제 #4
0
    public override string doDyop(object param)
    {
        ParamSaveMoney p    = (ParamSaveMoney)param;
        int            code = p.isParamValid();

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

        MySqlDbServer sqlDb = new MySqlDbServer(CC.MYSQL_IP);

        if (p.m_exitType == 0)
        {
            return(exitGame(sqlDb, p));
        }

        return(exitToLobby(sqlDb, p));
    }