Отклонена Подсчёт Очков победы в ПБГ

Очки победы в ПБГ должны насчитываться только за полный час владения сектором


  • Всего проголосовало
    15
Если я правильно понимаю, Очки победы за владение сектором насчитываются каждый час.
И если сектор захватить, например, в 15:58 - то в 16:00 уже насчитаются первые очки за этот сектор. Потом в 17:00, 18:00 и 19:00. Т.е. 4 раза - меньше не бывает, т.к. сектор под замкОм, и владелец смениться не может.
В 19:58 замОк с этого сектора упадёт, и противник сможет его атаковать. За 2 минуты взять сектор можно - но на это способны единицы гильдий. Соответственно, в 20:00 сектор будет ещё принадлежать той гильдии, которая захватила его в 15:58, и очки за сектор насчитаются в 5-й раз. Даже если противник потом захватит его в 20:03.

Если же сектор захвачен в середине часа - то (при активных соперниках) очки за него насчитаются только 4 раза (как и должно быть).

Поэтому предлагаю:
Очки победы насчитывать за каждый полный час владения сектором.
Захватили сектор в 15:58 - значит, первые Очки победы должны насчитаться за этот сектор в 16:58. Следующие - в 17:58, и т.д. И если противник перезахватит сектор в 20:03, то Очки победы гильдия, захватившая сектор в 15:58, получит 4 раза (как должно быть), а не 5 (как сейчас).
 
а кто мешает захватывать сектор в хх.58 ;)
Так не в этом вопрос - мешает кто-то, или нет.
Предложение снимает имеющийся "перекос", связанный с временем захвата.
Я понимаю тех, кто голосует "против" - они нашли "хитрость", позволяющую заработать на пару ОП больше, и их жаба задушит, если эту ошибку в подсчёте уберут :)
Но это всё-таки ошибка разработчиков, и её нужно исправлять.
 

mmaestra

Странник
То есть вы хотите, чтобы у каждого сектора было своё время начисления? Этот захватили в 15:45 - значит в это время, у соседнего в 15.53, у другого 16.05, у следующего 16.13... По-моему, в таком случае система выглядела бы хаотично и даже самой ги-владелице секторов было бы сложно рассчитать, сколько точно она получит в ближайшее время.
Сейчас очки начисляются не за время владения секторами, а "по состоянию на". Какими секторами владеет ги по состоянию на 16.00, какими по состоянию на 17.00. К слову, на Гвг такая же система. Какими секторами владеет ги по состоянию на 20.00 мск. Неважно, захватила она их сразу после прошлого тайма или за две минуты до нового,
Мне такая идея кажется запутанной чисто в плане подсчёта, к тому же это элемент выстраивания стратегии на Полях битв для гильдии - как обеспечить присутствие игрока онлайн именно в это время, как сделать возможным захват сектора именно за пару минут до целого часа... А это ведь не всегда возможно
 

Rodger

Герцог
Мне почему-то кажется это не ошибка. Так было задумано - ну что бы добавить тактических манёвров в функционал.
 

Rodger

Герцог
Мне такая идея кажется запутанной чисто в плане подсчёта, к тому же это элемент выстраивания стратегии на Полях битв для гильдии - как обеспечить присутствие игрока онлайн именно в это время, как сделать возможным захват сектора именно за пару минут до целого часа... А это ведь не всегда возможно
Захватывать за пару минут до целого часа не получится -ибо замок будет висеть. Именно в этом смысл предложения. А после его падения смысла не будет -так как не будет разницы во сколько его захватили. Всё едино 4 часа гаранта - 5 не получится гарантированных.
 

Klermon

Император
Поэтому предлагаю:
Очки победы насчитывать за каждый полный час владения сектором.
Захватили сектор в 15:58 - значит, первые Очки победы должны насчитаться за этот сектор в 16:58. Следующие - в 17:58, и т.д. И если противник перезахватит сектор в 20:03, то Очки победы гильдия, захватившая сектор в 15:58, получит 4 раза (как должно быть), а не 5 (как сейчас).
Однозначно не пройдет у разрабов.
 
в таком случае система выглядела бы хаотично и даже самой ги-владелице секторов было бы сложно рассчитать, сколько точно она получит в ближайшее время.
идея кажется запутанной чисто в плане подсчёта
Вообще самое правильное - подсчитывать Очки победы (для гильдии, которая владела сектором) - в момент перезахвата сектора другой гильдией.
Момент предыдущего захвата известен, момент последнего захвата известен - вычисляем полное количество часов и умножаем на Очки-в-час.
Т.е. не просто, а очень просто.
 

Rodger

