Ir para conteúdo

frjafopa

Membro
  • Registro em

  • Última visita

  1. frjafopa postou uma resposta no tópico em Suporte Tibia OTServer
    Oi Eu nao sei falar portuges Presiso do ajuda em script Por favor eliminar mechanical fishing rod/nails de script Agregar dirty water y shimmer swimmer 0.001% chance of fishing quitar getmonsterloot function y cambiar por math.random para water elemental sin monsterowner obrigado local FISH_WATER = {4620, 4621, 4622, 4623, 4624, 4625} local NOFISH_WATER = {493, 4820, 4821, 4822, 4823, 4824, 4825, 13843, 13844, 13845, 13846, 13847, 13848} local ICE_HOLE_FISH = 7236 local ITEM_NAIL = 8309 local ITEM_WORM = 3976 local ITEM_FISH = 2667 local ITEM_MECHANICAL_FISH = 10224 local ITEM_FISHING_ROD = 2580 local ITEM_MECHANICAL_FISHING_ROD = 10223 local ITEM_GREEN_PERCH = 7159 local ITEM_RAINBOW_TROUT = 7158 local ITEM_NORTHERN_PIKE = 2669 local ITEM_WATER_ELEMENTAL_CORPSE = 10499 local WATER_ELEMENTAL_LOOT = { {2149, 1, 80/4845},--small emerald {2146, 1, 60/4845},--small sapphire {2143, 1, 40/4845},--white pearl {7632, 1, 80/4845},--giant shimmering pearl {10220, 1, 10/4845}--Leviathan's amulet } local function calculateWidth(lootList, index) if lootList[index][2] > 0 and lootList[index][3] > 0 then local ret = lootList[index][3] * 100000 if lootList[index][1] == 0 then ret = ret / getConfigValue("rate_loot") else ret = ret * (2/(lootList[index][2]+1)) end return math.max(math.ceil(ret),1) else return false end end local function calculateTotalWidth(lootList) local ret = 0 local listSize = table.getn(lootList) for aux = 1, listSize do ret = ret + calculateWidth(lootList,aux) end return ret end local totalArray = {} local function getTotal(lootList) if totalArray[lootList] == nil then totalArray[lootList] = calculateTotalWidth(lootList) end return totalArray[lootList] end local function getMonsterLoot(lootList) local pos = 0 local total = getTotal(lootList) if total == 0 then return nil --no loot end local rand = math.random(1, total) local listSize = table.getn(lootList) local index = 1 while index <= listSize do local w = calculateWidth(lootList, index) pos = pos + w if rand <= pos and w ~= 0 then if lootList[index][1] == 0 then return nil end local count = math.max(math.random(1, lootList[index][2] * getConfigValue("rate_loot")),1) count = math.min(lootList[index][2], count) return {lootList[index][1], count} end index = index + 1 end return nil end function onUse(cid, item, frompos, item2, topos) if(topos.x == CONTAINER_POSITION) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) return true end if (isInArray(NOFISH_WATER, item2.itemid) ) then doSendMagicEffect(topos, CONST_ME_LOSEENERGY) return true end if (item2.itemid == ITEM_WATER_ELEMENTAL_CORPSE) then local monsterLoot = getMonsterLoot(WATER_ELEMENTAL_LOOT) if monsterLoot ~= nil then doPlayerAddItem(cid, monsterLoot[1], monsterLoot[2]) end doSendMagicEffect(topos, CONST_ME_WATERSPLASH) doTransformItem(item2.uid, item2.itemid + 1) if item2.actionid ~= 0 then doSetItemActionId(item2.uid, item2.actionid) end return true end local formula = (getPlayerSkill(cid, SKILL_FISHING) / 200) + (0.85 * math.random()) local useNail = (item.itemid == ITEM_MECHANICAL_FISHING_ROD) local hasFished = false; local canGainSkill = not(getTilePzInfo(getThingPos(cid)) or (getPlayerItemCount(cid, ITEM_WORM) < 1 and item.itemid == ITEM_FISHING_ROD) or (getPlayerItemCount(cid, ITEM_NAIL) < 1 and item.itemid == ITEM_MECHANICAL_FISHING_ROD)) if (isInArray(FISH_WATER, item2.itemid) ) then if(canGainSkill) then if(formula > 0.7) then if useNail then doPlayerAddItem(cid, ITEM_MECHANICAL_FISH) else doPlayerAddItem(cid, ITEM_FISH) end doPlayerAddSkillTry(cid, SKILL_FISHING, 1) doTransformItem(item2.uid, item2.itemid + 200) hasFished = true; end doPlayerAddSkillTry(cid, SKILL_FISHING, 1) end doSendMagicEffect(topos, CONST_ME_LOSEENERGY) elseif (item2.itemid == ICE_HOLE_FISH) then if(canGainSkill) then if useNail then if formula < 0.5 then doPlayerAddItem(cid, ITEM_MECHANICAL_FISH) end else if(formula > 0.83) then doPlayerAddItem(cid, ITEM_RAINBOW_TROUT) elseif(formula > 0.75) then doPlayerAddItem(cid, ITEM_NORTHERN_PIKE) elseif(formula > 0.5) then doPlayerAddItem(cid, ITEM_GREEN_PERCH) elseif(formula > 0.47) then doPlayerAddItem(cid, ITEM_FISH) end if formula > 0.47 then hasFished = true end end doTransformItem(item2.uid, item2.itemid + 1) doPlayerAddSkillTry(cid, SKILL_FISHING, 2) end else return false end if useNail and hasFished then doPlayerRemoveItem(cid, ITEM_NAIL, 1) elseif hasFished then doPlayerRemoveItem(cid, ITEM_WORM, 1) end doDecayItem(item2.uid) return true end script debe quedar asi: normal fishing ice fishing dirty waterfishing (extremely rare shimmer swimmer fish) loot from elementals con item2.itemid (como machete) y math.random muito obrigado yo estar desactualizado en LUA, en ningun otro sitio me ayudan, por favor ayuda

Informação Importante

Confirmação de Termo