IPB

Welcome Guest ( Log In | Register )

> Правила раздела

Кроме общефорумных правил данный раздел имеет одно дополнительное - один баг - один топик. В пределах этого топика может идти обсуждение, дополнения, излагаться соображения, если кто-то из разработчиков возьмется править баг - он может написать об этом. Если баг будет исправлен - правивший отпишется и топик будет закрыт.

Нельзя постить другие баги в топик уже существующего. Нежелательно сразу создавать топик с несколькими багами. То-есть в одном топике может быть больше одного баг-репорта только если баг абсолютно идентичен описанному - тогда можно добавить детали того как с ним столкнулись в другой ситуации. Разные баги одной системы должны быть в разных топиках! Как обычно финальное суждение о правильности оформления темы остается за модератором.

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

И конечно-же - никакого флуда или флейма, это служебная ветка.

> Время до следующего лимита
 Буся
post 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


--------------------

Сирвизарри
Лиссет

Где вы видели такую кошку, которую бы волновало, что о ней говорят мыши ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Replies
 Манчкин
post 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
Go to the top of the page
 
+Quote Post

Posts in this topic
- Буся   Время до следующего лимита   12:41, 28 March 2013
- - Hede   Вроде же делали, что если прошло 1,5 суток то у те...   12:56, 28 March 2013
|- - oneman   QUOTE (Hede @ 12:56, 28 March 2013) Вроде...   13:11, 28 March 2013
|- - Bran   QUOTE (oneman @ 15:11, 28 March 2013) Как...   14:08, 28 March 2013
|- - Терри*Поющий*   QUOTE (Bran @ 12:08, 28 March 2013) но е...   14:24, 28 March 2013
|- - oneman   QUOTE (Bran @ 14:08, 28 March 2013) но е...   15:03, 28 March 2013
|- - Буся   лучше всего сразу в двух местах поправить: 1) QUOT...   15:12, 28 March 2013
|- - Bran   QUOTE (Буся @ 17:12, 28 March 2013) лучше...   19:34, 28 March 2013
|- - oneman   QUOTE (Bran @ 19:34, 28 March 2013) Переи...   19:42, 28 March 2013
- - Силк   Госпожа Буся снова начала плодить чаров? Как хорош...   13:05, 28 March 2013
|- - Abat   +1 к Бусе, Лыхо, Трогру офтоп. QUOTE (Силк ...   12:19, 31 March 2013
- - Evgeny   А почему бы тогда не сделать обновление лимита поч...   15:37, 28 March 2013
|- - oneman   QUOTE (Evgeny @ 15:37, 28 March 2013) А п...   17:10, 28 March 2013
- - Sunderbergarn   Вроде как все отличной с новой системой. Главное д...   18:33, 28 March 2013
- - Bo9lka_ua   Еще бы добавить вид заработка, не связанный с убий...   19:05, 28 March 2013
- - Манчкин   Как бы я реализовал. Ниже следует много текста, но...   22:30, 28 March 2013
- - Psylocebtick   На счет задротства согласен с остальными.У меня Нв...   00:38, 29 March 2013
|- - JIbIXO   QUOTE (Psylocebtick @ 00:38, 29 March 201...   15:25, 29 March 2013
|- - Trogr   QUOTE (JIbIXO @ 14:25, 29 March 2013) И е...   15:39, 29 March 2013
- - hhhmmmn   Нет, нет. Это будет не достаточно хардкорно. Но п...   12:43, 30 March 2013
|- - Терри*Поющий*   QUOTE (hhhmmmn @ 09:43, 30 March 2013) Не...   18:05, 30 March 2013
- - Psylocebtick   Больше всего бесит,то что если я сбил кап вчера в ...   13:46, 30 March 2013
- - Манчкин   Странно, что ни игроки, ни разработчики никак не п...   14:19, 30 March 2013
|- - oneman   QUOTE (Манчкин @ 14:19, 30 March 2013) Ст...   22:53, 30 March 2013
- - Силк   QUOTE (oneman @ 20:53, 30 March 2013) Я п...   23:04, 30 March 2013
- - Манчкин   Очень жаль. Я расписывал готовыми формулами для ра...   23:07, 30 March 2013
- - oneman   Так куда понятнее :))) Ну, как на меня - звучит к...   05:54, 31 March 2013
- - Силк   QUOTE (Abat @ 10:19, 31 March 2013) офтоп...   13:03, 31 March 2013
- - kpd   QUOTE (Силк @ 11:03, 31 March 2013) Как г...   13:18, 31 March 2013
- - Abat   *стерто*   15:26, 31 March 2013
- - Abat   *сори, не сюда*   15:28, 31 March 2013


Closed TopicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



Lo-Fi Version Time is now: 20 May 2024 - 19:08