Postado Maio 26, 2019 6 anos Estou com um bug no meu sistema de fishing, o player quando pesca e anda acaba bugando e burlando o tempo de pesca, assim fazendo um spam de pokemons pescando sem parar. Pensei em uma solução mas gostaria da ajuda de vocês para realizar, se for possível colocar quando o player estiver pescando não puder andar. Abaixo meu script de fishing (base huatson): Citar local fishing = { [-1] = { segs = 14, skill = 30, pokes = {{"Magikarp", 4}} }, [3976] = { segs = 10, skill = 180, pokes = {{"Horsea", 3}, {"Remoraid", 3}, {"Goldeen",3}, {"Poliwag", 3}} }, -- pega no client da pxg [12855] = { segs = 11, skill = 2000, pokes = {{"Tentacool", 3}, {"Staryu", 2}, {"Krabby",3}, {"Shellder", 2} } }, [12854] = { segs = 12, skill = 13000, pokes = {{"Seel",2}, {"Chinchou",2} } }, [12858] = { segs = 15, skill = 320000, pokes = {{"Seaking", 3}, {"Seadra", 2}, {"Poliwhirl", 2}} }, [12857] = { segs = 15, skill = 1000000, pokes = {{"Starmie", 2}, {"Kingler", 3}, {"Corsola", 3}, {"Qwilfish", 2}} }, -- pega no client da pxg [12860] = { segs = 15, skill = 10000000, pokes = {{"Lanturn", 2}, {"Dewgong", 4}}}, [12859] = { segs = 25, skill = 100000000, pokes = {{"Cloyster", 2}, {"Poliwrath", 2}, {"Politoed", 3}, {"Octillery", 2}} }, [12856] = { segs = 25, skill = 1000000000, pokes = {{"Dratini", 3}, {"Dragonair", 2} }}, [12853] = { segs = 35, skill = 10000000000, pokes = {{"Gyarados", 1}, {"Mantine", 2}, {"Tentacruel", 2}, {"Kingdra", 1}} }, } local storageP = 154585 local sto_iscas = 5648454 --muda aki pra sto q ta no script da isca local bonus = 15 local limite = 100 local function doFish(cid, pos, ppos, interval) if not isCreature(cid) then return false end if getThingPos(cid).x ~= ppos.x or getThingPos(cid).y ~= ppos.y then return false end doSendMagicEffect(pos, CONST_ME_LOSEENERGY) if interval > 0 then addEvent(doFish, 1000, cid, pos, ppos, interval-1) return true end local peixe = 0 local playerpos = getClosestFreeTile(cid, getThingPos(cid)) local fishes = fishing[getPlayerStorageValue(cid, sto_iscas)] local random = {} if getPlayerSkillLevel(cid, 6) < limite then doPlayerAddSkillTry(cid, 6, bonus * 5) end --[[if math.random(1, 100) <= chance then if getPlayerSkillLevel(cid, 6) < limite then doPlayerAddSkillTry(cid, 6, bonus * 5) end]] random = fishes.pokes[math.random(#fishes.pokes)] for i = 1, math.random(random[2]) do peixe = doSummonCreature(random[1], playerpos) if not isCreature(peixe) then setPlayerStorageValue(cid, storageP, -1) doRemoveCondition(cid, CONDITION_OUTFIT) return true end setPokemonPassive(peixe, true) doSetPokemonAgressiveToPlayer(peixe, cid) setPlayerStorageValue(peixe, storageP, 1) if #getCreatureSummons(cid) >= 1 then doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 0) doChallengeCreature(getCreatureSummons(cid)[1], peixe) else doSendMagicEffect(getThingPos(cid), 0) doChallengeCreature(cid, peixe) end end setPlayerStorageValue(cid, storageP, -1) doRemoveCondition(cid, CONDITION_OUTFIT) return true end local waters = {11756} function onUse(cid, item, fromPos, itemEx, toPos) if isWatchingTv(cid) then return true end local checkPos = toPos checkPos.stackpos = 0 if getTileThingByPos(checkPos).itemid <= 0 then return true end if not isInArray(waters, getTileInfo(toPos).itemid) then return true end if getPlayerStorageValue(cid, storageP) == 1 then doSendMsg(cid, "Aguarde! Você já está pescando.") return true end if isRiderOrFlyOrSurf(cid) and not canFishWhileSurfingOrFlying then doPlayerSendCancel(cid, "Você não pode pescar enquanto está surfing/flying.") return true end if getTileInfo(getThingPos(getCreatureSummons(cid)[1] or cid)).protection then doPlayerSendCancel(cid, "You can't fish pokémons if you or your pokémon is in protection zone.") return true end local delay = fishing[getPlayerStorageValue(cid, sto_iscas)].segs if getPlayerStorageValue(cid, sto_iscas) ~= -1 then if getPlayerItemCount(cid, getPlayerStorageValue(cid, sto_iscas)) >= 1 then doPlayerRemoveItem(cid, getPlayerStorageValue(cid, sto_iscas), 1) else setPlayerStorageValue(cid, sto_iscas, -1) end end local outfit = getCreatureOutfit(cid) local out = getPlayerSex(cid) == 0 and 1467 or 1468 doSetCreatureOutfit(cid, {lookType = out, lookHead = outfit.lookHead, lookBody = outfit.lookBody, lookLegs = outfit.lookLegs, lookFeet = outfit.lookFeet}, -1) setPlayerStorageValue(cid, storageP, 1) --alterei looktype doCreatureSetNoMove(cid, false) local pos2 = getThingPos(itemEx.uid) doCreatureSetLookDir(cid, getLookToFish(getThingPos(cid), pos2)) --alterado ver depois doFish(cid, toPos, getThingPos(cid), math.random(5, delay)) return true end function getLookToFish(pos, pos2) local x1, y1 = pos.x, pos.y local x2, y2 = pos2.x, pos2.y if x1-x2 <= 0 and y1-y2 > 0 then return NORTH elseif x1-x2 < 0 and y1-y2 == 0 then return EAST elseif x1-x2 < 0 and y1-y2 < 0 then return EAST elseif x1-x2 > 0 and y1-y2 < 0 then return SOUTH elseif x1-x2 > 0 and y1-y2 <= 0 then return WEST elseif x1-x2 > 0 and y1-y2 >= 0 then return WEST elseif x1-x2 < 0 and y1-y2 < 0 then return EAST elseif x1-x2 == 0 and y1-y2 < 0 then return SOUTH end return WEST end --[[-- resulatados em linha reta(exatos) if x1 == x2 then -- virar para norte if (y1 - y2) > 0 then -- virar para cima return NORTH elseif (y1 - y2) < 0 then -- virar para baixo return SOUTH end elseif y1 == y2 then if (x1 - x2) > 0 then -- virar para OESTE << return WEST elseif (x1 - x2) < 0 then -- virar para LESTE >> return EAST end end -- resulatados em linha reta(exatos) if (x1 ~= x2) or (y1 ~= y2) then if (x1 - x2) < 0 then return EAST -- virar para LESTE >> elseif (x1 - x2) > 0 then return WEST end end]]
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.