Ir para conteúdo

Featured Replies

Postado

Salve rapazeada do TK, preciso de um script de pesca simples, onde o player usa a vara na água, aumenta o fishing e tem a chance de pescar um peixe, como meu servidor é 7.4, não precisa de worms pra pescar, procurei por esse script no fórum porém não encontrei, se houver algum por favor me mande o link e peço desculpas!!

  • Respostas 10
  • Visualizações 696
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Anderson Sacani
    Anderson Sacani

    local config = { rate = 10, -- Speed at which the skill will progress cooldown = 2, -- Time in seconds of character exhaustion } function onUse(cid, item, frompos, item2, topos) local wat

  • funcionou certinho, obrigado! rep+

Postado
-- By GriZzm0

function onUse(cid, item, frompos, item2, topos)
	-- 490 fish
	-- 491 no fish 
	-- 492 fish regeneration
	if (item2.itemid == 490) then
		fishingskill = getPlayerSkill(cid,6)
		formula = fishingskill / 200 + 0.85 * math.random()
		if formula > 0.70 then
			doTransformItem(item2.uid, 492)
			doDecayItem(item2.uid)
			doPlayerAddSkillTry(cid, LEVEL_SKILL_FISHING, 2)
			doPlayerAddItem(cid, 2667, 1)
		else
			doPlayerAddSkillTry(cid, LEVEL_SKILL_FISHING, 1)
		end
		
		doSendMagicEffect(topos, CONST_ME_LOSEENERGY)

	elseif (item2.itemid == 491 or item2.itemid == 492) then
		doSendMagicEffect(topos, CONST_ME_LOSEENERGY)
	end
	
	return true
end

 

Editado por Anderson Sacani (veja o histórico de edições)

Postado
  • Autor
47 minutos atrás, Anderson Sacani disse:

-- By GriZzm0

function onUse(cid, item, frompos, item2, topos)
	-- 490 fish
	-- 491 no fish 
	-- 492 fish regeneration
	if (item2.itemid == 490) then
		fishingskill = getPlayerSkill(cid,6)
		formula = fishingskill / 200 + 0.85 * math.random()
		if formula > 0.70 then
			doTransformItem(item2.uid, 492)
			doDecayItem(item2.uid)
			doPlayerAddSkillTry(cid, LEVEL_SKILL_FISHING, 2)
			doPlayerAddItem(cid, 2667, 1)
		else
			doPlayerAddSkillTry(cid, LEVEL_SKILL_FISHING, 1)
		end
		
		doSendMagicEffect(topos, CONST_ME_LOSEENERGY)

	elseif (item2.itemid == 491 or item2.itemid == 492) then
		doSendMagicEffect(topos, CONST_ME_LOSEENERGY)
	end
	
	return true
end

 

não deu certo, meu script para pesca é esse:

 

Spoiler
local config = {
    waters = {4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825},
    fishable = {4608, 4609, 4610, 4611, 4612, 4613, 7236},
    spawning = {4614, 4615, 4616, 4617, 4618, 4619},
    holes = {7236},
 
    corpses = {
        -- [corpse] = {[aid] = { {itemid, countmax, chance} }}
        [10499] = {
            [101] = {},
            [102] = {}
        }
    },
    checkCorpseOwner = getConfigValue("checkCorpseOwner"),
    rateLoot = getConfigValue("rateLoot"),
 
    summons = {
        -- {skill, name, chance, bossName, bossChance}
    },
    rateSpawn = getConfigValue("rateSpawn"),
 
    baitFailRemoveChance = 10,
    allowFromPz = false,
    useBait = false,
    baitCount = 0,
    fishes = 1
}
 
