Предлагаю создать список разрешённых правилами игры передач и обязать указывать тип передачи, когда она осуществляется.
Цель: создать препятствия для финансовой прокачки, нарушения правил и автоматического наказания за нарушения (просрочка кредита). Лучший способ заставить соблюдать плавила - неотвратимость наказания с ограничением возможности совершения правонарушения!
Вариант реализации:
1.Создаются дополнительные таблица в БД
a)Debts для хранения текущих долгов с полями: «ID пользователя», «ID типа передачи», поля с количеством переданных ресурсов, «срок кредита»:
b)EndDepts для хранения погашенных кредитов с аналогичными полямим.
2.Создать список типов передач. Например, для начала:
a)Кредит, в долг;
b)Возврат кредита;
c)За охоту;
d)Возврат награбленного;
e)Продажа артефакта (в случае передачи в распоряжение);
f)Подарок;
g)Клановый налог;
h)Турнир в таверне;
i)Банковская деятельность.
3.Доработать страницу передачи ресурсов: добавить поле указания причины перевода и, по нажатию кнопки «передать», вносить в таблицу кредитов данные (в случае типа передачи «а») или осуществлять проверку законности перевода. Проверка любой передачи:
если охота или ГВ – проверка факта охоты или нападения и полученной суммы,
если возврат кредита – проверка наличия долга,
если передача артефакта – сравнение цены передачи со среднерыночной на данный момент (если в данный момент не продаётся – установить минимальную цену),
если подарок – сравнение с 30% состояния героя,
если клановый налог – проверка получателя (он должен являться главой или казначеем клана).
если турнир в таверне – установит минимальные требования к турниру(кол-во игр в определённый срок с группой игроков) и проверять их.
В случае нахождения нарушения – не осуществлять.
4. Раз в день проверять и наказывать нарушителей срока по кредитам.
P.S.: Описывать так сразу все нюансы тяжело! Особенно без дополнительных знаний о уже реализованном. |