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

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

Тролль 31.03.2008 21:20

Модуль "повар" для mmc
 
Вложений: 1
Я тут написал модуль для варки зелий.

Что он делает:
- собирает ингридиенты (триггеры спёрты)
- показывает, каких ингридиентов не хватает для какого рецепта
- считает, сколько чего можно сварить
- варит

Что он НЕ делает:
- не следит за качеством ингридиентов

Что требуется:
- регулярно дописывать ингридиенты, неизвестные модулю

Эта фигня (ИМХО) вполне подходит для, к примеру, раскачки рецептов (хотя просветов у мну пока ни одного не было). Так же она подходит для того, чтобы если кому надо, он взял и навтыкал туда проверок на качество ингридиентов. Возможно, позже я это сделаю сам.

Как оно работает?
Загрузка ингридиентов и рецептов:
Код:

Вых:СВ> _загрузить_ингридиенты
Вы не видите ничего необычного.
Походная сума в хорошем состоянии.
Можно одеть на шею.
Можно одеть на плечи.
Можно одеть на пояс.
Можно взять в левую руку.
Состояние: средне.
походная сума(в амуниции)
железная ступка [4]                посуда
простокваша  <великолепно>      жидкости
ячмень [32]                        крупа
паслен  <великолепно>            ядовитые ягоды
гороховая крупа [18]              крупа
кислое молоко  <великолепно>    жидкости
укроп  <великолепно>            овощи
медовуха [22]                      жидкости
светлячок [35]                    мелкие твари
бересклет [6]                      ядовитые ягоды
большой горшок [10]                посуда
клюквенный кисель [6]
сладкий перец [3]
оловянный котел [2]                посуда
ручейник [2]                      мелкие твари
клоп-вонючка [2]                  мелкие твари
красная жимолость [10]            ядовитые ягоды
крыло златоклювого дятла  <великолепно>  крылья
яблоня [6]                        дерево
желтый жучок [4]                  мелкие твари
белладонна  <великолепно>        ядовитые ягоды
железный котел [6]                посуда
барвинок  <великолепно>
фасоль  <великолепно>
пихта [19]                        дерево
муравьишка [2]                    мелкие твари
гречневая ядрица  <великолепно>  крупа
черемуха  <великолепно>          дерево
толокно  <великолепно>          крупа

Вых:СВ> _загрузить_рецепты
Вы владеете следующими рецептами :
1. настой вороньего глаза          (ужасно) 5% : нет рецепта
2. отвар девясила                  (ужасно) 5% : нет рецепта
3. мутная брага                    (ужасно) 5% : нет рецепта
4. настой на мелких букашках      (ужасно) 5% : нет рецепта
5. мышиный настой                  (ужасно) 5% : нет рецепта
6. воспаряющий отвар              (ужасно) 5% : нет рецепта
7. отвар подорожника              (ужасно) 5% : нет рецепта

Вых:СВ>
Вам потребуется :
1) посуда          22
2) жидкости        24
3) ядовитые травы  нет
для приготовления отвара 'настой вороньего глаза'

Вам потребуется :
1) посуда          22
2) жидкости        24
3) овощи            1
4) целебные травы  нет
для приготовления отвара 'отвар девясила'

Вам потребуется :
1) посуда          22
2) жидкости        24
3) съедобные ягоды  нет
4) ядовитые ягоды  18
для приготовления отвара 'мутная брага'

Вам потребуется :
1) посуда          22
2) жидкости        24
3) мелкие твари    45
4) ядовитые травы  нет
для приготовления отвара 'настой на мелких букашках'

Вам потребуется :
1) посуда          22
2) жидкости        24
3) съедобные ягоды  нет
4) съедобные грибы  нет
для приготовления отвара 'мышиный настой'

Вам потребуется :
1) посуда          22
2) жидкости        24
3) дерево          26
4) крылья          1
для приготовления отвара 'воспаряющий отвар'

Вам потребуется :
1) посуда          22
2) жидкости        24
3) целебные травы  нет
для приготовления отвара 'отвар подорожника'

Проверка, сколько чего можем сварить, и варим кой-чего:
Код:

Вых:СВ> рец
Вы владеете следующими рецептами :
1. настой вороньего глаза          (ужасно) 5% : 0
2. отвар девясила                  (ужасно) 5% : 0
3. мутная брага                    (ужасно) 5% : 0
4. настой на мелких букашках      (ужасно) 5% : 0
5. мышиный настой                  (ужасно) 5% : 0
6. воспаряющий отвар              (ужасно) 5% : 1
7. отвар подорожника              (ужасно) 5% : 0

Вых:СВ> _варить 2
Варим 'отвар девясила'
Не хватает ингридиентов:
  целебные травы
Вых:ВЮЗ> _варить 6
Варим 'воспаряющий отвар'
Вы взяли железный котел из походной сумы.

