sub AntiMacros()
dim reindex[8]
reindex[0] = 11
reindex[1] = 12
reindex[2] = 13
reindex[3] = 10
reindex[4] = 16
reindex[5] = 14
reindex[6] = 17
reindex[7] = 15
var GumpID = 0
var ButtonID = 0
var ButtonText
var i = 18
if uo.LastGump('text', 4) <> "0" then
i = 19
end if
GumpID = val(Mid(uo.LastGump('command', i), 16, 4))
ButtonID = reindex[GumpID-2225]
ButtonText = uo.LastGump('command', ButtonID)
uo.LClick(Val(Mid(ButtonText, 7, 3)), Val(Mid(ButtonText, 11, 3)))
while not uo.LastGump('replyed')
wait(100)
wend
end sub
Обьясните принцип работы, я не могу понять от как он узнает какие кнопки требуется нажать. ZeroDX переделал этот антимакрос всего в несколько строчек. Хочу понять основы, не могу написать его сам, каждый раз приходится искать готовый
ну каждый месяц они теперь смотрят логи и выцепляют по ним.
вот я о чем ( пс - могу скинуть этот же антимакрос на стелсе, может допетришь как работает )
some wrote:пс - могу скинуть этот же антимакрос на стелсе, может допетришь как работает
Давай
2Incorrect User
Ты со старой инжи снимал infogump?
procedure GumpWorkOut;
var
gi :TGumpInfo;
code1 : Cardinal;
code2 : Cardinal;
i : Integer;
//released_id : Cardinal;
begin
//UOSay('tyt');
GetGumpInfo(GetGumpsCount-1, gi);
code1 := gi.GumpButtons[0].released_id; // код картинки первой кнопки
code2 := gi.GumpButtons[1].released_id; // код картинки второй кнопки
// цикл по оставшимся кнопкам
for i := 2 to GetArrayLength(gi.GumpButtons)-1 do
begin
if gi.GumpButtons.released_id = code1 then // если код картинки совпадает, то...
begin
NumGumpButton(GetGumpsCount-1, gi.GumpButtons.return_value); // нажимаем эту кнопку
break; // и заканчиваем цикл
end;
end;
Wait(1000);
GetGumpInfo(GetGumpsCount-1, gi);
for i := 2 to GetArrayLength(gi.GumpButtons)-1 do
begin
if gi.GumpButtons.released_id = code2 then
begin
NumGumpButton(GetGumpsCount-1, gi.GumpButtons.return_value);
break;
end;
end;
end;
Да, там нужно порезать 0 и 1 кнопки (как видно из скрипта на Стелс), оставить последние цифры в них - это индексы кнопок нужных, а дальше просто uo.SendGumpSelect() по 0 кнопке и uo.WaitGump() по 1 кнопке сделать.