МПМ Былины - Мир Древней Руси

МПМ Былины - Мир Древней Руси (https://www.bylins.su/vbb/index.php)
-   Клиенты для игры (https://www.bylins.su/vbb/forumdisplay.php?f=52)
-   -   Сканер локации (https://www.bylins.su/vbb/showthread.php?t=3566)

Перелес 15.01.2008 10:16

Сканер локации
 
Играю в жабе, захотелось сделать что-то вроде сканера локи, чтобы скажем в доп.окне видеть, кто находиться в локе, кто пришел, кто ушел.
Даже будет достаточно, чтобы инфа отображалась без выводов сообщений о приходе\уходе.
Внимание вопрос: КАК узнать что в локе находится моб, они же не просто стоят??? кто бегает, кто разнюхивает...

Мичурa 15.01.2008 11:57

Цитата:

Сообщение от Перелес (Сообщение 50608)
Внимание вопрос: КАК узнать что в локе находится моб, они же не просто стоят??? кто бегает, кто разнюхивает...

Помоему нормально никак, т.к. вроде описание что в клетке моб может быть произвольным по фантазии билдера, и бывает что при команде "смотреть" нельзя понять на какое имя откликнется эта "куча чего-то копошащяяся тут".

Перелес 15.01.2008 12:44

А не нормально, это перебирать че ли? должны же быть какие-то команды клиенту посылаться о том, что кто-то есть.

Meles 15.01.2008 13:18

А что, "см" нажать лень и проанализировать кто в клетке стоит ?

Лыдвицa 15.01.2008 13:19

Клиенту посылается только то, что ты видишь у себя на экране (плюс коды цветов).
Твоя задача решается созданием полной базы мобов.
Впрочем, если не учитывать мобов, которые просто стоят и ничего не делают, то можно ограничиться обработкой строк "пришёл-ушёл" и "сражается с".

Devastator 15.01.2008 21:30

есть более менее ) прошлагодняя база мобов ) поищи на форуме автостаб от Ладона. хорошая штука кстати ) для откачки

Ladon 19.01.2008 02:22

Цитата:

Сообщение от Devastator (Сообщение 50641)
есть более менее ) прошлагодняя база мобов ) поищи на форуме автостаб от Ладона. хорошая штука кстати ) для откачки

автостаб это прошлый век... теперь время интеллектуальных тригеров пришло... Ж)

Код:

my %autoarg = ();
my $autoagrfile = "auto.txt";


sub get_color($$) {
# Параметры: строка с цветами в формате внутренних цветов mmc
# и номер символа в ней.
# Возвращаемое значение: цвет этого символа в диапазоне A..P
        return chr(ord(substr($_[0], 2*$_[1]+1, 1))+ord('A'));
}


trig {
       
                if (get_color($;, 1) eq 'J') {
                        if (($tryDetectTarget == 0)) {
                                        echo("tryDetectTarget $tryDetectTarget");
                                        if (!defined($learnagr{$_})) {
                                               
                                                $tryDetectTarget = 1;
                                                echo("tryDetectTarget $tryDetectTarget");
                                                $detectString = $tryString = $_;
                                               
                                                $learnagr{$_} = $_;
                                                tryAgr();
                                } else {
                                                                $detectString = $tryString = $_;
                                                                $safeagr = $learnagr{$_};
                                                                if ($U::autotrip) {
                                                                        sendl("поднож $safeagr");
                                                                }
                                                                if ($U::autohide) {
                                                                        sendl("спрят");
                                                                }
                                                                echo ("бьем по базе - закол $safeagr");
                                                                sendl ("закол $safeagr");
                                        }
                        } else { #есть в базе
                                       
                                                                $safeagr = $learnagr{$_};
                                                                if ($U::autotrip) {
                                                                        sendl("поднож $safeagr");
                                                                }
                                                                if ($U::autohide) {
                                                                        sendl("спрят");
                                                                }
                                                                sendl ("закол $safeagr");
                               
                                }
                }

        } '(.*)', '1000fn-:LearnAgr';




sub tryAgr () {
        if ($tryDetectTarget == 1) {
                if (length($tryString) == 0) {
                        echo("кончился tryString");
                        $tryDetectTarget = 0;
                        delete $learnagr{$detectString};
                } else {
                        my @t = split(/[\,\s\-\.]/,$tryString);
                        my $safeagr = $t[0];
                        $safeagr =~ s/^(.*?).$/$1/;
                        $target = $safeagr;
                        echo("пробуем $safeagr");
                        sendl ("закол $safeagr");       
                        $tryString = "";
                        for (my $i=1; $i<=$#t; $i++) {
                                $tryString .= $t[$i]." ";
                        }
                        echo ("осталось в tryString $tryString");
                       
                }
        }
}

