public bool —охранитьѕрофиль(string путь) { —оздатьѕапкуѕрофили(); List <string> строки = new List <string>(256); if (ѕеременные.»м¤ != "") { строки.Add(string.Format("{0}им¤ {1}{2}{3}", ј. омандный—имвол, ј.ачалоЅлока, ѕеременные.»м¤, ј. онецЅлока)); } строки.AddRange(ѕеременные.ѕолучить—писок()); строки.AddRange(√ор¤чие лавиши.ѕолучить—писок()); строки.AddRange(ћакросы.ѕолучить—писок()); строки.AddRange(“риггеры.ѕолучить—писок()); путь = ”точнитьѕуть(путь); try { File.WriteAllLines(путь, строки.ToArray(), Encoding.GetEncoding(1251)); } catch { Ёлемент¬ывода.ƒобавить("### Ќе удалось сохранить профиль."); return(false); } ‘айл = —ократитьѕуть(путь); Ёлемент¬ывода.ƒобавить("### ѕрофиль сохранен в файл \"" + ‘айл + "\"."); return(true); }
void «агрузитьѕеременные() { try { if (ѕеременные.»м¤ == "") { return; } string путь = айтиѕрофиль(ѕеременные.»м¤ + ".var"); string[] строки = File.ReadAllLines(путь, Encoding.GetEncoding(1251)); if (ѕеременные. оличество > 0) { ѕеременные.ќчистить(); } if (строки.Length > 0) { Ёлемент¬ывода.ƒобавить("### «агрузка переменных..."); foreach (string строка in строки) { ќбработать оманды(строка); } } } catch { } }
public virtual string ќбработать—троку(—трока строка, bool статусна¤—трока) { Ёлемент¬ывода.ƒобавить(строка); if (строка.ƒлина > 0) { return(“риггеры[строка.ToString()]); } return(null); }
public override void ќбработать¬веденный“екст(string текст) { lock (this) { ќбработать оманды(текст); Ёлемент¬ывода.¬ывести(); —оединение.ѕередатьƒанные(); } }
public void ¬ывести“аблицу÷ветов() { for (byte i = 0; i < 16; i++) { —трока строка = new —трока(32); for (byte j = 0; j < 16; j++) { строка.ƒобавить(i.ToString("X") + j.ToString("X"), j, i); } Ёлемент¬ывода.ƒобавить(строка); } }
public Ёлемент¬ывода опировать() { Ёлемент¬ывода копи¤ = new Ёлемент¬ывода(); копи¤.Parent = Parent; List <—трока> добавл¤емые—троки = new List <—трока>(„исло—трок); for (int i = 0; i < строки.„ислоЁлементов; i++) { добавл¤емые—троки.Add(строки[i]); } добавл¤емые—троки.AddRange(дополнительные—троки); копи¤.¬ывести(добавл¤емые—троки.ToArray()); return(копи¤); }
public override string ќбработать—троку(—трока строка, bool статусна¤—трока) { Match match; string значение = строка.ToString(); if (значение.StartsWith(" ровушка стынет в жилах")) { Ёлемент¬ывода.ƒобавить(строка); if (ѕеременные["Ћ”“"] != null) { return("вз¤т все;вз¤т все все.труп;брос все.труп"); } return(null); } return(base.ќбработать—троку(строка, статусна¤—трока)); }
public override void ќбработатьѕолученный“екст(params —трока[] строки) { foreach (—трока строка in строки) { if (строка.ƒлина > 0 && строка[строка.ƒлина - 1].«начение == ' ') { строка.”братьѕробелы¬ онце(); ќбработать оманды(ќбработать—троку(строка, true)); } else { ќбработать оманды(ќбработать—троку(строка, false)); } } Ёлемент¬ывода.¬ывести(); —оединение.ѕередатьƒанные(); }
public virtual string ќбработать оманду(string команда) { if (команда.Length > 0 && команда[0] == јнализатор. омандный—имвол) { Ёлемент¬ывода.ƒобавитьЁхо(команда); »нтерпретировать(команда.Substring(1)); } else { string команды = ћакросы[команда]; if (команды != null) { return(команды); } команда = јнализатор.”братьќбратные—лэши(команда); Ёлемент¬ывода.ƒобавитьЁхо(команда); —оединение.«аписать(команда); } return(null); }
public bool ¬ыполнить(string путь, bool загрузкаѕрофил¤) { —оздатьѕапкуѕрофили(); путь = айтиѕрофиль(путь); string[] строки; try { строки = File.ReadAllLines(путь, Encoding.GetEncoding(1251)); } catch { Ёлемент¬ывода.ƒобавить("### Ќе удалось открыть файл."); return(false); } путь = —ократитьѕуть(путь); if (загрузкаѕрофил¤) { Ёлемент¬ывода.ƒобавить("### «агрузка профил¤ \"" + путь + "\"..."); } else { Ёлемент¬ывода.ƒобавить("### ¬ыполнение файла \"" + путь + "\"..."); } foreach (string строка in строки) { ќбработать оманды(строка); } if (загрузкаѕрофил¤) { ‘айл = путь; Ёлемент¬ывода.ƒобавить("### ѕрофиль загружен."); } else { Ёлемент¬ывода.ƒобавить("### ‘айл выполнен."); } return(true); }
public override string ќбработать—троку(—трока строка, bool статусна¤—трока) { Match match; string значение = строка.ToString(); if (значение == "Select one :") { Ёлемент¬ывода.ƒобавить(строка); return("2"); } if (значение.StartsWith("* ¬ св¤зи с проблемами перевода")) { Ёлемент¬ывода.ƒобавить(строка); return(";кто¤;счет"); } if (значение.StartsWith("ѕересоедин¤емс¤") || значение.StartsWith("¬аша душа вновь вернулась в тело")) { Ёлемент¬ывода.ƒобавить(строка); return("кто¤;счет"); } match = Regex.Match(значение, @"^ѕадежи : (\w+)/\w+/\w+/\w+/\w+/\w+$"); if (match.Success) { Ёлемент¬ывода.ƒобавить(строка); if (ѕеременные.»м¤ == "") { ѕеременные.»м¤ = match.Groups[1].Value; «агрузитьѕеременные(); } return(null); } match = Regex.Match(значение, @"^¬ы .* \(.+, .+, .+, (.+) \d+ уровн¤\)\.$"); if (match.Success && требуетс¤«агрузкаѕрофил¤) { Ёлемент¬ывода.ƒобавить(строка); требуетс¤«агрузкаѕрофил¤ = false; return(match.Result("#выполнить $1")); } if (значение.IndexOf('>') != -1 && статусна¤—трока) { Ёлемент¬ывода.ƒобавить(строка); if (!Ёлемент¬ывода.∆урналќткрыт && !требуетс¤«агрузкаѕрофил¤) { Ёлемент¬ывода.ќткрыть∆урнал(ѕеременные.»м¤, true); } return(null); } if (значение == "### —оединение утер¤но." || значение == "### —оединение разорвано пользователем.") { Ёлемент¬ывода.ƒобавить(строка); if (Ёлемент¬ывода.∆урналќткрыт) { Ёлемент¬ывода.«акрыть∆урнал(); } —охранитьѕеременные(); if (ѕеременные. оличество > 0) { ѕеременные.ќчистить(); } ѕеременные.»м¤ = ""; требуетс¤«агрузкаѕрофил¤ = true; return(null); } return(base.ќбработать—троку(строка, статусна¤—трока)); }
public override bool ќбработатьЌажатие лавиши( лавиша клавиша, bool ctrl, bool alt, bool shift) { if (!ctrl && !alt && !shift) { switch (клавиша) { case лавиша.F1: ƒублироватьЁлемент¬ывода = !ƒублироватьЁлемент¬ывода; return(true); case лавиша.F2: Ёлемент¬вода.јвтоочистка = !Ёлемент¬вода.јвтоочистка; return(true); case лавиша.F3: Ёлемент¬ывода. омпактный¬ывод = !Ёлемент¬ывода. омпактный¬ывод; return(true); case лавиша.F5: Ёлемент¬ывода.ќткрыть∆урнал("Ћог"); return(true); case лавиша.F6: Ёлемент¬ывода.«акрыть∆урнал(); return(true); case лавиша.F7: Ёлемент¬ывода.¬оспроизвести("Ћог"); return(true); case лавиша.F8: Ёлемент¬ывода.—топ(); return(true); case лавиша.F9: Ёлемент¬ывода.ѕауза = !Ёлемент¬ывода.ѕауза; return(true); case лавиша.F10: “аймеры.ќтсрочить(2000, "смотр"); return(true); case лавиша.F11: “аймеры.«апустить“аймер("“аймер1", 1000, 1000, 5, "огл"); return(true); case лавиша.F12: “аймеры.¬ывести—писок(); return(true); case лавиша.Num8: ќбработать¬веденный“екст("n"); return(true); case лавиша.Num2: ќбработать¬веденный“екст("s"); return(true); case лавиша.Num4: ќбработать¬веденный“екст("w"); return(true); case лавиша.Num6: ќбработать¬веденный“екст("e"); return(true); case лавиша.Num9: ќбработать¬веденный“екст("u"); return(true); case лавиша.Num3: ќбработать¬веденный“екст("d"); return(true); case лавиша.Num7: ќбработать¬веденный“екст("см"); return(true); case лавиша.Num5: ќбработать¬веденный“екст("огл"); return(true); case лавиша.Num1: ќбработать¬веденный“екст("вых"); return(true); } } if (ctrl && !alt && !shift) { switch (клавиша) { case лавиша.: —оединение.”становить("localhost", 4000); return(true); case лавиша.Ѕ: —оединение.”становить("mud.ru", 4000); return(true); case лавиша.’: —оединение.”становить("hiervard.ru", 4000); return(true); case лавиша.ќ: —оединение.–азорвать(); return(true); } } return(base.ќбработатьЌажатие лавиши(клавиша, ctrl, alt, shift)); }
public override string ќбработать—троку(—трока строка, bool статусна¤—трока) { строка.ѕерекрасить("с севера", 0x0A); строка.ѕерекрасить("с юга", 0x0A); строка.ѕерекрасить("с запада", 0x0A); строка.ѕерекрасить("с востока", 0x0A); строка.ѕерекрасить("сверху", 0x0A); строка.ѕерекрасить("снизу", 0x0A); строка.«аменить("поплелись", "направили свой путь"); строка.«аменить("¬ас", "¬ј—", 0x0B); Match match; string значение = строка.ToString(); match = Regex.Match(значение, @"^ѕадежи : (\w+)/\w+/\w+/\w+/\w+/\w+$"); if (match.Success && ѕеременные.»м¤ == "") { Ёлемент¬ывода.ƒобавить(строка); ѕеременные.»м¤ = match.Result("$1"); Ёлемент¬ывода.ќткрыть∆урнал(ѕеременные.»м¤, true); return(null); } if (значение.StartsWith("* ¬ св¤зи с проблемами перевода")) { Ёлемент¬ывода.ƒобавить(строка); return(";кто¤"); } if (значение.StartsWith("ѕересоедин¤емс¤") || значение.StartsWith("¬аша душа вновь вернулась в тело")) { Ёлемент¬ывода.ƒобавить(строка); return("кто¤"); } match = Regex.Match(значение, @"^\S+ сказал.? ¬ам : '.*'$"); if (match.Success) { Ёлемент¬ывода.ƒобавить(строка); онструктор.√лавноеќкно.Ёлемент¬ывода.¬ывести(строка); return(null); } match = Regex.Match(значение, @"\[.+:.+\] >$"); if (match.Success && статусна¤—трока) { Ёлемент¬ывода.ƒобавить(строка); if (!вЅою) { вЅою = true; return("автоуклонение"); } return(null); } match = Regex.Match(значение, @">$"); if (match.Success && статусна¤—трока) { Ёлемент¬ывода.ƒобавить(строка); if (вЅою) { вЅою = false; } return(null); } if (значение == " „его ¬аша душа желает ?" && статусна¤—трока) // при гибели персонажа { Ёлемент¬ывода.ƒобавить(строка); if (вЅою) { вЅою = false; } return(null); } if (значение.StartsWith("### ") && статусна¤—трока) // при подключении и отключении { Ёлемент¬ывода.ƒобавить(строка); if (вЅою) { вЅою = false; } if (значение == "### —оединение утер¤но." || значение == "### —оединение разорвано пользователем.") { ѕеременные.»м¤ = ""; Ёлемент¬ывода.«акрыть∆урнал(); return(null); } return(null); } match = Regex.Match(значение, @"^### (¬ерси¤ MCCP| оэффициент сжати¤): (.+)\."); if (match.Success) { Ёлемент¬ывода.ƒобавить(строка); return(match.Result("эмо : $1 = $2")); } if (значение == "### —жатие отсутствует.") { Ёлемент¬ывода.ƒобавить(строка); return("эмо : —жатие отсутствует"); } if (значение == "ћинул час.") { Ёлемент¬ывода.ƒобавить(new —трока("----- ћ»Ќ”Ћ „ј— -----", 0x09)); return("петь;ик"); } if (значение.StartsWith("Ћед¤ной щит")) { return(null); } if (значение.StartsWith("¬оздушный щит")) { return(null); } if (значение.StartsWith("¬ам лучше встать")) { строка.ѕерекрасить(0x9F); Ёлемент¬ывода.ƒобавить(строка); return(null); } return(base.ќбработать—троку(строка, статусна¤—трока)); }
public override string ќбработать оманду(string команда) { if (команда == "автоуклонение") { if (вЅою) { return("уклон;#отсрочить 1900 автоуклонение"); } else { return(null); } } if (команда == "вп") { return("приказ все войти пент;войти пент"); } Match match; match = Regex.Match(команда, @"^ф (.+)"); if (match.Success) { return(match.Result("#приказать {$“јЌ } {$1};#отсрочить 1000 {$1}")); } match = Regex.Match(команда, "^п( .+|$)"); if (match.Success) { return(match.Result("подн$1")); } match = Regex.Match(команда, "^з (.+)"); if (match.Success) { return(match.Result("спр¤;закол $1")); } match = Regex.Match(команда, "^у (.+)"); if (match.Success) { return(match.Result("п $1;з $1")); } if (команда == "врем¤") { Ёлемент¬ывода.ƒобавитьЁхо(команда); Ёлемент¬ывода.ƒобавить(new —трока(System.DateTime.Now.ToString(), 0x09)); return(null); } if (команда == "веса") { Ёлемент¬ывода.ƒобавитьЁхо(команда); Ёлемент¬ывода.ƒобавить(0x0F, "—ила ѕрава¤ Ћева¤ ƒвуруч —ила ѕрава¤ Ћева¤ ƒвуруч"); Ёлемент¬ывода.ƒобавить(" 01 01 00 01 26 23 13 36"); Ёлемент¬ывода.ƒобавить(" 02 02 01 03 27 23 14 37"); Ёлемент¬ывода.ƒобавить(" 03 03 01 04 28 24 14 38"); Ёлемент¬ывода.ƒобавить(" 04 04 02 06 29 24 15 39"); Ёлемент¬ывода.ƒобавить(" 05 05 02 07 30 25 15 40"); Ёлемент¬ывода.ƒобавить(" 06 06 03 09 31 25 15 40"); Ёлемент¬ывода.ƒобавить(" 07 07 03 10 32 25 15 40"); Ёлемент¬ывода.ƒобавить(" 08 08 04 12 33 25 16 41"); Ёлемент¬ывода.ƒобавить(" 09 09 04 13 34 26 16 42"); Ёлемент¬ывода.ƒобавить(" 10 10 05 15 35 26 16 42"); Ёлемент¬ывода.ƒобавить(" 11 11 05 16 36 26 17 43"); Ёлемент¬ывода.ƒобавить(" 12 12 06 18 37 26 17 43"); Ёлемент¬ывода.ƒобавить(" 13 13 06 19 38 27 17 44"); Ёлемент¬ывода.ƒобавить(" 14 14 07 21 39 27 17 44"); Ёлемент¬ывода.ƒобавить(" 15 15 07 22 40 27 18 45"); Ёлемент¬ывода.ƒобавить(" 16 16 08 24 41 27 18 45"); Ёлемент¬ывода.ƒобавить(" 17 17 08 25 42 28 18 46"); Ёлемент¬ывода.ƒобавить(" 18 18 09 27 43 28 18 46"); Ёлемент¬ывода.ƒобавить(" 19 19 09 28 44 28 19 47"); Ёлемент¬ывода.ƒобавить(" 20 20 10 30 45 28 19 47"); Ёлемент¬ывода.ƒобавить(" 21 20 11 31 46 29 19 48"); Ёлемент¬ывода.ƒобавить(" 22 21 11 32 47 29 19 48"); Ёлемент¬ывода.ƒобавить(" 23 21 12 33 48 29 19 48"); Ёлемент¬ывода.ƒобавить(" 24 22 12 34 49 29 20 49"); Ёлемент¬ывода.ƒобавить(" 25 22 13 35 50 30 20 50"); return(null); } return(base.ќбработать оманду(команда)); }