Postado Fevereiro 19, 2023 2 anos 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!!
Postado Fevereiro 20, 2023 2 anos -- 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 Fevereiro 20, 2023 2 anos por Anderson Sacani (veja o histórico de edições)
Postado Fevereiro 20, 2023 2 anos 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 Fevereiro 20, 2023 2 anos 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 Fevereiro 20, 2023 2 anos por Anderson Sacani (veja o histórico de edições)
Postado Fevereiro 20, 2023 2 anos 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.