Postado Outubro 9, 2015 9 anos Const WeaponID = 7368 //your weapon MUST be in your right hand and nothing in arrow slot SpearID = 7368 //change the IDs for stones/spears SpearOz = 2.00 SpearAmount = 100 //how many spears until it switches Fluid = [99, 2886, 2887, 2887, 2888, 2889, 2890, 2891] Procedure PickUpSpears(Spears: TItem); begin if (Self.Capacity <= (Spears.Amount * SpearOz)) then begin if (Self.Capacity/SpearOz) > 1 then Spears.MoveToContainer(Self.Containers.Container[0], 0, Int(Self.Capacity/SpearOz)); end else Spears.MoveToContainer(Self.Containers.Container[0], 0, 0); Sleep(500); end; Procedure FindSpears; var x, y, z, i, f: integer; Tile: TTile; begin for x := -1 to 1 do begin for y := -1 to 1 do begin Tile := Screen.Tile[x + 7, y + 5]; begin for i := 0 to Tile.Count-1 do begin if i >= Tile.Count then Break; if Tile.Item[i].ID = SpearID then begin if i = 1 then PickUpSpears(Tile.Item[i]); else for f := Low(Fluid) to High(Fluid) do if Tile.Item[i-1].ID = Fluid[f] then PickUpSpears(Tile.Item[i]); else Tile.Item[i-1].MoveToGround(Self.X+Random(-2,3), Self.Y+Random(-2,3), Self.Z, 0); end; end; end; end; end; end; Function GetItemFromOpenBackpack(ID, Index: integer): TItem; var x: integer; y: integer; begin Result := nil; for x := 0 to Self.Containers.Count - 1 do begin if x >= Self.Containers.Count then Break; if x = Index then Continue; for y := 0 to Self.Containers.Container[x].Count - 1 do begin if y >= Self.Containers.Container[x].Count then Break; if Self.Containers.Container[x].Item[y].ID = ID then begin Result := Self.Containers.Container[x].Item[y]; Exit; end; end; end; end; function CountItemAmountFromOpenBackpack(ID: integer): integer; var x: integer; y: integer; begin Result := 0; for x := 0 to Self.Containers.Count - 1 do begin if x >= Self.Containers.Count then Break; for y := 0 to Self.Containers.Container[x].Count - 1 do begin if y >= Self.Containers.Container[x].Count then Break; if Self.Containers.Container[x].Item[y].ID = ID then begin Result := Result + Self.Containers.Container[x].Item[y].Amount; end; end; end; end; while not terminated do begin UpdateWorld; FindSpears; Weapon := GetItemFromOpenBackpack(WeaponID, Self.Containers.Count); if Weapon <> nil then Weapon.MoveToBody(Self.Arrow, 0); Spear := GetItemFromOpenBackpack(SpearID, 0); if Spear <> nil then Spear.MoveToContainer(Self.Containers.Container[0], 0, 0); if (Self.RightHand.ID = SpearID) then begin if (Self.RightHand.Amount < 90) then begin Spear := GetItemFromOpenBackpack(SpearID, Self.Containers.Count); if Spear <> nil then Spear.MoveToBody(Self.RightHand, 0); end; end else begin SpearCount := CountItemAmountFromOpenBackpack(SpearID); if SpearCount >= SpearAmount then begin Self.RightHand.MoveToBody(Self.Arrow, 0); Sleep(500); Spear := GetItemFromOpenBackpack(SpearID, Self.Containers.Count); if Spear <> nil then Spear.MoveToBody(Self.RightHand, 0); end else if Self.RightHand.ID = 0 then Self.Arrow.MoveToBody(Self.RightHand, 0); end; Sleep(500); end; Créditos: ngmax Editado Outubro 9, 2015 9 anos por Larissa Azhaurn (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.