trig {
        if ($tryDetectTarget == 1) {
                echo("нето, надо еще раз попробовать");
                tryAgr();
        } else {
                delete $learnagr{$detectString};               
        }

} '^Кого Вы так сильно ненавидите, что хотите заколоть \?', '1000fn-:LearnAgr';
       
trig {
        if ($tryDetectTarget == 1) {
                echo("заносим в базу \'$detectString\'  - $target");
                $learnagr{$detectString} = $target;
                $tryDetectTarget = 0;
        }
} '^(Вы мастерским ударом|Вы нанизали|Вам не удалось нанизать|Вы не смогли заколоть|.*просто передернуло от боли.|Вы воткнули)', '1000fn-:LearnAgr';


sub autoagrload {
                %autoarg = ();
                open (FILE,$autoagrfile);
                echo ($autoargfile);
                while (<FILE>) {
                               
                                chomp;
                                my @f = split(/\|/);
                                $learnagr{$f[0]} = $f[1];
                                echo($_);
                                #echo ("pkl $f[0] $f[1] $_ $pklist{$_}");
                        }
                close FILE;
}
sub autoagrsave {
        open (FILE,">$autoagrfile");
        foreach (keys %learnagr) {
                print FILE "$_|$learnagr{$_}\n";
        }
        close FILE;
}


alias {
        autoagrload();
        } "агрзагрузить";

alias {
        autoagrsave();
        } "агрсохранить";
       
alias {
        enable('LearnAgr');
        autoagrload();
        } "агрда";
alias {
        disable('LearnAgr');
        autoagrsave();
        } "агрнет";


Ladon 19.01.2008 02:25

Если вкраце то этот набор тригеров пытается стабануть все что видит в клетке. Перебирает слова из описания моба усекая слово на 1 символ что бы не стабануть случайно какогонить чара. Все это дело сохранется в файл при желании. Файл можно править руками если очень хочется.
При обучении будет куча левого спама, но когда локация изучена тригами то стабы будут проходить быстро и безболезненно. :)
Главное не запустить автоагр гденибудь в городе, будет скорее всего больно. :)

примерный файл если бегать вокруг родовых будет выглядеть так:

Код:

