Воспользовался идеей балансера, сделал нпц который рассказывает в каких мобах лежат выбитые из игроков предметы, за 1/10 стоимости. Т.е. платишь 100к и получаешь инфу о всех предметах стоимостью до 1кк.
new-list VALUE owners
new-list VALUE items
new-list VALUE types
NULL VALUE item_price
NULL VALUE items_out
: npc-8604-dialog-append
'<br>' .
'<a action="bypass -h jbf_informer1">Найти предметы</a>' .
;
forth:: bypass_informer1
'<br>
Я могу найти для тебя любую вещь! Но информация стоит денег.
Нет денег - нет информации! Сколько ты готов заплатить?
<edit var="item_price" width=80>
<button value=Ok action="bypass -h jbf_informer2 $item_price" width=80 height=15>' show
;
forth:: bypass_informer2 ( item_price -- )
to item_price
item_price adena_pay
item_price 10 * to item_price
new-list to owners
new-list to items
new-list to types
"SELECT C.name AS mob_name, B.name AS item_name, B.crystal_type FROM items AS A LEFT OUTER JOIN prices AS B ON ( A.item_id = B.item_id ) LEFT OUTER JOIN npc AS C ON ( A.owner_id = C.id ) WHERE A.loc='MONSTER' AND B.price<='[ item_price >slashes ]' order by price" parse query
?dup IF . drop exit THEN
'dup "crystal_type" m@ types list+ dup "mob_name" m@ owners list+ "item_name" m@ items list+' do-list
"" to items_out
types list> 0 ?DO
dup "none" = if drop "n" then
" - " s+ items i list@ s+ " - " s+ owners i list@ s+ "<br>" s+ items_out swap s+ to items_out
LOOP
items_out show
;