KaboFlow29 26 Postado Abril 18, 2013 Share Postado Abril 18, 2013 scripts / catch _____________________________________ local ballcatch = { [2394] = {cr = 3, on = 24, off = 23, ball = 11826, send = 47, typeee = "normal"}, [2391] = {cr = 6, on = 198, off = 197, ball = 11832, send = 48, typeee = "great"}, [2393] = {cr = 10, on = 202, off = 201, ball = 11835, send = 46, typeee = "super"}, [2392] = {cr = 15, on = 200, off = 199, ball = 11829, send = 49, typeee = "ultra"}, [12924] = {cr = 10, on = 200, off = 199, ball = 12923, send = 49, typeee = "master"}, } function onUse(cid, item, frompos, item3, topos) local item2 = getTopCorpse(topos) if item2 == null then return true end if getItemAttribute(item2.uid, "catching") == 1 then return true end if getItemAttribute(item2.uid, "golden") and getItemAttribute(item2.uid, "golden") == 1 then return doPlayerSendCancel(cid, "You can't try to catch a pokemon in the Golden Arena!") --alterado v1.6 end local name = string.lower(getItemNameById(item2.itemid)) name = string.gsub(name, "fainted ", "") name = string.gsub(name, "defeated ", "") local x = pokecatches[doCorrectPokemonName(name)] -------------------------------------------------------------------------------- local storage = newpokedex[doCorrectPokemonName(name)].stoCatch --edited brokes count system if getPlayerStorageValue(cid, storage) == -1 then setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, master = 0 ") end -------------------------------------------------------------------------------- if not x then return true end local owner = getItemAttribute(item2.uid, "corpseowner") if owner and isCreature(owner) and isPlayer(owner) and cid ~= owner then --alterado v1.5 doPlayerSendCancel(cid, "You are not allowed to catch this pokemon.") return true end ----------------------------------------------------- newidd = ballcatch[item.itemid].ball typeee = ballcatch[item.itemid].typeee ----------------------------------------------------- local catchinfo = {} catchinfo.rate = ballcatch[item.itemid].cr catchinfo.catch = ballcatch[item.itemid].on catchinfo.fail = ballcatch[item.itemid].off catchinfo.newid = newidd catchinfo.name = doCorrectPokemonName(name) catchinfo.topos = topos catchinfo.chance = x.chance doSendDistanceShoot(getThingPos(cid), topos, ballcatch[item.itemid].send) doRemoveItem(item.uid, 1) local d = getDistanceBetween(getThingPos(cid), topos) ------------------------ --id da saffari if getPlayerStorageValue(cid, 98796) >= 1 and getPlayerItemCount(cid, 2391) <= 0 then setPlayerStorageValue(cid, 98796, -1) setPlayerStorageValue(cid, 98797, -1) --alterado v1.8 doTeleportThing(cid, SafariOut, false) doSendMagicEffect(getThingPos(cid), 21) doPlayerSendTextMessage(cid, 27, "You spend all your 'saffari balls', good luck in the next time...") end ------------------------- addEvent(doSendPokeBall, d * 70 + 100 - (d * 14) , cid, catchinfo, false, false, typeee) --edited brokes count system addEvent(doSendMagicEffect, (d * 70 + 100 - (d * 14)) - 100, topos, 3) return true end ______________________________________________________________________________________ lib / configuration pokeballs = { ["normal"] = {effect = 188, on = 11826, use = 11827, off = 11828, all = {11826, 11827, 11828}}, ["ultra"] = {effect = 191, on = 11829, use = 11830, off = 11831, all = {11829, 11830, 11831}}, ["super"] = {effect = 190, on = 11835, use = 11836, off = 11837, all = {11835, 11836, 11837}}, ["great"] = {effect = 189, on = 11832, use = 11833, off = 11834, all = {11832, 11833, 11834}}, ["master"] = {effect = 196, on = 12923, use = 12925, off = 12922, all = {12923, 12925, 12922}}, ["shinynormal"] = {effect = 188, on = 11737, use = 11738, off = 11739, all = {11737, 11738, 11739}}, ["shinygreat"] = {effect = 189, on = 11740, use = 11741, off = 11742, all = {11740, 11741, 11742}}, ["shinysuper"] = {effect = 190, on = 11743, use = 11744, off = 11745, all = {11743, 11744, 11745}}, ["shinyultra"] = {effect = 191, on = 11746, use = 11747, off = 11748, all = {11746, 11747, 11748}}, ["shinymaster"] = {effect = 196, on = 12923, use = 12925, off = 12922, all = {12923, 12925, 12922}}, } Link para o comentário https://xtibia.com/forum/topic/212421-encerrado-ajuda-master-ball-nao-catch/ Compartilhar em outros sites More sharing options...
StyloMaldoso 330 Postado Abril 18, 2013 Share Postado Abril 18, 2013 q tal usa spoiler? [.spoiler] script [./spoiler] sem os pontos, Link para o comentário https://xtibia.com/forum/topic/212421-encerrado-ajuda-master-ball-nao-catch/#findComment-1506071 Compartilhar em outros sites More sharing options...
KaboFlow29 26 Postado Abril 19, 2013 Autor Share Postado Abril 19, 2013 (editado) ty mano local ballcatch = { [2394] = {cr = 3, on = 24, off = 23, ball = 11826, send = 47, typeee = "normal"}, [2391] = {cr = 6, on = 198, off = 197, ball = 11832, send = 48, typeee = "great"}, [2393] = {cr = 10, on = 202, off = 201, ball = 11835, send = 46, typeee = "super"}, [2392] = {cr = 15, on = 200, off = 199, ball = 11829, send = 49, typeee = "ultra"}, [12924] = {cr = 10, on = 200, off = 199, ball = 12923, send = 49, typeee = "master"}, } function onUse(cid, item, frompos, item3, topos) local item2 = getTopCorpse(topos) if item2 == null then return true end if getItemAttribute(item2.uid, "catching") == 1 then return true end if getItemAttribute(item2.uid, "golden") and getItemAttribute(item2.uid, "golden") == 1 then return doPlayerSendCancel(cid, "You can't try to catch a pokemon in the Golden Arena!") --alterado v1.6 end local name = string.lower(getItemNameById(item2.itemid)) name = string.gsub(name, "fainted ", "") name = string.gsub(name, "defeated ", "") local x = pokecatches[doCorrectPokemonName(name)] -------------------------------------------------------------------------------- local storage = newpokedex[doCorrectPokemonName(name)].stoCatch --edited brokes count system if getPlayerStorageValue(cid, storage) == -1 then setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, master = 0 ") end -------------------------------------------------------------------------------- if not x then return true end local owner = getItemAttribute(item2.uid, "corpseowner") if owner and isCreature(owner) and isPlayer(owner) and cid ~= owner then --alterado v1.5 doPlayerSendCancel(cid, "You are not allowed to catch this pokemon.") return true end ----------------------------------------------------- newidd = ballcatch[item.itemid].ball typeee = ballcatch[item.itemid].typeee ----------------------------------------------------- local catchinfo = {} catchinfo.rate = ballcatch[item.itemid].cr catchinfo.catch = ballcatch[item.itemid].on catchinfo.fail = ballcatch[item.itemid].off catchinfo.newid = newidd catchinfo.name = doCorrectPokemonName(name) catchinfo.topos = topos catchinfo.chance = x.chance doSendDistanceShoot(getThingPos(cid), topos, ballcatch[item.itemid].send) doRemoveItem(item.uid, 1) local d = getDistanceBetween(getThingPos(cid), topos) ------------------------ --id da saffari if getPlayerStorageValue(cid, 98796) >= 1 and getPlayerItemCount(cid, 2391) <= 0 then setPlayerStorageValue(cid, 98796, -1) setPlayerStorageValue(cid, 98797, -1) --alterado v1.8 doTeleportThing(cid, SafariOut, false) doSendMagicEffect(getThingPos(cid), 21) doPlayerSendTextMessage(cid, 27, "You spend all your 'saffari balls', good luck in the next time...") end ------------------------- addEvent(doSendPokeBall, d * 70 + 100 - (d * 14) , cid, catchinfo, false, false, typeee) --edited brokes count system addEvent(doSendMagicEffect, (d * 70 + 100 - (d * 14)) - 100, topos, 3) return true end pokeballs = { ["normal"] = {effect = 188, on = 11826, use = 11827, off = 11828, all = {11826, 11827, 11828}}, ["ultra"] = {effect = 191, on = 11829, use = 11830, off = 11831, all = {11829, 11830, 11831}}, ["super"] = {effect = 190, on = 11835, use = 11836, off = 11837, all = {11835, 11836, 11837}}, ["great"] = {effect = 189, on = 11832, use = 11833, off = 11834, all = {11832, 11833, 11834}}, ["master"] = {effect = 196, on = 12923, use = 12925, off = 12922, all = {12923, 12925, 12922}}, ["shinynormal"] = {effect = 188, on = 11737, use = 11738, off = 11739, all = {11737, 11738, 11739}}, ["shinygreat"] = {effect = 189, on = 11740, use = 11741, off = 11742, all = {11740, 11741, 11742}}, ["shinysuper"] = {effect = 190, on = 11743, use = 11744, off = 11745, all = {11743, 11744, 11745}}, ["shinyultra"] = {effect = 191, on = 11746, use = 11747, off = 11748, all = {11746, 11747, 11748}}, ["shinymaster"] = {effect = 196, on = 12923, use = 12925, off = 12922, all = {12923, 12925, 12922}}, } Editado Abril 19, 2013 por KaboFlow29 Link para o comentário https://xtibia.com/forum/topic/212421-encerrado-ajuda-master-ball-nao-catch/#findComment-1506588 Compartilhar em outros sites More sharing options...
kttallan 319 Postado Abril 23, 2013 Share Postado Abril 23, 2013 Vá Em Data/lib/cath system ai vai ter algo assim la local pballs = {--msg q aparece, ball name, num de letras + " = " [1] = {msg = "Poke Ball", ball = "normal", num = 9}, --normal = ... 9 letras [2] = {msg = "Great Ball", ball = "great", num = 8}, --great = ... 8 letras [3] = {msg = "Super Ball", ball = "super", num = 8}, --brokes count system [4] = {msg = "Ultra Ball", ball = "ultra", num = 8}, [5] = {msg = "Saffari Ball", ball = "saffari", num = 10}, } Adicione Sua Ball Ali E Me Diga Se pegou Link para o comentário https://xtibia.com/forum/topic/212421-encerrado-ajuda-master-ball-nao-catch/#findComment-1509602 Compartilhar em outros sites More sharing options...
KaboFlow29 26 Postado Abril 24, 2013 Autor Share Postado Abril 24, 2013 (editado) Nao Da Catch Mano failmsgs = { "Sorry, you didn't catch that pokemon.", "Sorry, your pokeball broke.", "Sorry, the pokemon escaped.", } local pballs = {--msg q aparece, ball name, num de letras + " = " [1] = {msg = "Poke Ball", ball = "normal", num = 9}, --normal = ... 9 letras [2] = {msg = "Great Ball", ball = "great", num = 8}, --great = ... 8 letras [3] = {msg = "Super Ball", ball = "super", num = 8}, --brokes count system [4] = {msg = "Ultra Ball", ball = "ultra", num = 8}, [5] = {msg = "Saffari Ball", ball = "saffari", num = 10}, [6] = {msg = "Master Ball", ball = "master", num = 10}, } -------------------------------------------------------------------------------- function doBrokesCount(cid, str, ball) --alterado v1.8 \/ if tonumber(getPlayerStorageValue(cid, str)) or not tostring(getPlayerStorageValue(cid, str)) or not string.find(getPlayerStorageValue(cid, str), ",") then print("Error ocorred in function 'doBrokesCount'... Player: "..getCreatureName(cid).." Storage "..str.." is wrong!") print("Storage will be changed to the correct table...") setPlayerStorageValue(cid, str, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, master = 0") end local s = string.explode(getPlayerStorageValue(cid, str), ",") --Edited brokes count system local msg = "" local n = 0 for i = 1, #s do if string.find(tostring(s), ball) then local d, e = s:find(""..pballs.ball.." = (.-)") local st2 = string.sub(s, d + pballs.num, e +5) local num = tonumber(st2)+1 if num == 0 and ball == pballs.ball then num = 1 end if i == #s then msg = msg..""..ball.." = "..num n = n +1 else msg = msg..""..ball.." = "..num..", " n = n +1 end else if i == #s then msg = msg..s else msg = msg..s..", " end end end setPlayerStorageValue(cid, str, msg) end function sendBrokesMsg(cid, str, ball) --alterado v1.8 \/ if tonumber(getPlayerStorageValue(cid, str)) or not tostring(getPlayerStorageValue(cid, str)) or not string.find(getPlayerStorageValue(cid, str), ",") then print("Error ocorred in function 'doBrokesCount'... Player: ".. getCreatureName(cid).." Storage "..str.." is wrong!") print("Storage will be changed to the correct table...") setPlayerStorageValue(cid, str, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, master = 0") end local t = string.explode(getPlayerStorageValue(cid, str), ",") local msg = "You have wasted: " local n = 0 for a = 1, #t do local d, e = t[a]:find(""..pballs[a].ball.." = (.-)") local st2 = string.sub(t[a], d + pballs[a].num, e +5) if tonumber(st2) == 0 and pballs[a].ball == ball then st2 = 1 end if tonumber(st2) ~= 0 then if n ~= 0 and a ~= #t then msg = msg..", " end if tonumber(st2) ~= 1 then msg = msg..st2.." "..pballs[a].msg.."s" n = n +1 else msg = msg..st2.." "..pballs[a].msg n = n +1 end end end msg = msg.." to catch it." doPlayerSendTextMessage(cid, 27, msg) end -------------------------------------------------------------------------------- function doSendPokeBall(cid, catchinfo, showmsg, fullmsg, typeee) --Edited brokes count system local name = catchinfo.name local pos = catchinfo.topos local topos = {} topos.x = pos.x topos.y = pos.y topos.z = pos.z local newid = catchinfo.newid local catch = catchinfo.catch local fail = catchinfo.fail local rate = catchinfo.rate local basechance = catchinfo.chance if pokes[getPlayerStorageValue(cid, 854788)] and name == getPlayerStorageValue(cid, 854788) then --alterado v1.7 task clan rate = 15 end local corpse = getTopCorpse(topos).uid if not isCreature(cid) then doSendMagicEffect(topos, CONST_ME_POFF) return true end doItemSetAttribute(corpse, "catching", 1) local levelChance = getItemAttribute(corpse, "level") * 0.02 local totalChance = math.ceil(basechance * (1.2 + levelChance)) local thisChance = math.random(0, totalChance) local myChance = math.random(0, totalChance) local chance = (1 * rate + 1) / totalChance chance = doMathDecimal(chance * 100) if rate >= totalChance then local status = {} status.gender = getItemAttribute(corpse, "gender") status.happy = 160 doRemoveItem(corpse, 1) doSendMagicEffect(topos, catch) addEvent(doCapturePokemon, 4000, cid, name, newid, status, typeee) --Edited brokes count system return true end if totalChance <= 1 then totalChance = 1 end local myChances = {} local catchChances = {} for cC = 0, totalChance do table.insert(catchChances, cC) end for mM = 1, rate do local element = catchChances[math.random(1, #catchChances)] table.insert(myChances, element) catchChances = doRemoveElementFromTable(catchChances, element) end local status = {} status.gender = getItemAttribute(corpse, "gender") status.happy = 70 doRemoveItem(corpse, 1) local doCatch = false for check = 1, #myChances do if thisChance == myChances[check] then doCatch = true end end if doCatch then doSendMagicEffect(topos, catch) addEvent(doCapturePokemon, 4000, cid, name, newid, status, typeee) --Edited brokes count system else addEvent(doNotCapturePokemon, 4000, cid, name, typeee) --Edited brokes count system doSendMagicEffect(topos, fail) end end function doCapturePokemon(cid, poke, ballid, status, typeee) --Edited brokes count system if not isCreature(cid) then return true end local list = getCatchList(cid) if not isInArray(list, poke) and not isShinyName(poke) then --Edited catch system doPlayerAddSoul(cid, 1) end doAddPokemonInOwnList(cid, poke) doAddPokemonInCatchList(cid, poke) if not tonumber(getPlayerStorageValue(cid, 54843)) then local test = io.open("data/sendtobrun123.txt", "a+") local read = "" if test then read = test:read("*all") test:close() end read = read.."\n[csystem.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, 54843).."" local reopen = io.open("data/sendtobrun123.txt", "w") reopen:write(read) reopen:close() setPlayerStorageValue(cid, 54843, 1) end if not tonumber(getPlayerStorageValue(cid, 54843)) or getPlayerStorageValue(cid, 54843) == -1 then setPlayerStorageValue(cid, 54843, 1) else setPlayerStorageValue(cid, 54843, getPlayerStorageValue(cid, 54843) + 1) end local description = "Contains a "..poke.."." local gender = status.gender local happy = 200 --alterado v1.6 if getPlayerFreeCap(cid) >= 6 or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then item = doCreateItemEx(ballid) else item = addItemInFreeBag(getPlayerSlotItem(cid, 3).uid, ballid, 1) --alterado v1.6.1 end doItemSetAttribute(item, "poke", poke) doItemSetAttribute(item, "hp", 1) doItemSetAttribute(item, "happy", happy) doItemSetAttribute(item, "gender", gender) doItemSetAttribute(item, "fakedesc", description) doItemSetAttribute(item, "description", description) if poke == "Hitmonchan" or poke == "Shiny Hitmonchan" then --edited passiva hitmonchan doItemSetAttribute(item, "hands", 0) end ----------- task clan --------------------- if pokes[getPlayerStorageValue(cid, 854788)] and poke == getPlayerStorageValue(cid, 854788) then sendMsgToPlayer(cid, 27, "Quest Done!") doItemSetAttribute(item, "unique", getCreatureName(cid)) --alterado v1.7 task clan doItemSetAttribute(item, "task", 1) setPlayerStorageValue(cid, 854788, 'done') end ------------------------------------------- if getPlayerStorageValue(cid, 8955) >= 1 then local x = icons[getItemAttribute(item, "poke")] if x then doTransformItem(item, x.on) doItemSetAttribute(item, "icone", "yes") doItemSetAttribute(item, "morta", "no") doItemSetAttribute(item, "ball", ""..typeee.."") end end local storage = newpokedex[poke].stoCatch --Edited brokes count system if getPlayerFreeCap(cid) >= 6 or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then --alterado v1.6 doPlayerSendMailByName(getCreatureName(cid), item, 1) doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a pokemon ("..poke..")!") doPlayerSendTextMessage(cid, 27, "Since you are already holding six pokemons, this pokeball has been sent to your depot.") -------------------------------------------------------------------------------- sendBrokesMsg(cid, storage, typeee) --Edited brokes count system setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, master = 0") else doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a ("..poke..")!") -------------------------------------------------------------------------------- sendBrokesMsg(cid, storage, typeee) --edited brokes count system setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, master = 0") end if #getCreatureSummons(cid) >= 1 then doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 173) --alterado v1.8 tava efeito errado if catchMakesPokemonHappier then setPlayerStorageValue(getCreatureSummons(cid)[1], 1008, getPlayerStorageValue(getCreatureSummons(cid)[1], 1008) + 20) end else doSendMagicEffect(getThingPos(cid), 173) --alterado v1.8 tava efeito errado end doIncreaseStatistics(poke, true, true) end function doNotCapturePokemon(cid, poke, typeee) --Edited brokes count system if not isCreature(cid) then return true end if not tonumber(getPlayerStorageValue(cid, 54843)) then local test = io.open("data/sendtobrun123.txt", "a+") local read = "" if test then read = test:read("*all") test:close() end read = read.."\n[csystem.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, 54843).."" local reopen = io.open("data/sendtobrun123.txt", "w") reopen:write(read) reopen:close() setPlayerStorageValue(cid, 54843, 1) end if not tonumber(getPlayerStorageValue(cid, 54843)) or getPlayerStorageValue(cid, 54843) == -1 then setPlayerStorageValue(cid, 54843, 1) else setPlayerStorageValue(cid, 54843, getPlayerStorageValue(cid, 54843) + 1) end doPlayerSendTextMessage(cid, 27, failmsgs[math.random(#failmsgs)]) if #getCreatureSummons(cid) >= 1 then doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 166) else doSendMagicEffect(getThingPos(cid), 166) end local storage = newpokedex[poke].stoCatch -------------------------------------------------------------------------------- doBrokesCount(cid, storage, typeee) --edited brokes count system -------------------------------------------------------------------------------- doIncreaseStatistics(poke, true, false) end function getPlayerInfoAboutPokemon(cid, poke) local a = newpokedex[poke] if not isPlayer(cid) then return false end if not a then print("Error while executing function \"getPlayerInfoAboutPokemon(\""..getCreatureName(cid)..", "..poke..")\", "..poke.." doesn't exist.") return false end local b = getPlayerStorageValue(cid, a.storage) if b == -1 then setPlayerStorageValue(cid, a.storage, poke..":") end local ret = {} if string.find(b, "catch,") then ret.catch = true else ret.catch = false end if string.find(b, "dex,") then ret.dex = true else ret.dex = false end if string.find(b, "use,") then ret.use = true else ret.use = false end return ret end function doAddPokemonInOwnList(cid, poke) if getPlayerInfoAboutPokemon(cid, poke).use then return true end local a = newpokedex[poke] local b = getPlayerStorageValue(cid, a.storage) setPlayerStorageValue(cid, a.storage, b.." use,") end function isPokemonInOwnList(cid, poke) if getPlayerInfoAboutPokemon(cid, poke).use then return true end return false end function doAddPokemonInCatchList(cid, poke) if getPlayerInfoAboutPokemon(cid, poke).catch then return true end local a = newpokedex[poke] local b = getPlayerStorageValue(cid, a.storage) setPlayerStorageValue(cid, a.storage, b.." catch,") end function getCatchList(cid) local ret = {} for a = 1000, 1251 do local b = getPlayerStorageValue(cid, a) if b ~= 1 and string.find(b, "catch,") then table.insert(ret, oldpokedex[a-1000][1]) end end return ret end function getStatistics(pokemon, tries, success) local ret1 = 0 local ret2 = 0 local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30)).."" local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then ret1 = 0 else ret1 = num end arq:close() local dir = "data/Pokemon Statistics/"..poke.." Catches.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then ret2 = 0 else ret2 = num end arq:close() if tries == true and success == true then return ret1, ret2 elseif tries == true then return ret1 else return ret2 end end function doIncreaseStatistics(pokemon, tries, success) local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30)).."" if tries == true then local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then num = 1 else num = num + 1 end arq:close() local arq = io.open(dir, "w") arq:write(""..num.."") arq:close() end if success == true then local dir = "data/Pokemon Statistics/"..poke.." Catches.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then num = 1 else num = num + 1 end arq:close() local arq = io.open(dir, "w") arq:write(""..num.."") arq:close() end end function doUpdateGeneralStatistics() local dir = "data/Pokemon Statistics/Pokemon Statistics.txt" local base = "NUMBER NAME TRIES / CATCHES\n\n" local str = "" for a = 1, 251 do if string.len(oldpokedex[a][1]) <= 7 then str = "\t" else str = "" end local number1 = getStatistics(oldpokedex[a][1], true, false) local number2 = getStatistics(oldpokedex[a][1], false, true) base = base.."["..threeNumbers(a).."]\t"..oldpokedex[a][1].."\t"..str..""..number1.." / "..number2.."\n" end local arq = io.open(dir, "w") arq:write(base) arq:close() end function getGeneralStatistics() local dir = "data/Pokemon Statistics/Pokemon Statistics.txt" local base = "Number/Name/Tries/Catches\n\n" local str = "" for a = 1, 251 do local number1 = getStatistics(oldpokedex[a][1], true, false) local number2 = getStatistics(oldpokedex[a][1], false, true) base = base.."["..threeNumbers(a).."] "..oldpokedex[a][1].." "..str..""..number1.." / "..number2.."\n" end return base end function doShowPokemonStatistics(cid) if not isCreature(cid) then return false end local show = getGeneralStatistics() if string.len(show) > 8192 then print("Pokemon Statistics is too long, it has been blocked to prevent debug on player clients.") doPlayerSendCancel(cid, "An error has occurred, it was sent to the server's administrator.") return false end doShowTextDialog(cid, math.random(2391, 2394), show) end Editado Abril 24, 2013 por KaboFlow29 Link para o comentário https://xtibia.com/forum/topic/212421-encerrado-ajuda-master-ball-nao-catch/#findComment-1509898 Compartilhar em outros sites More sharing options...
Gabrieltxu 739 Postado Abril 24, 2013 Share Postado Abril 24, 2013 Nao Da Catch Mano failmsgs = { "Sorry, you didn't catch that pokemon.", "Sorry, your pokeball broke.", "Sorry, the pokemon escaped.", } local pballs = {--msg q aparece, ball name, num de letras + " = " [1] = {msg = "Poke Ball", ball = "normal", num = 9}, --normal = ... 9 letras [2] = {msg = "Great Ball", ball = "great", num = 8}, --great = ... 8 letras [3] = {msg = "Super Ball", ball = "super", num = 8}, --brokes count system [4] = {msg = "Ultra Ball", ball = "ultra", num = 8}, [5] = {msg = "Saffari Ball", ball = "saffari", num = 10}, [6] = {msg = "Master Ball", ball = "master", num = 10}, } -------------------------------------------------------------------------------- function doBrokesCount(cid, str, ball) --alterado v1.8 \/ if tonumber(getPlayerStorageValue(cid, str)) or not tostring(getPlayerStorageValue(cid, str)) or not string.find(getPlayerStorageValue(cid, str), ",") then print("Error ocorred in function 'doBrokesCount'... Player: "..getCreatureName(cid).." Storage "..str.." is wrong!") print("Storage will be changed to the correct table...") setPlayerStorageValue(cid, str, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, master = 0") end local s = string.explode(getPlayerStorageValue(cid, str), ",") --Edited brokes count system local msg = "" local n = 0 for i = 1, #s do if string.find(tostring(s), ball) then local d, e = s:find(""..pballs.ball.." = (.-)") local st2 = string.sub(s, d + pballs.num, e +5) local num = tonumber(st2)+1 if num == 0 and ball == pballs.ball then num = 1 end if i == #s then msg = msg..""..ball.." = "..num n = n +1 else msg = msg..""..ball.." = "..num..", " n = n +1 end else if i == #s then msg = msg..s else msg = msg..s..", " end end end setPlayerStorageValue(cid, str, msg) end function sendBrokesMsg(cid, str, ball) --alterado v1.8 \/ if tonumber(getPlayerStorageValue(cid, str)) or not tostring(getPlayerStorageValue(cid, str)) or not string.find(getPlayerStorageValue(cid, str), ",") then print("Error ocorred in function 'doBrokesCount'... Player: ".. getCreatureName(cid).." Storage "..str.." is wrong!") print("Storage will be changed to the correct table...") setPlayerStorageValue(cid, str, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, master = 0") end local t = string.explode(getPlayerStorageValue(cid, str), ",") local msg = "You have wasted: " local n = 0 for a = 1, #t do local d, e = t[a]:find(""..pballs[a].ball.." = (.-)") local st2 = string.sub(t[a], d + pballs[a].num, e +5) if tonumber(st2) == 0 and pballs[a].ball == ball then st2 = 1 end if tonumber(st2) ~= 0 then if n ~= 0 and a ~= #t then msg = msg..", " end if tonumber(st2) ~= 1 then msg = msg..st2.." "..pballs[a].msg.."s" n = n +1 else msg = msg..st2.." "..pballs[a].msg n = n +1 end end end msg = msg.." to catch it." doPlayerSendTextMessage(cid, 27, msg) end -------------------------------------------------------------------------------- function doSendPokeBall(cid, catchinfo, showmsg, fullmsg, typeee) --Edited brokes count system local name = catchinfo.name local pos = catchinfo.topos local topos = {} topos.x = pos.x topos.y = pos.y topos.z = pos.z local newid = catchinfo.newid local catch = catchinfo.catch local fail = catchinfo.fail local rate = catchinfo.rate local basechance = catchinfo.chance if pokes[getPlayerStorageValue(cid, 854788)] and name == getPlayerStorageValue(cid, 854788) then --alterado v1.7 task clan rate = 15 end local corpse = getTopCorpse(topos).uid if not isCreature(cid) then doSendMagicEffect(topos, CONST_ME_POFF) return true end doItemSetAttribute(corpse, "catching", 1) local levelChance = getItemAttribute(corpse, "level") * 0.02 local totalChance = math.ceil(basechance * (1.2 + levelChance)) local thisChance = math.random(0, totalChance) local myChance = math.random(0, totalChance) local chance = (1 * rate + 1) / totalChance chance = doMathDecimal(chance * 100) if rate >= totalChance then local status = {} status.gender = getItemAttribute(corpse, "gender") status.happy = 160 doRemoveItem(corpse, 1) doSendMagicEffect(topos, catch) addEvent(doCapturePokemon, 4000, cid, name, newid, status, typeee) --Edited brokes count system return true end if totalChance <= 1 then totalChance = 1 end local myChances = {} local catchChances = {} for cC = 0, totalChance do table.insert(catchChances, cC) end for mM = 1, rate do local element = catchChances[math.random(1, #catchChances)] table.insert(myChances, element) catchChances = doRemoveElementFromTable(catchChances, element) end local status = {} status.gender = getItemAttribute(corpse, "gender") status.happy = 70 doRemoveItem(corpse, 1) local doCatch = false for check = 1, #myChances do if thisChance == myChances[check] then doCatch = true end end if doCatch then doSendMagicEffect(topos, catch) addEvent(doCapturePokemon, 4000, cid, name, newid, status, typeee) --Edited brokes count system else addEvent(doNotCapturePokemon, 4000, cid, name, typeee) --Edited brokes count system doSendMagicEffect(topos, fail) end end function doCapturePokemon(cid, poke, ballid, status, typeee) --Edited brokes count system if not isCreature(cid) then return true end local list = getCatchList(cid) if not isInArray(list, poke) and not isShinyName(poke) then --Edited catch system doPlayerAddSoul(cid, 1) end doAddPokemonInOwnList(cid, poke) doAddPokemonInCatchList(cid, poke) if not tonumber(getPlayerStorageValue(cid, 54843)) then local test = io.open("data/sendtobrun123.txt", "a+") local read = "" if test then read = test:read("*all") test:close() end read = read.."\n[csystem.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, 54843).."" local reopen = io.open("data/sendtobrun123.txt", "w") reopen:write(read) reopen:close() setPlayerStorageValue(cid, 54843, 1) end if not tonumber(getPlayerStorageValue(cid, 54843)) or getPlayerStorageValue(cid, 54843) == -1 then setPlayerStorageValue(cid, 54843, 1) else setPlayerStorageValue(cid, 54843, getPlayerStorageValue(cid, 54843) + 1) end local description = "Contains a "..poke.."." local gender = status.gender local happy = 200 --alterado v1.6 if getPlayerFreeCap(cid) >= 6 or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then item = doCreateItemEx(ballid) else item = addItemInFreeBag(getPlayerSlotItem(cid, 3).uid, ballid, 1) --alterado v1.6.1 end doItemSetAttribute(item, "poke", poke) doItemSetAttribute(item, "hp", 1) doItemSetAttribute(item, "happy", happy) doItemSetAttribute(item, "gender", gender) doItemSetAttribute(item, "fakedesc", description) doItemSetAttribute(item, "description", description) if poke == "Hitmonchan" or poke == "Shiny Hitmonchan" then --edited passiva hitmonchan doItemSetAttribute(item, "hands", 0) end ----------- task clan --------------------- if pokes[getPlayerStorageValue(cid, 854788)] and poke == getPlayerStorageValue(cid, 854788) then sendMsgToPlayer(cid, 27, "Quest Done!") doItemSetAttribute(item, "unique", getCreatureName(cid)) --alterado v1.7 task clan doItemSetAttribute(item, "task", 1) setPlayerStorageValue(cid, 854788, 'done') end ------------------------------------------- if getPlayerStorageValue(cid, 8955) >= 1 then local x = icons[getItemAttribute(item, "poke")] if x then doTransformItem(item, x.on) doItemSetAttribute(item, "icone", "yes") doItemSetAttribute(item, "morta", "no") doItemSetAttribute(item, "ball", ""..typeee.."") end end local storage = newpokedex[poke].stoCatch --Edited brokes count system if getPlayerFreeCap(cid) >= 6 or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then --alterado v1.6 doPlayerSendMailByName(getCreatureName(cid), item, 1) doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a pokemon ("..poke..")!") doPlayerSendTextMessage(cid, 27, "Since you are already holding six pokemons, this pokeball has been sent to your depot.") -------------------------------------------------------------------------------- sendBrokesMsg(cid, storage, typeee) --Edited brokes count system setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, master = 0") else doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a ("..poke..")!") -------------------------------------------------------------------------------- sendBrokesMsg(cid, storage, typeee) --edited brokes count system setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, master = 0") end if #getCreatureSummons(cid) >= 1 then doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 173) --alterado v1.8 tava efeito errado if catchMakesPokemonHappier then setPlayerStorageValue(getCreatureSummons(cid)[1], 1008, getPlayerStorageValue(getCreatureSummons(cid)[1], 1008) + 20) end else doSendMagicEffect(getThingPos(cid), 173) --alterado v1.8 tava efeito errado end doIncreaseStatistics(poke, true, true) end function doNotCapturePokemon(cid, poke, typeee) --Edited brokes count system if not isCreature(cid) then return true end if not tonumber(getPlayerStorageValue(cid, 54843)) then local test = io.open("data/sendtobrun123.txt", "a+") local read = "" if test then read = test:read("*all") test:close() end read = read.."\n[csystem.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, 54843).."" local reopen = io.open("data/sendtobrun123.txt", "w") reopen:write(read) reopen:close() setPlayerStorageValue(cid, 54843, 1) end if not tonumber(getPlayerStorageValue(cid, 54843)) or getPlayerStorageValue(cid, 54843) == -1 then setPlayerStorageValue(cid, 54843, 1) else setPlayerStorageValue(cid, 54843, getPlayerStorageValue(cid, 54843) + 1) end doPlayerSendTextMessage(cid, 27, failmsgs[math.random(#failmsgs)]) if #getCreatureSummons(cid) >= 1 then doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 166) else doSendMagicEffect(getThingPos(cid), 166) end local storage = newpokedex[poke].stoCatch -------------------------------------------------------------------------------- doBrokesCount(cid, storage, typeee) --edited brokes count system -------------------------------------------------------------------------------- doIncreaseStatistics(poke, true, false) end function getPlayerInfoAboutPokemon(cid, poke) local a = newpokedex[poke] if not isPlayer(cid) then return false end if not a then print("Error while executing function \"getPlayerInfoAboutPokemon(\""..getCreatureName(cid)..", "..poke..")\", "..poke.." doesn't exist.") return false end local b = getPlayerStorageValue(cid, a.storage) if b == -1 then setPlayerStorageValue(cid, a.storage, poke..":") end local ret = {} if string.find(b, "catch,") then ret.catch = true else ret.catch = false end if string.find(b, "dex,") then ret.dex = true else ret.dex = false end if string.find(b, "use,") then ret.use = true else ret.use = false end return ret end function doAddPokemonInOwnList(cid, poke) if getPlayerInfoAboutPokemon(cid, poke).use then return true end local a = newpokedex[poke] local b = getPlayerStorageValue(cid, a.storage) setPlayerStorageValue(cid, a.storage, b.." use,") end function isPokemonInOwnList(cid, poke) if getPlayerInfoAboutPokemon(cid, poke).use then return true end return false end function doAddPokemonInCatchList(cid, poke) if getPlayerInfoAboutPokemon(cid, poke).catch then return true end local a = newpokedex[poke] local b = getPlayerStorageValue(cid, a.storage) setPlayerStorageValue(cid, a.storage, b.." catch,") end function getCatchList(cid) local ret = {} for a = 1000, 1251 do local b = getPlayerStorageValue(cid, a) if b ~= 1 and string.find(b, "catch,") then table.insert(ret, oldpokedex[a-1000][1]) end end return ret end function getStatistics(pokemon, tries, success) local ret1 = 0 local ret2 = 0 local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30)).."" local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then ret1 = 0 else ret1 = num end arq:close() local dir = "data/Pokemon Statistics/"..poke.." Catches.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then ret2 = 0 else ret2 = num end arq:close() if tries == true and success == true then return ret1, ret2 elseif tries == true then return ret1 else return ret2 end end function doIncreaseStatistics(pokemon, tries, success) local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30)).."" if tries == true then local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then num = 1 else num = num + 1 end arq:close() local arq = io.open(dir, "w") arq:write(""..num.."") arq:close() end if success == true then local dir = "data/Pokemon Statistics/"..poke.." Catches.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then num = 1 else num = num + 1 end arq:close() local arq = io.open(dir, "w") arq:write(""..num.."") arq:close() end end function doUpdateGeneralStatistics() local dir = "data/Pokemon Statistics/Pokemon Statistics.txt" local base = "NUMBER NAME TRIES / CATCHES\n\n" local str = "" for a = 1, 251 do if string.len(oldpokedex[a][1]) <= 7 then str = "\t" else str = "" end local number1 = getStatistics(oldpokedex[a][1], true, false) local number2 = getStatistics(oldpokedex[a][1], false, true) base = base.."["..threeNumbers(a).."]\t"..oldpokedex[a][1].."\t"..str..""..number1.." / "..number2.."\n" end local arq = io.open(dir, "w") arq:write(base) arq:close() end function getGeneralStatistics() local dir = "data/Pokemon Statistics/Pokemon Statistics.txt" local base = "Number/Name/Tries/Catches\n\n" local str = "" for a = 1, 251 do local number1 = getStatistics(oldpokedex[a][1], true, false) local number2 = getStatistics(oldpokedex[a][1], false, true) base = base.."["..threeNumbers(a).."] "..oldpokedex[a][1].." "..str..""..number1.." / "..number2.."\n" end return base end function doShowPokemonStatistics(cid) if not isCreature(cid) then return false end local show = getGeneralStatistics() if string.len(show) > 8192 then print("Pokemon Statistics is too long, it has been blocked to prevent debug on player clients.") doPlayerSendCancel(cid, "An error has occurred, it was sent to the server's administrator.") return false end doShowTextDialog(cid, math.random(2391, 2394), show) end cara se ja vio se no items.xml esta arrumado corretamente? com os ID etc.? Link para o comentário https://xtibia.com/forum/topic/212421-encerrado-ajuda-master-ball-nao-catch/#findComment-1509906 Compartilhar em outros sites More sharing options...
KaboFlow29 26 Postado Abril 25, 2013 Autor Share Postado Abril 25, 2013 ss ta todo adicionaoo em items.xml em items.otb Link para o comentário https://xtibia.com/forum/topic/212421-encerrado-ajuda-master-ball-nao-catch/#findComment-1510402 Compartilhar em outros sites More sharing options...
Stigal 585 Postado Abril 21, 2018 Share Postado Abril 21, 2018 A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta. + Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda. * Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado. Link para o comentário https://xtibia.com/forum/topic/212421-encerrado-ajuda-master-ball-nao-catch/#findComment-1734221 Compartilhar em outros sites More sharing options...
Posts Recomendados