|
|||||||
| Вопросы ньюбов Вопросы ньюбов и ответы бывалых |
|
|
Опции темы | Опции просмотра |
|
|
#8 | ||
|
The God of Void
![]() Регистрация: 05.03.2004
Сообщений: 217
|
Цитата:
Цитата:
Вдруг у тебя 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 -- всем достать в хорошем битрейде и слушать до просветления. |
||
|
|
|