Форум online MUD игры АРДА
18.09.18, 21:27:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости:
 
   Начало   Помощь Поиск Календарь Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Немного об использовании AWE  (Прочитано 8559 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Лидаэн
Модераторы
Путешественник
*****

Карма: 4
Офлайн Офлайн

Пол: Мужской
Сообщений: 290


Цепной кот


« : 28.01.08, 13:10:33 »

Как ни странно, AWE знает немало игроков. Некоторые даже пользуются им Cool
Предлагаю скидывать в данную тему интересные, странные, неправильные... Короче всё, что AWE вытворяет над билдерами.
Всем любителям флуда писать в данную тему не рекомендуется, пустые сообщения буду резать. Для фраз "это никому не надо" и т.д. и т.п. просьба создать другую ветку.
« Последнее редактирование: 28.01.08, 13:40:37 от Arris » Записан

Иногда, от совершенства нас отделяет всего один шаг.
И очень жаль, что это шаг с балкона вниз...
Лидаэн
Модераторы
Путешественник
*****

Карма: 4
Офлайн Офлайн

Пол: Мужской
Сообщений: 290


Цепной кот


« Ответ #1 : 28.01.08, 13:12:56 »

Первый сюрприз приподнес тригер моба hour_prog
Справка AWE:
hour_prog (время) - срабатывает каждый час начиная с заданного(? ? ? ? ?)
По смыслу, можно понять, что если задать: "hour_prog 0", то программа будет срабатывать 1 раз в час, 24 часа в сутки (так же мне описали действие тригера другие игроки знающие AWE).
Это не так. На самом деле в промежуток с 0 до 1 часа ночи моб будет спамить заданную программу примерно раз в секунду.
Поэтому что бы получить срабатывание программы примерно 1 раз в час Арды необходимо использовать rand_prog или if rand()
Сопутствующий вопрос (скорее всего к Иммам): rand_prog - не рекомендуется использовать (см справку AWE), распространяется ли это на if rand()?
Второй сопутствующий вопрос: у кого есть что нибудь по использованию script_prog - просьба тельнуть - справка на эту тему пуста... Sad
« Последнее редактирование: 28.01.08, 13:41:02 от Arris » Записан

Иногда, от совершенства нас отделяет всего один шаг.
И очень жаль, что это шаг с балкона вниз...
Deyar
Братство Ронинов
Герой
****

Карма: -173
Офлайн Офлайн

Пол: Мужской
Сообщений: 2062


« Ответ #2 : 28.01.08, 13:47:58 »

Мне кажется там висит time_prog на каждый час. Но еще перед выполнением команды включается задержка на пару бтиков рандомно, там вроде есть такой оператор. Как, например, задержка после взмахивания посохом у Тени в лососотне, только в лососотне она на игрока, а у поварихи на моба. Я щас уже не помню его, щас поищу )
« Последнее редактирование: 28.01.08, 14:17:10 от Arris » Записан
Eanke
Бессмертные
Нуб
*****

Карма: 0
Офлайн Офлайн

Пол: Женский
Сообщений: 26


Закатное пламя


« Ответ #3 : 28.01.08, 14:22:43 »

По Алдарилу:
Цитировать
hour_prog <arg>

Параметры: число от 0 до 23 - местное время мада.

Срабатывает в указанное время мада в течении одного часа.

Программу можно использовать на моба или комнату.

 
Пример:
>hour_prog 9
триггер отрабатывает в течении часа, с 9 до 10 утра.

 
Особенности.

Данный триггер вызывается для проверки регулярно при обновлении мобов. Поэтому за один час по времени мада, он будет запускаться несколько раз(около 20). Этой особенностью hour_prog отличается от триггера time_prog, который запускается только один раз в указанное время мада.
В полночь время 24 часа, а не 0.

Почему не рекомендуется использовать rand_prog, написанно в справке AWE.
if rand() - это проверка условия, его вполне можно использовать.

time_prog сработает ОДИН раз в указанное время.
Записан
Deyar
Братство Ронинов
Герой
****

Карма: -173
Офлайн Офлайн

Пол: Мужской
Сообщений: 2062


« Ответ #4 : 28.01.08, 15:26:46 »

Воооот, вроде то, что хочет Лидаэн, как мну кажется)

time_prog 0
MPDELAY SELF 1-2-3-4-5(на выбор)
и тут сама мобпрога

time_prog 1
MPDELAY SELF 1-2-3-4-5(на выбор)
и тут тоже сама мобпрога

ну итп. можно рандом на делэй кинуть, чтоб когда 2 когда 10

нет? :)
Записан
Лидаэн
Модераторы
Путешественник
*****

Карма: 4
Офлайн Офлайн

Пол: Мужской
Сообщений: 290


Цепной кот


« Ответ #5 : 06.02.08, 20:41:24 »

