/// <summary> /// Initializes a new instance of the <see cref="ZyGames.Framework.Game.Sns.Login91sdk"/> class. /// </summary> /// <param name="retailID">Retail I.</param> /// <param name="retailUser">Retail user.</param> /// <param name="sessionID">Session I.</param> public Login91sdk(string retailID, string retailUser, string sessionID) { this._retailID = retailID; SessionID = sessionID; Uin = retailUser; GameChannel gameChannel = ZyGameBaseConfigManager.GameSetting.GetChannelSetting(ChannelType.channel91); if (gameChannel != null) { Url = gameChannel.Url; GameSdkSetting setting = gameChannel.GetSetting(retailID); if (setting != null) { AppId = setting.AppId; AppKey = setting.AppKey; } else { TraceLog.ReleaseWrite("The sdkChannel section channel91:{0} is null.", retailID); } } else { TraceLog.ReleaseWrite("The sdkChannel 91 section is null."); } }
/// <summary> /// Initializes a new instance of the <see cref="ZyGames.Framework.Game.Sns.LoginMIUI"/> class. /// </summary> /// <param name="retailID">Retail I.</param> /// <param name="retailUser">Retail user.</param> /// <param name="sid">Sid.</param> public LoginMIUI(string retailID, string retailUser, string sid) { this._retailID = retailID; this._retailUser = retailUser; this._sid = sid; GameChannel gameChannel = ZyGameBaseConfigManager.GameSetting.GetChannelSetting(ChannelType.channelMIUI); if (gameChannel != null) { Url = gameChannel.Url; GameSdkSetting sdkSetting = gameChannel.GetSetting(retailID); if (sdkSetting != null) { AppId = sdkSetting.AppId; AppKey = sdkSetting.AppKey; } else { TraceLog.ReleaseWrite("The sdkChannel section channelMIUI:{0} is null.", retailID); } } else { TraceLog.ReleaseWrite("The sdkChannel MIUI section is null."); } }
private void refreshChannelList() { GameChannel gc = m_selectGame.GameChannel; channelList.Items.Clear(); if (gc != null) { foreach (GameChannel.Channel c in gc.ChannelList) { ListViewItem it = new ListViewItem(); if (c.sdk == null) { it.Text = c.Params["sdk"].value.value; } else { it.Text = c.sdk.ShowName; } it.Tag = c; channelList.Items.Add(it); } } if (channelList.Items.Count > 0) { channelList.Items[0].Selected = true; } }
private void addChannel_Click(object sender, EventArgs e) { SDKList d = new SDKList(); d.ShowDialog(); if (d.SelectSDKList.Count > 0 && m_selectGame != null) { GameChannel gc = m_selectGame.GameChannel; bool addflag = false; foreach (SDKManager.SDK sdk in d.SelectSDKList) { bool find = false; foreach (GameChannel.Channel c in gc.ChannelList) { if (c.sdk == sdk) { find = true; break; } } if (find == false) { gc.addChannlWithSDK(sdk); addflag = true; } } if (addflag) { refreshChannelList(); m_selectGame.GameChannel.writeGameConfig(ProjectConfig.getInstance().getGameList() + m_selectGame.AppName + "\\config.xml"); } } }
/// <summary> /// Initializes a new instance of the <see cref="ZyGames.Framework.Game.Sns.Login360_V2"/> class. /// </summary> /// <param name="retailID">Retail I.</param> /// <param name="retailUser">Retail user.</param> /// <param name="pid">Pid.</param> /// <param name="code">Code.</param> public Login360_V2(string retailID, string retailUser, string pid, string code) { this._retailID = retailID; this._pid = pid; this._retailUser = retailUser; this._code = code; GameChannel gameChannel = ZyGameBaseConfigManager.GameSetting.GetChannelSetting(ChannelType.channel360); if (gameChannel != null) { Url = gameChannel.Url; _aceessTokenUrl = gameChannel.TokenUrl; GameSdkSetting setting = gameChannel.GetSetting(retailID); if (setting != null) { AppId = setting.AppId; AppKey = setting.AppKey; _appSecret = setting.AppSecret; } else { TraceLog.ReleaseWrite("The sdkChannel section channel360:{0} is null.", retailID); } } else { TraceLog.ReleaseWrite("The sdkChannel 360 section is null."); } }
private static KgsGameInfo CreateGameInfo(GameChannel channel) { if (channel.GameType != GameType.Free && channel.GameType != GameType.Ranked) { return(null); } var whiteInfo = new PlayerInfo(StoneColor.White, channel.Players["white"].Name, channel.Players["white"].Rank ?? "??"); var blackInfo = new PlayerInfo(StoneColor.Black, channel.Players["black"].Name, channel.Players["black"].Rank ?? "??"); string ruleset = channel.Rules ?? RulesDescription.RulesJapanese; if (!KgsHelpers.IsSupportedRuleset(ruleset)) { return(null); } var kgi = new KgsGameInfo( whiteInfo, blackInfo, new GameBoardSize(channel.Size), KgsHelpers.ConvertRuleset(ruleset), channel.Handicap, KgsGameInfo.GetHandicapPlacementType(KgsHelpers.ConvertRuleset(ruleset)), channel.Komi, CountingType.Area, channel.ChannelId); return(kgi); }
public static KgsTrueGameChannel FromChannel(GameChannel channel) { var gameInfo = CreateGameInfo(channel); if (gameInfo != null) { return(new KgsTrueGameChannel(channel.ChannelId, gameInfo)); } return(null); }
/// <summary> /// Initializes a new instance of the <see cref="ZyGames.Framework.Game.Sns.LoginTencent"/> class. /// </summary> public LoginND(string retailID, string retailUser) { this._retailID = retailID; this._retailUser = retailUser; GameChannel gameChannel = ZyGameBaseConfigManager.GameSetting.GetChannelSetting(ChannelType.channelND); if (gameChannel != null) { Url = gameChannel.Url; } }
/// <summary> /// Initializes a new instance of the <see cref="ZyGames.Framework.Game.Sns.LoginTencent"/> class. /// </summary> public LoginAnySdk(string retailID, string retailUser, string token) { this._retailID = retailID; this._retailUser = retailUser; this._token = token; GameChannel gameChannel = ZyGameBaseConfigManager.GameSetting.GetChannelSetting(ChannelType.channelAnySDK); if (gameChannel != null) { Url = gameChannel.Url; } }
private void FixedUpdate() { leftHandRb.AddForce(leftAxis * force); rightHandRb.AddForce(leftAxis * force); string transformation = torso.transform.position.x + ";" + torso.transform.position.y + ";" + torso.transform.rotation.z ; GameChannel.SendUpdate(transformation, IndividualGameController.waterLevelPercentage); }
/// <summary> /// /// </summary> /// <returns></returns> public override bool CheckLogin() { string url = ""; string AppKey = ""; string AppId = ""; bool isOldVersion = false; GameChannel gameChannel = ZyGameBaseConfigManager.GameSetting.GetChannelSetting(ChannelType.channelDanle); if (gameChannel != null) { url = gameChannel.Url; isOldVersion = "0.1".Equals(gameChannel.Version); GameSdkSetting setting = gameChannel.GetSetting(_retailID); if (setting != null) { AppKey = setting.AppKey; AppId = setting.AppId; } } else { TraceLog.ReleaseWrite("The sdkChannelV2 Danle section is null."); } string sig = AMD5(_token + "|" + AppKey); string Url = Url = string.Format("{0}?app_id={1}&mid={2}&token={3}&sig={4}", url, AppId, _mid, _token, sig); string result = HttpRequestManager.GetStringData(Url, "GET"); DanleSDK sdk = null; try { sdk = JsonUtils.Deserialize <DanleSDK>(result); } catch (Exception ex) { new BaseLog().SaveLog(ex); return(false); } if (sdk == null || sdk.error_code != 0) { TraceLog.ReleaseWrite("Danlesdk login fail:{0},request url:{1}", result, Url); return(false); } string[] arr = SnsManager.LoginByRetail(_retailID, sdk.memberId); this.UserID = arr[0]; this.PassportID = arr[1]; SessionID = GetSessionId(); return(true); }
private static void StartingGame(Message m) { print("Received: starting_game"); string game_id = (string)m.payload["game_id"]; MenuServerLobby.RemoveGame(game_id); if (game_id == NetworkManager.game_id) { channel.Leave(); MenuGameLobby.startGame = true; GameChannel.JoinGame(); } }
public static KgsChallenge FromChannel(GameChannel channel) { if (channel.GameType != GameType.Challenge) { return(null); } KgsChallenge challenge = new KgsChallenge(channel.InitialProposal, channel.ChannelId); if (channel.InitialProposal.GameType != GameType.Free && channel.InitialProposal.GameType != GameType.Ranked) { return(null); } return(challenge); }
private void viewapkdir_Click(object sender, EventArgs e) { if (m_selectGame == null) { return; } GameChannel gc = m_selectGame.GameChannel; if (gc == null) { return; } if (channelList.SelectedItems.Count == 0) { return; } Process proc = new Process(); proc.StartInfo.FileName = "explorer"; GameChannel.Channel c = channelList.SelectedItems[0].Tag as GameChannel.Channel; String arg = ""; if (Directory.Exists(ProjectConfig.getInstance().getU8Workspace() + "\\output\\" + m_selectGame.AppName)) { if (Directory.Exists(ProjectConfig.getInstance().getU8Workspace() + "\\output\\" + m_selectGame.AppName + "\\" + c.Params["name"].value.value)) { arg = ProjectConfig.getInstance().getU8Workspace() + "\\output\\" + m_selectGame.AppName + "\\" + c.Params["name"].value.value; } else { arg = ProjectConfig.getInstance().getU8Workspace() + "\\output\\" + m_selectGame.AppName; } } else { arg = ProjectConfig.getInstance().getU8Workspace() + "\\output\\"; } //proc.StartInfo.Arguments = "E:\\workspace\\program\\WonderKnight\\u8sdk\\U8SDK_20160323130827-old\\U8SDKTool-Win-P34\\output\\game13"; proc.StartInfo.Arguments = arg.Replace("\\\\", "\\"); proc.Start(); }
public async Task End() { NadekoBot.Client.MessageReceived -= PotentialGuess; OnEnded(this); var toSend = "Game ended. You **" + (Errors >= MaxErrors ? "LOSE" : "WIN") + "**!\n" + GetHangman(); var embed = new EmbedBuilder().WithTitle("Hangman Game") .WithDescription(toSend) .AddField(efb => efb.WithName("It was").WithValue(Term.Word)) .WithImage(eib => eib.WithUrl(Term.ImageUrl)); if (Errors >= MaxErrors) { await GameChannel.EmbedAsync(embed.WithColor(NadekoBot.ErrorColor).Build()).ConfigureAwait(false); } else { await GameChannel.EmbedAsync(embed.WithColor(NadekoBot.OkColor).Build()).ConfigureAwait(false); } }
/// <summary> /// 子类实现Action处理 /// </summary> /// <returns></returns> public override bool TakeAction() { var user = Current.User; if (user != null) { AccessToken360 = user.Token ?? AccessToken360; } string appKey = ""; string appSecret = ""; string url = "{0}?grant_type=refresh_token&refresh_token={1}&client_id={2}&client_secret={3}&scope={4}"; GameChannel gameChannel = ZyGameBaseConfigManager.GameSetting.GetChannelSetting(ChannelType.channel360); if (gameChannel != null) { GameSdkSetting setting = gameChannel.GetSetting(RetailID); if (setting != null) { appKey = setting.AppKey; appSecret = setting.AppSecret; url = string.Format(url, gameChannel.TokenUrl, RefeshToken, appKey, appSecret, Scope); } } string result = HttpRequestManager.GetStringData(url, "GET"); var getToken = JsonUtils.Deserialize <Login360_V2.SDK360GetTokenError>(result); if (getToken != null && !string.IsNullOrEmpty(getToken.error_code)) { ErrorCode = Language.Instance.ErrorCode; ErrorInfo = Language.Instance.GetAccessFailure; TraceLog.WriteError("获取360 access_token 失败:url={0},result={1},error_code={2},error={3}", url, result, getToken.error_code, getToken.error); return(false); } if (getToken != null) { AccessToken360 = getToken.access_token; user.Token = AccessToken360; } return(true); }
public void AddChannel(GameChannel channel, KgsConnection connection) { var kChallenge = KgsChallenge.FromChannel(channel); if (kChallenge != null) { connection.Data.EnsureChannelExists(kChallenge); Challenges.Add(kChallenge); AllChannelsCollection.Add(kChallenge); return; } var kGame = KgsTrueGameChannel.FromChannel(channel); if (kGame != null) { connection.Data.EnsureChannelExists(kGame); Games.Add(kGame); AllChannelsCollection.Add(kGame); return; } }
/// <summary> /// Initializes a new instance of the <see cref="ZyGames.Framework.Game.Sns.LoginTencent"/> class. /// </summary> public LoginMeiZu(string retailID, string retailUser, string token) { _retailID = retailID; _retailUser = retailUser; _token = token; GameChannel gameChannel = ZyGameBaseConfigManager.GameSetting.GetChannelSetting(ChannelType.channelMeiZu); if (gameChannel != null) { GameSdkSetting setting = gameChannel.GetSetting(_retailID); if (setting != null) { AppKey = setting.AppKey; AppId = setting.AppId; } } else { TraceLog.ReleaseWrite("The sdkChannelV2 Danle section is null."); } }
private void pack_Click(object sender, EventArgs e) { if (m_selectGame == null) { return; } GameChannel gc = m_selectGame.GameChannel; if (gc == null) { return; } if (channelList.SelectedItems.Count == 0) { return; } try { String dir = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\\")); if (File.Exists(dir + "\\packGame.py")) { File.Copy(dir + "\\packGame.py", ProjectConfig.getInstance().getU8Workspace() + "\\scripts\\packGame.py", true); } else if (File.Exists(dir + "\\..\\..\\packGame.py")) { File.Copy(dir + "\\..\\..\\packGame.py", ProjectConfig.getInstance().getU8Workspace() + "\\scripts\\packGame.py", true); } if (!Directory.Exists(ProjectConfig.getInstance().getU8Workspace() + "\\Python27")) { if (File.Exists(dir + "\\Python27.zip")) { DeCompressionZip(dir + "\\Python27.zip", ProjectConfig.getInstance().getU8Workspace()); } else if (File.Exists(dir + "\\..\\..\\Python27.zip")) { DeCompressionZip(dir + "\\..\\..\\Python27.zip", ProjectConfig.getInstance().getU8Workspace()); } } GameChannel.Channel c = channelList.SelectedItems[0].Tag as GameChannel.Channel; String cmd = "@set PATH=%~dp0\\tool\\win;%PATH% \nPython27\\python.exe scripts\\packGame.py -r -s -t 1 --appID " + m_selectGame.Params["appID"].value.value + " --target " + c.Params["name"].value.value + " \nif %ERRORLEVEL% == 0 (\n\texit(%ERRORLEVEL%)\n) else ( \n\t@pause \n\texit(%ERRORLEVEL%)\n)"; StreamWriter sw = new StreamWriter(ProjectConfig.getInstance().getU8Workspace() + "\\runPackageGame.bat"); sw.Write(cmd); sw.Flush(); sw.Close(); Process pro = new Process(); pro.StartInfo.WorkingDirectory = ProjectConfig.getInstance().getU8Workspace(); pro.StartInfo.FileName = ProjectConfig.getInstance().getU8Workspace() + "\\runPackageGame.bat"; pro.StartInfo.CreateNoWindow = false; pro.Start(); pro.WaitForExit(); if (pro.ExitCode == 0) { MessageBox.Show("打包成功!!!"); } else if (pro.ExitCode == 1) { MessageBox.Show("打包失败!!!"); } else if (pro.ExitCode == 2) { MessageBox.Show("没有找到母包!!!"); } else if (pro.ExitCode == 3) { MessageBox.Show("没有任何可以打包的渠道"); } } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); } }
public override void UpdateFrom(GameChannel gameChannel) { Proposal = gameChannel.InitialProposal; }
private async Task PotentialGuess(SocketMessage msg) { try { if (!(msg is SocketUserMessage)) { return; } if (msg.Channel != GameChannel) { return; // message's channel has to be the same as game's } if (msg.Content.Length == 1) // message must be 1 char long { if (++MessagesSinceLastPost > 10) { MessagesSinceLastPost = 0; try { await GameChannel.SendConfirmAsync("Hangman Game", ScrambledWord + "\n" + GetHangman(), footer : string.Join(" ", Guesses)).ConfigureAwait(false); } catch { } } if (!(char.IsLetter(msg.Content[0]) || char.IsDigit(msg.Content[0])))// and a letter or a digit { return; } var guess = char.ToUpperInvariant(msg.Content[0]); if (Guesses.Contains(guess)) { MessagesSinceLastPost = 0; ++Errors; if (Errors < MaxErrors) { await GameChannel.SendErrorAsync("Hangman Game", $"{msg.Author.Mention} Letter `{guess}` has already been used.\n" + ScrambledWord + "\n" + GetHangman(), footer : string.Join(" ", Guesses)).ConfigureAwait(false); } else { await End().ConfigureAwait(false); } return; } Guesses.Add(guess); /*int HangmanCurrencyRewardAll = 5; * int HangmanCurrencyRewardLetter = 1;*/ if (Term.Word.ToUpperInvariant().Contains(guess)) { if (GuessedAll) { try { await GameChannel.SendConfirmAsync("Hangman Game", $"{msg.Author.Mention} guessed a letter `{guess}`!").ConfigureAwait(false); } catch { } // giving reward if (NadekoBot.BotConfig.HangmanCurrencyRewardAll > 0) { await CurrencyHandler.AddCurrencyAsync(msg.Author, $"Received {NadekoBot.BotConfig.CurrencyPluralName}", NadekoBot.BotConfig.HangmanCurrencyRewardAll, false).ConfigureAwait(false); await GameChannel.SendConfirmAsync($"**{msg.Author}** received {NadekoBot.BotConfig.HangmanCurrencyRewardAll} {NadekoBot.BotConfig.CurrencySign}!").ConfigureAwait(false); } await End().ConfigureAwait(false); return; } MessagesSinceLastPost = 0; try { await GameChannel.SendConfirmAsync("Hangman Game", $"{msg.Author.Mention} guessed a letter `{guess}`!\n" + ScrambledWord + "\n" + GetHangman(), footer : string.Join(" ", Guesses)).ConfigureAwait(false); if (NadekoBot.BotConfig.HangmanCurrencyRewardLetter > 0) { await CurrencyHandler.AddCurrencyAsync(msg.Author, $"Received {NadekoBot.BotConfig.CurrencyPluralName}", NadekoBot.BotConfig.HangmanCurrencyRewardLetter, false).ConfigureAwait(false); await GameChannel.SendConfirmAsync($"**{msg.Author}** received {NadekoBot.BotConfig.HangmanCurrencyRewardLetter} {NadekoBot.BotConfig.CurrencySign}!").ConfigureAwait(false); } } catch { } } else { MessagesSinceLastPost = 0; ++Errors; if (Errors < MaxErrors) { await GameChannel.SendErrorAsync("Hangman Game", $"{msg.Author.Mention} Letter `{guess}` does not exist.\n" + ScrambledWord + "\n" + GetHangman(), footer : string.Join(" ", Guesses)).ConfigureAwait(false); } else { await End().ConfigureAwait(false); } } } } catch (Exception ex) { _log.Warn(ex); } }
/// <summary> /// /// </summary> /// <returns></returns> public override bool CheckLogin() { if (string.IsNullOrEmpty(_sessionID)) { return(false); } string key = _mobileType == MobileType.ptAndroid ? "android" : "ios"; GameChannel gameChannel = ZyGameBaseConfigManager.GameSetting.GetChannelSetting(ChannelType.channelUC); if (gameChannel == null) { TraceLog.ReleaseWrite("The sdkChannel UC section is null."); return(false); } GameSdkSetting setting = gameChannel.GetSetting(key); if (setting == null) { TraceLog.ReleaseWrite("The sdkChannel UC section channelUC:{0} is null.", key); return(false); } string id = ((DateTime.Now - Convert.ToDateTime("1970-1-1")).TotalMilliseconds).ToString().Substring(0, 13); string signSrc = setting.AppId + "sid=" + _sessionID + setting.AppKey; string sign = AMD5(signSrc); StringBuilder sb = new StringBuilder(); sb.Append("{"); sb.Append("\"service\":\"").Append(gameChannel.Service).Append("\","); sb.Append("\"id\":\"").Append(id).Append("\","); sb.Append("\"game\":{"); sb.Append("\"cpId\":\"").Append(setting.AppId).Append("\","); sb.Append("\"gameId\":\"").Append(setting.GameId).Append("\","); sb.Append("\"channelId\":\"").Append(gameChannel.ChannelId).Append("\","); sb.Append("\"serverId\":\"").Append(setting.ServerId).Append("\"},"); sb.Append("\"data\":{"); sb.Append("\"sid\":\"").Append(_sessionID).Append("\"},"); sb.Append("\"encrypt\":\"").Append(encrypt).Append("\","); sb.Append("\"sign\":\"").Append(sign).Append("\"}"); string result = httpPost(gameChannel.Url, sb.ToString(), Encoding.UTF8); UCInfo ucinfo = null; try { ucinfo = JsonUtils.Deserialize <UCInfo>(result); } catch (Exception ex) { new BaseLog().SaveLog(ex); return(false); } if (ucinfo == null || ucinfo.state.code != "1") { TraceLog.ReleaseWrite("Danlesdk login fail:{0},request url:{1},param:{2},signsrc:{3}", result, gameChannel.Url, sb.ToString(), signSrc); return(false); } _retailUser = ucinfo.data.ucid; string[] arr = SnsManager.LoginByRetail(_retailID, _retailUser); this.UserID = arr[0]; this.PassportID = arr[1]; return(true); }
public void AddHook(Channels channel, GameChannel subChannel, Action <NetIncomingMessage, object> hook, bool oneTime) { AddHook((int)channel, (int)subChannel, hook, oneTime); }
/// <summary> /// /// </summary> /// <returns></returns> public override bool CheckLogin() { string url = ""; string AppKey = ""; string AppId = ""; bool isOldVersion = false; GameChannel gameChannel = ZyGameBaseConfigManager.GameSetting.GetChannelSetting(ChannelType.channelDanle); if (gameChannel != null) { url = gameChannel.Url; isOldVersion = "0.1".Equals(gameChannel.Version); GameSdkSetting setting = gameChannel.GetSetting(_retailID); if (setting != null) { AppKey = setting.AppKey; AppId = setting.AppId; } } else { TraceLog.ReleaseWrite("The sdkChannel Danle section is null."); } string Url = ""; if (isOldVersion) { string sig = AMD5(string.Format("api_key={0}&mid={1}&username={2}&sha256_pwd={3}&secret_key={4}", AppId, _mid, username, SHA256(Password), AppKey)); string vc = AMD5(string.Format("api_key={0}&mid={1}&username={2}&sig={3}", AppId, PassportID, username, sig)); Url = string.Format("http://connect.d.cn/connect/json/member/login?api_key={0}&mid={1}&username={2}&vc={3}&sig={4}", AppId, _mid, username, vc, sig); } else { string sig = AMD5(string.Format("{0}|{1}", _token, AppKey)); Url = string.Format("{0}?app_id={1}&mid={2}&token={3}&sig={4}", url, AppId, _mid, _token, sig); } HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Url); req.Method = "Get"; WebResponse resp = req.GetResponse(); Stream stream = resp.GetResponseStream(); StreamReader reader = new StreamReader(stream); string result = reader.ReadToEnd(); DanleSDK sdk = null; try { sdk = JsonUtils.Deserialize <DanleSDK>(result); } catch (Exception ex) { new BaseLog().SaveLog(ex); return(false); } if (sdk == null || sdk.error_code != 0) { TraceLog.ReleaseWrite("Danlesdk login fail:{0},request url:{1}", result, Url); return(false); } string[] arr = SnsManager.LoginByRetail(_retailID, sdk.memberId); this.UserID = arr[0]; this.PassportID = arr[1]; SessionID = GetSessionId(); return(true); }
private Task PotentialGuess(IMessage msg) { if (msg.Channel != GameChannel) { return(Task.CompletedTask); // message's channel has to be the same as game's } if (msg.Content.Length != 1) // message must be 1 char long { if (++MessagesSinceLastPost > 10) { MessagesSinceLastPost = 0; Task.Run(async() => { try { await GameChannel.SendConfirmAsync("Hangman Game", ScrambledWord + "\n" + GetHangman()).ConfigureAwait(false); } catch { } }); } return(Task.CompletedTask); } if (!(char.IsLetter(msg.Content[0]) || char.IsDigit(msg.Content[0])))// and a letter or a digit { return(Task.CompletedTask); } var guess = char.ToUpperInvariant(msg.Content[0]); // todo hmmmm // how do i want to limit the users on guessing? // one guess every 5 seconds if wrong? Task.Run(async() => { try { if (Guesses.Contains(guess)) { ++Errors; if (Errors < MaxErrors) { await GameChannel.SendErrorAsync("Hangman Game", $"{msg.Author.Mention} Letter `{guess}` has already been used.\n" + ScrambledWord + "\n" + GetHangman()).ConfigureAwait(false); } else { await End().ConfigureAwait(false); } return; } Guesses.Add(guess); if (Term.Word.ToUpperInvariant().Contains(guess)) { if (GuessedAll) { try { await GameChannel.SendConfirmAsync("Hangman Game", $"{msg.Author.Mention} guessed a letter `{guess}`!").ConfigureAwait(false); } catch { } await End().ConfigureAwait(false); return; } try { await GameChannel.SendConfirmAsync("Hangman Game", $"{msg.Author.Mention} guessed a letter `{guess}`!\n" + ScrambledWord + "\n" + GetHangman()).ConfigureAwait(false); } catch { } } else { ++Errors; if (Errors < MaxErrors) { await GameChannel.SendErrorAsync("Hangman Game", $"{msg.Author.Mention} Letter `{guess}` does not exist.\n" + ScrambledWord + "\n" + GetHangman()).ConfigureAwait(false); } else { await End().ConfigureAwait(false); } } } catch { } }); return(Task.CompletedTask); }
private void Check10086Payment(OrderInfo orderInfo) { try { string url = "http://ospd.mmarket.com:8089/trust"; string appId = ""; string version = "1.0.0"; int orderType = 1; GameChannel gameChannel = ZyGameBaseConfigManager.GameSetting.GetChannelSetting(ChannelType.channel10086); if (gameChannel != null) { url = gameChannel.Url; version = gameChannel.Version; orderType = gameChannel.CType.ToInt(); GameSdkSetting setting = gameChannel.GetSetting(orderInfo.PayType); if (setting != null) { appId = setting.AppId; } else { return; } } StringBuilder paramData = new StringBuilder(); paramData.Append("<?xml version=\"1.0\"?>"); paramData.AppendFormat("<Trusted2ServQueryReq>"); paramData.AppendFormat("<MsgType>{0}</MsgType>", "Trusted2ServQueryReq"); paramData.AppendFormat("<Version>{0}</Version>", version); paramData.AppendFormat("<AppID>{0}</AppID>", appId); paramData.AppendFormat("<OrderID>{0}</OrderID>", orderInfo.OrderNO); paramData.AppendFormat("<OrderType>{0}</OrderType>", orderType); paramData.AppendFormat("</Trusted2ServQueryReq>"); var stream = HttpUtils.Post(url, paramData.ToString(), Encoding.UTF8, HttpUtils.XmlContentType); XmlDocument doc = new XmlDocument(); doc.Load(stream); TraceLog.ReleaseWriteFatal("10068 order:{0} response:{1}", orderInfo.OrderNO, doc.InnerXml); var returnCode = doc.SelectSingleNode("Trusted2ServQueryResp/ReturnCode"); if (returnCode != null && !string.IsNullOrEmpty(returnCode.InnerText)) { int code = returnCode.InnerText.ToInt(); if (code == 0) { string orderNo = ""; var orderIDNode = doc.SelectSingleNode("Trusted2ServQueryResp/OrderID"); if (orderIDNode != null) { orderNo = orderIDNode.InnerText; } var priceNode = doc.SelectSingleNode("Trusted2ServQueryResp/TotalPrice"); if (priceNode != null) { decimal amount = priceNode.InnerText.ToDecimal(); orderInfo.Amount = amount; orderInfo.GameCoins = (int)amount * 10; } PayManager.PaySuccess(orderNo, orderInfo); } TraceLog.ReleaseWriteFatal("10086 payment order:{0} fail code:{1}", orderInfo.OrderNO, code); } } catch (Exception ex) { TraceLog.WriteError("10086 payment error:", ex); } }
public abstract void UpdateFrom(GameChannel gameChannel);
public override void UpdateFrom(GameChannel gameChannel) { _gameInfo = CreateGameInfo(gameChannel); }
private async Task PotentialGuess(SocketMessage msg) { try { if (!(msg is SocketUserMessage)) { return; } if (msg.Channel != GameChannel) { return; // message's channel has to be the same as game's } if (msg.Content.Length == 1) // message must be 1 char long { if (++MessagesSinceLastPost > 10) { MessagesSinceLastPost = 0; try { await GameChannel.SendConfirmAsync("Hangman Game", ScrambledWord + "\n" + GetHangman(), footer : string.Join(" ", Guesses)).ConfigureAwait(false); } catch { } } if (!(char.IsLetter(msg.Content[0]) || char.IsDigit(msg.Content[0])))// and a letter or a digit { return; } var guess = char.ToUpperInvariant(msg.Content[0]); if (Guesses.Contains(guess)) { MessagesSinceLastPost = 0; ++Errors; if (Errors < MaxErrors) { await GameChannel.SendErrorAsync("Hangman Game", $"{msg.Author.Mention} Letter `{guess}` has already been used.\n" + ScrambledWord + "\n" + GetHangman(), footer : string.Join(" ", Guesses)).ConfigureAwait(false); } else { await End().ConfigureAwait(false); } return; } Guesses.Add(guess); if (Term.Word.ToUpperInvariant().Contains(guess)) { if (GuessedAll) { try { await GameChannel.SendConfirmAsync("Hangman Game", $"{msg.Author.Mention} guessed a letter `{guess}`!").ConfigureAwait(false); } catch { } await End().ConfigureAwait(false); return; } MessagesSinceLastPost = 0; try { await GameChannel.SendConfirmAsync("Hangman Game", $"{msg.Author.Mention} guessed a letter `{guess}`!\n" + ScrambledWord + "\n" + GetHangman(), footer : string.Join(" ", Guesses)).ConfigureAwait(false); } catch { } } else { MessagesSinceLastPost = 0; ++Errors; if (Errors < MaxErrors) { await GameChannel.SendErrorAsync("Hangman Game", $"{msg.Author.Mention} Letter `{guess}` does not exist.\n" + ScrambledWord + "\n" + GetHangman(), footer : string.Join(" ", Guesses)).ConfigureAwait(false); } else { await End().ConfigureAwait(false); } } } } catch (Exception ex) { _log.Warn(ex); } }
public static void SendMessageAndGetResponse(Channels channel, GameChannel subChannel, object message, Action <object> response) { SendMessageAndGetResponse((int)channel, (int)subChannel, message, response); }