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; } }
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 { } } }
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; }