Вестник Мафоякии
22:21 26-04-2003 Провалившаяся операция без названия
Дословный вариант заявки и ответ Меленис.


int main() //
{

Днем бью Совку книжкой Кайнега; выписываю доверенность на просмотр моего состояния Маерду; Маерд имеет право юзать мою Immunity;

После того, как Доминейт станет неюзаным, но до повешения складываю все мои и Кайнеговские вещи и деньги Эрейниону (не Кентавру);

Ночью забираю по необходимости (см.ниже), поюзав, сразу возвращаю Эрейниону на хранение;

//теперь начался ужас
Если (вешают не Штурмера и Xirax ночью не обкнижен и не парализован);
то
{
Если protection(Kaineg)=true ;
то
Chaoscast(xirax, Centaur);
}

Если (вешают Штурмера или Xirax ночью обкнижен или парализован);
то
{
Если protection(Ereinion)=true;
то
Chaoscast(uncle reaper, Centaur);
Эрейнион применяет Доминейт на Виолу в режиме мафояка;
Виола пускает себе пулю в лоб;
}

}


процедура Chaoscast (caster, teleportafter)
{
caster получает в наличие два крамбла Кайнега, Набор Вуду Кайнега, Амулет защиты Кайнега, крамбл Ксиракса, Дрейн Ксиракса, 2 антинекроса Ксиракса, 2 крамбла Ttei.

caster по очереди крамблит Набор вуду, Амулет защиты, дрейн и 2 антинекроса-итого 45-5=40 ман;
(если был скастован Манашорт, то кастер получает 1 начальную ману алхимией)

caster берет телепорт Ксиракса, телепортируется после teleportafter;

caster кастует хаос;
}



функция protection (beholder)
{
beholder ждет до конца первой фазы ночью;

Если к тому времени кто-то один(не больше) телепортировался;
то
{
beholder получает в наличие Глаз Бехолдера Кайнега и применяет его в режиме паралича на телепортировавшегося;
}

Если к концу первой фазы ночи и до активации Chaoscast телепортировалось более одного камрада;
то
return false;
в противном случае
return true;
}


Перевод на русский язык:
Или я, или Рипер (в зависимости от повешенности Штурмера и моего состояния) ночью крамблит шмотки, телепортится после Кентавра и кастит хаос.
Если это Рипер, то Эрейнион доминирует Виолу.
А еще Кайнег или Эрейнион Глазом Бехолдера пресекают возможные попытки телепортироваться у остальных камрадов.
Прошу не убивать никого от одиночества до наступления утра

Дополнительно: Кайнег твидлит мне Доминейт твидлом от Маерда, Маерд отправляет Штурмера в Бразилию, S-11 лупит Call Lightning на М-Х, SB вешает на Маерда иммунити.


Процедура Chaoscast вывалилась с необработанным exception'ом из-за несработавшего телепорта.


Субьективный рейтинг сложности операции: 8
Затраты: Уууу....

Xirax

отредактировано: 28-04-2003 01:54 - Xirax

Комментарии:
Shadow-11
00:44 27-04-2003
Видимо, скоро все заявки как программы пойдут
vakito
04:42 27-04-2003
ИМХО, переходите на Паскакаль
Maerd
10:55 27-04-2003
vakito
Ну да, пора уже разработать язык заявок в мафии, или на ещё что-нибудь более известное переходить. И дебаггер написать

отредактировано: 27-04-2003 10:57 - Maerd

vakito
14:36 27-04-2003
Maerd
Ага. и написать оболочку языка заявок. И автотестер с проверкой всех возможных вариантов. А также встроенные процедуры, например "chain_lightninig" или "call_chaos"
Кто берется?
vakito
14:39 27-04-2003
Субьективный рейтинг сложности операции: 9
Многовато поставил, ИМХО. Смысл был такой: хаос в любом случае, чтобы не предпринял враг. Враг предпринял такое, что план не сработал. Значит нашел дырку, не зная о плане. ИМХО, в очень сложном плане это нереально вот так взять и угадать.
Kaineg
16:00 27-04-2003
А всего-то и надо было написать дополнительно:
ЕСЛИ телепорт провалился (от любых причин), ТО осуществить телепорт с другим кастером.

отредактировано: 27-04-2003 16:01 - Kaineg

Anafay
19:36 27-04-2003
Kaineg
И со вторым кастером бы провалился, и с третьим...

Xirax
Если взялся писать скриптом - юзай DbC. От подобных ошибок спасет:
   teleport(after) is
   -- Телепортирует игрока после after
      require
         Не окнижен
         mp>=10
         Есть непоюзанный свиток Телепорта
         Нет препятствий кастовать
      do
         ...
      ensure
         Свиток телепорта поюзан
         Телепортировался после after
         mp.is_equal(old mp-10)
      rescue
         if mp>=10 and then Есть непоюзанный Teleport then
            retry
         end
      end


Так же, думаю, ответ писался ДО того, как был переведен на ману Штурмер, поскольку смерть некроманта заставала скрипт еще на функции protection.

отредактировано: 27-04-2003 19:38 - Anafay

Kaineg
20:37 27-04-2003
Anafay
Почему?
1й кастер кастует телепорт. Вы на него (по триггеру) -- спеллбласт.
Срабатывает альтернативный вариант -- 2й кастер кастует телепорт. Вы на него (по тому же триггеру) -- опять спеллбласт. Вопрос упирается в количество спеллбластов и телепортов.
Anafay
21:40 27-04-2003
Kaineg
У нас была заявка до 3 спеллбластов: на Телепорты, Резурректы и Лайт.
Xirax
01:18 28-04-2003
Anafay
Мда. Как насчет того, чтобы Визард Лок зашишал и от Бласта тоже?

А вообше давно пора зафигачить класс "игрок" для C++

отредактировано: 28-04-2003 01:19 - Xirax

Anafay
01:35 28-04-2003
Xirax
От него Spell Protect есть.

отредактировано: 28-04-2003 01:35 - Anafay

Anafay
01:40 28-04-2003
Такого класса не существует и существовать не может в принципе. Ибо одним классом тут явно не отделаешься. И еще плюсы: см http://www.gobosoft.com/
Maerd
04:11 28-04-2003
2 Anafay
Если не секрет, то каким образом была сделана заявка на блокирование Light-а? Его же может кто угодно кастануть, и это не телепорт: того, кто применяет "Свет" не видать.
Anafay
05:40 28-04-2003
Maerd
По нашим прикидкам, наибольшее количество маны оставалось у Супер Буббы и Стома. По ним они бы и пошли.