(летит) Маленький мотылек кружит над головой.|мотыле
Лось бредет здесь, сшибая ветви развесистыми рогами.|Лос
Большой сом плавает здесь.|со
Маленький цыпленок ходит здесь.|цыплено
Грустный карп медленно плывет здесь.|кар
Хищная куница норовит незаметно подкрасться к жертве.|куниц
Черный, как смоль, грач важно вышагивает здесь.|гра
Большой пес возится здесь.|Большо
Подсобный рабочий, великовозрастный отрок стоит тут.|Подсобны
Усатый сом залег здесь на дне.|Усаты
(летит) Перепел с шумом выпорхнул у Вас из-под ног.|Перепе
(летит) Черный ворон кружит над полем.|воро
Крестьянка работает здесь.|Крестьянк
Пустельга перескакивает с кочки на кочку.|Пустельг
Серый лесной волк злобно рыча вынюхивает чьи-то следы.|Серы
Коршун высматривает добычу здесь.|Коршу
Веселый ерш играется в воде.|ер
Старший Агафон думает думку здесь.|Старши
(летит) Голосистый дрозд порхает с ветки на ветку.|дроз
Гадюка извивается у Ваших ног.|Гадюк
Белка сидит здесь.|Белк
Бестолковый Агафон тянет оглоблю влево.|Бестолковы
Летучая мышь спит вниз головой, зацепившись за стропила.|Летуча
Возница стоит здесь, дожидаясь очереди на мельню.|Возниц
Дикий степной конь вольно пасется здесь.|Дики
Сторож амбара, поигрывая мускулами, стоит тут.|Сторо
Крупный глухарь важно шествует мимо Вас.|глухар
Ползучий гад скользит в траве, выискивая поживу.|Ползучи
Дородный крестьянин похаживает здесь.|Дородны
Маленький сморщенный человечек прячется тут.|Маленьки
(летит) Тетерев-косач сидит на ветке здесь.|Тетере
Мелкая букашка копается здесь.|букашк
Молодой разбойник стоит тут.|Молодо
Небольшой бурундук с любопытством смотрит на Вас.|бурунду
Пугало отгоняет сорок от огорода.|Пугал
Рогатый жук ползает тут, покачивая рожками.|жу
Маленькая змея прошмыгнула у ног.|Маленька
(летит) Сова высматривает очередную жертву своими огромными глазами.|Сов
(летит) Длинноногий журавль гордо пролетает здесь.|журавл
Свинья роется в корыте.|Свинь
Охотник высматривает добычу здесь.|Охотни
Степной волк пробегает мимо.|Степно
Корова отмахивается от насекомых здесь.|Коров
(летит) Майский жук сидит тут.|Майски
Кабан роется под деревом, отыскивая молодые побеги.|Каба
Дятел сидит на дереве и долбит своим клювом по коре.|Дяте
Зеленая гусеница ползет здесь, извиваясь.|Зелена
(летит) Маленький воробей летает здесь.|воробе
Пушистый колонок вылез из-под корней в поисках добычи.|колоно
Жирный котяра вальяжно проходит тут.|котяр
(летит) Белый лебедь изящно выгнул шею.|лебед
Полевая мышка пытается скрыться в траве.|мышк
Темный силуэт навсегда неподвижно застыл в этом месте.|Темны
Маленький зайчик весело носится здесь.|Маленьки
Большой баран уперся в стену здесь.|бара
(летит) Белая чайка ловит рыбку здесь.|Бела
Разбойник крадется мимо Вас.|Разбойни
Петух важно вышагивает здесь.|Пету
Робкий тушканчик скачет здесь.|тушканчи
Большой дикий бык величаво пережевывает траву здесь.|дики
Молоденький лисенок играет здесь.|лисено
(летит) Дятел долбит ствол дерева своим крепким клювом.|Дяте
Черный паук плетет паутину здесь.|Черны
Гусеница ползет здесь, изгибаясь.|Гусениц
Хорек вынюхивает добычу.|Хоре
Юркий жерех плавает здесь.|жере
Рыжая лиса пробегает здесь, вынюхивая жертву.|Рыжа
(летит) Стрекоза летает тут, громка жужжа крыльями.|Стрекоз
Ежик шуршит в траве.|Ежи
Олень робко выглядывает из-за ветвей.|Олен
Маленький муравей тащит что-то в свой муравейник.|мураве
Пятнистый олень стоит здесь.|Пятнисты
Оскалившись, местный пес злобно смотрит на Вас.|пе
Голодная собака смотрит на Вас, виляя хвостом.|собак
Степной заяц пробегает здесь.|зая
Рыжая белка с пушистым хвостом скачет с ветки на ветку.|белк
Худой крестьянин плетется, уныло оглядываясь.|крестьяни
Лягушка квакает здесь.|Лягушк
(летит) Аист величаво кружит в небе.|Аис
Черный волк трусит мимо, выискивая поживу.|Черны
Мерин стоит привязанный здесь.|Мери
Усталая лошадь стоит, понурив голову.|Устала
Северянин Матовий стоит здесь. |Матови
...светится ярким сиянием |
(летит) Рябчик прыгает среди веток.|Рябчи
(летит) Дупель прячется среди веток здесь.|Дупел
(летит) Шмель жужжит у Вас над головой.|Шмел
(летит) Белобокая сорока выискивает, где что не так лежит.|сорок
Распряженный конь пожевывает зерно здесь.|Распряженны
Навья явилась из Царства мертвых, дабы не дать потревожить неупокоенные тела.|Навь
Тощая корова жадно жует гнилой клок сена.|коров
Карась плавает здесь.|Карас
Злая собака рычит на окружающих.|Зла
(летит) Кукушка сидит высоко на ветке здесь.|Кукушк
Вы заорали от боли, когда охотник схватил Вас горящими руками. |В
Кряжистый мукомол, во всем белом стоит здесь.|мукомо
(летит) Пестрый тетерев вспорхнул из-под Ваших ног.|тетере
(летит) Белобокая сорока кружит над огородом.|сорок
Батрак работает здесь.|Батра
Крестьянин работает здесь.|Крестьяни
Малиновка пробегает мимо Вас.|Малиновк
Маленькая пеструха снует между Ваших ног.|пеструх
Мышь-полевка бегает здесь.|Мыш
Рябчик прыгает среди веток.|Рябчи
Голодный волк пробегает в поисках поживы.|вол
Умертвие не в силах обрести вечный покой.|Умертви
Загорелая крестьянка недоверчиво осматривает Вас.|крестьянк
(летит) Летучая мышь проносится мимо.|Летуча
Волк отдыхает здесь. |Вол
(летит) Седоголовый лунь кружит в поисках добычи.|лун
Пятнистая рысь изогнула спину перед прыжком здесь.|Пятниста
Тонкий елец плавает здесь.|еле
Небольшой сурок трусливо выискивает, куда бы спрятаться.|суро
Рыжая плутовка-лиса пробегает мимо.|Рыжа
Бекас спрятался в траве.|Бека
(летит) Большой рой комаров мешает тут Мише.|ро
(летит) Куропатка спряталась здесь.|Куропатк
Серая мышь пытается юркнуть в подходящую норку.|мыш
(летит) Куропатка бродит по полю, выискивая зерна.|Куропатк
(летит) Шмель летает тут, грозно жужжа.|Шмел
Колючий ежик семенит на коротких лапках.|ежи
Глухарь сидит на ветке.|Глухар
Дятел долбит ствол дерева своим крепким клювом.|Дяте
Маленькая юркая ласка прошмыгнула мимо Вас.|ласк
Гусь злобно шипит на Вас.|Гус
Юркая длиннохвостая ящерица норовит прошмыгнуть мимо Вас.|ящериц
Худая кобыла покусывает удила.|кобыл
Быстрый окунь проплывает здесь.|окун
Взрослый разбойник внимательно осматривается здесь.|Взрослы
Северянин Вислоус стоит здесь. |Вислоу
(летит) Сойка перескакивает с ветки на ветку, выискивая укромный уголок.|Сойк
(летит) Сапсан кружит здесь, высматривая добычу.|Сапса
Быстрый таракашка бегает тут.|таракашк
Речная крыса прошмыгнула у Ваших ног.|крыс
(летит) Хищный коршун камнем падает вниз, заприметив цель.|коршу
(летит) Чибис волнуется в траве.|Чиби
(летит) Черный, как смоль, грач важно вышагивает здесь.|гра
Курица кудахчет и ищет корм.|Куриц
Овечка отдыхает здесь.|Овечк
(летит) Крупный ястреб зорко осматривает окрестности в поисках жертвы.|ястре
Рыбка с красным пером резвится здесь.|Рыбк
Зеленый кузнечик прыгает по травкам.|кузнечи
Камышовый кот тихо крадется мимо Вас.|Камышовы
Охотничий пес выслеживает добычу.|Охотничи
Небольшая безногая ящерица проскользнула у Ваших ног.|ящериц
(летит) Нахохлившаяся сова сидит на ветке.|сов
Волк готовится к нападению здесь.|Вол
Белый гусь громко зашипел на Вас.|гус
(летит) Летучая мышь спит вниз головой, зацепившись за стропила.|Летуча
Огородник-работяга ухаживает за огородом.|Огородни
(летит) Остроглазый сокол высматривает очередную жертву.|соко
Утка плавает здесь, мерно крякая.|Утк
(летит) Небольшой канюк кружит в поисках добычи.|каню
Небольшая степная лиса пробегает мимо.|Небольша
(летит) Белый журавль гордо пролетает здесь.|Белы
Заведующий амбаром слепо щурится на Вас.|Заведующи
Скользкий налим плавает здесь.|нали
Заяц-русак сиганул через полянку.|Зая
*Мертвяк стоит здесь. |*Мертвя
Шустрая норка прошмыгнула мимо Вас.|норк
Полоз скользит в траве.|Поло
Выпь орет здесь не человечьим голосом.|Вып
Маленькая мошка надоедает своим жужжанием здесь.|Маленька
Сильный Агафон ковыряется вилами в носу.|Сильны
Маленький паучок пробует сплести паутину здесь.|Маленьки
Улитка медленно ползет здесь.|Улитк
Маленький муравей что-то несет.|Маленьки
(летит) Стремительный кречет гоняет здесь полевых жителей.|крече
Заяц бегает по огороду.|Зая
(летит) Грач ищет зерна в земле.|Гра
(летит) Маленький комар так и норовит укусить Вас здесь.|Маленьки
Бешеный пес смотрит вокруг красными глазами.|Бешены
Красный маленький муравей ползает здесь.|Красны
(летит) Черный ворон с недобрым глазом ищет добычу здесь.|Черны
Теленок отдыхает здесь.|Телено
(летит) Крупная дрофа неуклюже вспорхнула из-под Ваших ног.|дроф
Суслик встал на задние лапы, настороженно озираясь.|Сусли
Бурый медведь пробирается между ветвей.|медвед
Заяц проскакал мимо, запутывая след.|Зая
Паучок ползает здесь.|Паучо
(летит) Ворона пролетает здесь.|Ворон
(летит) Перепел прячется здесь.|Перепе
Мышь-полевка быстро бежит к своей норке.|Мыш
Медленный рак ползает по дну.|ра
(летит) Черный шмель летает от цветка к цветку.|шмел
Робкая косуля пугливо смотрит по сторонам.|косул
Зеленая лягушка раздувает здесь свои пузыри.|Зелена
(летит) Черный грач кружит над огородом.|гра
Злобная щука плавает здесь.|Злобна
Грациозная косуля робко щиплет травку, внимательно оглядываясь по сторонам.|косул
(летит) Белая капустница летает тут.|Бела
Барсук сноровисто копается в земле в поисках пропитания.|Барсу
Тур проходит мимо, ломая сухой кустарник.|Ту


Devastator 19.01.2008 21:06

А я ждал когда ты запостишь новый автостаб))

Ladon 23.01.2008 17:24

думаю тебе больше автостабы не потребуются :)
этого хватит до конца Былин.


Часовой пояс GMT +4, время: 02:14.

Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot