Последние изменения: 1. Флажок "Only dungeons". 2. Исправил багофичу: Ранее лутоматик запоминал тип предмета на время всего сеанса, что мешало на лету менять режим лутания (один раз начали выбрасывать и так и будем выбрасывать всю дорогу - а так нехорошо).
Как установить:
файл внутри архива назвать "Main.lua" и поместить по адресу ..\Runes of Magic\Interface\addons\Lootomatic
(старую версию Main.lua имеет смысл временно скопировать в другое место, если всё плохо - вернуть обратно)
Правила работы :
1. В менюшке лутоматика можно отключить или включить фильтр по цене (весь остальной лутоматик работает независимо). 2. Можно менять предел цены между 800 и 1000 :). Ну, пока лень рисовать нормальный выбор, и вообще забавно. 3. Предметы дешевле предела цены обзываются руной нулевого уровня ($rune0), что позволяет для них написать одно правило лётоматика (на период тестирования лучше не drop, а don't loot). То есть моё дополнение самостоятельно никаких решений не принимает, логику работы аддона не меняет, а только предоставляет возможность написать правило. 4. Фиолетовые предметы, предметы "уровня 4", синие предметы с ограничением левела 58 и зелёные предметы с ограничением левела 56 - не считаются дешёвыми. Эти условия скорее всего неправильные, имеются в виду предметы на тир 4, потом уточню условия
(if quality>=1 and DemandLevel>=58 then TooGood=true; elseif quality>=2 and DemandLevel>=56 then TooGood=true; end; )
для тех, кому интересен алгоритм, вот основной кусок кода - распознаётся подстрока "Стоимость", считываются цифры и превращаются в число.
local price=0; --local price=0; if n>5 and n<9 then --Lootomatic.Func.AddChatMessage(left1.." -string- "..n); --Lootomatic.Func.AddChatMessage("Checking price of "..itemname); local itisprice=true; local currentchar=""; if not TooGood then local currentchar=""; if left1length>Lootomatic.PoodleData.PriceTextLength then Checked=true; for mytemp=1,Lootomatic.PoodleData.PriceTextLength do currentchar=string.byte(left1,mytemp,mytemp); if currentchar~=Lootomatic.PoodleData.PriceText[mytemp] then Checked=false; break; end; end; if Checked then for mytemp=Lootomatic.PoodleData.PriceTextLength+1,left1length do currentchar=string.byte(left1,mytemp,mytemp); if currentchar==44 then --its , ok elseif currentchar>=48 and currentchar<=57 then price=(price*10)+(currentchar-48); elseif price~=0 then break; --end of digits end; end; end; end; if itisprice and price>0 then --Lootomatic.Func.AddChatMessage("Price of "..itemname.." = "..price); if price Lootomatic.ItemTypeData[itemname] = Lootomatic.Keywords.rune.."0"; Lootomatic.Func.AddChatMessage("Price of "..itemname.." = "..price.." Too cheap, classifying as "..Lootomatic.ItemTypeData[itemname]); return Lootomatic.ItemTypeData[itemname]; end; end; end; end; end;
|