Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
 void «агрузитьѕеременные()
 {
     try
     {
         if (ѕеременные.»м¤ == "")
         {
             return;
         }
         string   путь   = айтиѕрофиль(ѕеременные.»м¤ + ".var");
         string[] строки = File.ReadAllLines(путь, Encoding.GetEncoding(1251));
         if (ѕеременные. оличество > 0)
         {
             ѕеременные.ќчистить();
         }
         if (строки.Length > 0)
         {
             Ёлемент¬ывода.ƒобавить("### «агрузка переменных...");
             foreach (string строка in строки)
             {
                 ќбработать оманды(строка);
             }
         }
     }
     catch
     {
     }
 }
Ejemplo n.º 3
0
 public virtual string ќбработать—троку(—трока строка, bool статусна¤—трока)
 {
     Ёлемент¬ывода.ƒобавить(строка);
     if (строка.ƒлина > 0)
     {
         return(“риггеры[строка.ToString()]);
     }
     return(null);
 }
Ejemplo n.º 4
0
 public override void ќбработать¬веденный“екст(string текст)
 {
     lock (this)
     {
         ќбработать оманды(текст);
         Ёлемент¬ывода.¬ывести();
         —оединение.ѕередатьƒанные();
     }
 }
Ejemplo n.º 5
0
 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(копи¤);
    }
Ejemplo n.º 7
0
    public override string ќбработать—троку(—трока строка, bool статусна¤—трока)
    {
        Match  match;
        string значение = строка.ToString();

        if (значение.StartsWith(" ровушка стынет в жилах"))
        {
            Ёлемент¬ывода.ƒобавить(строка);
            if (ѕеременные["Ћ”“"] != null)
            {
                return("вз¤т все;вз¤т все все.труп;брос все.труп");
            }
            return(null);
        }
        return(base.ќбработать—троку(строка, статусна¤—трока));
    }
Ejemplo n.º 8
0
 public override void ќбработатьѕолученный“екст(params —трока[] строки)
 {
     foreach (—трока строка in строки)
     {
         if (строка.ƒлина > 0 && строка[строка.ƒлина - 1].«начение == ' ')
         {
             строка.”братьѕробелы¬ онце();
             ќбработать оманды(ќбработать—троку(строка, true));
         }
         else
         {
             ќбработать оманды(ќбработать—троку(строка, false));
         }
     }
     Ёлемент¬ывода.¬ывести();
     —оединение.ѕередатьƒанные();
 }
Ejemplo n.º 9
0
 public virtual string ќбработать оманду(string команда)
 {
     if (команда.Length > 0 && команда[0] == јнализатор. омандный—имвол)
     {
         Ёлемент¬ывода.ƒобавитьЁхо(команда);
         »нтерпретировать(команда.Substring(1));
     }
     else
     {
         string команды = ћакросы[команда];
         if (команды != null)
         {
             return(команды);
         }
         команда = јнализатор.”братьќбратные—лэши(команда);
         Ёлемент¬ывода.ƒобавитьЁхо(команда);
         —оединение.«аписать(команда);
     }
     return(null);
 }
Ejemplo n.º 10
0
 public bool ¬ыполнить(string путь, bool загрузкаѕрофил¤)
 {
     —оздатьѕапкуѕрофили();
     путь = айтиѕрофиль(путь);
     string[] строки;
     try
     {
         строки = File.ReadAllLines(путь, Encoding.GetEncoding(1251));
     }
     catch
     {
         Ёлемент¬ывода.ƒобавить("### Ќе удалось открыть файл.");
         return(false);
     }
     путь = —ократитьѕуть(путь);
     if (загрузкаѕрофил¤)
     {
         Ёлемент¬ывода.ƒобавить("### «агрузка профил¤ \"" + путь + "\"...");
     }
     else
     {
         Ёлемент¬ывода.ƒобавить("### ¬ыполнение файла \"" + путь + "\"...");
     }
     foreach (string строка in строки)
     {
         ќбработать оманды(строка);
     }
     if (загрузкаѕрофил¤)
     {
         ‘айл = путь;
         Ёлемент¬ывода.ƒобавить("### ѕрофиль загружен.");
     }
     else
     {
         Ёлемент¬ывода.ƒобавить("### ‘айл выполнен.");
     }
     return(true);
 }
Ejemplo n.º 11
0
    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.ќбработать—троку(строка, статусна¤—трока));
    }
Ejemplo n.º 12
0
    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));
    }
Ejemplo n.º 13
0
    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.ќбработать—троку(строка, статусна¤—трока));
    }
Ejemplo n.º 14
0
    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.ќбработать оманду(команда));
    }