config.checkCorpseOwner = getBooleanFromString(config.checkCorpseOwner)
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
    if(isInArray(config.waters, itemEx.itemid)) then
        if(isInArray(config.spawning, itemEx.itemid)) then
            doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
        end
 
        doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY)
        return true
    end
 
    local corpse = config.corpses[itemEx.itemid]
    if(corpse ~= nil and corpse ~= 0) then
        corpse = corpse[itemEx.actionid]
        if(corpse ~= nil and corpse ~= 0) then
            if(config.checkCorpseOwner and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) then
                local owner = getItemAttribute(itemEx.uid, "corpseowner")
                if(owner ~= 0 and owner ~= nil and owner ~= getPlayerGUID(cid)) then
                    doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUARENOTTHEOWNER)
                    return true
                end
            end
 
            local chance, items, default, max = math.random(0, 100000) / config.rateLoot, {}, {}, 0
            for _, data in ipairs(corpse) do
                if(data[3] >= chance) then
                    local tmp = {data[1], math.random(1, data[2])}
                    table.insert(items, tmp)
                end
                if(data[3] > max) then
                    default = data
                    max = data[3]
                end
            end
 
            local itemCount = table.maxn(items)
            if(itemCount > 0) then
                local loot = items[math.random(1, itemCount)]
                doPlayerAddItem(cid, loot[1], loot[2])
            else
                doPlayerAddItem(cid, default[1], default[2])
            end
 
            doTransformItem(itemEx.uid, getItemInfo(itemEx.itemid).decayTo)
            doSendMagicEffect(toPosition, CONST_ME_WATERSPLASH)
            doDecayItem(itemEx.uid)
            return true
        end
    end
 
    if(not isInArray(config.fishable, itemEx.itemid)) then
        return false
    end
 
    local position, formula, tries = getThingPosition(cid), getPlayerSkill(cid, SKILL_FISHING) / 200 + 0.85 * math.random(), 0
    config.allowFromPz = config.allowFromPz or not getTileInfo(position).protection
    if(item.itemid ~= ITEM_MECHANICAL_FISHING_ROD) then
        if(config.allowFromPz and (not config.useBait or getPlayerItemCount(cid, ITEM_WORM) >= config.baitCount)) then
            tries = 1
            if(isInArray(config.holes, itemEx.itemid)) then
                if(doPlayerRemoveItem(cid, ITEM_WORM, config.baitCount)) then
                    tries = 2
                    if(formula > 0.83) then
                        doPlayerAddItem(cid, ITEM_RAINBOW_TROUT, config.fishes)
                    elseif(formula > 0.7) then
                        doPlayerAddItem(cid, ITEM_NORTHERN_PIKE, config.fishes)
                    elseif(formula > 0.5) then
                        doPlayerAddItem(cid, ITEM_GREEN_PERCH, config.fishes)
                    else
                        doPlayerAddItem(cid, ITEM_FISH, config.fishes)
                    end
                end
            elseif(formula > 0.7 and doPlayerRemoveItem(cid, ITEM_WORM, config.baitCount)) then
                tries = 2
                if(table.maxn(config.summons) > 0 and getDistanceBetween(position, toPosition) < 2) then
                    local skill, summon = getPlayerSkill(cid, SKILL_FISHING), {name = "", chance = 0, bossName = "", bossChance = 0}
                    for _, data in pairs(config.summons) do
                        if(skill >= data[1]) then
                            summon.name = data[2]
                            summon.chance = data[3]
                            summon.bossName = data[4]
                            summon.bossChance = data[5]
                        end
                    end
 
                    local random = math.random(1, 100000) / config.rateSpawn
                    if(summon.bossName ~= "" and summon.bossChance >= random) then
                        doCreateMonster(summon.bossName, position)
                        tries = 4
                    elseif(summon.name ~= "" and summon.chance >= random) then
                        doCreateMonster(summon.name, position)
                        tries = 3
                    else
                        doPlayerAddItem(cid, ITEM_FISH, config.fishes)
                    end
                else
                    doPlayerAddItem(cid, ITEM_FISH, config.fishes)
                end
            end
        end
    elseif(config.allowFromPz and (not config.useBait or getPlayerItemCount(cid, ITEM_NAIL) >= config.baitCount)) then
        if(formula > 0.7 and doPlayerRemoveItem(cid, ITEM_NAIL, config.baitCount)) then
            doPlayerAddItem(cid, ITEM_MECHANICAL_FISH, config.fishes)
            tries = 2
        else
            tries = 1
        end
    end
 
    if(tries > 1) then
        doPlayerAddSkillTry(cid, SKILL_FISHING, tries)
        if(not isInArray(config.holes, itemEx.itemid)) then
            doTransformItem(itemEx.uid, itemEx.itemid + 6)
        else
            doTransformItem(itemEx.uid, itemEx.itemid + 1)
        end
 
        doDecayItem(itemEx.uid)
    elseif(tries > 0) then
        doPlayerAddSkillTry(cid, SKILL_FISHING, 1)
        if(config.baitFailRemoveChance >= math.random(1, 100)) then
            if(item.itemid == ITEM_MECHANICAL_FISHING_ROD) then
                doPlayerRemoveItem(cid, ITEM_NAIL, config.baitCount)
            else
                doPlayerRemoveItem(cid, ITEM_FISH, config.baitCount)
            end
        end
    end
 
    doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY)
    return true
