Everyone who has never used our Bots before, can test each one for 2 days without any limitation.
The trial is given automatically when you login on the Bot, but in some cases it wouldn't work (security reasons).
If this happens, send me a private message and i will be checking the failed trials manually and adding it for those who didn't get it.
We are looking for resellers who may accept payment methods different from ours, including classictibia's cash, realesta's cash, mastercores' cash, etc. Interested? Click here at anytime.



Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
FREE Advanced fishing
#1
Hello.

About the script
The scripts below will fish only on the WATER_IDs. So you must make sure the water id you are willing to fish is in the list.

This script will fish and drop garbage when it has at least x count of garbage.
local WATER_IDS = { 618, 619, 620, 622, 623, 624, 625, 626, 627, 628, 629, 4597, 4598, 4599, 4600, 4601, 4602, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4653, 4654, 4655 } -- Water ids which script should try to fish.
local FISHING_ROD_ID = 5331 -- Fishing rod id.
local TRASH = {
    { Item = 5326, Count = 1 }, -- wood
}

if connected() then
    local player_x = posx()
    local player_y = posy()
    local player_z = posz()
    local tiles = gettiles()
    for _, tile in ipairs(tiles) do
        if math.abs(tile.posx - player_x) <= 7 and math.abs(tile.posy - player_y) <= 5 and tile.posz == player_z then
            for __, item in ipairs(tile.items) do
                if table.find(WATER_IDS, item.id) ~= nil then
                    useitemon(FISHING_ROD_ID, tile.posx, tile.posy, tile.posz)
                    wait(800, 1200)
                    break
                end
            end
        end
    end

    for _, item in ipairs(TRASH) do
        if itemcount(item.Item) >= item.Count then
            moveitems(item.Item, ground(posx(), posy(), posz()), '', 100)
            wait(500)
        end
    end
end

This script will stop fishing and drop garbage as well, but will stop fishing whenever it reaches the "FISHING_ROD_CHARGES" count. That mean it would use a fishing rod 300 times then stop.
local WATER_IDS = { 618, 619, 620, 622, 623, 624, 625, 626, 627, 628, 629, 4597, 4598, 4599, 4600, 4601, 4602, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4653, 4654, 4655 } -- Water ids which script should try to fish.
local FISHING_ROD_ID = 5331 -- Fishing rod id.
local FISHING_ROD_CHARGES = 300 -- How many charges fishing rod has? It will stop after using that many times.
local TRASH = {
    { Item = 5326, Count = 1 }, -- wood
}

USED_TIMES = getglobal('USED_TIMES')
if USED_TIMES == nil then
    setglobal('USED_TIMES', 0)
    USED_TIMES = 0
end

if connected() then
    if USED_TIMES ~= nil and USED_TIMES < FISHING_ROD_CHARGES then
        local player_x = posx()
        local player_y = posy()
        local player_z = posz()
        local tiles = gettiles()
        for _, tile in ipairs(tiles) do
            if math.abs(tile.posx - player_x) <= 7 and math.abs(tile.posy - player_y) <= 5 and tile.posz == player_z then
                for __, item in ipairs(tile.items) do
                    if table.find(WATER_IDS, item.id) ~= nil then
                        useitemon(FISHING_ROD_ID, tile.posx, tile.posy, tile.posz)
                        wait(800, 1200)
                        USED_TIMES = USED_TIMES + 1
                        setglobal('USED_TIMES', USED_TIMES)
                        break
                    end
                end
            end
        end
    end

    for _, item in ipairs(TRASH) do
        if itemcount(item.Item) >= item.Count then
            moveitems(item.Item, ground(posx(), posy(), posz()), '', 100)
            wait(500)
        end
    end
end

