Группа guest
Здесь будут изложены тонкости поведения действующей боевой системы. Прежде чем создавать очередную тему, вроде «ААА, ГЛЮК, КОРАБЛИ НЕ ВОЮЮТ!!!!111», убедитесь, что всё нижеизложенное вы прочитали.
Итак, на данный момент, боевая система (именуемая «версией 3») состоит из следующих модулей:
- вычислительная часть, которая принимает данные о флотах и свойствах боевых единиц/технологий, рассчитывает ход боя и выдаёт лог;
- таблицы данных, которые хранят информацию о поведении единиц в бою;
- скрипты сопряжения, которые занимаются вводом/выводом данных.
Вычислительное ядро устроено таким образом, что частично провести бой оно не может: либо бой проходит и выдаётся лог, либо лог не выдаётся вообще. Система сопряжения в последнем случае может лишь развернуть атакующие флоты назад на базу. Поэтому, столь популярные «пустые» бои являются индикатором ошибки в одном из двух компонентов: ядро или таблицы.
Отличить ошибку в ядре от ошибки в таблицах можно следующим образом: если «пустые» бои в данный момент идут у всех — значит, нарушена структура таблиц и ядро просто отказывается обсчитывать любой бой. Возникнуть такая ситуация может при правке баланса — таблицы не очень-то human-readable и допустить ошибку при их редактировании довольно легко. Дружно забивать форум «Ловим баги» своими сообщениями в такой ситуации не следует.
Если ваш случай «пустого» боя относительно уникален — сообщать об этом на форуме тоже необязательно. Во всяком случае, открывать новую тему на форуме точно не надо, достаточно оставить сигнал о появлении ошибки в этой теме. Система сопряжения сохранит все параметры, которые привели к появлению ошибки, по ним гораздо легче разобраться, чем по вашим описаниям.
Теперь о логах, которые выдаёт боевая система. Первоначально они предназначались для отладки ядра, но специально для забавления пользователей кое-что из отладочной информации выдаётся. Суммарные статистические данные по стекам служат той же цели (и для преемственности со старой системой). На данный момент, логи обладают следующими особенностями:
- суммарная статистика никак не влияет на расчёт боя, она лишь отражает текущее состояние;
- статистика по шиту и здоровью рассчитывается без каких-либо хитростей — это суммарные значения для всех кораблей такого типа;
- статистика по выстрелам считается по всем произведённым атакам, независимо от их результата (под атакой понимается обычная атака, способности в расчёт не входят);
- статистика по урону представляетпочти реальный нанесённый урон — единственная неточность при подсчёте заключается в том, что считается весь урон от попавшего в живую цель выстрела, а не количество уничтоженной структуры (для примера, представьте себе линкор и РУ) считается количество уничтоженной брони противника, а не сумма номинального урона всех выстрелов; урон по уже сбитым целям в этой графе не учитывается;
- зелёно-красная полоска показывает среднее состояние структуры всех кораблей данного типа.
Комментарии к раунду — это отдельный разговор:
- самое главное, что здесь нужно помнить — независимо от количества выданных в лог комментариев, все выстрелы/смерти/восстановления будут рассчитаны;
- комментарии сохраняют данные о выстрелах прямой атакойи Орудием Ямато, других атак в игре пока нет специальными атаками (Ямато, Радиация и т. п.);
- несмотря на то, что гибель единицы записывается в лог сразу после фатального выстрела, фактически единица будет убрана из боя только по окончании раунда (если это не первоочередная цель);
- развёрнутые комментарии о восстановлении щитов, регенерации и пр. не выдаются (раньше они использовались для отладки);
- нумерация единиц в логе — сквозная: перед боем все флоты атакующего «сваливаются в кучу» (флоты обороняющегося — в другую), поэтому единственная единица из какого-либо флота может быть хоть тысячной в списке, если перед этим флотом идут несколько более крупных;
- нумерация обновляется в каждом раунде, после удаления всех сбитых единиц из общей кучи; информация о состоянии каждого конкретного корабля при этом не теряется;
- в лог для каждого раунда с каждой стороны помещаются не более1000 500 записей, прочие отбрасываются; ещё раз повторю, что расчёт боя всегда происходит полностью.
Особенности проведения атак:
- цель каждого выстрела выбирается абсолютно случайно из всей кучи противников; супер-акция «отправь в атаку ЗС и ЛИ и получи вдвое меньше урона по ЗС в первом раунде!» работает на отлично; единственное исключение при выборе — первоочередные цели;
- расчёт скорострела производится при каждом выстреле и зависит от текущей цели: вероятность повторного выстрела равна (R(A;D) - 1)/R(A;D), где R(A;D) — среднее число выстрелов единицы A по единице D, указанное с описаниях (не факт, что описания всегда соответствуют внесённым за последнее время изменениям в таблицы боевой системы);
- «первоочередная цель» — такие единицы принимают на себя первые вражеские удары, при этом ониудаляются из боя сразу после получения несовместимых с жизнью повреждений (а не в конце раунда, как прочие цели) становятся «обычными» после того, как их щит снижен до 0; после уничтожения щита первоочередных целей в том же раунде могут быть атакованы все остальные. Список первоочередных целей на данный момент: Малый щитовой купол, Большой щитовой купол, Планетарная защита;
- «самоубийца» - эти единицы погибают, если наносят урон; в случае, когда камикадзе выбирает уже уничтоженную цель, то урона он не наносит и остаётся жить до следующего раунда (если его, конечно, никто не собъёт в этом). Если камикадзе был сбит в том же раунде, когда он атаковал, его атаку это не остановит. Список самоубийц на данный момент: Плеть.
Итак, на данный момент, боевая система (именуемая «версией 3») состоит из следующих модулей:
- вычислительная часть, которая принимает данные о флотах и свойствах боевых единиц/технологий, рассчитывает ход боя и выдаёт лог;
- таблицы данных, которые хранят информацию о поведении единиц в бою;
- скрипты сопряжения, которые занимаются вводом/выводом данных.
Вычислительное ядро устроено таким образом, что частично провести бой оно не может: либо бой проходит и выдаётся лог, либо лог не выдаётся вообще. Система сопряжения в последнем случае может лишь развернуть атакующие флоты назад на базу. Поэтому, столь популярные «пустые» бои являются индикатором ошибки в одном из двух компонентов: ядро или таблицы.
Отличить ошибку в ядре от ошибки в таблицах можно следующим образом: если «пустые» бои в данный момент идут у всех — значит, нарушена структура таблиц и ядро просто отказывается обсчитывать любой бой. Возникнуть такая ситуация может при правке баланса — таблицы не очень-то human-readable и допустить ошибку при их редактировании довольно легко. Дружно забивать форум «Ловим баги» своими сообщениями в такой ситуации не следует.
Если ваш случай «пустого» боя относительно уникален — сообщать об этом на форуме тоже необязательно. Во всяком случае, открывать новую тему на форуме точно не надо, достаточно оставить сигнал о появлении ошибки в этой теме. Система сопряжения сохранит все параметры, которые привели к появлению ошибки, по ним гораздо легче разобраться, чем по вашим описаниям.
Теперь о логах, которые выдаёт боевая система. Первоначально они предназначались для отладки ядра, но специально для забавления пользователей кое-что из отладочной информации выдаётся. Суммарные статистические данные по стекам служат той же цели (и для преемственности со старой системой). На данный момент, логи обладают следующими особенностями:
- суммарная статистика никак не влияет на расчёт боя, она лишь отражает текущее состояние;
- статистика по шиту и здоровью рассчитывается без каких-либо хитростей — это суммарные значения для всех кораблей такого типа;
- статистика по выстрелам считается по всем произведённым атакам, независимо от их результата (под атакой понимается обычная атака, способности в расчёт не входят);
- статистика по урону представляет
- зелёно-красная полоска показывает среднее состояние структуры всех кораблей данного типа.
Комментарии к раунду — это отдельный разговор:
- самое главное, что здесь нужно помнить — независимо от количества выданных в лог комментариев, все выстрелы/смерти/восстановления будут рассчитаны;
- комментарии сохраняют данные о выстрелах прямой атакой
- несмотря на то, что гибель единицы записывается в лог сразу после фатального выстрела, фактически единица будет убрана из боя только по окончании раунда (если это не первоочередная цель);
- развёрнутые комментарии о восстановлении щитов, регенерации и пр. не выдаются (раньше они использовались для отладки);
- нумерация единиц в логе — сквозная: перед боем все флоты атакующего «сваливаются в кучу» (флоты обороняющегося — в другую), поэтому единственная единица из какого-либо флота может быть хоть тысячной в списке, если перед этим флотом идут несколько более крупных;
- нумерация обновляется в каждом раунде, после удаления всех сбитых единиц из общей кучи; информация о состоянии каждого конкретного корабля при этом не теряется;
- в лог для каждого раунда с каждой стороны помещаются не более
Особенности проведения атак:
- цель каждого выстрела выбирается абсолютно случайно из всей кучи противников; супер-акция «отправь в атаку ЗС и ЛИ и получи вдвое меньше урона по ЗС в первом раунде!» работает на отлично; единственное исключение при выборе — первоочередные цели;
- расчёт скорострела производится при каждом выстреле и зависит от текущей цели: вероятность повторного выстрела равна (R(A;D) - 1)/R(A;D), где R(A;D) — среднее число выстрелов единицы A по единице D, указанное с описаниях (не факт, что описания всегда соответствуют внесённым за последнее время изменениям в таблицы боевой системы);
- «первоочередная цель» — такие единицы принимают на себя первые вражеские удары, при этом они
- «самоубийца» - эти единицы погибают, если наносят урон; в случае, когда камикадзе выбирает уже уничтоженную цель, то урона он не наносит и остаётся жить до следующего раунда (если его, конечно, никто не собъёт в этом). Если камикадзе был сбит в том же раунде, когда он атаковал, его атаку это не остановит. Список самоубийц на данный момент: Плеть.
5 Октября 2009 21:06:46
Восстановление обороны.
Для каждого типа оборонительных сооружений высчитывается своё количество восстанавливаемых после боя единиц. Процент восстановления, указанный в описании, используется при этом следующим образом:
- если число единиц данного типа не больше 10, то для каждой из них высчитывается индивидуальный шанс на восстановление; при большом везении можно и 10 из 10 получить обратно;
- если число единиц данного типа больше 10, то восстанавливаемое количество рассчитывается как [потерянное количество]*([процент восстановления]±10)/100; терранская оборона в таком случае восстановит от 60 до 80 процентов потерь, крип-колонии ксерджей - от 70 до 90 и так далее.
Для каждого типа оборонительных сооружений высчитывается своё количество восстанавливаемых после боя единиц. Процент восстановления, указанный в описании, используется при этом следующим образом:
- если число единиц данного типа не больше 10, то для каждой из них высчитывается индивидуальный шанс на восстановление; при большом везении можно и 10 из 10 получить обратно;
- если число единиц данного типа больше 10, то восстанавливаемое количество рассчитывается как [потерянное количество]*([процент восстановления]±10)/100; терранская оборона в таком случае восстановит от 60 до 80 процентов потерь, крип-колонии ксерджей - от 70 до 90 и так далее.
11 Ноября 2009 23:27:28
«
· ATLAS Database ·
»
Информация
Вы не авторизованы
2 чел. читают эту тему (гостей: 2)
Пользователей: 0 Claude Bot