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); }
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); }
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); }