This script will also fish, drop garbage and stop fishing, BUT it will make cavebot go to specific waypoint and enable cavebot. So you can make waypoints to reach an npc or simply do whatever you need to refill your fishing rod.
|Only Registered members can see download links. | Click here to buy subscription or here to register.
|Only Registered members can see download links. | Click here to buy subscription or here to register.alt="Smile" title="Smile" class="smilie smilie_1" />
local WATER_IDS = { 618, 619, 620, 622, 623, 624, 625, 626, 627, 628, 629, 4597, 4598, 4599, 4600, 4601, 4602, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4653, 4654, 4655 } -- Water ids which script should try to fish.
local FISHING_ROD_ID = 5331 -- Fishing rod id.
local FISHING_ROD_CHARGES = 300 -- How many charges fishing rod has? It will stop after using that many times.
local WAYPOINT_RECHARGE = 'go_recharge' -- Wpt name or index to recharge rod. Leave empty to ignore.
local TRASH = {
    { Item = 5326, Count = 1 }, -- wood
}

USED_TIMES = getglobal('USED_TIMES')
if USED_TIMES == nil then
    USED_TIMES = 0
    setglobal('USED_TIMES', 0)
end

if connected() then
    if USED_TIMES ~= nil and USED_TIMES < FISHING_ROD_CHARGES then
        local player_x = posx()
        local player_y = posy()
        local player_z = posz()
        local tiles = gettiles()
        for _, tile in ipairs(tiles) do
            if math.abs(tile.posx - player_x) <= 7 and math.abs(tile.posy - player_y) <= 5 and tile.posz == player_z then
                for __, item in ipairs(tile.items) do
                    if table.find(WATER_IDS, item.id) ~= nil then
                        useitemon(FISHING_ROD_ID, tile.posx, tile.posy, tile.posz)
                        wait(800, 1200)
                        USED_TIMES = USED_TIMES + 1
                        setglobal('USED_TIMES', USED_TIMES)
                        break
                    end
                end
            end
        end
    elseif USED_TIMES ~= nil and USED_TIMES >= FISHING_ROD_CHARGES and WAYPOINT_RECHARGE ~= nil and WAYPOINT_RECHARGE ~= '' then
        gotolabel(WAYPOINT_RECHARGE)
        setsettings('Cavebot/Enabled', true)
    end

    for _, item in ipairs(TRASH) do
        if itemcount(item.Item) >= item.Count then
            moveitems(item.Item, ground(posx(), posy(), posz()), '', 100)
            wait(500)
        end
    end
end

Notice that you must reset the variable "USED_TIMES" after refilling. The script below does that, so you just need to add it on Cavebot -> Action after refilling or walking back to fishing spot.
setglobal('USED_TIMES', 0)


Right-click on water
This script should be used on servers that you don't need to use a fishing rod, but only right-click directly on water.
local WATER_IDS = { 618, 619, 620, 622, 623, 624, 625, 626, 627, 628, 629, 4597, 4598, 4599, 4600, 4601, 4602, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4653, 4654, 4655 } -- Water ids which script should try to fish by using right click.
local DELAY_BETWEEN_CLICKS = { Min = 1000, Max = 2000 }

if connected() then
    local player_x = posx()
    local player_y = posy()
    local player_z = posz()
    local tiles = gettiles()

    local places = { }
    for _, tile in ipairs(tiles) do
        if math.abs(tile.posx - player_x) <= 7 and math.abs(tile.posy - player_y) <= 5 and tile.posz == player_z then
            for __, item in ipairs(tile.items) do
                if table.find(WATER_IDS, item.id) ~= nil then
                    table.insert(places, { x = tile.posx, y = tile.posy } )
                    break
                end
            end
        end
    end

    table.shuffle(places)

    for _, place in ipairs(places) do
        local point = pointfromloc(place.x, place.y, player_z)
        if point.x ~= -1 or point.y ~= -1 then
            mouserclick(point.x, point.y)
            wait(DELAY_BETWEEN_CLICKS.Min, DELAY_BETWEEN_CLICKS.Max)
            break
        end
    end
