Перейти к содержимому


Фотография
* * * * * 2 Голосов

Доработка ДКП системы для клана Jack Daniel's (ArcheAge, Капаган).

выполнено движок панель управления банк обновления дкп склад казна

  • Закрытая тема Тема закрыта
Сообщений в теме: 9

#1 JackDaniels

JackDaniels

    Пользователь

  • Участники
  • PipPip
  • 17 сообщений

Отправлено 10 Май 2014 - 09:51

Разработка ДКП распределения из банка гильдии для клана Jack Daniel's ArcheAge, Капаган.

 

http://jackdaniels.clans.pw

 

1) Добавить поле Цена в плагин Банк мероприятия (при добавлении и изменении предмета в банке). Чтобы игроки видели цену предмета в звездах КР, на который встают в очередь. В логах операций необходимо фиксировать цену предмета (когда и сколько согильдиец потратил очков КР и на что). Лучше даже сделать 2 столбца: цена 1го предмета и общая стоимость (цена*кол-во) и выводить их и в таблице Очередь на предметы и в таблице История операций.

2) В таблице Очередь на предметы добавить кнопку Удовлетворить. По которой автоматически снимать нужное количество КР с игрока и занести в историю операций соответствующую строку.
3) Вывести иконку звездочки КР и количество КР игрока рядом с его ником сверху справа в меню. повесить на иконку и число КР ссылку на Статистику /plugin/events#stats

4) При загрузке страницы Архив мероприятий/plugin/events#archive и Статистики /plugin/events#stats автоматически выводить результаты запроса за последнюю неделю (чтобы можно было сразу видеть таблицу, сейчас необходимо нажать на кнопку Обновить архив или статистику). Сейчас фильтр дат по умолчанию стоит в архиве на 2 дня (10.05.2014 - 11.05.2014) а в статистике на 9 дней (03.05.2014 - 11.05.2014), сделать на последние 7 дней (04.05.201410.05.2014).



#2 NeLo

NeLo

    Разработчик

  • Guildmaker Team
  • PipPipPipPipPipPipPipPip
  • 794 сообщений

Отправлено 10 Май 2014 - 12:49

Давайте уточним требования.

 

 

1) Добавляем поле "Цена за 1шт" в форму добавления/изменения предмета. В таблице очередей на предметы выводить _одно_ дополнительное поле "Стоимость заказа" вида "150 КР (30 КР x 5)", которое будет наглядно расшифровываться: Игрок подал заявку на общую сумму 150 КР, на 5 предметов стоимостью 30 КР за единицу. В логе действий будет аналогичное поле, помимо изображения, количества и названия предмета. При этом в логе операций всегда будут фиксироваться данные на момент совершения операции. Т.е. если этот предмет через несколько дней стал стоить не 30 а 40 единиц клановой репутации, в логе по прежнему все данные останутся прежние (как, соответственно, и в любом архиве). Такое решение пойдет?

 

 

2) После добавления кнопки "Выдать" в каждой конкретной заявке на предмет будут 2 кнопки "Выдать" и "Удалить". Нажатие "Удалить" по-прежнему просто убирает заявку из очереди (без дополнительных действий), создает новую запись в логе операций "Удалена заявка на предмет".

 

Теперь о кнопке "Выдать".

 

Действия при нажатии кнопки "Выдать" для такого варианта обновления:

 

1. Создать новую запись в логе "Успешная выдача предмета".

2. Создать новую запись в логе "Удалена заявка на предмет" (аналогично с логом при нажатии кнопки "Удалить").

 

Теперь о том, как будет снята репутация. Думаю, что правильней будет при включенном режиме "Цена предмета" давать возможность встать в очередь на предмет только если у игрока хватает КР на момент подачи заявки. Иначе будет большая неразбериха при выдаче (у кого-то сколько-то КР нехватит на полный заказ, у следующего в очереди – то же самое; а кому дать в таком случае? И все такое..).

 

Но, сперва о том как устроена система плагинов на Гилдмейкере:

 

1-guildmaker-plugin-system-easy-structur

 

Каждый клан-сайт в системе – это определенный веб-сервер и уникальная база данных.

Плагин – это отдельный сервер и отдельная, уникальная БД.

При использовании плагина, между сервером, где размещен сайт и сервером на котороем работает плагин устанавливается защищенное соединение, по которому и летают все данные – предметы, мероприятия, статистика и все прочее.

 

