private static void CheckInfoAsync(object state) { if (string.IsNullOrEmpty(AppVars.Profile.UserNick)) { return; } var textdata = NeverInfo.GetPInfo(AppVars.Profile.UserNick); if (string.IsNullOrEmpty(textdata)) { return; } var poisonAndWounds = GetPoisonAndWounds(textdata); if ( (poisonAndWounds[0] > AppVars.PoisonAndWounds[0]) || (poisonAndWounds[1] > AppVars.PoisonAndWounds[1]) || (poisonAndWounds[2] > AppVars.PoisonAndWounds[2]) || (poisonAndWounds[3] > AppVars.PoisonAndWounds[3]) ) { AppVars.PoisonAndWounds = poisonAndWounds; try { if (AppVars.MainForm != null) { AppVars.MainForm.BeginInvoke( new ReloadMainPhpInvokeDelegate(AppVars.MainForm.ReloadMainPhpInvoke), new object[] { }); } } catch (InvalidOperationException) { } } }
private static void FastAttackAsync(object stateInfo) { var ai = (AttackInfo)stateInfo; var nick = StripItalic(ai.TargetNick); var html = NeverInfo.GetPInfo(nick); var params0 = HelperStrings.SubString(html, "var params = [[", "],"); if (string.IsNullOrEmpty(params0)) { if (AppVars.MainForm != null) { AppVars.MainForm.WriteChatMsgSafe("Ошибка анализа инфы атакуемого."); } return; } var spar0 = HelperStrings.ParseArguments(params0); if (spar0.Length < 9) { if (AppVars.MainForm != null) { AppVars.MainForm.WriteChatMsgSafe("Ошибка анализа инфы атакуемого."); } return; } var flog = spar0[7]; if (flog.Equals("0", StringComparison.Ordinal)) { flog = string.Empty; } if (!string.IsNullOrEmpty(flog)) { var scans = 0; var swatch = new Stopwatch(); swatch.Start(); AppVars.FastWaitEndOfBoiCancel = false; while (!AppVars.FastWaitEndOfBoiCancel) { AppVars.FastWaitEndOfBoiActive = true; html = NeverInfo.GetFlog(flog); if (string.IsNullOrEmpty(html)) { continue; } scans++; // var off = 1; // var off = 0; var off = HelperStrings.SubString(html, "var off = ", ";"); if (string.IsNullOrEmpty(off)) { continue; } if (off.Equals("1")) { break; } if ( (html.IndexOf("нападение бота", StringComparison.CurrentCultureIgnoreCase) == -1) && (html.IndexOf("закрытый бой", StringComparison.CurrentCultureIgnoreCase) == -1) && (html.IndexOf("закрытое нападение", StringComparison.CurrentCultureIgnoreCase) == -1) && (html.IndexOf("закрытое кулачное нападение", StringComparison.CurrentCultureIgnoreCase) == -1) && (html.IndexOf("закрытое боевое нападение", StringComparison.CurrentCultureIgnoreCase) == -1) ) { if (!AppVars.WaitOpen) { break; } } if (scans == 1) { if (AppVars.MainForm != null) { AppVars.MainForm.WriteChatMsgSafe("Ожидание окончания боя (отмена: меню/быстрые действия/отмена)."); } } else { if ((scans % 100) == 0) { if (AppVars.MainForm != null) { AppVars.MainForm.WriteChatMsgSafe(string.Format("Ожидание окончания боя (запросов: {0}, средн: {1}мс)", scans, swatch.ElapsedMilliseconds / scans)); } } } } } AppVars.FastWaitEndOfBoiActive = false; if (AppVars.FastWaitEndOfBoiCancel) { AppVars.FastWaitEndOfBoiCancel = false; if (AppVars.MainForm != null) { AppVars.MainForm.WriteChatMsgSafe("Ожидание окончания боя прекращено."); } } else { if (AppVars.MainForm != null) { AppVars.MainForm.FastStartSafe(ai.Weapon, nick, AppVars.DoPerenap ? int.MaxValue : 1); ReloadMainFrame(); } } }
private static void CompasAsync(object stateInfo) { var nick = stateInfo as string; if (nick == null) { return; } //var wc = new WebClient { Proxy = AppVars.LocalProxy }; var html = NeverInfo.GetPInfo(nick); if (string.IsNullOrEmpty(html)) { return; } var params0 = HelperStrings.SubString(html, "var params = [[", "],"); if (string.IsNullOrEmpty(params0)) { return; } var spar0 = HelperStrings.ParseArguments(params0); if (spar0.Length < 9) { return; } var firstNick = spar0[0].Trim(); var firstSign = spar0[2]; var firstClan = spar0[8]; var listClanNicks = new List <string> { firstNick }; if (!string.IsNullOrEmpty(firstClan)) { byte[] buffer; using (var wc = new WebClient { Proxy = AppVars.LocalProxy }) { try { IdleManager.AddActivity(); buffer = wc.DownloadData(new Uri("http://neverstat.ru/clan_players.php?type=all")); } catch (WebException) { return; } finally { IdleManager.RemoveActivity(); } } html = AppVars.Codepage.GetString(buffer); try { if (AppVars.VipFormCompas != null) { var message = string.Format($"Получаем список клана [{firstClan}]..."); AppVars.VipFormCompas.BeginInvoke( new UpdateStatusFormAddClanDelegate(AppVars.VipFormCompas.UpdateStatus), message); } else { return; } } catch (InvalidOperationException) { } var linkClan = HelperStrings.SubString(html, firstSign + @"""><a href=""clan_players.php?clantype=", @""""); if (string.IsNullOrEmpty(linkClan)) { return; } using (var wc = new WebClient { Proxy = AppVars.LocalProxy }) { try { IdleManager.AddActivity(); buffer = wc.DownloadData(new Uri($"http://neverstat.ru/clan_players.php?clantype={linkClan}")); } catch (WebException) { return; } finally { IdleManager.RemoveActivity(); } } html = AppVars.Codepage.GetString(buffer); if (string.IsNullOrEmpty(html)) { return; } var p1 = 0; while (p1 != -1) { const string pat1 = @" target=""_blank"">"; p1 = html.IndexOf(pat1, p1, StringComparison.OrdinalIgnoreCase); if (p1 == -1) { break; } p1 += pat1.Length; var p2 = html.IndexOf(@"[", p1, StringComparison.OrdinalIgnoreCase); if (p2 == -1) { continue; } var statnick = html.Substring(p1, p2 - p1); if (statnick.Length < 64) { listClanNicks.Add(statnick); } } } foreach (var vipNick in listClanNicks) { var firstMessage = $"Анализируем [{vipNick}]"; try { if (AppVars.VipFormCompas != null) { AppVars.VipFormCompas.BeginInvoke( new UpdateStatusDelegate(AppVars.VipFormCompas.UpdateStatus), firstMessage); } else { return; } } catch (InvalidOperationException) { } html = NeverInfo.GetPInfo(vipNick); if (string.IsNullOrEmpty(html)) { continue; } params0 = HelperStrings.SubString(html, "var params = [[", "],"); if (string.IsNullOrEmpty(params0)) { continue; } spar0 = HelperStrings.ParseArguments(params0); if (spar0.Length < 9) { continue; } var infNick = spar0[0].Trim(); var infAlign = spar0[1]; var infSign = spar0[2]; var infClan = spar0[8]; var infLevel = spar0[3]; var orgLocation = spar0[5]; var infLocation = spar0[5]; if (infLocation.IndexOf('[') != -1) { infLocation = HelperStrings.SubString(infLocation, "[", "]"); } var infIsOnline = !string.IsNullOrEmpty(infLocation); if (!infClan.Equals(firstClan)) { continue; } var isLightWound = false; var isMediumWound = false; var isHeavyWound = false; var isUltimateWound = false; var effects = HelperStrings.SubString(html, "var effects = [", "];"); var sbeff = new StringBuilder(); if (!string.IsNullOrEmpty(effects)) { var seffects = effects.Split(new[] { "],[" }, StringSplitOptions.RemoveEmptyEntries); for (var k = 0; k < seffects.Length; k++) { var effk = seffects[k].Trim(new[] { '[', ']' }); var seffk = effk.Split(','); if (seffk.Length <= 1) { continue; } var effcode = seffk[0]; var effname = seffk[1].Replace("<b>", String.Empty).Replace("</b>", String.Empty); sbeff.AppendFormat( @" <img src=http://image.neverlands.ru/pinfo/eff_{0}.gif width=15 height=15 align=absmiddle title=""{1}"">", effcode, effname); switch (effcode) { case "1": isUltimateWound = true; break; case "2": isHeavyWound = true; break; case "3": isMediumWound = true; break; case "4": isLightWound = true; break; } } } var travma = string.Empty; if (isUltimateWound) { travma = "боевая"; } else { if (isHeavyWound) { travma = "тяжелая"; } else { if (isMediumWound) { travma = "средняя"; } else { if (isLightWound) { travma = "легкая"; } } } } var colorNick = infNick; if (!infIsOnline) { colorNick = @"<font color=""#cccccc"">" + colorNick + "</font>"; } else { if (!string.IsNullOrEmpty(travma)) { switch (travma) { case "боевая": colorNick = @"<font color=""#666600"">" + colorNick + "</font>"; break; case "тяжелая": colorNick = @"<font color=""#c10000"">" + colorNick + "</font>"; break; case "средняя": colorNick = @"<font color=""#e94c69"">" + colorNick + "</font>"; break; case "легкая": colorNick = @"<font color=""#ef7f94"">" + colorNick + "</font>"; break; } } } var align = string.Empty; var ali1 = string.Empty; var ali2 = string.Empty; switch (infAlign) { case "1": ali1 = "darks.gif"; ali2 = "Дети Тьмы"; break; case "2": ali1 = "lights.gif"; ali2 = "Дети Света"; break; case "3": ali1 = "sumers.gif"; ali2 = "Дети Сумерек"; break; case "4": ali1 = "chaoss.gif"; ali2 = "Дети Хаоса"; break; case "5": ali1 = "light.gif"; ali2 = "Истинный Свет"; break; case "6": ali1 = "dark.gif"; ali2 = "Истинная Тьма"; break; case "7": ali1 = "sumer.gif"; ali2 = "Нейтральные Сумерки"; break; case "8": ali1 = "chaos.gif"; ali2 = "Абсолютный Хаос"; break; case "9": ali1 = "angel.gif"; ali2 = "Ангел"; break; } if (!string.IsNullOrEmpty(ali1)) { align = "<img src=http://image.neverlands.ru/signs/" + ali1 + @" width=15 height=12 align=absmiddle border=0 title=""" + ali2 + @"""> "; } var ss = string.Empty; if (!string.IsNullOrEmpty(infClan)) { ss = "<img src=http://image.neverlands.ru/signs/" + infSign + @" width=15 height=12 align=absmiddle title=""" + infClan + @"""> "; } var location = string.Empty; if (infIsOnline) { // Окрестности Форпоста [Окрестность Форпоста, Биржа]" if (!orgLocation.StartsWith("Форпост", StringComparison.OrdinalIgnoreCase) && !orgLocation.StartsWith("Октал", StringComparison.OrdinalIgnoreCase) && !orgLocation.StartsWith("Деревня", StringComparison.OrdinalIgnoreCase) && !orgLocation.StartsWith("Тюрьма", StringComparison.OrdinalIgnoreCase) && !orgLocation.StartsWith("Окрестности Форпоста [Окрестность Форпоста, Биржа]", StringComparison.OrdinalIgnoreCase) && !orgLocation.StartsWith("Окрестность Форпоста [Сырьевая Биржа]", StringComparison.OrdinalIgnoreCase)) { //var matrixNick = string.Format(":{0}:", vipNick); var arrayPossibleLocations = new List <string>(); var cellCount = 0; foreach (var cellKey in Map.Cells.Keys) { var cell = Map.Cells[cellKey]; if (!cell.Tooltip.Equals(infLocation, StringComparison.OrdinalIgnoreCase)) { continue; } cellCount++; } if (cellCount > 0) { var cellIndex = 0; foreach (var cellKey in Map.Cells.Keys) { var cell = Map.Cells[cellKey]; if (!cell.Tooltip.Equals(infLocation, StringComparison.OrdinalIgnoreCase)) { continue; } var progress = (cellIndex * 100) / cellCount; var status = $"{firstMessage}... {progress}%"; try { if (AppVars.VipFormCompas != null) { AppVars.VipFormCompas.BeginInvoke( new UpdateStatusDelegate(AppVars.VipFormCompas.UpdateStatus), new object[] { status }); } else { return; } } catch (InvalidOperationException) { } cellIndex++; arrayPossibleLocations.Add(cellKey); /* * var position = Map.InvPosition[cellKey]; * var cm = Convert.ToChar(38); * var url = string.Format("http://www.neverlands.ru/ch.php?lo=1&r={0}_{1}_{2}", cm, position.X, position.Y); * try * { * var httpWebRequest = (HttpWebRequest) WebRequest.Create(url); * httpWebRequest.Method = "GET"; * httpWebRequest.Proxy = AppVars.LocalProxy; * var cookies = CookiesManager.Obtain("www.neverlands.ru"); * httpWebRequest.Headers.Add("Cookie", cookies); * var resp = httpWebRequest.GetResponse(); * var webstream = resp.GetResponseStream(); * var reader = new StreamReader(webstream, AppVars.Codepage); * var responseFromServer = reader.ReadToEnd(); * if (responseFromServer.IndexOf(matrixNick, StringComparison.OrdinalIgnoreCase) != -1) * { * arrayPossibleLocations.Clear(); * arrayPossibleLocations.Add(cellKey); * break; * } * } * catch * { * } */ } } if (arrayPossibleLocations.Count > 0) { var possibleLocations = arrayPossibleLocations.Count; var path = new MapPath(AppVars.LocationReal, arrayPossibleLocations.ToArray()); if (possibleLocations == 1) { location = $"Точное положение: <a style='text-decoration:none' href='http://{arrayPossibleLocations[0]}'><b>{arrayPossibleLocations[0]}</b></a> (шагов: <b>{path.Jumps}</b>). {infLocation}."; } else { location = $"{infLocation}. Возможных клеток: <b>{possibleLocations}</b>, ближайшая <a style='text-decoration:none' href='http://{path.Destination ?? AppVars.LocationReal}'><b>{path.Destination ?? AppVars.LocationReal}</b></a> (шагов: <b>{path.Jumps}</b>)."; } } else { location = @"<font color=""#cc0000"">" + "Неизвестная клетка!" + "</font>"; } } else { string[] dest = null; if (orgLocation.StartsWith("Форпост") || orgLocation.StartsWith("Тюрьма")) { dest = new[] { "8-259", "8-294" }; } if (orgLocation.StartsWith("Октал")) { dest = new[] { "12-428", "12-494", "12-521" }; } if (orgLocation.StartsWith("Деревня")) { dest = new[] { "8-197", "8-228", "8-229" }; } if (orgLocation.StartsWith("Окрестности Форпоста [Окрестность Форпоста, Биржа]")) { dest = new[] { "8-227" }; } if (orgLocation.StartsWith("Окрестность Форпоста [Сырьевая Биржа]")) { dest = new[] { "8-227" }; } if (dest != null) { var path = new MapPath(AppVars.LocationReal, dest); location = $"Точное положение: <a style='text-decoration:none' href='http://{path.Destination}'><b>{path.Destination}</b></a> (шагов: <b>{path.Jumps}</b>). {infLocation}."; } } } else { location = @"<font color=""#cccccc"">" + "В оффлайне или невиде." + "</font>"; } location = @"<span style=""font-size:10px;"">" + location + "</span>"; var result = @"<span style=""font-family:Verdana,Arial,sans-serif; font-size:12px; text-decoration:none; color:#222222;"">" + align + ss + @"<b>" + colorNick + "</b></a>[" + infLevel + @"]<a href='http://www.neverlands.ru/pinfo.cgi?" + infNick + "'><img src=http://image.neverlands.ru/chat/info.gif width=11 height=12 border=0 align=absmiddle></a>" + sbeff + "<img src=http://image.neverlands.ru/1x1.gif width=8 height=1>" + location + "</span><br>"; try { if (AppVars.VipFormCompas != null) { AppVars.VipFormCompas.BeginInvoke( new AddCharacterDelegate(AppVars.VipFormCompas.AddCharacter), result); } else { return; } } catch (InvalidOperationException) { } } try { if (AppVars.VipFormCompas != null) { AppVars.VipFormCompas.BeginInvoke( new UpdateStatusDelegate(AppVars.VipFormCompas.UpdateStatus), "Сканирование завешено."); } } catch (InvalidOperationException) { } }
private static void CheckTiedAsync(object state) { AppVars.LastTied = DateTime.Now; var html = NeverInfo.GetPInfo(AppVars.Profile.UserNick); if (string.IsNullOrEmpty(html)) { return; } // var effects = [[1,'Боевая травма (x9) (еще 23:06:17)'],[2,'Тяжелая травма (x2) (еще 07:01:22)'],[17,'Молчанка (еще 00:00:05)']]; // var effects = [[24,'<b>Яд</b> (x1) (еще 04:59:46)'],[77,'<b>Новогодний бонус</b> (x1) (еще 352:52:16)']]; // var effects = [[2,'<b>Тяжелая травма</b> (x1) (еще 12:20:22)'],[4,'<b>Легкая травма</b> (x1) (еще 01:40:48)'],[77,'<b>Новогодний бонус </ b > (x1)(еще 369:35:45)']]; var effects = HelperStrings.SubString(html, "var effects = [", "];"); if (!string.IsNullOrEmpty(effects)) { Array.Clear(AppVars.PoisonAndWounds, 0, AppVars.PoisonAndWounds.Length); var seffects = effects.Split(new[] { "],[" }, StringSplitOptions.RemoveEmptyEntries); for (var k = 0; k < seffects.Length; k++) { var effk = seffects[k].Trim('[', ']'); var seffk = effk.Split(','); if (seffk.Length <= 1) { continue; } var effcode = seffk[0]; // "2" - тяжелая // "3" - средняя // "4" - легкая // "24" - яд switch (effcode) { case "2": AppVars.PoisonAndWounds[3]++; // тяжелые break; case "3": AppVars.PoisonAndWounds[2]++; // средние break; case "4": AppVars.PoisonAndWounds[1]++; // легкие break; case "24": AppVars.PoisonAndWounds[0]++; break; default: break; } } if (AppVars.PoisonAndWounds[0] > 0) { if (DateTime.Now.Subtract(AppVars.LastMessageAboutTraumaOrPoison).TotalMinutes > 10.0) { AppVars.LastMessageAboutTraumaOrPoison = DateTime.Now; AppVars.MainForm.WriteChatMsgSafe("У вас отравление. Почему бы не включить автолечение в настройках?"); } } else { if ((AppVars.PoisonAndWounds[1] > 0) || (AppVars.PoisonAndWounds[2] > 0) || (AppVars.PoisonAndWounds[3] > 0)) { if (DateTime.Now.Subtract(AppVars.LastMessageAboutTraumaOrPoison).TotalMinutes > 10.0) { AppVars.LastMessageAboutTraumaOrPoison = DateTime.Now; AppVars.MainForm.WriteChatMsgSafe("У вас небоевая травма. Почему бы не включить автолечение в настройках?"); } } } } // var params = [['~Angry~',2,'nona.gif',17,'angry.gif','Форпост [Больница]',1,1394107847,'LightSoulS','Hungry and Angry','Форпост','25.12.2007'], var params0 = HelperStrings.SubString(html, "var params = [[", "],"); if (!string.IsNullOrEmpty(params0)) { var spar0 = HelperStrings.ParseArguments(params0); if (spar0.Length > 5) { var location = spar0[5]; if (!string.IsNullOrEmpty(location)) { // var hpmp = [1,525,0,0,100] var hpmp = HelperStrings.SubString(html, "var hpmp = [", "]"); if (!string.IsNullOrEmpty(hpmp)) { var spar1 = HelperStrings.ParseArguments(hpmp); if (spar1.Length > 4) { var stied = spar1[4]; int tied; if (!int.TryParse(stied, out tied)) { return; } tied = 100 - tied; try { if (AppVars.MainForm != null) { AppVars.MainForm.BeginInvoke( new UpdateTiedDelegate(AppVars.MainForm.UpdateTied), new object[] { tied }); } } catch (InvalidOperationException) { } } } } else { /* * AppVars.SwitchToPerc = true; * AppVars.SwitchToFlora = true; */ var tied = AppVars.Tied + 2; try { if (AppVars.MainForm != null) { AppVars.MainForm.BeginInvoke( new UpdateTiedDelegate(AppVars.MainForm.UpdateTied), new object[] { tied }); } } catch (InvalidOperationException) { } } } } }
/* in44.nl * private static void AddClanAsync(object stateInfo) * { * var nick = stateInfo as string; * if (nick == null) * { * return; * } * * var html = NeverInfo.GetPInfo(nick); * if (string.IsNullOrEmpty(html)) * return; * * var params0 = HelperStrings.SubString(html, "var params = [[", "],"); * if (string.IsNullOrEmpty(params0)) * { * return; * } * * var spar0 = HelperStrings.ParseArguments(params0); * if (spar0.Length < 9) * { * return; * } * * var firstNick = spar0[0].Trim(); * var firstSign = spar0[2]; * var firstClan = spar0[8]; * * var listClanNicks = new List<string> {firstNick}; * if (!string.IsNullOrEmpty(firstSign)) * { * byte[] buffer; * using (var wc = new WebClient {Proxy = AppVars.LocalProxy}) * { * try * { * var suff = firstSign; * var posp = suff.IndexOf('.'); * if (posp != -1) * suff = suff.Substring(0, posp); * * buffer = wc.DownloadData(new Uri("http://in44.nl/clanstruct/c_" + suff + "/")); * } * catch (WebException) * { * return; * } * } * * html = AppVars.Codepage.GetString(buffer); * var p1 = 0; * while (p1 != -1) * { * p1 = html.IndexOf("pinfo.cgi?", p1, StringComparison.OrdinalIgnoreCase); * if (p1 == -1) * break; * * p1 += "pinfo.cgi?".Length; * var p2 = html.IndexOf(@"""", p1, StringComparison.OrdinalIgnoreCase); * if (p2 == -1) * continue; * * var statnick = html.Substring(p1, p2 - p1); * listClanNicks.Add(statnick); * } * } * * foreach (var vipNick in listClanNicks) * { * try * { * if (AppVars.VipFormAddClan != null) * { * var message = string.Format("Анализируем [{0}]...", vipNick); * AppVars.VipFormAddClan.BeginInvoke( * new UpdateStatusFormAddClanDelegate(AppVars.VipFormAddClan.UpdateStatus), * new object[] { message }); * } * else * { * return; * } * } * catch (InvalidOperationException) * { * } * * html = NeverInfo.GetPInfo(vipNick); * if (string.IsNullOrEmpty(html)) * continue; * * params0 = HelperStrings.SubString(html, "var params = [[", "],"); * if (string.IsNullOrEmpty(params0)) * { * continue; * } * * spar0 = HelperStrings.ParseArguments(params0); * if (spar0.Length < 9) * { * continue; * } * * var infNick = spar0[0].Trim(); * var infAlign = spar0[1]; * var infSign = spar0[2]; * var infClan = spar0[8]; * * if (!infClan.Equals(firstClan)) * { * continue; * } * * var infLevel = spar0[3]; * var infLocation = spar0[5]; * if (infLocation.IndexOf('[') != -1) * { * infLocation = HelperStrings.SubString(infLocation, "[", "]"); * } * * var infIsOnline = !string.IsNullOrEmpty(infLocation); * * var isLightWound = false; * var isMediumWound = false; * var isHeavyWound = false; * var isUltimateWound = false; * * var effects = HelperStrings.SubString(html, "var effects = [", "];"); * var sbeff = new StringBuilder(); * if (!string.IsNullOrEmpty(effects)) * { * var seffects = effects.Split(new[] { "],[" }, StringSplitOptions.RemoveEmptyEntries); * for (var k = 0; k < seffects.Length; k++) * { * var effk = seffects[k].Trim(new[] { '[', ']' }); * var seffk = effk.Split(','); * if (seffk.Length <= 1) * { * continue; * } * * var effcode = seffk[0]; * var effname = seffk[1].Replace("<b>", String.Empty).Replace("</b>", String.Empty); * sbeff.AppendFormat( * @" <img src=http://image.neverlands.ru/pinfo/eff_{0}.gif width=15 height=15 align=absmiddle alt=""{1}"">", * effcode, * effname); * switch (effcode) * { * case "1": * isUltimateWound = true; * break; * * case "2": * isHeavyWound = true; * break; * * case "3": * isMediumWound = true; * break; * * case "4": * isLightWound = true; * break; * } * } * } * * var travma = string.Empty; * if (isUltimateWound) * { * travma = "боевая"; * } * else * { * if (isHeavyWound) * { * travma = "тяжелая"; * } * else * { * if (isMediumWound) * { * travma = "средняя"; * } * else * { * if (isLightWound) * { * travma = "легкая"; * } * } * } * } * * var colorNick = infNick; * if (!infIsOnline) * { * colorNick = @"<font color=""#cccccc"">" + colorNick + "</font>"; * } * else * { * if (!string.IsNullOrEmpty(travma)) * { * switch (travma) * { * case "боевая": * colorNick = @"<font color=""#666600"">" + colorNick + "</font>"; * break; * case "тяжелая": * colorNick = @"<font color=""#c10000"">" + colorNick + "</font>"; * break; * case "средняя": * colorNick = @"<font color=""#e94c69"">" + colorNick + "</font>"; * break; * case "легкая": * colorNick = @"<font color=""#ef7f94"">" + colorNick + "</font>"; * break; * } * } * } * * var align = string.Empty; * var ali1 = string.Empty; * var ali2 = string.Empty; * switch (infAlign) * { * case "1": * ali1 = "darks.gif"; * ali2 = "Дети Тьмы"; * break; * case "2": * ali1 = "lights.gif"; * ali2 = "Дети Света"; * break; * case "3": * ali1 = "sumers.gif"; * ali2 = "Дети Сумерек"; * break; * case "4": * ali1 = "chaoss.gif"; * ali2 = "Дети Хаоса"; * break; * case "5": * ali1 = "light.gif"; * ali2 = "Истинный Свет"; * break; * case "6": * ali1 = "dark.gif"; * ali2 = "Истинная Тьма"; * break; * case "7": * ali1 = "sumer.gif"; * ali2 = "Нейтральные Сумерки"; * break; * case "8": * ali1 = "chaos.gif"; * ali2 = "Абсолютный Хаос"; * break; * case "9": * ali1 = "angel.gif"; * ali2 = "Ангел"; * break; * } * * if (!string.IsNullOrEmpty(ali1)) * { * align = * "<img src=http://image.neverlands.ru/signs/" + * ali1 + * @" width=15 height=12 align=absmiddle border=0 alt=""" + * ali2 + * @"""> "; * } * * var ss = string.Empty; * if (!string.IsNullOrEmpty(infClan)) * { * ss = * "<img src=http://image.neverlands.ru/signs/" + * infSign + * @" width=15 height=12 align=absmiddle alt=""" + * infClan + * @"""> "; * } * * var result = * @"<span style=""font-family:Verdana,Arial,sans-serif; font-size:12px; text-decoration:none; color:#222222;"">" + * align + * ss + * @"<b>" + * colorNick + * "</b></a>[" + * infLevel + * @"]<a href='http://www.neverlands.ru/pinfo.cgi?" + infNick + "'><img src=http://image.neverlands.ru/chat/info.gif width=11 height=12 border=0 align=absmiddle></a>" + * sbeff + * "<img src=http://image.neverlands.ru/1x1.gif width=8 height=1>" + * @"<span style=""font-size:10px;"">" + "добавлен в контакты" + "</span>" + * "</span><br>"; * * try * { * if (AppVars.VipFormAddClan != null) * { * AppVars.VipFormAddClan.BeginInvoke( * new UpdateStatusFormAddClanDelegate(AppVars.VipFormAddClan.AddCharacter), * new object[] { result }); * } * else * { * return; * } * } * catch (InvalidOperationException) * { * } * * var nickContact = infNick; * * if (AppVars.MainForm != null) * { * AppVars.MainForm.BeginInvoke( * new AddContactFromBulkDelegate(AppVars.MainForm.AddContactFromBulk), * new object[] { nickContact }); * } * else * { * return; * } * } * * try * { * if (AppVars.VipFormAddClan != null) * { * AppVars.VipFormAddClan.BeginInvoke( * new UpdateStatusFormAddClanDelegate(AppVars.VipFormAddClan.UpdateStatus), * new object[] { "Добавление в контакты завешено." }); * } * else * { * return; * } * } * catch (InvalidOperationException) * { * } * * AppVars.Profile.Save(); * } */ private static void AddClanAsync(object stateInfo) { var nick = stateInfo as string; if (nick == null) { return; } var html = NeverInfo.GetPInfo(nick); if (string.IsNullOrEmpty(html)) { return; } // 2/11/2017 - params -> parameters // var params0 = HelperStrings.SubString(html, "var params = [[", "],"); var params0 = HelperStrings.SubString(html, "var parameters = [[", "],"); if (string.IsNullOrEmpty(params0)) { return; } var spar0 = HelperStrings.ParseArguments(params0); if (spar0.Length < 9) { return; } var firstNick = spar0[0].Trim(); var firstSign = spar0[2]; var firstClan = spar0[8]; var listClanNicks = new List <string> { firstNick }; if (!string.IsNullOrEmpty(firstSign)) { byte[] buffer; using (var wc = new WebClient { Proxy = AppVars.LocalProxy }) { try { IdleManager.AddActivity(); buffer = wc.DownloadData(new Uri("http://neverok.ru/clan_players.php?type=all")); } catch (WebException) { return; } finally { IdleManager.RemoveActivity(); } } html = AppVars.Codepage.GetString(buffer); if (string.IsNullOrEmpty(html)) { return; } var linkClan = HelperStrings.SubString(html, firstSign + @"""><a href=""clan_players.php?clantype=", @""""); if (string.IsNullOrEmpty(linkClan)) { return; } try { if (AppVars.VipFormAddClan != null) { var message = string.Format($"Получаем список клана [{firstClan}]..."); AppVars.VipFormAddClan.BeginInvoke( new UpdateStatusFormAddClanDelegate(AppVars.VipFormAddClan.UpdateStatus), message); } else { return; } } catch (InvalidOperationException) { } using (var wc = new WebClient { Proxy = AppVars.LocalProxy }) { try { IdleManager.AddActivity(); buffer = wc.DownloadData(new Uri($"http://neverok.ru/clan_players.php?clantype={linkClan}")); } catch (WebException) { return; } finally { IdleManager.RemoveActivity(); } } html = AppVars.Codepage.GetString(buffer); if (string.IsNullOrEmpty(html)) { return; } var p1 = 0; while (p1 != -1) { const string pat1 = @" target=""_blank"">"; p1 = html.IndexOf(pat1, p1, StringComparison.OrdinalIgnoreCase); if (p1 == -1) { break; } p1 += pat1.Length; var p2 = html.IndexOf(@"[", p1, StringComparison.OrdinalIgnoreCase); if (p2 == -1) { continue; } var statnick = html.Substring(p1, p2 - p1); if (statnick.Length < 64) { listClanNicks.Add(statnick); } } } foreach (var vipNick in listClanNicks) { try { if (AppVars.VipFormAddClan != null) { var message = $"Анализируем [{vipNick}]..."; AppVars.VipFormAddClan.BeginInvoke( new UpdateStatusFormAddClanDelegate(AppVars.VipFormAddClan.UpdateStatus), message); } else { return; } } catch (InvalidOperationException) { } html = NeverInfo.GetPInfo(vipNick); if (string.IsNullOrEmpty(html)) { continue; } // 2/11/2017 - params -> parameters // var params0 = HelperStrings.SubString(html, "var params = [[", "],"); params0 = HelperStrings.SubString(html, "var parameters = [[", "],"); if (string.IsNullOrEmpty(params0)) { continue; } spar0 = HelperStrings.ParseArguments(params0); if (spar0.Length < 9) { continue; } var infNick = spar0[0].Trim(); var infAlign = spar0[1]; var infSign = spar0[2]; var infClan = spar0[8]; if (!infClan.Equals(firstClan)) { continue; } var infLevel = spar0[3]; var infLocation = spar0[5]; if (infLocation.IndexOf('[') != -1) { infLocation = HelperStrings.SubString(infLocation, "[", "]"); } var infIsOnline = !string.IsNullOrEmpty(infLocation); var isLightWound = false; var isMediumWound = false; var isHeavyWound = false; var isUltimateWound = false; var effects = HelperStrings.SubString(html, "var effects = [", "];"); var sbeff = new StringBuilder(); if (!string.IsNullOrEmpty(effects)) { var seffects = effects.Split(new[] { "],[" }, StringSplitOptions.RemoveEmptyEntries); for (var k = 0; k < seffects.Length; k++) { var effk = seffects[k].Trim(new[] { '[', ']' }); var seffk = effk.Split(','); if (seffk.Length <= 1) { continue; } var effcode = seffk[0]; var effname = seffk[1].Replace("<b>", String.Empty).Replace("</b>", String.Empty); sbeff.AppendFormat( @" <img src=http://image.neverlands.ru/pinfo/eff_{0}.gif width=15 height=15 align=absmiddle title=""{1}"">", effcode, effname); switch (effcode) { case "1": isUltimateWound = true; break; case "2": isHeavyWound = true; break; case "3": isMediumWound = true; break; case "4": isLightWound = true; break; } } } var travma = string.Empty; if (isUltimateWound) { travma = "боевая"; } else { if (isHeavyWound) { travma = "тяжелая"; } else { if (isMediumWound) { travma = "средняя"; } else { if (isLightWound) { travma = "легкая"; } } } } var colorNick = infNick; if (!infIsOnline) { colorNick = @"<font color=""#cccccc"">" + colorNick + "</font>"; } else { if (!string.IsNullOrEmpty(travma)) { switch (travma) { case "боевая": colorNick = @"<font color=""#666600"">" + colorNick + "</font>"; break; case "тяжелая": colorNick = @"<font color=""#c10000"">" + colorNick + "</font>"; break; case "средняя": colorNick = @"<font color=""#e94c69"">" + colorNick + "</font>"; break; case "легкая": colorNick = @"<font color=""#ef7f94"">" + colorNick + "</font>"; break; } } } var align = string.Empty; var ali1 = string.Empty; var ali2 = string.Empty; switch (infAlign) { case "1": ali1 = "darks.gif"; ali2 = "Дети Тьмы"; break; case "2": ali1 = "lights.gif"; ali2 = "Дети Света"; break; case "3": ali1 = "sumers.gif"; ali2 = "Дети Сумерек"; break; case "4": ali1 = "chaoss.gif"; ali2 = "Дети Хаоса"; break; case "5": ali1 = "light.gif"; ali2 = "Истинный Свет"; break; case "6": ali1 = "dark.gif"; ali2 = "Истинная Тьма"; break; case "7": ali1 = "sumer.gif"; ali2 = "Нейтральные Сумерки"; break; case "8": ali1 = "chaos.gif"; ali2 = "Абсолютный Хаос"; break; case "9": ali1 = "angel.gif"; ali2 = "Ангел"; break; } if (!string.IsNullOrEmpty(ali1)) { align = "<img src=http://image.neverlands.ru/signs/" + ali1 + @" width=15 height=12 align=absmiddle border=0 title=""" + ali2 + @"""> "; } var ss = string.Empty; if (!string.IsNullOrEmpty(infClan)) { ss = "<img src=http://image.neverlands.ru/signs/" + infSign + @" width=15 height=12 align=absmiddle title=""" + infClan + @"""> "; } var result = @"<span style=""font-family:Verdana,Arial,sans-serif; font-size:12px; text-decoration:none; color:#222222;"">" + align + ss + @"<b>" + colorNick + "</b></a>[" + infLevel + @"]<a href='http://www.neverlands.ru/pinfo.cgi?" + infNick + "'><img src=http://image.neverlands.ru/chat/info.gif width=11 height=12 border=0 align=absmiddle></a>" + sbeff + "<img src=http://image.neverlands.ru/1x1.gif width=8 height=1>" + @"<span style=""font-size:10px;"">" + "добавлен в контакты" + "</span>" + "</span><br>"; try { if (AppVars.VipFormAddClan != null) { AppVars.VipFormAddClan.BeginInvoke( new UpdateStatusFormAddClanDelegate(AppVars.VipFormAddClan.AddCharacter), new object[] { result }); } else { return; } } catch (InvalidOperationException) { } var nickContact = infNick; if (AppVars.MainForm != null) { AppVars.MainForm.BeginInvoke( new AddContactFromBulkDelegate(AppVars.MainForm.AddContactFromBulk), new object[] { nickContact }); } else { return; } } try { if (AppVars.VipFormAddClan != null) { AppVars.VipFormAddClan.BeginInvoke( new UpdateStatusFormAddClanDelegate(AppVars.VipFormAddClan.UpdateStatus), new object[] { "Добавление в контакты завешено." }); } else { return; } } catch (InvalidOperationException) { } AppVars.Profile.Save(); }
/* in44.nl private static void AddClanAsync(object stateInfo) { var nick = stateInfo as string; if (nick == null) { return; } var html = NeverInfo.GetPInfo(nick); if (string.IsNullOrEmpty(html)) return; var params0 = HelperStrings.SubString(html, "var params = [[", "],"); if (string.IsNullOrEmpty(params0)) { return; } var spar0 = HelperStrings.ParseArguments(params0); if (spar0.Length < 9) { return; } var firstNick = spar0[0].Trim(); var firstSign = spar0[2]; var firstClan = spar0[8]; var listClanNicks = new List<string> {firstNick}; if (!string.IsNullOrEmpty(firstSign)) { byte[] buffer; using (var wc = new WebClient {Proxy = AppVars.LocalProxy}) { try { var suff = firstSign; var posp = suff.IndexOf('.'); if (posp != -1) suff = suff.Substring(0, posp); buffer = wc.DownloadData(new Uri("http://in44.nl/clanstruct/c_" + suff + "/")); } catch (WebException) { return; } } html = AppVars.Codepage.GetString(buffer); var p1 = 0; while (p1 != -1) { p1 = html.IndexOf("pinfo.cgi?", p1, StringComparison.OrdinalIgnoreCase); if (p1 == -1) break; p1 += "pinfo.cgi?".Length; var p2 = html.IndexOf(@"""", p1, StringComparison.OrdinalIgnoreCase); if (p2 == -1) continue; var statnick = html.Substring(p1, p2 - p1); listClanNicks.Add(statnick); } } foreach (var vipNick in listClanNicks) { try { if (AppVars.VipFormAddClan != null) { var message = string.Format("Анализируем [{0}]...", vipNick); AppVars.VipFormAddClan.BeginInvoke( new UpdateStatusFormAddClanDelegate(AppVars.VipFormAddClan.UpdateStatus), new object[] { message }); } else { return; } } catch (InvalidOperationException) { } html = NeverInfo.GetPInfo(vipNick); if (string.IsNullOrEmpty(html)) continue; params0 = HelperStrings.SubString(html, "var params = [[", "],"); if (string.IsNullOrEmpty(params0)) { continue; } spar0 = HelperStrings.ParseArguments(params0); if (spar0.Length < 9) { continue; } var infNick = spar0[0].Trim(); var infAlign = spar0[1]; var infSign = spar0[2]; var infClan = spar0[8]; if (!infClan.Equals(firstClan)) { continue; } var infLevel = spar0[3]; var infLocation = spar0[5]; if (infLocation.IndexOf('[') != -1) { infLocation = HelperStrings.SubString(infLocation, "[", "]"); } var infIsOnline = !string.IsNullOrEmpty(infLocation); var isLightWound = false; var isMediumWound = false; var isHeavyWound = false; var isUltimateWound = false; var effects = HelperStrings.SubString(html, "var effects = [", "];"); var sbeff = new StringBuilder(); if (!string.IsNullOrEmpty(effects)) { var seffects = effects.Split(new[] { "],[" }, StringSplitOptions.RemoveEmptyEntries); for (var k = 0; k < seffects.Length; k++) { var effk = seffects[k].Trim(new[] { '[', ']' }); var seffk = effk.Split(','); if (seffk.Length <= 1) { continue; } var effcode = seffk[0]; var effname = seffk[1].Replace("<b>", String.Empty).Replace("</b>", String.Empty); sbeff.AppendFormat( @" <img src=http://image.neverlands.ru/pinfo/eff_{0}.gif width=15 height=15 align=absmiddle alt=""{1}"">", effcode, effname); switch (effcode) { case "1": isUltimateWound = true; break; case "2": isHeavyWound = true; break; case "3": isMediumWound = true; break; case "4": isLightWound = true; break; } } } var travma = string.Empty; if (isUltimateWound) { travma = "боевая"; } else { if (isHeavyWound) { travma = "тяжелая"; } else { if (isMediumWound) { travma = "средняя"; } else { if (isLightWound) { travma = "легкая"; } } } } var colorNick = infNick; if (!infIsOnline) { colorNick = @"<font color=""#cccccc"">" + colorNick + "</font>"; } else { if (!string.IsNullOrEmpty(travma)) { switch (travma) { case "боевая": colorNick = @"<font color=""#666600"">" + colorNick + "</font>"; break; case "тяжелая": colorNick = @"<font color=""#c10000"">" + colorNick + "</font>"; break; case "средняя": colorNick = @"<font color=""#e94c69"">" + colorNick + "</font>"; break; case "легкая": colorNick = @"<font color=""#ef7f94"">" + colorNick + "</font>"; break; } } } var align = string.Empty; var ali1 = string.Empty; var ali2 = string.Empty; switch (infAlign) { case "1": ali1 = "darks.gif"; ali2 = "Дети Тьмы"; break; case "2": ali1 = "lights.gif"; ali2 = "Дети Света"; break; case "3": ali1 = "sumers.gif"; ali2 = "Дети Сумерек"; break; case "4": ali1 = "chaoss.gif"; ali2 = "Дети Хаоса"; break; case "5": ali1 = "light.gif"; ali2 = "Истинный Свет"; break; case "6": ali1 = "dark.gif"; ali2 = "Истинная Тьма"; break; case "7": ali1 = "sumer.gif"; ali2 = "Нейтральные Сумерки"; break; case "8": ali1 = "chaos.gif"; ali2 = "Абсолютный Хаос"; break; case "9": ali1 = "angel.gif"; ali2 = "Ангел"; break; } if (!string.IsNullOrEmpty(ali1)) { align = "<img src=http://image.neverlands.ru/signs/" + ali1 + @" width=15 height=12 align=absmiddle border=0 alt=""" + ali2 + @"""> "; } var ss = string.Empty; if (!string.IsNullOrEmpty(infClan)) { ss = "<img src=http://image.neverlands.ru/signs/" + infSign + @" width=15 height=12 align=absmiddle alt=""" + infClan + @"""> "; } var result = @"<span style=""font-family:Verdana,Arial,sans-serif; font-size:12px; text-decoration:none; color:#222222;"">" + align + ss + @"<b>" + colorNick + "</b></a>[" + infLevel + @"]<a href='http://www.neverlands.ru/pinfo.cgi?" + infNick + "'><img src=http://image.neverlands.ru/chat/info.gif width=11 height=12 border=0 align=absmiddle></a>" + sbeff + "<img src=http://image.neverlands.ru/1x1.gif width=8 height=1>" + @"<span style=""font-size:10px;"">" + "добавлен в контакты" + "</span>" + "</span><br>"; try { if (AppVars.VipFormAddClan != null) { AppVars.VipFormAddClan.BeginInvoke( new UpdateStatusFormAddClanDelegate(AppVars.VipFormAddClan.AddCharacter), new object[] { result }); } else { return; } } catch (InvalidOperationException) { } var nickContact = infNick; if (AppVars.MainForm != null) { AppVars.MainForm.BeginInvoke( new AddContactFromBulkDelegate(AppVars.MainForm.AddContactFromBulk), new object[] { nickContact }); } else { return; } } try { if (AppVars.VipFormAddClan != null) { AppVars.VipFormAddClan.BeginInvoke( new UpdateStatusFormAddClanDelegate(AppVars.VipFormAddClan.UpdateStatus), new object[] { "Добавление в контакты завешено." }); } else { return; } } catch (InvalidOperationException) { } AppVars.Profile.Save(); } */ private static void AddClanAsync(object stateInfo) { var nick = stateInfo as string; if (nick == null) { return; } var html = NeverInfo.GetPInfo(nick); if (string.IsNullOrEmpty(html)) return; var params0 = HelperStrings.SubString(html, "var params = [[", "],"); if (string.IsNullOrEmpty(params0)) { return; } var spar0 = HelperStrings.ParseArguments(params0); if (spar0.Length < 9) { return; } var firstNick = spar0[0].Trim(); var firstSign = spar0[2]; var firstClan = spar0[8]; var listClanNicks = new List<string> { firstNick }; if (!string.IsNullOrEmpty(firstSign)) { byte[] buffer; using (var wc = new WebClient { Proxy = AppVars.LocalProxy }) { try { IdleManager.AddActivity(); buffer = wc.DownloadData(new Uri("http://neverok.ru//clan_players.php?type=all")); } catch (WebException) { return; } finally { IdleManager.RemoveActivity(); } } html = AppVars.Codepage.GetString(buffer); if (string.IsNullOrEmpty(html)) return; var linkClan = HelperStrings.SubString(html, firstSign + @"""><a href=""clan_players.php?clantype=", @""""); if (string.IsNullOrEmpty(linkClan)) return; try { if (AppVars.VipFormAddClan != null) { var message = string.Format($"Получаем список клана [{firstClan}]..."); AppVars.VipFormAddClan.BeginInvoke( new UpdateStatusFormAddClanDelegate(AppVars.VipFormAddClan.UpdateStatus), message); } else { return; 465 return; 466 } 467 468 var spar0 = HelperStrings.ParseArguments(params0); 469 if (spar0.Length < 9) 470 { 471 return; 472 } 473 474 var firstNick = spar0[0].Trim(); 475 var firstSign = spar0[2]; 476 var firstClan = spar0[8]; 477 478 var listClanNicks = new List<string> { firstNick }; 479 if (!string.IsNullOrEmpty(firstSign)) 480 { 481 byte[] buffer; 482 using (var wc = new WebClient { Proxy = AppVars.LocalProxy }) 483 { 484 try 485 { 486 IdleManager.AddActivity(); 487 buffer = wc.DownloadData(new Uri("http://neverok.ru//clan_players.php?type=all")); 488 } 489 catch (WebException) 490 { 491 return; 492 } 493 finally 494 { 495 IdleManager.RemoveActivity(); 496 } 497 } 498 499 html = AppVars.Codepage.GetString(buffer); 500 if (string.IsNullOrEmpty(html)) 501 return; 502 503 var linkClan = HelperStrings.SubString(html, firstSign + @"""><a href=""clan_players.php?clantype=", @""""); 504 if (string.IsNullOrEmpty(linkClan)) 505 return; 506 507 try 508 { 509 if (AppVars.VipFormAddClan != null) 510 { 511 var message = string.Format($"Получаем список клана [{firstClan}]..."); 512 AppVars.VipFormAddClan.BeginInvoke( 513 new UpdateStatusFormAddClanDelegate(AppVars.VipFormAddClan.UpdateStatus), message); 514 } 515 else 516 { 517 return; 518 } 519 }