Register

Автор Тема: Немного об использовании AWE  (Прочитано 10106 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Лидаэн

  • Модераторы
  • Путешественник
  • *****
  • Сообщений: 291
  • Карма: 5
  • Пол: Мужской
  • Цепной кот
Как ни странно, AWE знает немало игроков. Некоторые даже пользуются им 8)
Предлагаю скидывать в данную тему интересные, странные, неправильные... Короче всё, что AWE вытворяет над билдерами.
Всем любителям флуда писать в данную тему не рекомендуется, пустые сообщения буду резать. Для фраз "это никому не надо" и т.д. и т.п. просьба создать другую ветку.
« Последнее редактирование: 28.01.08, 13:40:37 от Arris »
Иногда, от совершенства нас отделяет всего один шаг.
И очень жаль, что это шаг с балкона вниз...

Оффлайн Лидаэн

  • Модераторы
  • Путешественник
  • *****
  • Сообщений: 291
  • Карма: 5
  • Пол: Мужской
  • Цепной кот
Re: Немного об использовании AWE
« Ответ #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 - просьба тельнуть - справка на эту тему пуста... :(
« Последнее редактирование: 28.01.08, 13:41:02 от Arris »
Иногда, от совершенства нас отделяет всего один шаг.
И очень жаль, что это шаг с балкона вниз...

Оффлайн Deyar

  • Братство Ронинов
  • Герой
  • ****
  • Сообщений: 2062
  • Карма: -173
  • Пол: Мужской
Re: Немного об использовании AWE
« Ответ #2 : 28.01.08, 13:47:58 »
Мне кажется там висит time_prog на каждый час. Но еще перед выполнением команды включается задержка на пару бтиков рандомно, там вроде есть такой оператор. Как, например, задержка после взмахивания посохом у Тени в лососотне, только в лососотне она на игрока, а у поварихи на моба. Я щас уже не помню его, щас поищу )
« Последнее редактирование: 28.01.08, 14:17:10 от Arris »

Оффлайн Eanke

  • Бессмертные
  • Завсегдатай
  • *****
  • Сообщений: 26
  • Карма: 0
  • Пол: Женский
  • Закатное пламя
Re: Немного об использовании AWE
« Ответ #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

  • Братство Ронинов
  • Герой
  • ****
  • Сообщений: 2062
  • Карма: -173
  • Пол: Мужской
Re: Немного об использовании AWE
« Ответ #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

нет? :)

Оффлайн Лидаэн

  • Модераторы
  • Путешественник
  • *****
  • Сообщений: 291
  • Карма: 5
  • Пол: Мужской
  • Цепной кот
Re: Немного об использовании AWE
« Ответ #5 : 06.02.08, 20:41:24 »
О пустых строках в программах.
Когда-то  писал программы на "взрослых" языках программирования. И считал что например конструкция

if {условие}

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

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

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

Оффлайн Лидаэн

  • Модераторы
  • Путешественник
  • *****
  • Сообщений: 291
  • Карма: 5
  • Пол: Мужской
  • Цепной кот
Re: Немного об использовании AWE
« Ответ #6 : 06.02.08, 20:49:10 »
Совсем забыл)
rand_prog с небольшими параметрами (до 5 примерно) по словам Аланны можно использовать, если в небольших количествах. Становятся доступны многие программы и интересные алгоритмы.
Если я правильно понял Аланну, это не является секретной информацией, просто она не успела обновить справку. Надеюсь меня не стукнут за это сообщение:)
Иногда, от совершенства нас отделяет всего один шаг.
И очень жаль, что это шаг с балкона вниз...

Оффлайн Лидаэн

  • Модераторы
  • Путешественник
  • *****
  • Сообщений: 291
  • Карма: 5
  • Пол: Мужской
  • Цепной кот
Re: Немного об использовании AWE
« Ответ #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

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

Оффлайн Лидаэн

  • Модераторы
  • Путешественник
  • *****
  • Сообщений: 291
  • Карма: 5
  • Пол: Мужской
  • Цепной кот
Re: Немного об использовании AWE
« Ответ #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

  • Братство Ронинов
  • Герой
  • ****
  • Сообщений: 2062
  • Карма: -173
  • Пол: Мужской
Re: Немного об использовании AWE
« Ответ #9 : 29.02.08, 21:16:59 »
Я с мобпрогами еще не дружу, но разве не надо нечто, типа:

mpforce ilva kill $n
заменить на
mpforce ilva<VNUM моба> kill $n
или
mpforce ilva<VNUM моба> mpkill $n
?