Факт 1. На данный момент плагины "ничего не знают" друг о друге, поэтому, при выдаче предмета в плагине "Банк клана" снять репутацию в плагине "Мероприятия" не представляется возможным. Банально – это не одна и та же БД. В связи с этим, есть 2 варианта реализовать этот пункт. Первый – удобен для команды проекта и, соответственно, дешевле, чем второй. Он не нарушает внутренней архитектуры проекта, но несет в себе некоторые отклонения от изначальных требований по этому пункту. 2 – будет подороже, нужно будет подумать над изменением архитектуры системы плагинов, но этот вариант будет полностью, на 100% выполнять задуманное (снимать репутацию игрока СРАЗУ при выдаче предмета из банка).

 

1 Вариант (удобный для команды, умеренный в цене, но немного не соответствует требованиям)

 

Заключается в том, что репутация игрока в плагине "Мероприятия" не будет сниматься сразу после выдачи предмета. Она снимется только тогда, когда этот пользователь:

 

a) Откроет страницу плагина.

ЛИБО

B) Сделает действие в плагине, требующее запрос к серверу.

 

Вопреки некоторым мыслям, которые могут возникнуть, например:

– Нет, так нельзя. Если с игрока не снимут репутацию сразу, он сможет бесконечно заказывать предметы. Это ошибка.

Логика работы плагина не пострадает. Действительно, пока игрок не проявит активность в плагине "Мероприятия", для всех остальных, кто будет смотреть статистику, репутация у данного игрока останется прежней. Но, при этом, вставать в очередь на предметы из казны, стоимость которых превышает количество имеющейся репутации, игрок все равно не сможет. Это будет реализовано путем сохранения промежуточных значений репутации на самом клан-сайте системы, в специальной дополнительной таблице. Именно из этой таблицы будет чтение реального и действительного количества репутации игрока при совершении операций "встать в очередь на предмет X в количестве N штук". Как только игрок сделает запрос к плагину "Мероприятия", статистика плагина обновится и вновь будет показывать актуальное количество КР игрока.

 

2 Вариант (посложнее и подороже, но полностью соответствует требованиям)

 

Плагины начинают знать друг о друге. В каждом плагине появляется модуль для внешних взаимодействий с другими серверами и сайтами. Плагин "Банк клана" будет знать о существовании плагина "Мероприятия" и сможет делать к нему запрос. Этот запрос будет обработан сервером плагина "Мероприятия" в обычном, штатном порядке.

 

Запрос будет уменьшать количество КР игрока с соответствующим идентификатором на общую стоимость заявки на выдачу предмета из банка. Если у игрока хватит репутации – заявка будет создана. Если нет – пользователю придет ошибка "Не хватает клановой репутации, мастер клана тобой недоволен). Все четко и строго.

 

Какой вариант реализации этой задумки выберете Вы – ожидаю увидеть в ответе под соответствующим пунктом (2).

 

 

3) По поводу отображения КР рядом с ником в меню сайта. Сперва дам волю эмоциям. Идея очень хороша и красива. Я бы тоже такое сделал (будет настоящий клан-сайт! :) )

 

Но, есть пару нюансов, которые хорошо бы разобрать до составления ТЗ.

 

Вопрос 1: Что делать, если у Вас на сайте вдруг не будет подключен плагин "Мероприятия" к сайту? Просто не отображать звездочку с числом КР около ника в меню?

Вопрос 2: Где конкретно отображать КР в меню? Понятно, что где-то около ника, но где именно? Варианты: До ника, между ником и должностью в клане, после должности.

Вопрос 3: Понимаете, что над этим пунктом нужно будет тоже попотеть (аналогичная история с архитектурой, как и в пункте 2?)

 

 

4) По поводу изначального отказа от автоматической подгрузки статистики и архива со старта плагина – это стратегическое решение, было принято для повышения общей производительности плагина. Статистика и архив – это обычно большие объемы данных и сложные запросы. Больно для серверов. Поэтому подгружаются только когда пользователь явно захочет с ними работать. Если 100 пользователей заходят в плагин чтобы просто проверить, какие сегодня будут мероприятия, а им параллельно подтягивают на фоне ненужные на этот момент макароны из данных – очень не красиво. Но можно и подтянуть, ок, сделаем как Вы желаете.

 

По поводу дат по умолчанию. Там действительно 1 день и 7 дней. Кажется, что 2 и 9.

Смотрите, сегодня, например, 10 мая. Надо отображать статистику за 7 последних дней. Стало быть, интересуют нас дни: весь 4, 5, 6, 7, 8, 9, 10

 

Поля в бутстраповском виджете дат показываются с 00:00 по времени той даты, которая выбирается. Значит, наш корректный промежуток времени должен выглядеть так:

 