Вых:СВ>
Вы взяли медовуху из походной сумы.
Вы взяли черемуху из походной сумы.
Вы взяли крыло златоклювого дятла из походной сумы.
Камень взлетел со дна котла и больно ударил Вам в лоб!!!

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

Предложения приветствуются, реакция не обещается, лицензия как у mmc (у которого как у Perla, у которого на выбор - Artistic License или GPL)

В архиве - два файла
Cook.pm - в кодировке koi8-r
Cook.win.pm - в windows-кодировке (переименуйте его в Cook.pm перед использованием)

Подключение: кладем туда, где лежит основной конфиг, и в конфиг пишем
Код:

use Cook;

Devastator 05.04.2008 09:46

Ну как модуль народ? отпишитесь кто пользуется, стоит ли его на жабу портировать?

Тролль 05.04.2008 15:34

Я там чё-то ошибок нашёл :) Поисправляю сперва, не надо пока его смотреть.

Ladon 04.06.2008 14:41

попытался заюзать
при варке ругается
#perl: Undefined subroutine &QBaze::alias called at ./Cook.pm line 252.
252 my $i = QBaze::alias(pop @{$have_ingr{$_}});

Тролль 04.06.2008 16:01

щас будет новый version

Тролль 04.06.2008 17:05

новая версия
 
Вложений: 1
Большие изменения в модуле.

1.Информация по конкретным ингридиентам вынесена в отдельный файл (cook.rc)
2. Соответственно, добавлена возможность перезагружать базу ингров на лету, не вырубая клиент
3. Добавлена возможность оперативно избавляться от ватных ингридиентов
4. Исправлены ошибки

УСТАНОВКА
В архиве - две папки, cook.koi8-r и cook.win.
1. Два файла (Cook.pm и cook.rc) из папки, соответствующей Вашей кодировке, копируете в папку, где находица Ваш конфиг.
2. В конфиге где-нить в начале пишем
Код:

use Cook;
3. Если в Вашем конфиге есть ловушки (hook) на prompt, то туда дописываем
Код:

Cook::promptHook()
если нет ловушек - то просто раскомментируйте строки в конце файла Cook.pm

КОМАНДЫ
_обновить_базу_ингридиентов пригодица, если Вы изменили файл cook.rc и желаете немедленно увидеть изменения
_ингридиенты_сумка пригодица для установки названия контейнера с ингридиентами. Ингридиенты вне этого контейнера модуль не увидит.
_загрузить_ингридиенты пригодица, чтобы модуль знал, что в этой сумке есть, и подсчитал, сколько чего из этого можно сварить
_доложить_ингридиенты пригодица, чтобы Вы знали, что модуль знает о Ваших ингридиентах
_загрузить_рецепты пригодица, чтобы модуль знал рецепты, которыми Вы владеете
_вата пригодица, чтобы избавиться от ватных ингридиентов. Если заюзать команду без аргументов, модуль расскажет, что там к чему.
_убрать_ингридиенты пригодица, чтобы сложить ингридиенты, которые у Вас в инвентаре, в сумку для ингридиентов
_состав N пригодица, чтобы узнать состав рецепта под номером N
_варить N пригодица, чтобы сварить рецепт под номером N
_сбор_ингридиентов пригодица, чтобы собирать ингридиенты по пути следования

рецепт - в выводе команды мада "рецепт" добавлено чуток информации.

Путей 05.06.2008 09:04

даеш в жабу такой) антипрограммерам)

Снежич 05.06.2008 14:42

можно позанудничать?

они "ингредиенты" вообще-то :). сменил бы ты команды, пока не поздно :). или можно вообще сократить до "ингров", для команды вполне сойдет.

Тролль 05.06.2008 22:45

*в шоке*
у меня врождённая грамотность! завтра будет исправленная версия:)

diver 06.06.2008 00:58

как вариант: вместо хука использовать альясы.

Тролль 06.06.2008 12:32

Вложений: 1
Исправлены команды, добавлен Readme.txt файлик.
Две папки: cook.win и cook.koi8-r. Читаем ридми из соотв. папки, делаем по инструкции.

Тролль 06.06.2008 12:34

Цитата:

Сообщение от diver (Сообщение 54284)
как вариант: вместо хука использовать альясы.

Э-э-э... как?
Как мы грузим ингредиенты? Мы "осматриваем" контейнер с инграми, и на каждый известный ингр срабатывает триггер. Как только ингры кончается, нам надо это отметить. Для этого и служит хук на промпт. Алиасами как сделать?

diver 06.06.2008 19:58

вместо хука на инпут, на отлов команд. можно альясы. тогда модуль будет автономным.

Тролль 07.06.2008 11:01

там нет хука на инпут. там есть хук на промпт. и алиасы.

Ladon 07.06.2008 15:11

можно поставить таймаут в триге и через 3 секунды отключать отлов ингров.


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

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