예제 #1
0
        public void RunScript(string site, string username, string text, string param)
        {
            int credit;
            int status = 0;

            RankControl.ChatterRank cr = RankControl.ListChatters.Find(r => r.Nickname == username.Trim().ToLower());
            //TODO очень маловероятная ошибка, но вдруг? Механики работы чата пока не знаю, потому проверка пока пусть будет...
            if (cr == null)
            {
                RutonyBot.BotSay(site,
                                 username + ", ошибка! Вашей записи нет в базе данных или она повреждена!");
                return;
            }

            string textsfile = ProgramProps.dir_scripts + @"\texts.json";

            string[] filetexts = File.ReadAllLines(textsfile);

            CreditName names = JsonConvert.DeserializeObject <CreditName>(filetexts[0]);



            string[] arrString = text.Split(' ');


            if (arrString.Length != 3)
            {
                RutonyBot.BotSay(site, "Используйте !ставка (кол-во " + names.mnpads[1] + ") (красное/черное/ноль)");
                return;
            }
            //int credit = 0;
            credit = int.Parse(arrString[1]);
            if (credit <= 0)
            {
                RutonyBot.BotSay(site, "Параметр должен быть положительным числом!");
                return;
            }
            if (cr.CreditsQty < credit)
            {
                RutonyBot.BotSay(site, string.Format("У вас всего {0} {1}!", cr.CreditsQty, names.mnpads[1]));
                return;
            }


            cr.CreditsQty -= credit;

            string stavka = arrString[2].Trim().ToLower();

            if (stavka != "красное" && stavka != "черное" && stavka != "ноль")
            {
                RutonyBot.BotSay(site, "Вам нужно указать, на что ставите (красное/черное/ноль)");
                return;
            }

            Random rnd         = new Random();
            int    randomShoot = rnd.Next(1, 40);

            if (randomShoot <= 18)
            {
                if (stavka == "красное")
                {
                    status         = 1;
                    cr.CreditsQty += credit * 2;
                }
            }
            else if (randomShoot > 18 && randomShoot <= 38)
            {
                if (stavka == "черное")
                {
                    status         = 1;
                    cr.CreditsQty += credit * 2;
                }
            }
            else
            {
                if (stavka == "ноль")
                {
                    status         = 2;
                    cr.CreditsQty += credit * 5;
                }
            }
            RankControl.ChatterRank cr_change = RankControl.ListChatters.Find(r => r.Nickname == username.Trim().ToLower());
            switch (status)
            {
            case 0:
                RutonyBot.BotSay(site, string.Format("Ставка не прошла! К сожалению {2} проиграл и потерял {1} {4}! Теперь у него {3} {4}", randomShoot, credit, username, cr_change.CreditsQty, names.mnpads[1]));
                break;

            case 1:
                RutonyBot.BotSay(site, string.Format("Хорошая ставка! {2} выигрывает и получает {1} {4}! Теперь у него {3} {4}", randomShoot, credit * 2, username, cr_change.CreditsQty, names.mnpads[1]));
                break;

            case 2:
                RutonyBot.BotSay(site, string.Format("Ставка в ноль прошла! {2} получает {1} {4}! Теперь у него {3} {4}", randomShoot, credit * 4, username, cr_change.CreditsQty, names.mnpads[1]));
                break;
            }
        }
