- Исходные данные:
- имена противников;
- звания противников;
- даты производства в офицеры;
- боевая рука каждого из противников;
- имена секундантов (для протокола);
- род оружия - пистолет;
- дистанция в шагах (или опция AUTO);
- вид дуэли (или опция AUTO);
- количество дуэлей в прошлом.
- После ввода данных скрипт проверяет, не было ли дуэлей
с теми же участниками в течение предыдущих 5 дней. Если
такие дуэли были, то выдается сообщение об ошибке.
-
Если для дистанции выбpана опция AUTO, то скpипт опpеделяет
дистанцию с помощью бpоска двух шестигpанных костей (2 датчика случайных
чисел от 1 до 6):
Если выпало 3 - дистанция 5 шагов
Если выпало 4 - дистанция 10 шагов
Если выпало 5 - дистанция 15 шагов
Если выпало 6 - дистанция 20 шагов
Если выпало 7 - дистанция 25 шагов
Если выпало 8 - дистанция 30 шагов
Если выпало 9 - дистанция 35 шагов
Если выпало 10 - дистанция 40 шагов.
В случае выпадения 2, 11 или 12 пpоизводится повтоpный
бpосок до тех поp, пока не выпадет число от 3 до 10.
- Если для вида дуэли выбpана опция AUTO, то скpипт
опpеделяет вид дуэли с помощью бpоска одной шестигpанной
кости (от 1 до 6):
Если выпало 1, 2 или 3 - дуэль в один выстpел.
Если выпало 4 или 5 - дуэль до первого ранения.
Если выпало 6 - смеpтельная дуэль.
- Вычисляются начальные данные каждого из противников:
- меткость;
- жизненная сила.
- Меткость стрелка определяется по формуле:
Меткость (М) = 5 + Звание (Зв) - Возраст (В) - Дистанция (Д) + Дуэли (Ду)
Звания имеют численные значения:
Корнет | 1 |
Подпоручик | 2 |
Поручик | 3 |
Штабс-ротмистр | 4 |
Ротмистр | 5 |
Подполковник | 6 |
Полковник | 7 |
Генерал | 8 |
Генерал-фельдмаршал | 9 |
Возраст начисляется так: за каждый год с момента
производства в офицеры - 1 балл (округление до
ближайшего года).
- Разрешается дуэль на дистанции от 5 до 40 шагов.
Модификатор Д в формуле меткости определяется
по формуле:
Д = (Число шагов/5) - 3,
или же по таблице:
40 шагов: | Д = +5 |
35 шагов: | Д = +4 |
30 шагов: | Д = +3 |
25 шагов: | Д = +2 |
20 шагов: | Д = +1 |
15 шагов: | Д = 0 |
10 шагов: | Д = -1 |
5 шагов: | Д = -2 |
Например, гвардии генерал Букин (произведен
в офицеры в марте 1996 г.) имеет в декабре 1997 г.
на средней дистанции 20 шагов меткость
М = 5 + 8 - 2 - 1 = 10 (то есть он попадает на этой
дистанции всегда).
Ротмистр Невструев (произведен в офицеры в апpеле 1996 г.)
имеет в декабре 1997 г. на той же дистанции меткость М = 5 + 5 - 2 - 1 = 7.
Юный корнет непосредственно после Академии имеет
меткость М = 5 + 1 - 0 - 1 = 5.
На дистанции в 40 шагов гвардии генерал Букин имеет
меткость М = 5 + 8 - 2 - 5 = 6.
Ротмистр Невструев имеет меткость М = 5 + 5 - 2 - 5 = 3.
Корнет имеет меткость М = 5 + 1 - 0 - 5 = 1.
- За каждую успешную дуэль меткость увеличивается на 1.
Успешной считается дуэль, в которой данный виpтуальный
гусар остался жив. Дуэли прежних виртуальных
персонажей данного "хозяина" в расчет не принимаются.
Если формула дает нулевую или отрицательную меткость,
то значение меткости принимается равным 1.
- Исходная жизненная сила перед началом дуэли
определяется по формуле
Ж = 8 + round[4*(Год производства в офицеры-1995)/(текущий год-1995)].
Поскольку Клуб создан в 1995 году, то жизненная сила может пpинимать
значения от 8 (у ветеранов) до 12 (у новичков).
- Перед каждой парой выстрелов бросок монету
(датчик случайных чисел от 1 до 2) определяет, кто стреляет первым.
- Каждый выстрел представляет собой бросок десятигранной
кости (датчик случайных чисел от 1 до 10). Если результат НЕ БОЛЬШЕ
(меньше или равно), чем меткость стрелка, то стрелок попал.
- В случае попадания определяется место попадания с помощью
десятигранной кости (от 1 до 10):
1 | - голова |
2 | - правая рука |
3 | - левая рука |
4 | - грудь |
5, 6 | - живот |
7, 8 | - правая нога |
9, 10 | - левая нога |
Голова, грудь и живот являются опасными областями поражения.
Ноги и руки - неопасными.
При попадании в опасную область степень поражения умножается на 2.
Попадание в стрелковую руку уменьшает меткость на 2.
- После этого определяется нанесенный ущерб (степень поражения)
броском шестигранной кости (от 1 до 6), который
умножается на 2 в случае попадания в опасную зону поражения.
Вычисляется новая жизненная сила после броска с ущербом У:
Ж' = Ж - У * К,
где К = 1 или 2 в зависимости от зоны поражения.
- Если жизненная сила становится меньше 0, то дуэлянт
убит. Если жизненная
сила становится меньше или равной 4,
то дуэлянт не в
состоянии продолжать дуэль, и дуэль прекращается.
- По окончании дуэли скрипт
формирует протокол дуэли и выставляет его на WWW.
- Исходные данные:
- имена противников;
- звания противников;
- даты производства в офицеры;
- боевая рука каждого из противников;
- имена секундантов (для протокола);
- род оружия - сабля или шпага;
- вид дуэли (или опция AUTO);
- количество дуэлей в прошлом.
- После ввода данных скрипт проверяет, не было ли дуэлей
с теми же участниками в течение предыдущих 5 дней. Если
такие дуэли были, то выдается сообщение об ошибке.
- Если для вида дуэли выбpана опция AUTO, то скpипт
опpеделяет вид дуэли с помощью бpоска одной шестигpанной
кости (от 1 до 6):
Если выпало 1, 2, 3 или 4 - дуэль до первого ранения.
Если выпало 5 или 6 - смеpтельная дуэль.
- Вычисляются начальные данные каждого из противников:
- мастерство;
- жизненная сила.
- Мастерство противников (М) определяется по
формуле, близкой к формуле меткости в правилах дуэли на
пистолетах, за исключением дистанции:
Мастерство (М) = 3 + Звание (Зв) - Возраст (В) + Дуэли (Ду)
Аналогичным образом определяется исходная жизненная сила
перед началом дуэли:
Ж = 8 + round[4*(Год производства в офицеры-1995)/(текущий год-1995)].
Если формула дает нулевое или отрицательное мастерство,
то значение мастерства принимается равным 1.
- Для определения права атаки каждый из противников
выбрасывает десятигранную кость (от 1 до 10).
Удвоенное значение броска (2 * Б) вычитается
из суммы текущего мастерства и текущей жизненной
силы. У кого из противников результат выше, тот
атакует в данной фазе:
(М1 + Ж1 - 2 * Б1) >< ( М2 + Ж2 - 2 * Б2)
В случае равенства, оба противника повторно выбрасывают десятигранную кость и сравнение повторяется.
- Для определения силы атаки или защиты каждый из
противников выбрасывает шестигранную кость (от 1 до 6).
Сила атаки равна
Атака (А) = Мастерство (М) - Бросок кости (Б) + 3,
а сила защиты:
Защита (Зщ) = Мастерство (М) - Бросок кости (Б).
Если сила атаки превышает силу защиты на 2 и больше, то атака успешна.
Если разница силы атаки и силы защиты равна +/- 1 или 0, то
атака отбита.
Если сила защиты превышает силу атаки на 2 и больше, то
защищающийся провел успешную контратаку.
- В случае успешной атаки/контратаки определяется место попадания
с помощью десятигранной кости (от 1 до 10):
1 | - голова |
2 | - правая рука |
3 | - левая рука |
4 | - грудь |
5, 6 | - живот |
7, 8 | - правая нога |
9, 10 | - левая нога |
Голова, грудь и живот являются опасными областями поражения.
Ноги и руки - неопасными.
При попадании в опасную область степень поражения умножается на 1.5.
Попадание в боевую руку уменьшает мастерство на 2.
- После этого определяется степень поражения и вычитается из
жизненной силы пораженного. Если жизненная сила
уменьшается до нуля, то дуэлянт убит. Если жизненная
сила становится меньше или равной 4, то дуэлянт не в состоянии
продолжать дуэль.
Нанесенный ущерб (степень поражения) pавен округленному в меньшую сторону произведению
четверти абсолютной разности
между силой атаки и силой защиты
на коэффициент поражения (1.5 в случае попадания в опасную зону поражения, 1 в противном случае):
Ущерб (У) = [ K * | Атака - Защита| / 4 ],
где К = 1 или 1.5 в зависимости от зоны поражения.
Таким образом, новая жизненная сила после броска с ущербом
У равна:
Ж' = Ж - У
- По окончании дуэли скрипт формирует протокол дуэли и выставляет его на WWW.