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

МПМ Былины - Мир Древней Руси (https://www.bylins.su/vbb/index.php)
-   Вопросы ньюбов (https://www.bylins.su/vbb/forumdisplay.php?f=2)
-   -   Вопрос про триггера в жабе (https://www.bylins.su/vbb/showthread.php?t=883)

doc 31.12.2004 18:44

Вопрос про триггера в жабе
 
Хотелось бы спросить следующее
У меня в жабе есть переменные
$weap - прайм
$weapoff - офф
Как грамотно написать триггер чтобы при дизарме оффа выполнялось поднятие с земли и взятие оффа, при дизарме прайма - аналогично для прайма
ПРи этом значения данных переменных -1 слово, например топор или нож
а при дизарме приходит строка "выбил тяжелый боевой топор из Ваших рук"
Помогите плз.
Best Regards

Зубран 31.12.2004 18:54

RE: Вопрос про триггера в жабе
 
#action {^%0 ловко выбил%1 %2 из Ваших рук.} {взять $prime; взять $off; воор $prime; дер $off} {5} {default}

Где $praim - прайм, а $off - офф.

Ladon 02.01.2005 13:22

грамотный триг для ммс Ж)
 
вставляешь в ммс.ини
#хеш массив задающий падежи праймов
my %weap = ('мечем' => 'меч',
'ножом' => 'нож');

делаешь такой триг
#триг прописывающий прайм когда им вооружаешся
trig {my $item=$1;
if (defined $weap{$item}) {$U:: prime=$weap{$item}}} '^Вы вооружились (.*)\.', '1000nf:autoweap';

#триг поднимающий и вооружающий прайм
trig { my $item=$1;
if ($item eq $prime) {sendl("взя $prime");sendl("воор $prime")};
} 'ловко выбил.? (.*) из Ваших рук\.', '1000nf:NoDisarm';

ну и для оффа почти аналогично.

nigga 02.01.2005 15:58

RE: Вопрос про триггера в жабе
 
ммц такой ужас =(

doc 02.01.2005 18:23

RE: Вопрос про триггера в жабе
 
Цитата:

Сообщение от Зубран
#action {^%0 ловко выбил%1 %2 из Ваших рук.} {взять $prime; взять $off; воор $prime; дер $off} {5} {default}

Где $praim - прайм, а $off - офф.

Триг хороший и у меня прописан такой же но мне не нравится что проверяется оба оружия а надо чтобы только то которое сдизармили
Хотел на самом деле увидеть ретелл на мой вопрос с использованием
регулярных выражений (regexp)

d_blacky 02.01.2005 18:31

RE: Вопрос про триггера в жабе
 
mmc самый лучший клиент.
В jmc можно написать практически все(!) что можно написать в mmc, но это стоит таких усилий в конечном итоге это может выглядеть так криво, что лучше учите perl и садитесь за mmc.
p.s. 2Ладон пара замечаний:
1. $U::prime=$weap{$item} и "$item eq $prime -- разные переменные.
2. да и комплект тригов вышел "одноразовый" (типа сменил ножички - и придется лезть в *.ini менять названия переменных). (на худой конец выводилась бы мессага, в случае если в хеше %weap не найден ключ $item)

p.p.s. свои конфиги к чарам я не рассылаю -- просьба не спамить. (а то когда смотришь на то, как копируются кусочки из чьих-то конфигов и из этого пытаются склеить что-то дельное приходишь в ужас :).

Ladon 02.01.2005 21:11

RE: Вопрос про триггера в жабе
 
[quote=d_blacky]mmc самый лучший клиент.
В jmc можно написать практически все(!) что можно написать в mmc, но это стоит таких усилий в конечном итоге это может выглядеть так криво, что лучше учите perl и садитесь за mmc.
p.s. 2Ладон пара замечаний:
1. $U::prime=$weap{$item} и "$item eq $prime -- разные переменные.
[quote]
ну писал на коленке...

[quote=d_blacky]
2. да и комплект тригов вышел "одноразовый" (типа сменил ножички - и придется лезть в *.ini менять названия переменных). (на худой конец выводилась бы мессага, в случае если в хеше %weap не найден ключ $item)
[quote]


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

d_blacky 03.01.2005 05:14

RE: Вопрос про триггера в жабе
 
Цитата:

ну писал на коленке...
А ньюбы потом будут копировать и удивляться :)

Цитата:

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

Я предолжил бы следующую идею:

2 трига определяющих названия прайма и оффа по команде "экип":
Код:

trig {
    if (цвет 1ого слова пришедшей строки светло серый) {
      $off_weapon=$1;
    }
} '^<в левой руке>\s+([\w\-]+\s?[\w\.]+?)\s+<.+>$', "nf:get_off";
trig {
    if (цвет 1ого слова пришедшей строки светло серый) {
        $praim_weapon=$1;
    }
} '^<в правой руке>\s+([\w\-]+\s?[\w\.]+?)\s+<.+>$', "nf:get_praim";

Затем триг:
Код:

trig {
    if (цвет пришедшей строки светло серый) {
        get_and_equip_disarm_weapon(vinpad_to_impad($1))
} '^[\w\-\.\,]+? ловко выбил.? (.+?) из Ваших рук\.$', "nf:weapons_are_disarmed";

краткая идея функций:
sub vinpad_to_impad() -- в соответствии с правилами русского языка переводит название оружия (состоящего как правило из 1 существительного и 1-2 прилагательных в именительный падеж)
sub get_and_equip_disarm_weapon() -- поднимает с земли оружие, проверяет пришедшую строку на эквивалентность относительно $off_weapon и $prime_weapon, затем заменяет пробелы в пришедшем слове точками (получается: "острое.шило", "посох.странствий" и пытается ими вооружиться/взять в офф)
(как вариант - можно на этапе sub vinpad_to_impad() оставить лишь существительное (это не настолько сложно определить и в большинстве случаев работает) и затем его экипировывать. (правда в этом случае будут траблы если в прайме какой-нибудь "титановый кинжал", оффе "стальной кинжал" а на вход пришла строка "кинжал".

Правда выше приведенный триггер не дает гарантии когда мы имеем дело с кривыми объектами (не правильные падежи, не те альясы). + Самое смачное видеть фразу "Кто-то ловко выбил что-то из Ваших рук" -- тьма решает.

p.s. http://www.mp3search.ru/m3u.html?id=122031
-- всем достать в хорошем битрейде и слушать до просветления.

Ladon 03.01.2005 12:28

RE: Вопрос про триггера в жабе
 
Правда выше приведенный триггер не дает гарантии когда мы имеем дело с кривыми объектами (не правильные падежи, не те альясы). + Самое смачное видеть фразу "Кто-то ловко выбил что-то из Ваших рук" -- тьма решает.


когда тьма тригер пофиг, всеравно взять не сможешь Ж)

d_blacky 03.01.2005 14:51

RE: Вопрос про триггера в жабе
 
Ага, как не совершенен наш мир :(

doc 05.01.2005 00:53

RE: Вопрос про триггера в жабе
 
Ну ..дец. Я все понимаю. И я не ньюб. Но ,господа, я задумываюсь о Вашем национальном происхождени , когда я прошу триг для жабы, а Вы мне говорите триг для ммс и обсуждаете его достоинства и недостатки((. А в итоге вывод я пользуюсь таким же тригом который написал Зубран+ хайлайт, но проблемы это не решает. В принципе все хорошо, но у меня dial up и поэтому проверка сразу двух условий дает лаг, + еще лаги бывают от умений допустим. И про то что я хотел увидеть здесь reg exp тоже как-то мимо прошло,правда Блэки предложил, но опять же для ммс
BR

Tirfa 05.01.2005 03:31

RE: Вопрос про триггера в жабе
 
Мдаа, топик про триггера в jmc а вы тут свой mmc пропагандируете ;)
Doc а не пофигу ли тебе какой именно випон выбили? Лишняя строчка мешает? Нефик париться нуна хватать все пока моб не сделал это быстрее тебя ж)

saracen 05.01.2005 10:49

RE: Вопрос про триггера в жабе
 
так.. к слову.. regexp он и в африке regexp вроде..
какая в ... разница какой клиент? Идею дали, че бы самому-то мозг не напрячь?

А то возникает желание написать чтонибудь из разряда: /action {выбил} {конец}

и кстати, этож какой триггер надо написать, чтобы проверка двух условий давала ощутимый лаг?

Ележор 05.01.2005 13:02

RE: Вопрос про триггера в жабе
 
Народ, ну будьте вы проще, а? :) Вон Зубран второй же репликой дал, по-моему, самый надежный и быстрый триггер. И пофиг, что он всегда пытается оба оружия подобрать -- жалко вам, что ли? Еще добавить альясы на задание переменных для прайма и оффа и не забывать их обновлять при смене оружия. Все, проблема решена.

Polud 05.01.2005 16:13

RE: Вопрос про триггера в жабе
 
Цитата:

Сообщение от Ележор
....
Еще добавить альясы на задание переменных для прайма и оффа и не забывать их обновлять при смене оружия. Все, проблема решена.

У меня, например, чтобы не забывалось, наиболее часто употребляемые сокращения команд сделаны алиасами %)

#al {дер}{#var off %0;держать %0}
#al {воо}{#var prime %0;вооруж %0}

$)


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

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