예제 #2
0
        public void RunScript(string site, string username, string text, string param)
        {
            string filename    = ProgramProps.dir_scripts + @"\dragon.txt";
            string dragonusers = ProgramProps.dir_scripts + @"\dragonusers.txt";

            string textsfile = ProgramProps.dir_scripts + @"\texts.json";

            string[] filetexts = File.ReadAllLines(textsfile);


            CreditName names = JsonConvert.DeserializeObject <CreditName>(filetexts[0]);


            //RutonyBot.BotSay(site, names.mnpads[0] + " " + names.edpads[0]);


            if (!File.Exists(filename))
            {
                RutonyBot.BotSay(site, "Дракон еще не появился! Попросите администратора об этом!");
                return;
            }

            string[] hp        = File.ReadAllLines(filename);
            int      currenthp = Convert.ToInt32(hp[0]);

            RankControl.ChatterRank strlist = RankControl.ListChatters.Find(r => r.Nickname == username.Trim().ToLower());

            if (strlist == null)
            {
                RutonyBot.BotSay(site,
                                 username + ", ошибка! Вашей записи нет в базе данных или она повреждена!");
                return;
            }

            int str = strlist.RankOrder;

            Random rnd    = new Random();
            int    rndstr = rnd.Next(1, 11);
            int    krit   = 1;

            switch (rndstr)
            {
            case 1:

                currenthp -= (str + 2) * 3;
                krit       = 3;
                break;

            case 2:

                RutonyBot.BotSay(site, string.Format("{0} промахивается по дракону!", username));
                break;

            case 3:

                RutonyBot.BotSay(site, string.Format("Дракон блокирует удар {0}!", username));
                //RutonyBot.BotSay(site, "/timeout " + username + " 30");
                break;

            case 4:
                currenthp += 5;
                RutonyBot.BotSay(site, string.Format("Дракон уклоняется от удара {0} и восставнавливает силы!(+5 хп)!", username));
                try {
                    File.Delete(filename);
                } catch { }
                RutonyBotFunctions.FileAddString(filename, string.Format("{0}", currenthp));
                break;

            default:
                currenthp -= (str + 2);
                break;
            }

            if (rndstr > 1 && rndstr <= 4)
            {
                return;
            }

            RutonyBotFunctions.FileAddString(dragonusers, string.Format("{0} {1}", username, (str + 2) * krit));
            if (currenthp > 0)
            {
                RutonyBot.BotSay(site, string.Format("{0} бьет дракона на {1} урона! У дракона осталось {2} здоровья! Поднажмите!", username, (str + 2) * krit, currenthp));
                try {
                    File.Delete(filename);
                } catch { }
                RutonyBotFunctions.FileAddString(filename, string.Format("{0}", currenthp));
            }
            else
            {
                RutonyBot.BotSay(site, string.Format("{0} добивает дракона! Всем участники получают " + names.mnpads[0] + " из его сокровищницы!", username));
                string[] listUsers    = File.ReadAllLines(dragonusers);
                int      countPlayers = RutonyBotFunctions.FileLength(dragonusers);
                for (int j = 0; j < countPlayers; j++)
                {
                    string[] arrString = listUsers[j].Split(' ');

                    RankControl.ChatterRank cr_win = RankControl.ListChatters.Find(r => r.Nickname == username.Trim().ToLower());
                    cr_win.CreditsQty += Convert.ToInt32(int.Parse(arrString[1]) * 0.5);
                }

                try {
                    File.Delete(dragonusers);
                } catch { }

                try {
                    File.Delete(filename);
                } catch { }
            }
        }
예제 #3
0
        public void RunScript(string site, string username, string text, string param)
        {
            string filename  = ProgramProps.dir_scripts + @"deposit_" + username + ".txt";
            string textsfile = ProgramProps.dir_scripts + @"\texts.json";

            string[] filetexts = File.ReadAllLines(textsfile);

            CreditName names = JsonConvert.DeserializeObject <CreditName>(filetexts[0]);

            int credit;

            RankControl.ChatterRank cr = RankControl.ListChatters.Find(r => r.Nickname == username.Trim().ToLower());

            if (cr == null)
            {
                RutonyBot.BotSay(site,
                                 username + ", ошибка! Вашей записи нет в базе данных или она повреждена!");
                return;
            }

            string[] arrStringParam = param.Split(' ');


            if (File.Exists(filename))
            {
                RutonyBot.BotSay(site, username + " вы уже сделали вклад!");
                return;
            }


            if (arrStringParam.Length != 2)
            {
                RutonyBot.BotSay(site, "Не хватает параметров!");
                return;
            }

            if (!Int32.TryParse(text.Substring(text.IndexOf(" ") + 1), out credit))
            {
                RutonyBot.BotSay(site, "Количество " + names.mnpads[1] + " должно быть больше 0!");
                return;
            }
            if (credit <= 0)
            {
                RutonyBot.BotSay(site, names.mnpads[1] + " должно быть больше 0!");
                return;
            }
            if (credit > int.Parse(arrStringParam[1]))
            {
                RutonyBot.BotSay(site, names.mnpads[1] + " должно быть не больше " + int.Parse(arrStringParam[1]) + "!");
                return;
            }
            if (cr.CreditsQty < credit)
            {
                RutonyBot.BotSay(site, string.Format("У вас всего {0} {1}!", cr.CreditsQty, names.mnpads[1]));
                return;
            }

            cr.CreditsQty -= credit;



            RutonyBot.BotSay(site, username + ", спасибо за вклад, жди процентов через " + int.Parse(arrStringParam[0]) + " секунд!");
            RutonyBotFunctions.FileAddString(filename, username);

            new Thread(() => {
                Thread.CurrentThread.IsBackground = true;

                Thread.Sleep(int.Parse(arrStringParam[0]) * 1000);



                /*Random winrnd = new Random();
                 * int winrandom = winrnd.Next(1, 5);
                 *
                 * double cofint = winrandom*0.2;
                 *
                 * cr.CreditsQty += Convert.ToInt32(credit*(1+cofint));*/

                credit = Convert.ToInt32(credit * 1.1);

                cr.CreditsQty += credit;

                RutonyBot.BotSay(site, username + ", вы получаете " + credit + " " + names.mnpads[1] + " за вклад!");

                try {
                    File.Delete(filename);
                } catch { }
            }).Start();
            return;
        }