|
|
|
Oskom Forums Добро пожаловать на Oskom Forums.
|
-
Памогите с макросом!!!
Немуго прокачать хеалинг ,так как нету макроса на UOpilot
0.96 . На улей ! Скинте макрос каму нетрудно !
-
repeat 20
double_left 441, 314 500 // на улей
end_repeat
repeat 20
double_left 601, 540 // на бинты
wait 1000
left 401, 262 // на себя
wait 2000
end_repeat
А вообще лучше скачай пилот поновее, например 1.07
-
Спосибо тока ты скожи где его скочать !?
-
Сообщение от DaDec
Спосибо тока ты скожи где его скочать !?
Яндекс решает, а вообще лови http://wknight.hotbox.ru/
-
-
лучше скачай UOScript Oscom Edition и не парься... а вот те на него макрос...
Код:
Program UOScriptTest;
{$include sysutils.uops}
const
KeyLO = F12; { last object }
KeyLO_LT = F11; { last object - last target }
KeyLO_TS = F10; { last object - target self }
BandType = 3617;
HiveType = 2330;
MortarType = 3739;
BlackPearlType = 3962;
RefreshType = 3851;
procedure CreateRefresh;
var
MortarID,BlackPearlID : LongInt;
MenuHandle : LongInt;
bm : Array of String;
c : LongInt;
begin
if not _FindObject(MortarType,MortarID) then Exit;
if not _FindObject(BlackPearlType,BlackPearlID) then Exit;
SetLastObject(MortarType,MortarID);
SetLastTarget(BlackPearlID);
SendKey(KeyLO_LT);
//ждём открытия меню
c := 0;
Delay(1000);
while (not FindCraftMenu('potion',MenuHandle))or(c<10000) do begin
Delay(1000);
c := c + 1000;
end;
Delay(1000);
LeftDoubleClick(69,62);
SetArrayLength(bm,1);
bm[0] := 'put';
WaitForMessages(bm,15000);
end;
var
i : LongInt;
BandID,HiveID,RefreshID : LongInt;
bm : array of String; { break msg }
begin
GetJournal;
echo := false;
while true do begin
Eat;
if (_stam < Round(_dex*0.1)) then begin
//стамины стало слишком мало
CreateRefresh;
if _FindObject(RefreshType,RefreshID) then begin
SetLastObject(RefreshType,RefreshID);
SendKey(KeyLO);
Delay(2000);
end;
end;
//кликаем по улью
if _FindObject(HiveType,HiveID) then begin
SetLastObject(HiveType,HiveID);
for i:=0 to 0 do begin
SendKey(KeyLO);
Delay(1000);
end;
end else begin
ShowMessage('Can''t find bee hive!');
Exit;
end;
//лечимся
SetArrayLength(bm,3);
bm[0] := 'put';
bm[1] := 'barely';
bm[2] := 'mummy';
while _hits < _str do begin
if _FindObject(BandType,BandID) then SetLastObject(BandType,BandID) else begin
ShowMessage('No bandages left!');
Exit;
end;
SendKey(KeyLO_TS);
Delay(2000);
WaitForMessages(bm,10000);
end;
end;
end.
и теперь сам SysUtils.uops
Код:
//-----------------
// Message Box
//-----------------
const
MB_OK = 0;
MB_OKCANCEL = 1;
MB_STOPRETRYIGNORE = 2;
MB_YESNOCANCEL = 3;
MB_YESNO = 4;
MB_RETRYCANCEL = 5;
IDOK = 1;
IDCANCEL = 2;
IDSTOP = 3;
IDRETRY = 4;
IDIGNORE = 5;
IDYES = 6;
IDNO = 7;
MB_ICONERROR = 16;
MB_ICONQUESTION = 32;
MB_ICONWARNING = 48;
MB_ICONINFORMATION = 64;
function MessageBox(HWND: LongInt; aText: PChar; Caption: PChar; uType: Word): Longint; external 'MessageBoxA@user32.dll stdcall';
procedure ShowMessage(str : PChar);
begin
MessageBox(0,str,'Ultima Online',MB_OK);
end;
//-----------------------------------------------------------
//~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
//-----------------------------------------------------------
function _FindObject(aType : Word; var aID : LongInt) : boolean;
var
gumpList,gumpCnt : Longint;
i : LongInt;
hBP : LongInt;
sBP : String;
begin
Result := false;
GetGumpsList(gumpList);
GetListCount(gumpList,gumpCnt);
for i:=0 to gumpCnt-1 do begin
GetListItem(gumpList,i,hBP,sBP);
if FindObject(hBP, aType, aID) then begin
Result := true;
break;
end;
end;
FreeObjectsList(gumpList);
end;
//-----------------------------------------------------------
//~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
//-----------------------------------------------------------
// funkcija #djot soobwenij hronjawihsja v massive MSG
// i vozvrawaet nomer elemnta v massive i (-1) v slu4ae ne naho#denija
function WaitForMessages(amsg : array of String;period : LongInt) : LongInt;
var
c : LongInt; // vremja do vihoda
jCnt,i,j : LongInt;
s : String;
begin
c := 0;
Result := -1;
if echo then writeln('...WaitForMessages starts');
while (c<period) do begin
GetJournalNew;
GetJournalCount(jCnt);
if echo then writeln('find '+IntToStr(jCnt)+' messages');
for i:=0 to jCnt-1 do begin
GetJournalString(i,j_LowerCase,s);
if echo then writeln(IntToStr(i+1)+'.) mes :'+s);
for j:=0 to GetArrayLength(amsg)-1 do begin
if (Pos(amsg[j],s)>0) then begin
Result := j;
if echo then writeln(' ... find and exit');
Exit;
end;
end;
end;
Delay(1000);
if period>0 then c := c + 1000;
end;
if echo then writeln('...WaitForMessages ends');
end; { WaitForMassages }
P.S. в сисутилс я не включил всех процедур, чтобы не захламлять топик, если что не будет похать скажи, выложу.
-
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
Правила форума
|