Оффлайн Лидаэн

  • Модераторы
  • Путешественник
  • *****
  • Сообщений: 291
  • Карма: 5
  • Пол: Мужской
  • Цепной кот
Re: Немного об использовании AWE
« Ответ #10 : 29.02.08, 21:26:18 »
Цитировать
заменить на
mpforce ilva<VNUM моба> kill $n
В нашем случае не принципиально - двух мобов Ильва в комнате не будет по определению, так же как не может появиться и игрока с однокоренным именем.
Цитировать
mpforce ilva<VNUM моба> mpkill $n
Не понял откуда взялось mpkill, вообще впервые об этом слышу. А откуда это?
Иногда, от совершенства нас отделяет всего один шаг.
И очень жаль, что это шаг с балкона вниз...

Оффлайн Eanke

  • Бессмертные
  • Завсегдатай
  • *****
  • Сообщений: 26
  • Карма: 0
  • Пол: Женский
  • Закатное пламя
Re: Немного об использовании AWE
« Ответ #11 : 29.02.08, 21:37:24 »
mpkill
 
Моб начинает атаковать того, кто инициировал триггер.

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

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

mpforce ilva10001 murder $n


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

Оффлайн Eanke

  • Бессмертные
  • Завсегдатай
  • *****
  • Сообщений: 26
  • Карма: 0
  • Пол: Женский
  • Закатное пламя
Re: Немного об использовании AWE
« Ответ #12 : 29.02.08, 21:47:39 »
Ага.. Покопалась в мобпрогах :) Деяр был прав)

mpforce ilva10001 mpkill $n

Оффлайн Лидаэн

  • Модераторы
  • Путешественник
  • *****
  • Сообщений: 291
  • Карма: 5
  • Пол: Мужской
  • Цепной кот
Re: Немного об использовании AWE
« Ответ #13 : 29.02.08, 22:00:34 »
Цитировать
З.Ы. А у тебя так и есть пробел между mobinroom и (10001)? Я просто думала, что его там быть не должно
Пробела нет, это я по инерции поставил. Кстати сейчас для интереса проверил - оказывается и с пробелом прекрасно работает.
Цитировать
mpforce ilva10001 mpkill $n
Проверил - работает. Спасибо.
Остался первый вопрос - почему жабо не отдаётся Ильве. Хотя это можно обойти, просто любопытно если кто-то сможет обосновать.
Иногда, от совершенства нас отделяет всего один шаг.
И очень жаль, что это шаг с балкона вниз...

Оффлайн Eanke

  • Бессмертные
  • Завсегдатай
  • *****
  • Сообщений: 26
  • Карма: 0
  • Пол: Женский
  • Закатное пламя
Re: Немного об использовании AWE
« Ответ #14 : 29.02.08, 23:13:22 »
Ну, как вариант, попробовать прописать для жабо и ильвы внамы..
Так вроде бы все правильно.

Оффлайн Alanna

  • Бессмертные
  • Победитель нежити
  • *****
  • Сообщений: 613
  • Карма: 5
Re: Немного об использовании AWE
« Ответ #15 : 04.03.08, 21:47:31 »
У меня подобная программа работает. Надеюсь, Лидаэн "100" написал не в программе, а в триггере? И жабо в инвентаре, а не надето? И все все видят?
Для отладки программ полезно вставлять "трассировку" - строки типа mpecho 1, mpecho 2 и т.д., чтобы видеть, как отрабатывается программа.
Легконогая

Оффлайн Лидаэн

  • Модераторы
  • Путешественник
  • *****
  • Сообщений: 291
  • Карма: 5
  • Пол: Мужской
  • Цепной кот
Re: Немного об использовании AWE
« Ответ #16 : 11.03.08, 15:02:11 »
Вопрос:
"mpopenpassage", "mpclosepassage" открывает и закрывает проход между комнатами.
Имеется ли возможность задать краткое описание выводимое по команде "скан" в открываемом направлении?
Почему-то я этого не нашёл.. может не так или плохо искал?
Иногда, от совершенства нас отделяет всего один шаг.
И очень жаль, что это шаг с балкона вниз...

Оффлайн Alanna

  • Бессмертные
  • Победитель нежити
  • *****
  • Сообщений: 613
  • Карма: 5
Re: Немного об использовании AWE
« Ответ #17 : 11.03.08, 20:16:35 »
Такой возможности пока нет. Тем не менее, в прошлом году оператор mpopenpassage был доработан. Теперь он позволяет устанавливать флаги создаваемого выхода, ключ и ключевые слова. Это использовано в "Лабиринте проклятых". Как будет время, дополню файл bulletin.txt и включу туда доработки за 2007 год.
Легконогая