nepret 0 Жалоба Опубликовано 14 марта, 2020 скрипт жрёт из банка (жареное мясо), в банк кидает логи на 158 строчке можно поменять тип еды топор нубайный при достижении максимального веса, бежит на разгрузку Program Lumber_in_Minoc; const xMin = 2391; xMax = 2534; yMin = 378; yMax = 655; // axe = $0F43; //Type топора type TreeRecord = Record t,x,y,z : Word; end; var Tree : array of TreeRecord; ct, t : Integer; ftime : TDateTime; txtR, txtF : String; procedure GetPoint; var tt, i : Integer; a : Word; b : TFoundTilesArray; TreeTile : array[0..39] of Word; begin if not Connected then exit; TreeTile[0]:=3274; TreeTile[1]:=3275; TreeTile[2]:=3277; TreeTile[3]:=3280; TreeTile[4]:=3283; TreeTile[5]:=3286; TreeTile[6]:=3288; TreeTile[7]:=3290; TreeTile[8]:=3293; TreeTile[9]:=3296; TreeTile[10]:=3299; TreeTile[11]:=3302; TreeTile[12]:=3320; TreeTile[13]:=3323; TreeTile[14]:=3326; TreeTile[15]:=3329; TreeTile[16]:=3393; TreeTile[17]:=3394; TreeTile[18]:=3395; TreeTile[19]:=3396; TreeTile[20]:=3415; TreeTile[21]:=3416; TreeTile[22]:=3417; TreeTile[23]:=3418; TreeTile[24]:=3419; TreeTile[25]:=3438; TreeTile[26]:=3439; TreeTile[27]:=3440; TreeTile[28]:=3441; TreeTile[29]:=3442; TreeTile[30]:=3460; TreeTile[31]:=3461; TreeTile[32]:=3462; TreeTile[33]:=3476; TreeTile[34]:=3478; TreeTile[35]:=3480; TreeTile[36]:=3482; TreeTile[37]:=3484; TreeTile[38]:=3492; TreeTile[39]:=3496; for tt := 0 to 39 do begin a := GetStaticTilesArray(xMin,yMin,xMax,yMax, WorldNum,TreeTile[tt], b); if a > 0 then begin for i := 0 to a - 1 do begin SetLength(Tree, Length(Tree)+1); Tree[High(Tree)].x := b[i].x; Tree[High(Tree)].y := b[i].y; Tree[High(Tree)].z := b[i].z; Tree[High(Tree)].t := b[i].tile; end; end; end; end; function CheckAxe : Boolean; begin if not Connected then exit; result := True; if (GetType(ObjAtLayer(LhandLayer)) = Axe) then exit; FindTypeEx(Axe, $FFFF, Backpack, False); if FindCount > 0 then begin CheckLag(60000); Equip(RhandLayer,FindItem); wait(500); exit; end; result := False; AddToSystemJournal('>>>>>ERROR: нет топора!'); end; function CheckWeight : Boolean; begin if not Connected then exit; if Weight < MaxWeight then Result := True; if Weight >= MaxWeight then Result := False; end; procedure DropResource; var t : integer; bank : Cardinal; ctime : TDateTime; begin if not Connected then exit; if not CheckWeight then begin while (GetX(Self) <> 2498) or (GetY(Self) <> 560) do newMoveXY(2498, 560, True, 0, CheckWeight); repeat if not Connected then exit; CheckLag(60000); repeat if not Connected then exit; t := 0; CheckLag(60000); UseObject(Backpack); repeat if not Connected then exit; wait(100); t := t + 1; until (LastContainer = Backpack) or (t >= 100); until LastContainer = Backpack; CheckLag(60000); repeat if not Connected then exit; t := 0; CheckLag(60000); UOSay('bank'); repeat if not Connected then exit; wait(100); t := t + 1; until (LastContainer = ObjAtLayer(BankLayer)) or (t >= 100); until LastContainer = ObjAtLayer(BankLayer); until LastContainer = ObjAtLayer(BankLayer); if not Connected then exit; bank := ObjAtLayer(BankLayer); FindTypeEx($1BDD, $FFFF, Backpack, False); if FindCount > 0 then begin CheckLag(60000); MoveItem(FindItem, FindQuantity, bank, 0,0,0); wait(500); end; repeat if not Connected then exit; FindTypeEx($09F2,$FFFF, bank, False);//$09F2 тип еды if FindCount > 0 then begin ctime := Now; CheckLag(60000); UseObject(FindItem); wait(500); end; until (FindCount <= 0) or (InJournalBetweenTimes('Я объелся', ctime, Now) <> -1); end; end; procedure CheckAttak; begin if not Connected then exit; if not WarMode then SetWarMode(True); if HP < MaxHP then begin UOSay('.guards'); if TargetPresent then CancelTarget; UOSay('.bandage'); CheckLag(60000); WaitForTarget(5000); WaitTargetSelf; end; end; begin SetARStatus(True); moveThroughNPC := 0; MoveOpenDoor := True; GetPoint; txtR := 'You have found some deadwood|Forest guardians are angry on you|not enough wood here to chop|Circle of Transparency|That is too far away'; txtF := 'not enough wood here to chop|Circle of Transparency|That is too far away'; repeat while not Connected do begin wait(1000); end; for ct := 0 to High(Tree) do begin if not Connected then break; if not CheckAxe then exit; DropResource; if newMoveXY(Tree[ct].x, Tree[ct].y, True, 2, CheckWeight) then begin repeat if not Connected then break; repeat if not Connected then break; if TargetPresent then CancelTarget; CheckLag(60000); UseObject(ObjAtLayer(LhandLayer)); WaitForTarget(5000); until TargetPresent; ftime := Now; TargetToTile(Tree[ct].t, Tree[ct].x, Tree[ct].y, Tree[ct].z); CheckAttak; t := 0; repeat if not Connected then break; t := t + 1; CheckLag(60000); wait(100); until (InJournalBetweenTimes(txtR, ftime, Now) <> -1) or (t >= 600); until (InJournalBetweenTimes(txtF, ftime, Now) <> -1); end; end; until false; end. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты