• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Action Advanced Fishing System (allow to find items)

andu

Sold 649 scripts, 25 maps and 9 events!
Joined
Aug 7, 2009
Messages
969
Solutions
17
Reaction score
353
GitHub
olrios
Twitch
olrios
I fixed some bugs now it working :)
Tested on TFS 0.3.5pl1

At fishing level less then 20 you can fishing: Small Stones, Dirty Capes, Fish Bones and you have ~50% chance to catch a fish!
When you fishing level grown you can fishing better items and better fish, like Green Perches.

If your character have (quest) storage id 14900 then is possible to catch pirate items: Pirate Boots, Pirate Cap etc.

Tommorow i will add some NPCs with quests for fishing.
If someone have good idea about quest, reply here please.

Sorry for my ENG.


Code:
local config = {
    [1] = {item = {1294, 1}, chance = 25000, fishing = 0, quest = {enable = false, storage = nil}},        -- Small Stones 2,5%
    [2] = {item = {2237, 1}, chance = 135000, fishing = 0, quest = {enable = false, storage = nil}},    -- Dirty Capes 13,5%
    [3] = {item = {2759, 1}, chance = 30000, fishing = 0, quest = {enable = false, storage = nil}},        -- Orange Stars 3%
    [4] = {item = {4839, 1}, chance = 30000, fishing = 0, quest = {enable = false, storage = nil}},        -- Bottle 3%
    [5] = {item = {1947, 1}, chance = 5000, fishing = 0, quest = {enable = false, storage = nil}},        -- Blank Papers 0,5%
    [6] = {item = {2226, 1}, chance = 150000, fishing = 0, quest = {enable = false, storage = nil}},    -- Fish Bones 15%
    [7] = {item = {2333, 1}, chance = 40000, fishing = 0, quest = {enable = false, storage = nil}},        -- Stamped Letters 4%
    [8] = {item = {5951, 1}, chance = 50000, fishing = 0, quest = {enable = false, storage = nil}},        -- Fish Tails 5%

    [9] = {item = {6096, 1}, chance = 500, fishing = 0, quest = {enable = true, storage = 14900}},        -- pirate hat 0,05%
    [10] = {item = {5917, 1}, chance = 3500, fishing = 0, quest = {enable = true, storage = 14900}},    -- bandana 0,35%
    [11] = {item = {5918, 1}, chance = 1000, fishing = 0, quest = {enable = true, storage = 14900}},    -- pirate knee breeches 0,1%
    [12] = {item = {5462, 1}, chance = 1000, fishing = 0, quest = {enable = true, storage = 14900}},    -- pirate boots 0,1%
    [13] = {item = {2009, 1}, chance = 450, fishing = 0, quest = {enable = true, storage = 14900}},        -- green flask 0,045%

    [14] = {item = {2798, 1}, chance = 2000, fishing = 20, quest = {enable = false, storage = nil}},    -- Blood Herb 0,2%
    [15] = {item = {5899, 1}, chance = 18000, fishing = 20, quest = {enable = false, storage = nil}},    -- Turtle Shells 1,8%
    [16] = {item = {2346, 1}, chance = 500, fishing = 20, quest = {enable = false, storage = nil}},        -- tear of daraman 0,05%
    [17] = {item = {2663, 1}, chance = 425, fishing = 20, quest = {enable = false, storage = nil}},        -- mystic turban 0,0425%
    [18] = {item = {2185, 1}, chance = 1500, fishing = 20, quest = {enable = false, storage = nil}},    -- necrotic rod 0,15%
    [19] = {item = {2670, 1}, chance = 10000, fishing = 20, quest = {enable = false, storage = nil}},    -- shrimp 1%

    [20] = {item = {7159, 1}, chance = 100000, fishing = 30, quest = {enable = false, storage = nil}},    -- # FISH GREEN PERCHES 10%
    [21] = {item = {8872, 1}, chance = 1950, fishing = 30, quest = {enable = false, storage = nil}},        -- belted cape 0,195%
    [22] = {item = {8865, 1}, chance = 250, fishing = 30, quest = {enable = false, storage = nil}},        -- dark lord's cape 0,025%
    [23] = {item = {2185, 1}, chance = 500, fishing = 30, quest = {enable = false, storage = nil}},        -- necrotic rod 0,05%

    [24] = {item = {8910, 1}, chance = 50, fishing = 40, quest = {enable = false, storage = nil}},        -- underworld rod 0,005%
    [25] = {item = {8849, 1}, chance = 100, fishing = 40, quest = {enable = false, storage = nil}},        -- modified crossbow 0,01%
    [26] = {item = {2662, 1}, chance = 50, fishing = 40, quest = {enable = false, storage = nil}},        -- magician hat 0,005%

    [27] = {item = {7158, 1}, chance = 100000, fishing = 50, quest = {enable = false, storage = nil}},    -- # FISH RAINBOW RTOUTS 10%
    [28] = {item = {8911, 1}, chance = 50, fishing = 50, quest = {enable = false, storage = nil}},        -- northwind rod 0,005%
    [29] = {item = {2185, 1}, chance = 500, fishing = 50, quest = {enable = false, storage = nil}},        -- Fish Fin 0,05%

    [30] = {item = {8850, 1}, chance = 100, fishing = 60, quest = {enable = false, storage = nil}},        -- chain bolter 0,01%
    [31] = {item = {2644, 1}, chance = 15, fishing = 60, quest = {enable = false, storage = nil}},        -- bunny slippers 0,0015%
    [32] = {item = {2196, 1}, chance = 5, fishing = 60, quest = {enable = false, storage = nil}},        -- broken amulet 0,0005%
    [33] = {item = {2508, 1}, chance = 5, fishing = 60, quest = {enable = false, storage = nil}},        -- native armor 0,0005%
    [34] = {item = {8853, 1}, chance = 65, fishing = 60, quest = {enable = false, storage = nil}},        -- ironworker 0,0065%

    [35] = {item = {2669, 1}, chance = 100000, fishing = 70, quest = {enable = false, storage = nil}},    -- Northern Pikes 10%
    [36] = {item = {2183, 1}, chance = 15, fishing = 70, quest = {enable = false, storage = nil}},        -- hailstorm rod 0,0015%
    [37] = {item = {8912, 1}, chance = 15, fishing = 70, quest = {enable = false, storage = nil}},        -- springsprout rod 0,0015%
    [38] = {item = {8856, 1}, chance = 50, fishing = 70, quest = {enable = false, storage = nil}},        -- yol's bow 0,005%

    [39] = {item = {7963, 1}, chance = 100000, fishing = 80, quest = {enable = false, storage = nil}},    -- # FISH SHARK FISH 10%
    [40] = {item = {8858, 1}, chance = 10, fishing = 80, quest = {enable = false, storage = nil}},        -- elethriel's elemental bow 0,001%

    [41] = {item = {8888, 1}, chance = 1, fishing = 90, quest = {enable = false, storage = nil}},        -- master archer's armor 0,0001%

    [42] = {item = {2130, 1}, chance = 1, fishing = 100, quest = {enable = false, storage = nil}},        -- golden amulet 0,0001%
    [43] = {item = {2646, 1}, chance = 1, fishing = 100, quest = {enable = false, storage = nil}},        -- golden boots 0,0001%

    [44] = {item = {ITEM_WORM, 1}, chance = 92392, fishing = 0, quest = {enable = false, storage = nil}}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local playerFishing = getPlayerSkill(cid, SKILL_FISHING)

    local now = nil
    for i = 1, #config do
        if (config.chance > math.random(1, 1000000)) then
            now = config
            break
        end
    end

    if(itemEx.itemid >= 4608 and itemEx.itemid <= 4625 or itemEx.itemid == 493) then
        if(math.random(1, (100 + (playerFishing / 10))) <= playerFishing) then
            if getPlayerItemCount(cid, ITEM_WORM) > 0 then
                if(playerFishing >= now.fishing) then
                    if(now.quest.enable) then
                        if(getPlayerStorageValue(cid, now.quest.storage) < 0) then
                            doPlayerAddItem(cid, now.item[1], now.item[2])
                            doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You caught a "..getItemNameById(now.item[1]).."!")
                        else
                            doPlayerAddItem(cid, ITEM_FISH, 1)
                            doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You caught a fish!")
                        end
                    else
                        doPlayerAddItem(cid, now.item[1], now.item[2])
                        doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You caught "..getItemNameById(now.item[1]).."!")
                    end
                else
                    doPlayerAddItem(cid, ITEM_FISH, 1)
                    doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You caught a fish!")
                end
            end
                doPlayerAddSkillTry(cid, SKILL_FISHING, 1)
        end
        doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY)
        doPlayerRemoveItem(cid, ITEM_WORM, 1)
    end
    return true
end
 
Last edited:
yeh, this needs tables and loops


already i making tables and loops whit help of Chojrak
i will add i new version fishing items for fishing level and only to players who have storageID (quest)

sorry for my eng
 
A few suggestions:
You have a small chance to fish up Quaras (but preferably scouts only).

There could be an NPC where you pay a certain amount of money, and you are teleported to a boat far out in the sea, where you have a X time limit to fish.
From this boat, you have a much higher chance to get rare fishes (e.g. Rainbow Trout).
The captain with you out on the sea could say some lame phrases as: "There's something fishy going on.", "Come here, fishy fishy.", "Where can that fish be? It is a most elusive fish!"

Rubbish: Fish Tail, Fishbone, Rotten Meat, Banana Skin, Bone, Big Bone, Skull, Skeleton etc.

Only from certain shores you can fish certain fishes (e.g. need to fish in Greenshore to get Green Perch etc.).

Edit:
An NPC similar to Grizzly Adams, that requires you to find 15 Green Perch, then 10 Northern Pike, then 5 Rainbow Trout and 1 Marlin.
Each of the fishes can only be fished from a certain place (e.g. Green Perch from Greenshore, Northern Pike from Svargrond, Rainbow Trout from a fishing boat and Marlin from a specific shore in Tiquanda).
Maybe there could be some use to the Mechanic Fishing Rod than just for one quest only, something like either getting better fishes or required within the fishing quests itself etc.
 
Last edited:
Error attempt to index local 'now' a nil value
line 73

This happens while fishing
 
[16:38:25.417] [Error - Action Interface]
[16:38:25.421] data/actions/scripts/craft/fishing.lua:eek:nUse
[16:38:25.424] Description:
[16:38:25.426] data/actions/scripts/craft/fishing.lua:64: attempt to compare number with nil
[16:38:25.427] stack traceback:
[16:38:25.431] data/actions/scripts/craft/fishing.lua:64: in function <data/actions/scripts/craft/fishing.lua:59>
 
Back
Top