Время до следующего лимита |
Кроме общефорумных правил данный раздел имеет одно дополнительное - один баг - один топик. В пределах этого топика может идти обсуждение, дополнения, излагаться соображения, если кто-то из разработчиков возьмется править баг - он может написать об этом. Если баг будет исправлен - правивший отпишется и топик будет закрыт.
Нельзя постить другие баги в топик уже существующего. Нежелательно сразу создавать топик с несколькими багами. То-есть в одном топике может быть больше одного баг-репорта только если баг абсолютно идентичен описанному - тогда можно добавить детали того как с ним столкнулись в другой ситуации. Разные баги одной системы должны быть в разных топиках! Как обычно финальное суждение о правильности оформления темы остается за модератором.
Не забывайте что чем больше предоставлено информации - тем больше шансов что баг будет успешно найден и исправлен. Акк, имя персонажа, классы, надетые вещи, конфигурация компьютера, установленный софт, время реальное или игровое, что было до/после события, скрины, видеозапипсь - что угодно может оказаться важным. Но самое важное - время когда событие случилось, так как по времени легче всего проводить поиск по логу при необходимости. Поэтому реальное время когда был замечен баг по атомным часам Гринвича - просто маст.
И конечно-же - никакого флуда или флейма, это служебная ветка.
Время до следующего лимита |
12:41, 28 March 2013
Post
#1
|
|
Сияние Зари Group: Members Posts: 1.196 Joined: 17 Jul 2009 From: Киев/Москва Member No.: 15.325 Класс: Sorcerer Направленность: Истино нейтральный Раса: Человек |
Не имеет значения какое время суток в реале день или ночь, после сна для повышения лимита в игре время до повышения следующего лимита становится всегда 23 часа. То есть в реале прошло например полторы суток, а лимит получился ровно 1 и до следующего 23 часа. Это заставляет подгадывать часы и заходить ровно в то время когда закончился кач вчера. Помоему это ужасное задротство. Людям хочется играть тогда когда удобно например сегодня утром, а завтра вечером а послезавтра снова утром уже никак из за лимита. Так получается что 2 набитых лимита за 3 дня а один день поиграть вообще не удастся из за лимита. Сделайте так чтобы палантир писал что лимит будет повышен после сна, но часы нового лимита все равно должны тикать дальше.
This post has been edited by Буся: 12:52, 28 March 2013 -------------------- |
|
|
22:30, 28 March 2013
Post
#2
|
|
Младший баронет Group: Members Posts: 373 Joined: 4 Jan 2007 From: Kiev Member No.: 2.501 Класс: Cleric Направленность: Истино нейтральный Раса: Человек |
Как бы я реализовал. Ниже следует много текста, но прошу прочитать вдумчиво и не спешить.
У персонажа есть 3 сохраненных величины: - опыт, ниже которого нельзя опуститься (НЛ нижний лимит) - опыт, выше которго нельзя набрать (ВЛ верхний лимит) - дата последнего обновления расчета значений После каждого сна происходит обновление всех трех величин. Алгоритм обновления: Определить суточный лимит на текущий момент (формулу можно оставить прежней). Определить, сколько минут прошло с момента последнего расчета. Определить, сколько опыта должно прибавиться к верхнему лимиту. ПРИБАВКА = СУТОЧНЫЙ_ЛИМИТ * МИНУТЫ / 60*24. Теперь считаем прибавку к верхнему лимиту, возможны несколько вариантов. 1. ВЕРХНИЙ_ЛИМИТ + ПРИБАВКА <= ОПЫТ + СУТОЧНЫЙ_ЛИМИТ т.е. увеличенный верхний лимит будет в пределах текущего опыта плюс сутки, например сейчас есть 100.000, в сутки дается 20.000, верхний лимит 110.000 и должно прибавиться 5.000. 115 тыс. меньше 120 тыс., поэтому прибавка дается в полную силу. 2. ВЕРХНИЙ_ЛИМИТ > ОПЫТ + СУТОЧНЫЙ_ЛИМИТ т.е. верхний лимит без никаких прибавок уже выпередил набранный опыт больше чем на сутки, значит вся прибавка может быть урезана. ПРИБАВКА = ПРИБАВКА * 0.75 3. ВЕРХНИЙ_ЛИМИТ + ПРИБАВКА > ОПЫТ + СУТОЧНЫЙ_ЛИМИТ сейчас 100.000, в сутки дается 20.000, верхний лимит 110.000, должно прибавиться 18.000. 128 тыс. больше 120 тыс., получается прибавка перемахнула сутки на 8 тыс. и это превышение нужно порезать 0.75 коеффициентом. В таком случае ПЕРВАЯ_ЧАСТЬ_ПРИБАВКИ = ОПЫТ + СУТОЧНЫЙ_ЛИМИТ - ВЕРХНИЙ_ЛИМИТ УРЕЗАННАЯ_ЧАСТЬ_ПРИБАВКИ = (ПРИБАВКА - ПЕРВАЯ_ЧАСТЬ_ПРИБАВКИ) * 0.75 ПРИБАВКА = ПЕРВАЯ_ЧАСТЬ_ПРИБАВКИ + УРЕЗАННАЯ_ЧАСТЬ_ПРИБАВКИ На примере получится: ПЕРВАЯ_ЧАСТЬ = 100 тыс + 20 тыс - 110 тыс = 10 тыс УРЕЗАННАЯ_ЧАСТЬ = (18 тыс - 10 тыс) * 0.75 = 6 тыс ПРИБАВКА = 16 тыс (а не 18, если было бы без коеффициента) Другой пример. У персонажа 109 тыс. опыта, верхний лимит 110 тыс. (чуть-чуть не успел набрать), суточный лимит 20 тыс., и он заходит в игру и спит ровно через сутки после прошлого сна, т.е. изначально прибавка равна 20 тыс. Считаем неравенство: 110 тыс + 20 тыс. против 109 тыс. + 20 тыс. Как видим, прибавка слегка больше допустимой и 1 тыс., на которую она больше, будет порезана до 1000*0.75 = 750, в итоге прибавка будет равна 19750 Теперь определяем верхний лимит ВЕРХНИЙ_ЛИМИТ = ВЕРХНИЙ_ЛИМИТ + ПРИБАВКА Определяем нижний лимит НИЖНИЙ_ЛИМИТ = ВЕРХНИЙ_ЛИМИТ - СУТОЧНЫЙ_ЛИМИТ Если получившийся нижний лимит больше текущего опыта, то НИЖНИЙ_ЛИМИТ = ТЕКУЩИЙ_ОПЫТ (например в случае, когда персонаж долго не заходил в игру, а потом зашел и поспал, у него сильно увеличится верхний лимит, но нижняя планка не может превышать текущий опыт) Обновляем последнюю дату расчета значений. -------- В итоге получаем: - перерасчет выполняется только в момент сна, из ДБ нельзя выйти не потеряв опыт. Если на момент смерти текущий опыт превышал нижнюю планку, то при ресе какое-то количество опыта будет снято. - можно гибко настраивать максимальную планку опыта (как говорилось опыт с 0.75 коеф. капает 5 дней, потом верхний лимит не растет, для этого нужно только посчитать это максимальное число на текущий момент и не устанавливать верхний лимит выше этого числа) - лимит растет плавно, не теряются никакие часы ожидания повышений лимита. Игрок может спать хоть каждый час и набирать по 150 опыта, или включить игру после 23 часов простоя и набрать верхнюю планку за оставшийся час, оба наберут одинаковое количество опыта и будут иметь одинаковые верхние лимиты. Добавлено: во избежание спама вычислительных мощностей сервера можно не делать указанный расчет на арене, чтобы нельзя было спать много раз подряд This post has been edited by Манчкин: 22:32, 28 March 2013 |
|
|
Lo-Fi Version | Time is now: 20 May 2024 - 19:08 |