end


keywords: fishing rod, fish, fishing, garbage, trash, drop trash, drop garbage, drop, fish and drop, advanced fishing, wooden rod, mechanical rod
Reply

#2
anychance you can modify the last fishing script with the right click so you can have it only click 1 spot to the north,south,east,west cause the server i play on has the right click but its literally 1sqr from the dock
Reply

#3
Hello.

Just edit the x, y, z on function below.
local point = pointfromloc(12345, 12345, 6) -- x, y, z location to right-click.
if point.x ~= -1 or point.y ~= -1 then
  mouserclick(point.x, point.y)
  wait(10000)
end

Or this, based on your character's location. You just need to setup the direction where the water is and it MUST BE 1 sqm away from your character.
local DIRECTION = 'ne' -- Water direction based in your character: n, e, s, w, ne, nw, se, sw.

if connected() then
    if DIRECTION == 'w' or DIRECTION == 'e' or DIRECTION == 'n' or DIRECTION == 's' or DIRECTION == 'ne' or DIRECTION == 'nw' or DIRECTION == 'se' or DIRECTION == 'sw' then
        local dir = {x = {n = 0, s = 0, w = -1, e = 1}, y = {n = -1, s = 1, w = 0, e = 0}}
        local x = 0
        local y = 0
        for i = 1, #DIRECTION do
            local c = DIRECTION:sub(i,i)
            x = x + dir.x[c]
            y = y + dir.y[c]
        end

        local point = pointfromloc(posx() + x, posy() + y, posz())
        if point.x ~= -1 or point.y ~= -1 then
            mouserclick(point.x, point.y)
            wait(10000)
        end
    end
end

The same as above, but also drops trash (unwanted items).
local DIRECTION = 'ne' -- Water direction based in your character: n, e, s, w, ne, nw, se, sw.
local ITEMS_DROP = { -- Drop listed items if its count is equal or higher than Count.
    { Item = 3031, Count = 2 }, -- gold coin. Drops only if there are 2 or more gold coins on open containers.
}

if connected() then
    if DIRECTION == 'w' or DIRECTION == 'e' or DIRECTION == 'n' or DIRECTION == 's' or DIRECTION == 'ne' or DIRECTION == 'nw' or DIRECTION == 'se' or DIRECTION == 'sw' then
        local dir = {x = {n = 0, s = 0, w = -1, e = 1}, y = {n = -1, s = 1, w = 0, e = 0}}
        local x = 0
        local y = 0
        for i = 1, #DIRECTION do
            local c = DIRECTION:sub(i,i)
            x = x + dir.x[c]
            y = y + dir.y[c]
        end

        local point = pointfromloc(posx() + x, posy() + y, posz())
        if point.x ~= -1 or point.y ~= -1 then
            mouserclick(point.x, point.y)
            wait(10000)
        end
    end
    for _, item in ipairs(ITEMS_DROP) do
        if itemcount(item.Item) >= item.Count then
            moveitems(item.Item, ground(posx(), posy(), posz()), '', 100)
            wait(500)
        end
    end
end
Reply

#4
apologies could you edit it so if there are more than x amount of fish in inventory it'll drop cause theres like 3 different types of fish i'd greatly appreciate it
Reply

#5
|Only Registered members can see download links. | Click here to buy subscription or here to register.

Fish and drop together.
local LOCATION_CLICK = { X = 12345, Y = 12356, Z = 6 }
local ITEMS_DROP = { -- Drop listed items if its count is equal or higher than Count.
    { Item = 3031, Count = 2 }, -- gold coin. Drops only if there are 2 or more gold coins on open containers.
}

local point = pointfromloc(LOCATION_CLICK.X, LOCATION_CLICK.Y, LOCATION_CLICK.Z) -- x, y, z location to right-click.
if point.x ~= -1 or point.y ~= -1 then
  mouserclick(point.x, point.y)
  wait(10000)