04.05.2014 00:00 – 11.05.2014 00:00

 

Это выглядит как 8 дней (4,5,6,7,8,9,10,11), но на самом деле 11 число не входит в этот список, т.к. мы берем статистику игроков ДО 11.05.2014 00:00 (НЕ включительно).

 

Что касается вхождения еще 1 дня в список, так, что их становится 9. Это подстраховка на тот случай, когда событие назначено на 04.05.2014 00:00. Репутация, которую получит игрок, участвуя в таком событии, будет неоднозначно отображаться в таблице статистики: Считать это еще 3 числом мая или уже 4 числом?

 

В общем целом – если настаиваете, можем поправить даты по умолчанию, это 2 строчки изменить в коде, по одной на каждую вкладку.



#3 JackDaniels

JackDaniels

    Пользователь

  • Участники
  • PipPip
  • 17 сообщений

Отправлено 11 Май 2014 - 23:05

1) да, такое решение подойдет

2) давать возможность встать в очередь на предмет только если у игрока хватает КР на момент подачи заявки.

здесь подойдет 1й вариант

3) 1. просто не отображать

2.KRjpg_7848155_12070692.jpg

3. здесь все таки хочется сделать по 2му варианту. но подгружать нужно только общее число КР игрока, а не все архивные данные. так можно?

4) все таки лучше сделать по 7 дней по умолчанию и в архиве и в статистике. а можно сделать чтобы при установке фильтра 04.05.2014 – 10.05.2014 запрос исполнялся по датам 04.05.2014 00:00 – 11.05.2014 00:00 ?



#4 NeLo

NeLo

    Разработчик

  • Guildmaker Team
  • PipPipPipPipPipPipPipPip
  • 794 сообщений

Отправлено 12 Май 2014 - 16:38

1) Ок.

2) Ок.

3) Ок.

4) Хорошо, поставим период по умолчанию для архива и статистики 7 дней, сделаем так, что при указании дат 04.05.2014 – 10.05.2014 в виджете календаря, фильтры будут применяться по правилу 4 число 00:00 – 11 число 00:00, что даст результат в виде данных, которые следует отобразить за 7 полных последних дней (в указанном варианте это полные дни: 4,5,6,7,8,9,10-включительно).

 

Начинаем составление ТЗ на разработку этого дополнительного функционала.



#5 NeLo

NeLo

    Разработчик

  • Guildmaker Team
  • PipPipPipPipPipPipPipPip
  • 794 сообщений

Отправлено 14 Май 2014 - 06:10

Полное ТЗ на разработку дополнительного функционала готово:

http://guildmaker.ru...ers/1086_983_2/

 

Время работы: ~15 (без учета отладки и тестирования нового функционала)
Стоимость обновления: 7500 руб (1 час = 500 руб)
 
Реальное время разработки (с учетом возможных технических проблем, фикса багов, отладки)
от 10 до 14 дней (календарных)

 

Реквизиты для оплаты остаются прежние.

 

Реализация обновления начинается после полной оплаты, но не ранее 16 мая (пятница).

 

Клан-сайт в системе, на котором будет происходить развертывание, разработка и последующее тестирование обновления – тот же самый.

 

Внимание! Перед оплатой перепроверьте ТЗ (ссылка в начале сообщения).
Желательно обсудить/скорректировать его до того как начнется процесс разработки.


#6 NeLo

NeLo

    Разработчик

  • Guildmaker Team
  • PipPipPipPipPipPipPipPip
  • 794 сообщений

Отправлено 26 Май 2014 - 16:36

Возник вопрос.

 

Коротко:

Мы не рассмотрели ситуацию, когда игрок оплатил заявку на выдачу предмета а затем получил отказ.

 

Подробно:

В описании дополнения фигурирует пункт про изменение старой логики рассмотрения заявок на предметы в очередях администратором. Старая кнопка "Удалить" теперь превращается в две: "Одобрить" и "Отказать". Если в плагине отключена цена – различие в этих действиях только одно: разные записи в лог. В первом случае (администратор одобрил) заявка на выдачу предмета будет удалена с пометкой в истории "Эта заявка одобрена, дата, название и тд". В другом случае (администратор отказал) – заявка также удаляется, но с пометкой об отказе.

 

Суть вопроса:

 

Как быть со стоимостью заявки в клановой репутации (при включенной интеграции с плагином "Мероприятия"), когда заявка не была одобрена администратором и подлежит удалению без реальной выдачи игровых благ на самом сервере? В этом случае дополнительно программировать возврат КР на учетную запись игрока, которому было отказано в выдаче или просто оставить кнопку "Удалить", не показывать кнопки отказа и одобрения? (как сейчас).

 

