А так подойдет? Конечно, если можно изменить и добавить...
Значения поля "Count" могут быть: "-1" - запрещена скупка и продажа
"0"-"9999" - разрешено добавление
Если в скупку вещь идет с Enchant, то продаваться будет без них.
1. Добавить поле "Count" в базы `etcitem`, `armor`, `weapon`.
ALTER TABLE `EtcItem` ADD `Count` INT(4) DEFAULT '0' AFTER `oldtype`;
ALTER TABLE `Armor` ADD `Count` INT(4) DEFAULT '0' AFTER `sellable`;
ALTER TABLE `Weapon` ADD `Count` INT(4) DEFAULT '0' AFTER `sellable`;
2. В стандартную процедуру "Sell" добавить пункт в):
а)Создается "список продажи" и подсчитывается общая сумма // реализовано в стандартной процедуре Sell
б)Нажимается кнопка "продать" // реализовано в стандартной процедуре Sell
в)Если1 (в базе `EtcItem` есть поле Count) // проверка, вдруг базы не апгрейдили
// сюда можно вставить добавление столбца "Count", если его нет.
То:
Для каждого "item_id" из "списка продажи" // начало цикла по списку
Найти его "item_id" в базах "EtcItem, Armor или Weapon" // вот здесь не знаю - эти базы объединяются или по отдельности хранятся
Если2 (Count>=0 и Count+(кол-во из списка продажи)<=9999) //Если Count=-1, то этот ресурс не скупается и не продается
//и чтобы в базе было не больше 9999 шт одновременно
То: Count:=Count+(кол-во из "списка продажи")
конец Если2
конец Для
конец Если1
г)Удаляется весь "список продажи" и добавляются деньги // реализовано в стандартной процедуре Sell
3.Создать новую процедуру продажи "Buy2".
а)На базы "EtcItem, Armor или Weapon" ставим фильтр Count>0.
б)Создаем "список покупки", где Цена продажи:=Price*2*1,2 (или 1+(имя переменной, где хранится значение "Процент хозяина Замка"/100)).
г)Выводим стандартное окно покупки с созданным "списком покупки".
д)Выбираем, что надо из "списка покупки" и нажимаем "Купить"
е)Для каждого "item_id" из "списка покупки" // начало цикла по списку
Найти его "item_id" в базах "EtcItem, Armor или Weapon" // вот здесь не знаю - эти базы объединяются или по отдельности хранятся
Count:=Count-(кол-во из списка продажи)
конец Для
ж)Для каждого "item_id" из "списка покупки" // начало цикла по списку
Ищем в базе 'items' купившего `owner_id` и купленное `object_id`="item_id"
Если (нашли)
То:
Count:=Count+(кол-во из "списка покупки")
Иначе:
Добавляем запись о купленном
конец Если
конец Для
е)Удаляем "список покупки".
4.Вставляем диалог и вызов "Buy2" в html торговцев.
5.Делаем новую сборку (или как там правильно).