private uint m_RandValueW; //!< 乱数パラメータ: /*==========================================================================*/ /* func */ /*==========================================================================*/ //---------------------------------------------------------------------------- /*! * @brief コンストラクタ */ //---------------------------------------------------------------------------- public Rand() { //------------------------------- // 適当な値で初期化。 // ここの数値に意味は無い。 // // 再現可能な乱数を期待する場合には // 外部的に乱数シードを入れる関数を呼び出すことを想定する。 //------------------------------- SetRandSeed((uint)(TimeUtil.ConvertLocalTimeToServerTime(DateTime.Now) % 0xffffffff)); }
//---------------------------------------------------------------------------- /*! * @brief DEBUG用時間設定 */ //---------------------------------------------------------------------------- public void setTimeNowForDebug(DateTime dt) { #if BUILD_TYPE_DEBUG m_TimeNowSv = dt; // m_TimeNow = m_TimeNowSv; ulong svrtime = TimeUtil.ConvertLocalTimeToServerTime(m_TimeNowSv); m_FlgUserSetTime = false; SetupServerTime(svrtime); m_FlgUserSetTime = true; #endif }
//---------------------------------------------------------------------------- /*! * @brief Unity固有処理:初期化処理 ※初回のUpdateを呼び出す直前に呼出し */ //---------------------------------------------------------------------------- protected override void Start() { base.Start(); // DateTime cTime = DateTime.Now; // TimeSpan cTimeSpan = cTime - DateTime.MinValue; // uint unRandSeed = (uint)cTimeSpan.TotalSeconds; uint unRandSeed = (uint)(TimeUtil.ConvertLocalTimeToServerTime(DateTime.Now) % 0xffffffff); m_Rand.SetRandSeed(unRandSeed); #if BUILD_TYPE_DEBUG Debug.Log("RandSeed - [ " + DateTime.Now + " , " + unRandSeed); #endif }
//---------------------------------------------------------------------------- // @brief ローカル通知設定 // @param[in] string (title) 通知文言:タイトル // @param[in] string (text) 通知文言:本文 // @param[in] int (delay) 現在時刻から表示するまでの時間(秒) //---------------------------------------------------------------------------- public static void SendNotification(string title, string text, int delay) { if (Patcher.Instance.GetLocalNotificationRegisterDisable()) { return; } if (TimeManager.Instance == null) { return; } #if LOCAL_NOTIFICATION_EDITOR #if DEBUG_LOG // Editor Debug.Log("SetNotification: " + title + " / text: " + text + " / delay: " + delay); #endif #elif LOCAL_NOTIFICATION_ANDROID string package = Application.identifier; string activity = "com.onevcat.uniwebview.AndroidPlugin"; // Android ELANManager.SendNotification(title, text, package, activity, delay); #elif LOCAL_NOTIFICATION_IOS // iOS(現在時刻とりなおして、ディレイ時間を足してるので若干登録時間に誤差がでるかも。気になるレベルではないはず) LocalNotification notification = new LocalNotification(); if (notification != null) { // サーバー時間を加味して通知時間を変更している ulong totalSeconds = TimeUtil.ConvertLocalTimeToServerTime(TimeManager.Instance.m_TimeNow.AddSeconds(delay)); DateTime td = TimeUtil.ConvertTotalSecondsToServerTime(totalSeconds); notification.applicationIconBadgeNumber = -1; notification.fireDate = td; notification.alertBody = text; NotificationServices.ScheduleLocalNotification(notification); } #endif }
//---------------------------------------------------------------------------- /*! * @brief API受信情報解析 */ //---------------------------------------------------------------------------- static public ResultCodeType RecvPacketAPI(ref PacketData rcPacketData, string strRecvText, string strRecvError, bool bParse = true) { //-------------------------------- // 送受信エラーを検出 //-------------------------------- if (strRecvError != null) { //-------------------------------- // 再送指示。 // そもそもこの関数に入る前に弾いているのでここに届くことはないはず。 //-------------------------------- return(ServerDataManager.Instance.ResultCodeToCodeType(rcPacketData.m_PacketAPI, API_CODE.API_CODE_CLIENT_RETRY)); } //-------------------------------- // ヘッダ情報のみ抜出 //-------------------------------- RecvHeaderChecker cPacketHeader = CreateRecvHeader(strRecvText); //-------------------------------- // セッションIDを更新 // ヘッダが破損していてもデータがあれば適用するので先行して設定 //-------------------------------- if (cPacketHeader != null && cPacketHeader.header.session_id != null && cPacketHeader.header.session_id.Length > 0 ) { ServerDataParam.m_ServerSessionID = cPacketHeader.header.session_id; } //-------------------------------- // サーバーから届いた現在時間を保持 //-------------------------------- if (cPacketHeader != null && cPacketHeader.header != null ) { //-------------------------------- // //-------------------------------- if (ServerDataParam.m_ServerTime != 0 && cPacketHeader.header.server_time == 0 ) { //-------------------------------- // サーバーから時間情報が返ってくるケースと返ってこないケースがあると処理が破綻する。 // 返ってくるAPIと返ってこないAPIがあっても一応動作するようにセーフティを入れておく //-------------------------------- Debug.LogError("ServerTime Error! - " + rcPacketData.m_PacketAPI); if (TimeManager.Instance != null) { TimeUtil.ConvertLocalTimeToServerTime(TimeManager.Instance.m_TimeNow); } } else { //-------------------------------- // サーバーから届いた時間情報を使用 //-------------------------------- ServerDataParam.m_ServerTime = cPacketHeader.header.server_time; } } //-------------------------------- // セキュリティコードを更新 //-------------------------------- if (cPacketHeader != null && cPacketHeader.header.csum != null && cPacketHeader.header.csum.Length > 0 ) { ServerDataParam.m_ServerAPICheckSum = cPacketHeader.header.csum; #if BUILD_TYPE_DEBUG Debug.Log("API CheckSum - Recv " + ServerDataParam.m_ServerAPICheckSum); #endif } if (cPacketHeader != null && cPacketHeader.header != null ) { ServerDataParam.m_ServerAPICheckRandOtt = cPacketHeader.header.ott; } //-------------------------------- // ヘッダ情報はフォーマット固定なのでヘッダの取得を行い不具合がないかチェックする //-------------------------------- if (cPacketHeader == null) { Debug.LogError("RecvPacket Header Broken! : " + strRecvText); return(ServerDataManager.Instance.ResultCodeToCodeType(rcPacketData.m_PacketAPI, API_CODE.API_CODE_CLIENT_PARSE_FAILED)); } if (Enum.IsDefined(typeof(API_CODE), cPacketHeader.header.code) == false) { Debug.LogError("RecvPacket Header Broken! Error Code : " + strRecvText); return(ServerDataManager.Instance.ResultCodeToCodeType(rcPacketData.m_PacketAPI, API_CODE.API_CODE_CLIENT_PARSE_FAILED_CODE)); } //-------------------------------- // リクエストに対する返信ではない場合、 // 再送依頼してもう一度取り直す //-------------------------------- if (rcPacketData.m_PacketUniqueNum != cPacketHeader.header.packet_unique_id) { Debug.LogError("RecvPacket UniqueID Not Match! " + "send:" + rcPacketData.m_PacketUniqueNum + " , recv:" + cPacketHeader.header.packet_unique_id); return(ServerDataManager.Instance.ResultCodeToCodeType(rcPacketData.m_PacketAPI, API_CODE.API_CODE_CLIENT_RETRY)); } //-------------------------------- // リザルトデータが存在しない場合に // サーバー班が result = null を仕込むのが工数がかかるようなので、 // ここで例外的にresultが0配列の場合にnullに置き換える。 // // 基本的にエラー発生時にのみコレが引っかかるので、 // 処理が発生する頻度自体は低いはず… //-------------------------------- if (cPacketHeader.header.code != (int)API_CODE.API_CODE_SUCCESS && strRecvText[strRecvText.Length - 3] == '[' && strRecvText[strRecvText.Length - 2] == ']' && strRecvText[strRecvText.Length - 1] == '}' ) { Debug.LogError("Packet Result Format Safety!"); strRecvText = strRecvText.Substring(0, strRecvText.Length - 3); strRecvText += "null}"; } //-------------------------------- // 届いたリザルトコードがAPI呼び出し元に渡さないタイプならそのまま終了 //-------------------------------- ResultCodeType cResultCodeType = null; { //-------------------------------- // APIとリザルトコードのペアからコードタイプを求める //-------------------------------- cResultCodeType = ServerDataManager.Instance.ResultCodeToCodeType(rcPacketData.m_PacketAPI, (API_CODE)cPacketHeader.header.code); } if (cResultCodeType != null) { bool bError = false; switch (cResultCodeType.m_CodeType) { case API_CODETYPE.API_CODETYPE_USUALLY: bError = false; break; case API_CODETYPE.API_CODETYPE_INVALID_USER: bError = true; break; case API_CODETYPE.API_CODETYPE_VERSION_UP: bError = true; break; case API_CODETYPE.API_CODETYPE_RESTART: bError = true; break; case API_CODETYPE.API_CODETYPE_MENTENANCE: bError = true; break; case API_CODETYPE.API_CODETYPE_RETRY: bError = true; break; case API_CODETYPE.API_CODETYPE_AUTH_REQUIRED: bError = true; break; case API_CODETYPE.API_CODETYPE_TRANSFER_MOVED: bError = true; break; } if (bError == true) { return(cResultCodeType); } } else { Debug.LogError("Packet Result CodeType None! - " + cPacketHeader.header.code); return(null); } if (bParse) { //-------------------------------- // APIタイプで分岐して解析処理へ //-------------------------------- switch (rcPacketData.m_PacketAPI) { case SERVER_API.SERVER_API_USER_CREATE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvCreateUser>(strRecvText)); break; // APIタイプ:ユーザー管理:ユーザー新規生成 case SERVER_API.SERVER_API_USER_AUTHENTICATION: RecvPacketAPIConvert(JsonMapper.ToObject <RecvUserAuthentication>(strRecvText)); break; // APIタイプ:ユーザー管理:ユーザー承認 case SERVER_API.SERVER_API_USER_RENAME: RecvPacketAPIConvert(JsonMapper.ToObject <RecvRenameUser>(strRecvText)); break; // APIタイプ:ユーザー管理:ユーザー名称変更 case SERVER_API.SERVER_API_USER_SELECT_DEF_PARTY: RecvPacketAPIConvert(JsonMapper.ToObject <RecvSelectDefParty>(strRecvText)); break; // APIタイプ:ユーザー管理:ユーザー初期設定 case SERVER_API.SERVER_API_USER_RENEW: RecvPacketAPIConvert(JsonMapper.ToObject <RecvRenewUser>(strRecvText)); break; // APIタイプ:ユーザー管理:ユーザー再構築 case SERVER_API.SERVER_API_USER_RENEW_CHECK: RecvPacketAPIConvert(JsonMapper.ToObject <RecvCheckRenewUser>(strRecvText)); break; // APIタイプ:ユーザー管理:ユーザー再構築情報問い合わせ case SERVER_API.SERVER_API_MASTER_HASH_GET: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetMasterHash>(strRecvText)); break; // APIタイプ:マスターハッシュ情報取得 case SERVER_API.SERVER_API_MASTER_DATA_GET_ALL: RecvPacketAPIConvert(JsonMapper.ToObject <RecvMasterDataAll>(strRecvText)); break; // APIタイプ:マスターデータ操作:マスターデータ実体取得 case SERVER_API.SERVER_API_MASTER_DATA_GET_ALL2: RecvPacketAPIConvert(JsonMapper.ToObject <RecvMasterDataAll2>(strRecvText)); break; // APIタイプ:マスターデータ操作:マスターデータ実体取得 case SERVER_API.SERVER_API_GET_ACHIEVEMENT_GP: RecvPacketAPIConvert(JsonMapper.ToObject <RecvAchievementGroup>(strRecvText)); break; // APIタイプ:アチーブメント操作:アチーブメントグループ実体取得 case SERVER_API.SERVER_API_GET_ACHIEVEMENT: RecvPacketAPIConvert(JsonMapper.ToObject <RecvMasterDataAchievement>(strRecvText)); break; // APIタイプ:アチーブメント操作:アチーブメント実体取得 case SERVER_API.SERVER_API_GET_LOGIN_PACK: RecvPacketAPIConvert(JsonMapper.ToObject <RecvLoginPack>(strRecvText)); break; // APIタイプ:ログイン情報:ログインパック情報取得 case SERVER_API.SERVER_API_GET_LOGIN_PARAM: RecvPacketAPIConvert(JsonMapper.ToObject <RecvLoginParam>(strRecvText)); break; // APIタイプ:ログイン情報:ログイン情報取得 case SERVER_API.SERVER_API_FRIEND_LIST_GET: RecvPacketAPIConvert(JsonMapper.ToObject <RecvFriendListGet>(strRecvText)); break; // APIタイプ:フレンド操作:フレンド一覧取得 case SERVER_API.SERVER_API_FRIEND_REQUEST: RecvPacketAPIConvert(JsonMapper.ToObject <RecvFriendRequest>(strRecvText)); break; // APIタイプ:フレンド操作:フレンド申請 case SERVER_API.SERVER_API_FRIEND_CONSENT: RecvPacketAPIConvert(JsonMapper.ToObject <RecvFriendConsent>(strRecvText)); break; // APIタイプ:フレンド操作:フレンド申請承認 case SERVER_API.SERVER_API_FRIEND_REFUSAL: RecvPacketAPIConvert(JsonMapper.ToObject <RecvFriendRefusal>(strRecvText)); break; // APIタイプ:フレンド操作:フレンド解除 case SERVER_API.SERVER_API_FRIEND_SEARCH: RecvPacketAPIConvert(JsonMapper.ToObject <RecvFriendSearch>(strRecvText)); break; // APIタイプ:フレンド操作:フレンドユーザー検索 case SERVER_API.SERVER_API_UNIT_PARTY_ASSIGN: RecvPacketAPIConvert(JsonMapper.ToObject <RecvUnitPartyAssign>(strRecvText)); break; // APIタイプ:ユニット操作:ユニットパーティ編成設定 case SERVER_API.SERVER_API_UNIT_SALE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvUnitSale>(strRecvText)); break; // APIタイプ:ユニット操作:ユニット売却 case SERVER_API.SERVER_API_UNIT_BLEND_BUILDUP: RecvPacketAPIConvert(JsonMapper.ToObject <RecvUnitBlendBuildUp>(strRecvText)); break; // APIタイプ:ユニット操作:ユニット強化合成 case SERVER_API.SERVER_API_UNIT_BLEND_EVOL: RecvPacketAPIConvert(JsonMapper.ToObject <RecvUnitBlendEvol>(strRecvText)); break; // APIタイプ:ユニット操作:ユニット進化合成 case SERVER_API.SERVER_API_UNIT_LINK_CREATE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvUnitLink>(strRecvText)); break; // APIタイプ:ユニット操作:ユニットリンク実行 case SERVER_API.SERVER_API_UNIT_LINK_DELETE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvUnitLink>(strRecvText)); break; // APIタイプ:ユニット操作:ユニットリンク解除 case SERVER_API.SERVER_API_QUEST_HELPER_GET: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestHelperGet>(strRecvText)); break; // APIタイプ:クエスト操作:助っ人一覧取得 case SERVER_API.SERVER_API_QUEST_HELPER_GET_EVOL: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestHelperGetEvol>(strRecvText)); break; // APIタイプ:クエスト操作:助っ人一覧取得(進化合成向き) case SERVER_API.SERVER_API_QUEST_HELPER_GET_BUILD: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestHelperGetBuild>(strRecvText)); break; // APIタイプ:クエスト操作:助っ人一覧取得(強化合成向き) case SERVER_API.SERVER_API_QUEST_START: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestStart>(strRecvText)); break; // APIタイプ:クエスト操作:クエスト開始 case SERVER_API.SERVER_API_QUEST_CLEAR: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestClear>(strRecvText)); break; // APIタイプ:クエスト操作:クエストクリア case SERVER_API.SERVER_API_QUEST_RETIRE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestRetire>(strRecvText)); break; // APIタイプ:クエスト操作:クエストリタイア case SERVER_API.SERVER_API_QUEST_ORDER_GET: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestOrderGet>(strRecvText)); break; // APIタイプ:クエスト操作:クエスト受託情報取得 case SERVER_API.SERVER_API_QUEST_CONTINUE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestContinue>(strRecvText)); break; // APIタイプ:インゲーム中:コンティニュー case SERVER_API.SERVER_API_QUEST_RESET: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestReset>(strRecvText)); break; // APIタイプ:インゲーム中:リセット case SERVER_API.SERVER_API_EVOL_QUEST_START: RecvPacketAPIConvert(JsonMapper.ToObject <RecvEvolQuestStart>(strRecvText)); break; // APIタイプ:クエスト操作:進化クエスト開始 case SERVER_API.SERVER_API_EVOL_QUEST_CLEAR: RecvPacketAPIConvert(JsonMapper.ToObject <RecvEvolQuestClear>(strRecvText)); break; // APIタイプ:クエスト操作:進化クエストクリア case SERVER_API.SERVER_API_INJUSTICE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvInjustice>(strRecvText)); break; // APIタイプ:不正検出関連:不正検出送信 case SERVER_API.SERVER_API_TUTORIAL: RecvPacketAPIConvert(JsonMapper.ToObject <RecvTutorialStep>(strRecvText)); break; // APIタイプ:チュートリアル関連:進行集計 case SERVER_API.SERVER_API_STONE_USE_UNIT: RecvPacketAPIConvert(JsonMapper.ToObject <RecvStoneUsedUnit>(strRecvText)); break; // APIタイプ:魔法石使用:ユニット枠増設 case SERVER_API.SERVER_API_STONE_USE_FRIEND: RecvPacketAPIConvert(JsonMapper.ToObject <RecvStoneUsedFriend>(strRecvText)); break; // APIタイプ:魔法石使用:フレンド枠増設 case SERVER_API.SERVER_API_STONE_USE_STAMINA: RecvPacketAPIConvert(JsonMapper.ToObject <RecvStoneUsedStamina>(strRecvText)); break; // APIタイプ:魔法石使用:スタミナ回復 case SERVER_API.SERVER_API_GACHA_PLAY: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGachaPlay>(strRecvText)); break; // APIタイプ:ガチャ操作:ガチャ実行 case SERVER_API.SERVER_API_GACHA_TICKET_PLAY: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGachaTicketPlay>(strRecvText)); break; // APIタイプ:ガチャ操作:ガチャチケット実行 case SERVER_API.SERVER_API_STONE_PAY_PREV_IOS: RecvPacketAPIConvert(JsonMapper.ToObject <RecvStorePayPrev_ios>(strRecvText)); break; // APIタイプ:課金操作:魔法石購入直前処理( iOS … AppStore ) case SERVER_API.SERVER_API_STONE_PAY_PREV_ANDROID: RecvPacketAPIConvert(JsonMapper.ToObject <RecvStorePayPrev_android>(strRecvText)); break; // APIタイプ:課金操作:魔法石購入直前処理( Android … GooglePlay ) case SERVER_API.SERVER_API_STONE_PAY_IOS: RecvPacketAPIConvert(JsonMapper.ToObject <RecvStorePay_ios>(strRecvText)); break; // APIタイプ:課金操作:魔法石購入反映処理( iOS … AppStore ) case SERVER_API.SERVER_API_STONE_PAY_ANDROID: RecvPacketAPIConvert(JsonMapper.ToObject <RecvStorePay_android>(strRecvText)); break; // APIタイプ:課金操作:魔法石購入反映処理( Android … GooglePlay ) case SERVER_API.SERVER_API_REVIEW_PRESENT: RecvPacketAPIConvert(JsonMapper.ToObject <RecvReviewPresent>(strRecvText)); break; // APIタイプ:ユーザーレビュー関連:レビュー遷移報酬 case SERVER_API.SERVER_API_PRESENT_LIST_GET: RecvPacketAPIConvert(JsonMapper.ToObject <RecvPresentListGet>(strRecvText)); break; // APIタイプ:プレゼント関連:プレゼント一覧取得 case SERVER_API.SERVER_API_PRESENT_OPEN: RecvPacketAPIConvert(JsonMapper.ToObject <RecvPresentOpen>(strRecvText)); break; // APIタイプ:プレゼント関連:プレゼント開封 case SERVER_API.SERVER_API_TRANSFER_ORDER: RecvPacketAPIConvert(JsonMapper.ToObject <RecvTransferOrder>(strRecvText)); break; // APIタイプ:セーブ移行関連:パスワード発行 case SERVER_API.SERVER_API_TRANSFER_EXEC: RecvPacketAPIConvert(JsonMapper.ToObject <RecvTransferExec>(strRecvText)); break; // APIタイプ:セーブ移行関連:移行実行 #if BUILD_TYPE_DEBUG case SERVER_API.SERVER_API_DEBUG_EDIT_USER: RecvPacketAPIConvert(JsonMapper.ToObject <RecvDebugEditUser>(strRecvText)); break; // APIタイプ:デバッグ機能関連:ユーザーデータ更新 case SERVER_API.SERVER_API_DEBUG_UNIT_GET: RecvPacketAPIConvert(JsonMapper.ToObject <RecvDebugUnitGet>(strRecvText)); break; // APIタイプ:デバッグ機能関連:ユニット取得 case SERVER_API.SERVER_API_DEBUG_QUEST_CLEAR: RecvPacketAPIConvert(JsonMapper.ToObject <RecvDebugQuestClear>(strRecvText)); break; // APIタイプ:デバッグ機能関連:クエストクリア情報改変 case SERVER_API.SERVER_API_DEBUG_SEND_BATTLE_LOG: RecvPacketAPIConvert(JsonMapper.ToObject <RecvDebugBattleLog>(strRecvText)); break; // APIタイプ:デバッグ機能関連:バトルログアップロード case SERVER_API.SERVER_API_DEBUG_MASTER_DATA_GET_ALL2: RecvPacketAPIConvert(JsonMapper.ToObject <RecvMasterDataAll2>(strRecvText)); break; // APIタイプ:マスターデータ操作:マスターデータ実体取得 #endif case SERVER_API.SERVER_API_GET_STORE_EVENT: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetStoreProductEvent>(strRecvText)); break; // APIタイプ:イベントストア一覧取得 case SERVER_API.SERVER_API_STORE_PAY_CANCEL: RecvPacketAPIConvert(JsonMapper.ToObject <RecvStorePayCancel>(strRecvText)); break; // APIタイプ:課金操作:魔法石購入キャンセル case SERVER_API.SERVER_API_ACHIEVEMENT_OPEN: RecvPacketAPIConvert(JsonMapper.ToObject <RecvOpenAchievement>(strRecvText)); break; // APIタイプ:アチーブメント開封 case SERVER_API.SERVER_API_CHECK_SNS_LINK: RecvPacketAPIConvert(JsonMapper.ToObject <RecvCheckSnsLink>(strRecvText)); break; //!< APIタイプ:SNSIDとの紐付け確認 case SERVER_API.SERVER_API_SET_SNS_LINK: RecvPacketAPIConvert(JsonMapper.ToObject <RecvSetSnsLink>(strRecvText)); break; //!< APIタイプ:SNSIDとの紐付け case SERVER_API.SERVER_API_MOVE_SNS_SAVE_DATA: RecvPacketAPIConvert(JsonMapper.ToObject <RecvMoveSnsSaveData>(strRecvText)); break; //!< APIタイプ:SNSIDを使用したデータ移行 case SERVER_API.SERVER_API_TUTORIAL_SKIP: RecvPacketAPIConvert(JsonMapper.ToObject <RecvSkipTutorial>(strRecvText)); break; //!< APIタイプ:チュートリアルスキップ case SERVER_API.SERVER_API_GET_SNS_ID: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetSnsID>(strRecvText)); break; //!< APIタイプ:SNSID作成 case SERVER_API.SERVER_API_GET_POINT_SHOP_PRODUCT: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetPointShopProduct>(strRecvText)); break; //!< APIタイプ:ポイントショップ:ショップ商品情報を取得 get_point_shop_product case SERVER_API.SERVER_API_POINT_SHOP_PURCHASE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvPointShopPurchase>(strRecvText)); break; //!< APIタイプ:ポイントショップ:商品購入 point_shop_purchase case SERVER_API.SERVER_API_POINT_SHOP_LIMITOVER: RecvPacketAPIConvert(JsonMapper.ToObject <RecvPointShopLimitOver>(strRecvText)); break; //!< APIタイプ:ポイントショップ:限界突破 case SERVER_API.SERVER_API_POINT_SHOP_EVOL: RecvPacketAPIConvert(JsonMapper.ToObject <RecvPointShopEvol>(strRecvText)); break; //!< APIタイプ:ポイントショップ:進化 case SERVER_API.SERVER_API_USE_ITEM: RecvPacketAPIConvert(JsonMapper.ToObject <RecvItemUse>(strRecvText)); break; //!< APIタイプ:消費アイテム:アイテム使用 case SERVER_API.SERVER_API_GET_BOX_GACHA_STOCK: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetBoxGachaStock>(strRecvText)); break; //!< APIタイプ:BOXガチャ在庫状況取得 case SERVER_API.SERVER_API_RESET_BOX_GACHA_STOCK: RecvPacketAPIConvert(JsonMapper.ToObject <RecvResetBoxGachaStock>(strRecvText)); break; //!< APIタイプ:BOXガチャ在庫状況リセット case SERVER_API.SERVER_API_EVOLVE_UNIT: RecvPacketAPIConvert(JsonMapper.ToObject <RecvEvolveUnit>(strRecvText)); break; // APIタイプ:クエスト操作:進化クエスト開始 case SERVER_API.SERVER_API_GET_GUERRILLA_BOSS_INFO: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetGuerrillaBossInfo>(strRecvText)); break; //!< APIタイプ:ゲリラボス情報 case SERVER_API.SERVER_API_GET_GACHA_LINEUP: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetGachaLineup>(strRecvText)); break; // APIタイプ:ガチャ:ガチャラインナップ詳細 case SERVER_API.SERVER_API_RENEW_TUTORIAL: RecvPacketAPIConvert(JsonMapper.ToObject <RecvRenewTutorialStep>(strRecvText)); break; // APIタイプ:チュートリアル関連:進行集計 case SERVER_API.SERVER_API_GET_TOPIC_INFO: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetTopicInfo>(strRecvText)); break; // APIタイプ:ホームページのトピック : ニュース情報取得 case SERVER_API.SERVER_API_PERIODIC_UPDATE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvPeriodicUpdate>(strRecvText)); break; //!< APIタイプ:定期データ更新(デバイストークン) case SERVER_API.SERVER_API_GET_PRESENT_OPEN_LOG: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetPresentOpenLog>(strRecvText)); break; // APIタイプ:ホームページのトピック : ニュース情報取得 } } //-------------------------------- // アチーブメントの共通情報を加算しておく //-------------------------------- if (cPacketHeader != null) { ResidentParam.AddAchievementClear(cPacketHeader.header.achievement_clear_data); // 値が0以上の場合のみバッチの値を更新 if (cPacketHeader.header.achievement_reward_count >= 0) { ResidentParam.m_AchievementRewardCnt = cPacketHeader.header.achievement_reward_count; } // 新規アチーブメントカウント数を更新 ResidentParam.AddAchievementNewCnt(cPacketHeader.header.achievement_new_count); } return(cResultCodeType); }