рейтинг имхо в топку.
я думаю лучше будет такой способ:
продавец вводит команду @sell открывается окно передачи вещей
переносит одну какую либо вещь, указывает кол-во экземпляров этой вещи не больше тех чт оуже имеются.
указанные вещи удаляются из инвентаря, и все данные заносятся в память
открывается поле для ввода числа (начальная ставка за которую продавец отдаст вещь), число заносится в память
продавец может снять свой лот в любой момент, но только до тех пор пока не сделана первая ставка.
действия покупателя:
по желанию в любой момент вводит команду @showlots
ему выводится в текстовом виде список лотов, содержащий: дату установки лота, ник продавца, минимальную ставку, текущую ставку, номер лота
желая купить определенный лот покупатель пишет "@buy номер лота, сумма" сумма должна превышать последнюю цену лота или начальную ставку
деньги снимаются сразу, возвращаются только когда ставка будет перебита более высокой.
по прошествии одних суток с момента последней ставки вещь помещается в кафру покупателю, преждложившему последнюю цену. зени уходят продавцу. информация о лоте стирается
при рестарте информация о лотах сохраняется, дополнительное время не начисляется.
такой вариант вроде упрощает создание этого сервиса, но, правда, ограничивает несколько. зато почти отсутствует поле для всевозможных махинаций.