end

for _, item in ipairs(ITEMS_DROP) do
    if itemcount(item.Item) >= item.Count then
        moveitems(item.Item, ground(posx(), posy(), posz()), '', 100)
        wait(500)
    end
end

Drop items only.
local ITEMS_DROP = { -- Drop listed items if its count is equal or higher than Count.
    { Item = 3031, Count = 2 }, -- gold coin. Drops only if there are 2 or more gold coins on open containers.
}

for _, item in ipairs(ITEMS_DROP) do
    if itemcount(item.Item) >= item.Count then
        moveitems(item.Item, ground(posx(), posy(), posz()), '', 100)
        wait(500)
    end
end
Reply

#6
"This script: local WATER_IDS = { 618, 619, 620, 622, 623, 624, 625, 626, 627, 628, 629, 4597, 4598, 4599, 4600, 4601, 4602, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4653, 4654, 4655 } -- Water ids which script should try to fish.
local FISHING_ROD_ID = 5331 -- Fishing rod id.
local FISHING_ROD_CHARGES = 300 -- How many charges fishing rod has? It will stop after using that many times.
local TRASH = {
    { Item = 5326, Count = 1 }, -- wood
}

USED_TIMES = getglobal('USED_TIMES')
if USED_TIMES == nil then
    setglobal('USED_TIMES', 0)
    USED_TIMES = 0
end

if connected() then
    if USED_TIMES ~= nil and USED_TIMES < FISHING_ROD_CHARGES then
        local player_x = posx()
        local player_y = posy()
        local player_z = posz()
        local tiles = gettiles()
        for _, tile in ipairs(tiles) do
            if math.abs(tile.posx - player_x) <= 7 and math.abs(tile.posy - player_y) <= 5 and tile.posz == player_z then
                for __, item in ipairs(tile.items) do
                    if table.find(WATER_IDS, item.id) ~= nil then
                        useitemon(FISHING_ROD_ID, tile.posx, tile.posy, tile.posz)
                        wait(800, 1200)
                        USED_TIMES = USED_TIMES + 1
                        setglobal('USED_TIMES', USED_TIMES)
                        break
                    end
                end
            end
        end
    end

    for _, item in ipairs(TRASH) do
        if itemcount(item.Item) >= item.Count then
            moveitems(item.Item, ground(posx(), posy(), posz()), '', 100)
            wait(500)
        end
    end
end"

Upon completing a round in the water around the character, the script discards the fishing rod at the character's feet. How to prevent discarding the fishing rod and continue fishing until all 250 charges of the rod are used?
Reply

#7
|Only Registered members can see download links. | Click here to buy subscription or here to register.

Hello.

The script only moves listed trash items to your feet. If you don't need that then just remove.
I just developed another script that fishes:
|Only Registered members can see download links. | Click here to buy subscription or here to register.


If you wanna using this then I removed the drop trash code.
local WATER_IDS = { 618, 619, 620, 622, 623, 624, 625, 626, 627, 628, 629, 4597, 4598, 4599, 4600, 4601, 4602, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4653, 4654, 4655 } -- Water ids which script should try to fish.
local FISHING_ROD_ID = 5331 -- Fishing rod id.



if connected() then
    local player_x = posx()
    local player_y = posy()
    local player_z = posz()
    local tiles = gettiles()
    for _, tile in ipairs(tiles) do
        if math.abs(tile.posx - player_x) <= 7 and math.abs(tile.posy - player_y) <= 5 and tile.posz == player_z then
            for __, item in ipairs(tile.items) do
                if table.find(WATER_IDS, item.id) ~= nil then
                    useitemon(FISHING_ROD_ID, tile.posx, tile.posy, tile.posz)
                    wait(800, 1200)
                    break
                end
            end
        end
    end
end
Reply



Forum Jump:



Forum software by © MyBB Theme © iAndrew 2016