Выглядит так :
понимамаю что впринципе не сложный антимакрос, но знаний не хватает
Code: Select all
Procedure AntiBotGump(Serial,GumpID,X,Y : Cardinal);
Var
GumpInfo : TGumpInfo;
Operation1,Operation2,FoundString : String;
A,B,C,i,pos1,pos2,Answer,TextEntry_value,Button_value,GumpIndex : Integer;
FoundStringList : TStringList;
Begin
CheckLag(30000);
if (GetGumpsCount<1) then begin Exit; end;
// GumpID это 16-ричное значение, к примеру: 968740
// нужно перевести его в десятичное (9865024) и искать именно
// десятичное в строке: if GetGumpID(i) <> 9865024 then begin
If (GumpID = 9865024) then begin
Wait(4000); // Эмуляция живого игрока
SetSilentMode(True);
// Для GumpInfo нужен порядковый номер гампа
for i:=0 to (GetGumpsCount-1) do begin
if GetGumpID(i) = 9865024 then begin
GetGumpInfo(i, GumpInfo);
GumpIndex := i;
Break;
end;
end;
// Строка с проверочным выражением где есть + или -
FoundStringList := TStringList.Create;
FoundString := GumpInfo.Text[2];
while (pos('<', FoundString) > 0) do begin
pos1 := pos('<', FoundString);
pos2 := pos('>', FoundString);
delete(FoundString, pos1, (pos2-pos1+1));
Wait(10);
end;
StrBreakApart(FoundString, ' ', FoundStringList);
A := StrToInt(FoundStringList.Strings[0]);
Operation1 := FoundStringList.Strings[1];
B := StrToInt(FoundStringList.Strings[2]);
Operation2 := FoundStringList.Strings[3];
C := StrToInt(FoundStringList.Strings[4]);
// Строка с TextEntry содержащая Return_value поля ввода
TextEntry_value := GumpInfo.TextEntries[0].return_value;
// Строка с GumpButton содержащая Return_value кнопки
Button_value := GumpInfo.GumpButtons[0].return_value;
If (Operation1 = '+') and (Operation2 = '+') then begin
Answer := A+B+C;
end else if (Operation1 = '+') and (Operation2 = '-') then begin
Answer := A+B-C;
end else if (Operation1 = '-') and (Operation2 = '+') then begin
Answer := A-B+C;
end else if (Operation1 = '-') and (Operation2 = '-') then begin
Answer := A-B-C;
end else begin
AddToSystemJournal('[ ! ] ВНИМАНИЕ! Новое действие в проверочном выражении!');
FoundStringList.Free;
Halt;
end;
AddToSystemJournal('[ ! ] ANTIBOT GUMP: ' + FoundString + ' = ' + IntToStr(Answer));
// Отправка ответа на сервер
GumpAutoTextEntry(TextEntry_value, IntToStr(Answer));
NumGumpButton(GumpIndex, Button_value);
FoundStringList.Free;
End;
End;
ну я не так давно тут играю, месяц может полтора, если ты там уже давно то может я пока еще по нубски наивен ... А так пообщатся не вопрос, если вернешся как раз нужен напарник для пве фарма босов и чампов, если надумаешь пиши тут в пм, я сюда частенько заглядываю, ищу готовые решения скриптов ...GeeZeR wrote:Как прикольно, я пессимист, а ты оптимист на одном и том же шарде. Если вернусь нужно встретиться поболтать)
а на 8 ?GeeZeR wrote: Работает на версии 7.11.0, движок PascalScript.