PDA

Просмотр полной версии : Сканер локации


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

Мичурa
15.01.2008, 11:57
Внимание вопрос: КАК узнать что в локе находится моб, они же не просто стоят??? кто бегает, кто разнюхивает...

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

Перелес
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
есть более менее ) прошлагодняя база мобов ) поищи на форуме автостаб от Ладона. хорошая штука кстати ) для откачки

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


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
думаю тебе больше автостабы не потребуются :)
этого хватит до конца Былин.