コード例 #1
0
    public static Enums.ErrorCode GetAccountID(Player.Instance cPlayer, ref string rError)
    {
        Shik.LastUpdate();

        MySqlCommand cCommand = new MySqlCommand();

        cCommand.Connection  = Connection;
        cCommand.CommandText = string.Format("SELECT id from " + _sTableName + " where *='{0}'", cPlayer.SuperBitID);

        try
        {
            object cResult = cCommand.ExecuteScalar();
            cPlayer.AccountID = Convert.ToInt32(cResult);
        }
        catch (Exception ce)
        {
            rError = ce.ToString();
            cCommand.Dispose();
            return(Enums.ErrorCode.eDB_ExecuteError);
        }

        return(Enums.ErrorCode.eNone);
    }
コード例 #2
0
        public Enums.ErrorCode TryCook(Player.Instance cOwner, int iCookingID, ref Enums.CookingSuccessType eSuccessType)
        {
            // check Palette
            Palette cPalette = Manager.GetPalette(iCookingID);

            if (null == cPalette)
            {
                return(Enums.ErrorCode.eCooking_InvalidID);
            }

            // check InstanceData
            InstanceData cData = null;

            if (_cDicInstanceData.ContainsKey(iCookingID))
            {
                cData = _cDicInstanceData[iCookingID];
            }
            else
            {
                cData = new InstanceData(iCookingID);
                _cDicInstanceData.Add(iCookingID, cData);
            }

            // check ingredients
            if (!cPalette.CheckIngredientsList(cOwner.IngredientsInstance))
            {
                return(Enums.ErrorCode.eCooking_NotEnoughIngredients);
            }

            // cook - change informations
            eSuccessType = CalcSuccessType(cOwner, iCookingID);

            // exp
            int   iExp        = CookingLevel.Manager.GetCookingData(iCookingID).CookingExp;
            float fScaleSkill = (cOwner.PlayerSkillInstance.GetValue(Enums.PlayerSkillID.eExpCooking) * 0.01f);
            float fScaleGreat = Enums.CookingSuccessType.eGreatSuccess == eSuccessType ? 0.15f : 0.0f;

            float fScaleMedal = 0.0f;

            switch (cData.GreateTypeEnum)
            {
            case Enums.CookingGreatType.eBronze:    fScaleMedal = 0.05f; break;

            case Enums.CookingGreatType.eSilver:    fScaleMedal = 0.1f; break;

            case Enums.CookingGreatType.eGold:              fScaleMedal = 0.15f; break;

            case Enums.CookingGreatType.eNone:
            default:
                fScaleMedal = 0.0f;     break;
            }

            float fExp = (float)iExp;

            fExp *= (1.0f + fScaleSkill + fScaleGreat + fScaleMedal);

            iExp = (int)Math.Round(fExp, 0);

            int iOldLevel = cOwner.PlayerLevelInstance.Level;

            cData.AddAmount(eSuccessType);                                                                      // 요리 갯수 1 올려주고
            //cOwner.MoneysInstance.Pay(Enums.MoneysType.eCoin, cPalette.CookingCost);	// 돈 줄여주고
            cPalette.RemoveIngredientsByCook(cOwner.IngredientsInstance);                                       // 요리재료 줄여주고
            cOwner.PlayerLevelInstance.AddExp(cOwner, iExp);                                                    // 경험치 채워주고
            cOwner.CookingLevelInstance.AddCooking(cData.PaletteID, cOwner);                                    // 요리 레벨 정보 변경해 준다.

            if (iOldLevel < cOwner.PlayerLevelInstance.Level)
            {
                Ranking.Manager.ChangeLevel(cOwner.AccountID, cOwner.PlayerLevelInstance.Level);
            }

            // check mission
            cOwner.MissionInstance.UpCookingAmount(iCookingID);

            if (Enums.CookingSuccessType.eGreatSuccess == eSuccessType)
            {
                cOwner.MissionInstance.UpGreatCookingAmount(iCookingID);
            }

            // write log
            //int iCurCoin = cOwner.MoneysInstance.GetMoney(Enums.MoneysType.eCoin);
            //MySqlUtil.WriteLog(cOwner.AccountID, Enums.LogMainType.Coin_Remove, Enums.LogSubType.Cooking, iCookingID.ToString(), (iCurCoin + cPalette.CookingCost).ToString(), iCurCoin.ToString());

            return(Enums.ErrorCode.eNone);
        }
コード例 #3
0
    public static Enums.ErrorCode CreateNewRecord(Player.Instance cPlayer, ref string rError)
    {
        Shik.LastUpdate();

        string sInsertInto = "INSERT INTO " + _sTableName + "(*, *, *, *, *, *, *, *, *, *, *, *, *, *, *, *, *, *, *, *) ";
        string sValues     = "VALUES (@*, @*, @*, @*, @*, @*, @*, @*, @*, @*, @*, @*, @*, @*, @*, @*, @*, @*, @*, @*)";

        MySqlCommand cCommand = new MySqlCommand();

        cCommand.Connection  = Connection;
        cCommand.CommandText = sInsertInto + sValues;

        cCommand.Parameters.Add("@*", MySqlDbType.VarChar);
        cCommand.Parameters.Add("@*", MySqlDbType.VarChar);
        cCommand.Parameters.Add("@*", MySqlDbType.VarChar);
        cCommand.Parameters.Add("@*", MySqlDbType.VarChar);
        cCommand.Parameters.Add("@*", MySqlDbType.Text);
        cCommand.Parameters.Add("@*", MySqlDbType.Text);
        cCommand.Parameters.Add("@*", MySqlDbType.Text);
        cCommand.Parameters.Add("@*", MySqlDbType.Text);
        cCommand.Parameters.Add("@*", MySqlDbType.Text);
        cCommand.Parameters.Add("@*", MySqlDbType.Text);
        cCommand.Parameters.Add("@*", MySqlDbType.Text);
        cCommand.Parameters.Add("@*", MySqlDbType.Text);
        cCommand.Parameters.Add("@*", MySqlDbType.Text);
        cCommand.Parameters.Add("@*", MySqlDbType.Text);
        cCommand.Parameters.Add("@*", MySqlDbType.Text);
        cCommand.Parameters.Add("@*", MySqlDbType.Text);
        cCommand.Parameters.Add("@*", MySqlDbType.Text);
        cCommand.Parameters.Add("@*", MySqlDbType.Date);
        cCommand.Parameters.Add("@*", MySqlDbType.Date);
        cCommand.Parameters.Add("@*", MySqlDbType.Bit);

        cCommand.Parameters[0].Value  = cPlayer.SuperBitID;
        cCommand.Parameters[1].Value  = cPlayer.FacebookID;
        cCommand.Parameters[2].Value  = cPlayer.GooglePlusID;
        cCommand.Parameters[3].Value  = cPlayer.GamecenterID;
        cCommand.Parameters[4].Value  = cPlayer.AccountInstance.ToJsonToken();
        cCommand.Parameters[5].Value  = cPlayer.MoneysInstance.ToJsonToken();
        cCommand.Parameters[6].Value  = cPlayer.ScoreInstance.ToJsonToken();
        cCommand.Parameters[7].Value  = cPlayer.AchievementsInstance.ToJsonToken();
        cCommand.Parameters[8].Value  = cPlayer.CharacterInstance.ToJsonToken();
        cCommand.Parameters[9].Value  = cPlayer.CookingInstance.ToJsonToken();
        cCommand.Parameters[10].Value = cPlayer.IngredientsInstance.ToJsonToken();
        cCommand.Parameters[11].Value = cPlayer.CookingLevelInstance.ToJsonToken();
        cCommand.Parameters[12].Value = cPlayer.MissionInstance.ToJsonToken();
        cCommand.Parameters[13].Value = cPlayer.PlayerLevelInstance.ToJsonToken();
        cCommand.Parameters[14].Value = cPlayer.PlayerSkillInstance.ToJsonToken();
        cCommand.Parameters[15].Value = cPlayer.ShopInstance.ToJsonToken();
        cCommand.Parameters[16].Value = cPlayer.TutorialInstance.ToJsonToken();
        cCommand.Parameters[17].Value = DateTimeUtil.ToSqlDate(DateTime.Now);
        cCommand.Parameters[18].Value = DateTimeUtil.ToSqlDate(DateTime.Now);
        cCommand.Parameters[19].Value = 0;

        int iResult = 0;

        try
        {
            //Debug.Log("    - [MySqlUtil : CreateNewRecord] open : " + cPlayer.AccountID.ToString());
            iResult = cCommand.ExecuteNonQuery();
            //Debug.Log("    - [MySqlUtil : CreateNewRecord] close : " + cPlayer.AccountID.ToString());
        }
        catch (Exception ce)
        {
            rError = ce.ToString();
            cCommand.Dispose();
            return(Enums.ErrorCode.eDB_ExecuteError);
        }

        cCommand.Dispose();

        if (!iResult.Equals(1))
        {
            return(Enums.ErrorCode.eDB_FailedInsert);
        }

        return(Enums.ErrorCode.eNone);
    }