Герцог
Не знаю как кому - а по мне так чем больше разных тактических трюков тем веселее игра. Появляется необходимость подумать, применить какую-то стратегию...Просто механически долбить атаки типа у кого армия больше и терпения на дольше хватит -было бы совсем печально
 

MIP-ZmeY

Император
Вообще самое правильное - подсчитывать Очки победы (для гильдии, которая владела сектором) - в момент перезахвата сектора другой гильдией.
Момент предыдущего захвата известен, момент последнего захвата известен - вычисляем полное количество часов и умножаем на Очки-в-час.
Т.е. не просто, а очень просто.
Т.е. если никто не перезахватил то мы получили "дырку от бублика"?
Гениально, зачем позволять набирать очки перезахватывая друг у друга когда можно парой из двух ГИ передавать два сектора каждые 4 часа:)
 

MIP-ZmeY

Император
Вообще самое правильное - подсчитывать Очки победы (для гильдии, которая владела сектором) - в момент перезахвата сектора другой гильдией.
Момент предыдущего захвата известен, момент последнего захвата известен - вычисляем полное количество часов и умножаем на Очки-в-час.
Т.е. не просто, а очень просто.
В соседней теме что-то похожее было...
Про то что если у тебя ГИ играющая хоть из одного человека а остальные 7 ГИ ленивые на свои 50+ игроков
то за каждый час за каждый сектор заплати налог
(в качестве поблажки первые 24 часа налог не исчисляется)

P.S.: Есть способы проще убить активность в ПБГ, например принудительно очистить всем казну:)
 

Klermon

Император
Разрабам без разницы - они в эту игру не играют :)
А вот "хитрованы" - они однозначно против.
Впрочем, такая реакция - ожидаемая :(
Сейчас просто обсчет идет по таймеру времени и все. Предлагаемая система потребует на каждый сектор программно навесить свой счетчик времени, это надеюсь понятно? так что осуждать данное предложение вы можете до конца фое
 
Предлагаемая система потребует на каждый сектор программно навесить свой счетчик времени, это надеюсь понятно?
Понятно только то, что ваша сфера деятельности с программированием никак не связана.
Это ни в коем случае не упрёк, и не попытка чем-то обидеть.
Разницы нет никакой - обсчитывать все секторы в XX:00 или каждый сектор в XX:YY.
 

Rodger

Герцог
Да програмно это не сложно сейчас идёт расчёт очки в час - можно переставить очки в минуту( секунду). Получится тоже самое -только без этой комбинации с мобилизацией в последние минуты.Ну а так как есть -нужно не просто бить бездумно, а ещё и в нужное время и большим числом
 

Сусaнин

Барон
Он имел ввиду что скорее всего сектора не привязанны к таймеру (а зачем?). Я думаю что просто раз в час карта проверяется на предмет владения секторами и считается, без таймера. А таймер привязан только к щиту. Возможно так было бы проще сделать чем считать каждый сектор и лишний раз загружать сервер ненужными процессами и таймерами. Скорее всего так и есть)
 

Rodger

Герцог
ну неважно же как реализовано -главное интервал времени. Не думаю что это сильно нагрузку на сервер изменит. Ну проверить значени на секторе -это ничтожные доли секунды
 

MIP-ZmeY

Император
Понятно только то, что ваша сфера деятельности с программированием никак не связана.
Это ни в коем случае не упрёк, и не попытка чем-то обидеть.
Разницы нет никакой - обсчитывать все секторы в XX:00 или каждый сектор в XX:YY.
Мария боюсь это Вы никак не связаны с программированием (даже на уровне слухов о данном процессе)
Итак вот Вам ответ от человека умеющего и практикующего программирование мелких игр, скриптом и программ домашнего использования.

Как мы знаем на карте 60 секторов, из них 8 можно вычесть это БАЗЫ с 0 ОП/час
А для остальных 52 (60-8) нужно иметь таблицу с текущим временем захвата сектора
В памяти тип данных время (time_t) занимает 8 (ВОСЕМЬ) байт

В мире например Грейфентал имеем 5653 гильдии, в лучшем случае это 707 карт, 707*52*8=293 956 байта=0,28 Мб
С одной стороны это немного, с другой цикл начисления очков вынужден будет не раз в час работать, а болтаться в активных процессах постоянно и обходить таблицу минимум на 36 764 строки.
Процесс начисления включает в себя взять значение, насчитать прибавку, повесить флаг что начисление было в данном часе, прибавить.
(кстати флаг нужно еще как-то снимать минут например через 5)
А при этом не забываем что в момент подготовки к начислению сектор можно потерять
(на такое количество строчек с довольно высокой вероятностью потеря будет в доли секунд перед начислением)
 
Верх