со строительством действительно дал маху, отслеживать поступления в казну или явку на форты тоже можно вручную, хотя долго и муторно. А дуели игроков отследить по-моему нереально.
О механизме изъятия штрафа
простейшее:
из счета нарушителя тупо вычитается сумма штрафа(возможнен отрицательный счет, ну и черт с ним)
к счету получателя прибавляется эта же сумма.
недостаток удобно мультоводам: создал мульта, понарушал им все что можно, деньги из воздуха перешли основе, удалил мульта
посложнее:
создается структура следующего вида:
1.сумма штрафа
2.сумма уплаченая( изначально 0)
3.получатель штрафа
функция данной структуры: снятие денег со счета(понятно)
к каждому игроку привязывается динамический массив штрафов(очередь), состоящий из таких структур, изначально пустой.
при каждом нарушение закона происходит добавление новой структуры в массив.
Процедура снятия денег инициализируется первой структурой в списке в 5 случаях:
1) получение нового штрафа
2) получение отчета
3) продажа вещи
4) изъятия денег с рынка(платы за вещь)
5) погашение штрафа
Если в структуре сумма штрафа сравнялась с уплаченной суммой, происходит передача денег на счет получателя штрафа и удаление первой структуры из массива штрафов.
Недостатки: сложность
можно использовать для защиты денег от нападения при договоренности с основателями.