end

 

O fishing skill sobe normalmente, o único problema é que não pesca nenhum peixe.

 

Postado

Criei minha própria versão, testa e me retorna:

local rateSkill = 10

function onUse(cid, item, frompos, item2, topos)
    if item2.itemid ~= 490 then
        return false
    end

    if ((math.random(1, 100000)) <= (getPlayerSkill(cid, 6) * 500)) then
        doPlayerAddItem(cid, 2667, 1)
    end

    doPlayerAddSkillTry(cid, LEVEL_SKILL_FISHING, (1 * rateSkill))

    return true
end

Em rateSkill tu configura a velocidade em que o skill subirá

Dei uma brincada e melhorei o script, pode usar que é sucesso:

local config = {
    rate = 10, -- Speed at which the skill will progress
    cooldown = 2, -- Time in seconds of character exhaustion
}

function onUse(cid, item, frompos, item2, topos)
    local skill, amount, storage = getPlayerSkill(cid, 6), 1, 6873565011
    local now = os.time()
    local check = (now - getPlayerStorageValue(cid, storage))
    if item2.itemid ~= 490 then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, "You can only use the fishing rod in the water.")
        return true
    end

    if check < 0 then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, "You are exhausted.")
        return true
    end

    if ((math.random(1, 100000)) <= (skill * 500)) then
        if skill > 50 then
            amount = math.random(1, ((skill / 10) - 3))
        end
        doPlayerAddItem(cid, 2667, amount)
        if amount > 7 then
            doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Congratulations, you've caught more than 7 fish!")
        end
    end

    doPlayerAddSkillTry(cid, LEVEL_SKILL_FISHING, (1 * config.rate))
    setPlayerStorageValue(cid, storage, (now + config.cooldown))

    return true
end

 

Editado por Anderson Sacani (veja o histórico de edições)

Postado
  • Autor
27 minutos atrás, Anderson Sacani disse:

Criei minha própria versão, testa e me retorna:


local rateSkill = 10

function onUse(cid, item, frompos, item2, topos)
    if item2.itemid ~= 490 then
        return false
    end

    if ((math.random(1, 100000)) <= (getPlayerSkill(cid, 6) * 500)) then
        doPlayerAddItem(cid, 2667, 1)
    end

    doPlayerAddSkillTry(cid, LEVEL_SKILL_FISHING, (1 * rateSkill))

    return true
end

Em rateSkill tu configura a velocidade em que o skill subirá

o script em si está tudo ok, porém só da pra pescar em uma certa água, no meu servidor existem diversas diferentes, como eu poderia adaptar ali no ID 490 para aceitar todos os IDS de água?

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo