Exemple #1
0
        /// <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");
                }
            }
        }
Exemple #5
0
        /// <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.");
            }
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        public static KgsTrueGameChannel FromChannel(GameChannel channel)
        {
            var gameInfo = CreateGameInfo(channel);

            if (gameInfo != null)
            {
                return(new KgsTrueGameChannel(channel.ChannelId, gameInfo));
            }
            return(null);
        }
Exemple #8
0
        /// <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;
            }
        }
Exemple #9
0
        /// <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);
    }
Exemple #11
0
        /// <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);
        }
Exemple #12
0
    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();
        }
    }
Exemple #13
0
        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();
        }
Exemple #15
0
        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);
            }
        }
Exemple #16
0
        /// <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;
            }
        }
Exemple #18
0
        /// <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());
            }
        }
Exemple #20
0
 public override void UpdateFrom(GameChannel gameChannel)
 {
     Proposal = gameChannel.InitialProposal;
 }
Exemple #21
0
        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);
        }
Exemple #23
0
 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);
        }
Exemple #25
0
        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);
        }
Exemple #26
0
        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);
Exemple #28
0
 public override void UpdateFrom(GameChannel gameChannel)
 {
     _gameInfo = CreateGameInfo(gameChannel);
 }
Exemple #29
0
        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); }
        }
Exemple #30
0
 public static void SendMessageAndGetResponse(Channels channel, GameChannel subChannel, object message, Action <object> response)
 {
     SendMessageAndGetResponse((int)channel, (int)subChannel, message, response);
 }