Ну-с, напишем про секунду.
Основная посылка данного поста: Кто первым вышел, тот первым и придет.
Начнем с того, что в травиане есть минимум четыре очереди событий (с) Кириллоид:
1. Движение войск – атаки, подкрепы, возвращения из подкрепления, возвращение после атаки.
2. Стройка
3. Движение торговцев
4. Постройка войск.
Нас интересуют первые три (и их взаимодействие друг с другом).
Каждая очередь представляет собой обычную очередь класса FIFO – кто
первый встал в очередь, тот первый получает плюшки на выходе.
Выяснено, что Стройка и Ресурсы отрабатываются в начале, потом отрабатывается Атака:
- Если в одну секунду достраивается здание и приходят катапульты -
здание будет разрушено, независимо от того, что было раньше (отправка
войск, а потом постройка - или наоборот) - проверено мной.
- Если в одну секунду приходят торговцы и войска, то ресурсы будут
ограблены, независимо от того, что было раньше (отправка ресурсов а
потом войск - или наоборот) - проверенно Кириллоидом.
Взаимодействие Стройки и Ресурсов (что отрабатываеся раньше) пока неустановленно.
Ситуация, рассматриваемая в данном примере заключается в следующем:
ночью игрок атаковал деревню другого игрока, его войска возвращаются
домой, враги решают отомстить, действие разворачивается в течение дня.
в
3 часа ночи приходит ударка на вражескую деревню, отбомбилась, и возвращается домой в 20:00:00. Формирование
Очереди-0 (20:00:00) (Событие "возвращение ударки" происходит после сражения, а не в момент ее отправки (с) Кириллоид)
Очередь-0 (20:00:00)
1. Возвращение ударки
Просчитав время возвращения ударки, враги начинают компанию по
ее уничтожению на возврате, заодно решив поломать несколько домиков. В
операции принимают участие три атакующих.
В
10 часов утра в атаку отправляется две волны, которые приходят в 20:00:00 и в 20:00:01. Первая волна попадает в конец
Очереди-0 (20:00:00), вторая формирует
Очередь-1 (20:00:01)
Очередь-0 (20:00:00)
1. Возвращение ударки
2. Атакер-1 - Офф+каты <---------
Очередь-1 (20:00:01)
1. Атакер-1 - каты <---------
Глядя на появившиеся нападения, начинается операция по сбору
дефа и прорезке волн. Для простоты картины будем считать, что деф
собрался в 19:00.
В
12:00 Защитник-1 отправляет деф (прорезку волн кат), который приходит в 20:00:00, и попадает в конец
Очереди-0:
Очередь-0 (20:00:00)
1. Возвращение ударки
2. Атакер-1 - Офф+каты
3. Защитник-1 - деф <---------
Очередь-1 (20:00:01)
1. Атакер-1- каты
В
13:00 Атакер-2 отправляет три волны, приходящие в 20:00:00, 01 и 02 секунды, первая волна попадает в конец
Очереди-0, вторая - в конец
Очереди-1, третья формирует
Очередь-2 (20:00:01):
Очередь-0 (20:00:00)
1. Возвращение ударки
2. Атакер-1 Офф+каты
3. Защитник-1 деф
4. Атакер-2 Офф+каты <---------
Очередь-1 (20:00:01)
1. Атакер-1 каты
2. Атакер-2 каты <---------
Очередь-2 (20:00:02)
1. Атакер-2 каты <---------
Для прорезки третьей волны В
14:00 Защитник-2 отправляет деф, приходящий в 20:00:01, которые попадает в конец
Очереди-1 (20:00:01)
Очередь-0 (20:00:00)
1. Возвращение ударки
2. Атакер-1 Офф+каты
3. Защитник-1 деф
4. Атакер-2 Офф+каты
Очередь-1 (20:00:01)
1. Атакер-1 каты
2. Атакер-2 каты
3. Защитник-2 деф <---------
Очередь-2 (20:00:02)
1. Атакер-2 каты
В
16:00 Атакер3 отправляет 1 волну, с приходом в 20:00:00, которая попадает в конец
Очереди-0:
Очередь-0 (20:00:00)
1. Возвращение ударки
2. Атакер-1 Офф+каты
3. Защитник-1 деф
4. Атакер-2 Офф+каты
5. Атакер-3 каты <---------
Очередь-1 (20:00:01)
1. Атакер-1 каты
2. Атакер-2 каты
3. Защитник-2 деф
Очередь-2 (20:00:02)
1. Атакер-2 каты
В
18:00 Защитник3 отправляет деф, который приходит в 20:00:00 и попадает в конец
Очереди-0:
Очередь-0 (20:00:00)
1. Возвращение ударки
2. Атакер-1 Офф+каты
3. Защитник-1 деф
4. Атакер-2 Офф+каты
5. Атакер-3 каты
6. Защитник-3 деф <---------
Очередь-1 (20:00:01)
1. Атакер-1 каты
2. Атакер-2 каты
3. Защитник-2 деф
Очередь-2 (20:00:02)
1. Атакер-2 каты
В
19:00 ставится в постройку Резиденция, (для простоты
ситуации будем считать, что ее в деревне не было вообще), окончание
постройки в 20:00:00 (
Очередь постройки Очередь-0`)
В
19:30 отправляются ресурсы, приход которых в 20:00:00 (
Очередь прихода ресурсов Очередь-0``)
В итоге в 20:00:00 происходит следующее (сверху вниз)
Очередь-0` (20:00:00)
1`. Постройка Резиденции
Очередь-0`` (20:00:00)
1``. Приход ресурсов
Очередь-0 (20:00:00)
1. Возвращение ударки - приходит домой ударка
2. Атакер-1 Офф +каты - убивается ударка, грабятся ресурсы (в т.ч. пришедшие), убивается резиденция
3. Защитник-1 ставится деф (допустим, много)
4. Атакер-2 Офф+каты убиваются о деф (пусть частично - деф пробит)
5. Атакер-3 каты - ломают домики
6. Защитник-3 ставится деф
Очередь-1 (20:00:01)
1. Атакер-1 каты - убиваются о деф Защитника-3
2. Атакер-2 каты - убиваются о деф Защитника-3
3. Защитник-2 ставится деф
Очередь-2 (20:00:02)
1. Атакер-2 каты - убиваются о деф Защитника-2 и остатки дефа Защитника-3
Вся идея очереди показана на схеме:
(на случай попадания ядерной бомбы в сервер радикала (какой бы странной
ни была причина для попадания, но тем не менее) - картинка положена в
приложение).
Источник forum.travian.ru