О пустых строках в программах.
Когда-то  писал программы на "взрослых" языках программирования. И считал что например конструкция

if {условие}

if {условие}
чего-то там
endif
endif

имеет право на жизнь. Пустыми строками выделял блоки программы и было просто и понятно.
В AWE немножко не так. Приведённая выше программа не будет работать до тех пор, пока имеется пустая строка. В справке я этого не помню, или просто пропустил мимо внимания как нечто необъяснимое Smiley

Напрягало отсутствие возможности вставки комментариев.
Спасибо Эстэли, она подсказала что:
// Это блок искуственного интеллекта моего моба!!!
воспринимается AWE как комментарий. Стало проще. В справке опять же не помню такого.
Записан

Иногда, от совершенства нас отделяет всего один шаг.
И очень жаль, что это шаг с балкона вниз...
Лидаэн
Модераторы
Путешественник
*****

Карма: 4
Офлайн Офлайн

Пол: Мужской
Сообщений: 290


Цепной кот


« Ответ #6 : 06.02.08, 20:49:10 »

Совсем забыл)
rand_prog с небольшими параметрами (до 5 примерно) по словам Аланны можно использовать, если в небольших количествах. Становятся доступны многие программы и интересные алгоритмы.
Если я правильно понял Аланну, это не является секретной информацией, просто она не успела обновить справку. Надеюсь меня не стукнут за это сообщение:)
Записан

Иногда, от совершенства нас отделяет всего один шаг.
И очень жаль, что это шаг с балкона вниз...
Лидаэн
Модераторы
Путешественник
*****

Карма: 4
Офлайн Офлайн

Пол: Мужской
Сообщений: 290


Цепной кот


« Ответ #7 : 29.02.08, 19:52:53 »

Не знаю, глюк это или недокументированная особенность - помещаю сюда..
Вводная: В комнате стоят 2 моба, например: linni и ilva (vnum моба ilva=10001)
У linni есть предмет jabot
Создаём программу:
death_prog
100
if mobinroom (10001) > 0
give jabot ilva
endif

Что должно произойти (я так считал): в момент смерти моб должен отдать жабо Ильве.
На практике, моб умирает и игрок забирает с трупа жабо.
Кто сможет объяснить почему - буду благодарен.
Записан

Иногда, от совершенства нас отделяет всего один шаг.
И очень жаль, что это шаг с балкона вниз...
Лидаэн
Модераторы
Путешественник
*****

Карма: 4
Офлайн Офлайн

Пол: Мужской
Сообщений: 290


Цепной кот


« Ответ #8 : 29.02.08, 20:21:29 »

И ещё одна прога...
Те же действующие лица, моб linni и моб ilva (vnum моба ilva = 10001)
Изначально в комнате Ильвы нет, Линни стоит одна.
Вешаем прогу на Линни:

fight_prog
100
if mobinroom (10001) > 0
else
  yell Ильва, меня обижают!
  mpmload 10001
  mpecho Ильва прибежала доставая длинный ножик!
  mpforce ilva tell $n Ну все... Тебе не уйти злыдень!
  mpforce ilva kill $n
endif

Что должно произойти:
во время боя, если моба Ильва нет в комнате он создаётся, созданный моб угрожает игроку и сразу атакует. На практике (Лог):


Ударом кулака Линни не попадает в вас.
Ударом кулака Линни не попадает в вас.
Линни заорала 'Ильва, меня обижают!'
Ильва прибежала доставая длинный ножик!
Ильва говорит вам 'Ну все... Тебе не уйти злыдень!'
Ударом кинжала вы подкашиваете Линни!
...
...
look
Комната испытаний.
Тут проходят проверку программы и умирают проверочные мобы.
Выходы: север юг.
Линни сражаетсЯ с ВАМИ!
Ильва стоит ковыряя в носу.
...
Поток серных брызг <-размельчает-> Линни!
Линни убита!

look
Комната испытаний.
Тут проходят проверку программы и умирают проверочные мобы.
Выходы: север юг.
Лужица крови вытекла из чьего-то трупа.
У ваших ног лежит труп Линни.
Мозги Линни лежат в луже крови.
Ильва стоит ковыряя в носу.


Как видно из лога, переменная $n определена правильно и ей присвоен игрок (сработавший tell), но нападать моб почему то не хочет.
Иногда Ильва успевает сасистить и нападает на игрока, но не всегда и это не то, что мне надо.
Кто сможет объяснить что не так - большое спасибо.
Записан

Иногда, от совершенства нас отделяет всего один шаг.
И очень жаль, что это шаг с балкона вниз...
Deyar
Братство Ронинов
Герой
****

Карма: -173
Офлайн Офлайн

Пол: Мужской
Сообщений: 2062


« Ответ #9 : 29.02.08, 21:16:59 »

Я с мобпрогами еще не дружу, но разве не надо нечто, типа:

mpforce ilva kill $n
заменить на
mpforce ilva<VNUM моба> kill $n
или
mpforce ilva<VNUM моба> mpkill $n
?
Записан
Лидаэн
Модераторы
Путешественник
*****

Карма: 4
Офлайн Офлайн

Пол: Мужской
Сообщений: 290


Цепной кот


« Ответ #10 : 29.02.08, 21:26:18 »

Цитировать
заменить на
mpforce ilva<VNUM моба> kill $n
В нашем случае не принципиально - двух мобов Ильва в комнате не будет по определению, так же как не может появиться и игрока с однокоренным именем.
Цитировать
mpforce ilva<VNUM моба> mpkill $n
Не понял откуда взялось mpkill, вообще впервые об этом слышу. А откуда это?
Записан

Иногда, от совершенства нас отделяет всего один шаг.
И очень жаль, что это шаг с балкона вниз...
Eanke
Бессмертные
Нуб
*****

Карма: 0
Офлайн Офлайн

Пол: Женский
Сообщений: 26


Закатное пламя


« Ответ #11 : 29.02.08, 21:37:24 »

mpkill
 
Моб начинает атаковать того, кто инициировал триггер.

Синтаксис:
mpkill $n

Сработает, если программа висит на мобе.
Хотя в твоем случае скорее надо просто написать:

mpforce ilva10001 murder $n


З.Ы. А у тебя так и есть пробел между mobinroom и (10001)? Я просто думала, что его там быть не должно Smiley
Записан
Eanke
Бессмертные
Нуб
*****

Карма: 0
Офлайн Офлайн

Пол: Женский
Сообщений: 26


Закатное пламя


« Ответ #12 : 29.02.08, 21:47:39 »

Ага.. Покопалась в мобпрогах Smiley Деяр был прав)

mpforce ilva10001 mpkill $n
Записан
Лидаэн
Модераторы
Путешественник
*****

Карма: 4
Офлайн Офлайн

Пол: Мужской
Сообщений: 290


Цепной кот


« Ответ #13 : 29.02.08, 22:00:34 »

Цитировать
З.Ы. А у тебя так и есть пробел между mobinroom и (10001)? Я просто думала, что его там быть не должно
Пробела нет, это я по инерции поставил. Кстати сейчас для интереса проверил - оказывается и с пробелом прекрасно работает.
Цитировать
mpforce ilva10001 mpkill $n
Проверил - работает. Спасибо.
Остался первый вопрос - почему жабо не отдаётся Ильве. Хотя это можно обойти, просто любопытно если кто-то сможет обосновать.
Записан

Иногда, от совершенства нас отделяет всего один шаг.
И очень жаль, что это шаг с балкона вниз...
Eanke
Бессмертные
Нуб
*****

Карма: 0
Офлайн Офлайн

Пол: Женский
Сообщений: 26


Закатное пламя


« Ответ #14 : 29.02.08, 23:13:22 »

Ну, как вариант, попробовать прописать для жабо и ильвы внамы..
Так вроде бы все правильно.
Записан
Alanna
Бессмертные
Победитель нежити
*****

Карма: 5
Офлайн Офлайн

Сообщений: 614



« Ответ #15 : 04.03.08, 21:47:31 »

У меня подобная программа работает. Надеюсь, Лидаэн "100" написал не в программе, а в триггере? И жабо в инвентаре, а не надето? И все все видят?
Для отладки программ полезно вставлять "трассировку" - строки типа mpecho 1, mpecho 2 и т.д., чтобы видеть, как отрабатывается программа.
Записан

Легконогая
Лидаэн
Модераторы
Путешественник
*****

Карма: 4
Офлайн Офлайн

Пол: Мужской
Сообщений: 290


Цепной кот


« Ответ #16 : 11.03.08, 15:02:11 »

Вопрос:
"mpopenpassage", "mpclosepassage" открывает и закрывает проход между комнатами.
Имеется ли возможность задать краткое описание выводимое по команде "скан" в открываемом направлении?
Почему-то я этого не нашёл.. может не так или плохо искал?
Записан

Иногда, от совершенства нас отделяет всего один шаг.
И очень жаль, что это шаг с балкона вниз...
Alanna
Бессмертные
Победитель нежити
*****

Карма: 5
Офлайн Офлайн

Сообщений: 614



« Ответ #17 : 11.03.08, 20:16:35 »

Такой возможности пока нет. Тем не менее, в прошлом году оператор mpopenpassage был доработан. Теперь он позволяет устанавливать флаги создаваемого выхода, ключ и ключевые слова. Это использовано в "Лабиринте проклятых". Как будет время, дополню файл bulletin.txt и включу туда доработки за 2007 год.
Записан

Легконогая
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0.13 секунд. Запросов: 26.