Ir para conteúdo

frjafopa

Membro
  • Registro em

  • Última visita

Tudo que frjafopa postou

  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