Что Вы думаете по этому поводу?

 

Состояние разработки:

Реализованы пункты 1,2,3,4.

 

На тестовом сайте работает отображение клановой репутации игроков:

 

2-dkp-menu-reputation-view-example1.png

 

       3-dkp-menu-reputation-view-example2.png

 

Репутацию уже можно изменять проставлением галочек "посещения" через архив, а также через статистику (ручное изменение репутации для конкретных игроков). Все изменения сразу видны каждым игроком в меню сайта слева от своего ника и мини-аватара.



#7 JackDaniels

JackDaniels

    Пользователь

  • Участники
  • PipPip
  • 17 сообщений

Отправлено 28 Май 2014 - 11:41

По идее таких ситуаций возникать не должно, иначе игроки будут обижаться. поэтому дополнительно программировать эту возможность не нужно, а при необходимости вернуть КР на счет игрока, мы сможем сделать это вручную через админку.



#8 NeLo

NeLo

    Разработчик

  • Guildmaker Team
  • PipPipPipPipPipPipPipPip
  • 794 сообщений

Отправлено 29 Май 2014 - 21:50

Ваш заказ полностью реализован.

 

По поводу вопроса, обсуждаемого выше (про отказ и возврат репутации). Решили добавить такую возможность для полноты функционала ДКП-системы.

 

Проверьте корректность работы всех дополнений и исправлений, которые мы обсуждали в этой теме и сделайте резервную копию следующих файлов своего клан-сайта, к которым Вы имеете доступ по FTP:

 

Шаблоны:

 

v_index_mainpage.php
v_header.php
 
CSS-стили:
 
main.css
header.css
forum.css
admin.css
hacks.css
 
Помимо переноса приватных файлов движка, к которым Вы не имеете доступа, на Вашем клан-сайте в системе будут перезаписаны эти публичные файлы, в которых на текущий момент могут находится изменения, сделанные Вами для оформления уникального дизайна клан-сайта.
 
После установки ДКП-системы, Вы сможете заново изменить перечисленные выше файлы для восстановления прежнего вида сайта.
 
По поводу работы с файлами клан-сайта через FTP. На форуме проекта пока не создано гайдов по правильной работе с такими файлами, но есть некоторые рекомендации, которые помогут изменять внешний облик сайта без угроз его "затирания" при обновлениях движка или после заказа дополнительного функционала:
 
Ждем подтверждения и готовности к установке дополнений на сайт Вашего клана в системе:
 
После этого заказ считаем закрытым.


#9 JackDaniels

JackDaniels

    Пользователь

  • Участники
  • PipPip
  • 17 сообщений

Отправлено 31 Май 2014 - 21:33

Здравствуйте. Подготовил сайт к переносу. Сделал бекап необходимых файлов. Готов к установке дополнений на сайт.



#10 NeLo

NeLo

    Разработчик

  • Guildmaker Team
  • PipPipPipPipPipPipPipPip
  • 794 сообщений

Отправлено 01 Июнь 2014 - 03:50

Развернули дополнения на Вашем клан-сайте:

http://jackdaniels.clans.pw

 

Если в какой-либо части сайта верстка или стиль отдельного html-элемента страницы не соответствует нужному (тому, который был до установки обновлений) – воспользуйтесь резервной копией. Мы постарались сохранить внешний вид сайта без изменений.

 

Заказ считаем закрытым.

 

Вы можете оставлять в этой теме сообщения по поводу багов и проблем с разработанной ДКП-системой.

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

 

В завершении сотрудничества хотим попросить Вас оставить отзыв о нашей работе:

http://community.gui...i-predlozheniia

 

А также скинуть в этой теме пример скриншота посещаемости, с помощью которого Вы расставили галочки "Присутствовал/Отсутствовал" в своем первом мероприятии (если, разумеется, это не доставит Вам неудобств в плане ограничения распространения внутриклановой информации). Этот скриншот (с упоминанием Вашей гильдии) мы будем использовать в иллюстрациях к разработанной ДКП-системе (в ВК фотоальбоме проекта и статье о ДКП-системах).

 

Спасибо что доверились нам! Надеемся, теперь Вам будет удобно и приятно организовывать мероприятия и распределять ресурсы между активными согильдийцами. :)

Успехов в удержании власти на игровом сервере! :)







Темы с аналогичным тегами выполнено, движок, панель управления, банк, обновления, дкп, склад, казна

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных




Яндекс.Метрика