/// <summary> /// IDとパスワードを使用してゲームを起動します。 /// ゲームクライアントのアップデートがある場合にはランチャーを起動します。 /// </summary> /// <param name="id">アカウントID</param> /// <param name="password">アカウントパスワード</param> public new static void startGame(string id, string password) { OfficialLoginController clsLoginCon = new LoginManager.OfficialLoginController(); clsLoginCon.initialize(); System.Text.Encoding enc = System.Text.Encoding.GetEncoding("Shift_JIS"); string url; string param = ""; HttpWebResponse res; // ネットワーク接続を試みる while (!LoginController.isAliveNetwork()) { SimpleLogger.WriteLine("does not connect network."); DialogResult dgRes = MessageBox.Show("ネットワークに接続されていないため、処理を続行できません。", "Trickster Tools", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error); if (dgRes == DialogResult.Cancel) { return; } } param = @"code=23&login=0&id=" + ProgramController.UrlEncode(id, Encoding.GetEncoding("Shift_JIS")) + "&pass="******"https://ssl2.gcrest.com/mp/gate.php"; try { clsLoginCon.doRequest(url, LoginController.RequestMethod.POST, param, 60000, "http://www.trickster.jp/trickster/index.html"); // レスポンスの取得と読み込み res = clsLoginCon.getResponse(); if (res.ResponseUri.Host == "www.trickster.jp") { SimpleLogger.WriteLine("Failed to login. Response uri is 'www.trickster.jp'."); MessageBox.Show("ログインできません。", "Trickster Tools", MessageBoxButtons.OK, MessageBoxIcon.Error); clsLoginCon.ResponseClose(); clsLoginCon.initialize(); return; } if (res.Headers["Location"] == "/trickster/mp/session_error.php") { SimpleLogger.WriteLine("got session error."); MessageBox.Show("セッションを取得できませんでした。", "Trickster Tools", MessageBoxButtons.OK, MessageBoxIcon.Error); clsLoginCon.ResponseClose(); clsLoginCon.initialize(); return; } /**** ランチャー起動 ****/ url = "https://ssl2.gcrest.com/trickster/mp/start.php"; clsLoginCon.doRequest(url, LoginController.RequestMethod.GET, null, 5000, "https://ssl2.gcrest.com/mp/menu.php"); // レスポンスの取得と読み込み res = clsLoginCon.getResponse(); // set-cookieが存在するか確認 int i = 0, max = 0, chk = 0; max = res.Headers.Count; while (i < max) { if (res.Headers.Keys[i] == "Set-Cookie") { chk = 1; break; } i++; } if (chk < 1) { clsLoginCon.ResponseClose(); SimpleLogger.WriteLine("could not find 'Set-Cookies' in HTTP response header."); MessageBox.Show("ログインできませんでした。", "Trickster Tools", MessageBoxButtons.OK, MessageBoxIcon.Error); clsLoginCon.ResponseClose(); clsLoginCon.initialize(); return; } if (res.Headers["Set-Cookie"].IndexOf("TrickLaunch[ID]=") != -1) { clsLoginCon.parseCookies(res.Headers["Set-Cookie"]); clsLoginCon.runGame(); } else { SimpleLogger.WriteLine("could not find name of cookies 'TrickLaunch[ID]'"); MessageBox.Show("ログインできませんでした。", "Trickster Tools", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (HttpListenerException hle) { SimpleLogger.WriteLine(hle.Message); //MessageBox.Show("例外エラー:" + Environment.NewLine + hle.Message.ToString(), "Trickster Tools", MessageBoxButtons.OK, MessageBoxIcon.Hand); throw hle; } catch (WebException we) { SimpleLogger.WriteLine(we.Message); //MessageBox.Show("例外エラー:" + Environment.NewLine + we.Message.ToString(), "Trickster Tools", MessageBoxButtons.OK, MessageBoxIcon.Hand); throw we; } finally { clsLoginCon.ResponseClose(); clsLoginCon.initialize(); } }
/// <summary> /// ID�ƃp�X���[�h��g�p���ăQ�[����N�����܂��B /// �Q�[���N���C�A���g�̃A�b�v�f�[�g������ꍇ�ɂ̓����`���[��N�����܂��B /// </summary> /// <param name="id">�A�J�E���gID</param> /// <param name="password">�A�J�E���g�p�X���[�h</param> public static new void startGame(string id, string password) { OfficialLoginController clsLoginCon = new LoginManager.OfficialLoginController(); clsLoginCon.initialize(); System.Text.Encoding enc = System.Text.Encoding.GetEncoding("Shift_JIS"); string url; string param = ""; HttpWebResponse res; // �l�b�g���[�N�ڑ�����݂� while (!LoginController.isAliveNetwork()) { SimpleLogger.WriteLine("does not connect network."); DialogResult dgRes = MessageBox.Show("�l�b�g���[�N�ɐڑ�����Ă��Ȃ����߁A�����s�ł��܂���B", "Trickster Tools", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error); if (dgRes == DialogResult.Cancel) { return; } } param = @"code=23&login=0&id=" + ProgramController.UrlEncode(id, Encoding.GetEncoding("Shift_JIS")) + "&pass="******"https://ssl2.gcrest.com/mp/gate.php"; try { clsLoginCon.doRequest(url, LoginController.RequestMethod.POST, param, 60000, "http://www.trickster.jp/trickster/index.html"); // ���X�|���X�̎擾�Ɠǂݍ��� res = clsLoginCon.getResponse(); if (res.ResponseUri.Host == "www.trickster.jp") { SimpleLogger.WriteLine("Failed to login. Response uri is 'www.trickster.jp'."); MessageBox.Show("���O�C���ł��܂���B", "Trickster Tools", MessageBoxButtons.OK, MessageBoxIcon.Error); clsLoginCon.ResponseClose(); clsLoginCon.initialize(); return; } if (res.Headers["Location"] == "/trickster/mp/session_error.php") { SimpleLogger.WriteLine("got session error."); MessageBox.Show("�Z�b�V������擾�ł��܂���ł����B", "Trickster Tools", MessageBoxButtons.OK, MessageBoxIcon.Error); clsLoginCon.ResponseClose(); clsLoginCon.initialize(); return; } /**** �����`���[�N�� ****/ url = "https://ssl2.gcrest.com/trickster/mp/start.php"; clsLoginCon.doRequest(url, LoginController.RequestMethod.GET, null, 5000, "https://ssl2.gcrest.com/mp/menu.php"); // ���X�|���X�̎擾�Ɠǂݍ��� res = clsLoginCon.getResponse(); // set-cookie�����݂��邩�m�F int i = 0, max = 0, chk = 0; max = res.Headers.Count; while (i < max) { if (res.Headers.Keys[i] == "Set-Cookie") { chk = 1; break; } i++; } if (chk < 1) { clsLoginCon.ResponseClose(); SimpleLogger.WriteLine("could not find 'Set-Cookies' in HTTP response header."); MessageBox.Show("���O�C���ł��܂���ł����B", "Trickster Tools", MessageBoxButtons.OK, MessageBoxIcon.Error); clsLoginCon.ResponseClose(); clsLoginCon.initialize(); return; } if (res.Headers["Set-Cookie"].IndexOf("TrickLaunch[ID]=") != -1) { clsLoginCon.parseCookies(res.Headers["Set-Cookie"]); clsLoginCon.runGame(); } else { SimpleLogger.WriteLine("could not find name of cookies 'TrickLaunch[ID]'"); MessageBox.Show("���O�C���ł��܂���ł����B", "Trickster Tools", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (HttpListenerException hle) { SimpleLogger.WriteLine(hle.Message); //MessageBox.Show("��O�G���[:" + Environment.NewLine + hle.Message.ToString(), "Trickster Tools", MessageBoxButtons.OK, MessageBoxIcon.Hand); throw hle; } catch (WebException we) { SimpleLogger.WriteLine(we.Message); //MessageBox.Show("��O�G���[:" + Environment.NewLine + we.Message.ToString(), "Trickster Tools", MessageBoxButtons.OK, MessageBoxIcon.Hand); throw we; } finally { clsLoginCon.ResponseClose(); clsLoginCon.initialize(); } }