Slicer 1070 Postado Abril 1, 2012 Share Postado Abril 1, 2012 se tu aprendese a procurar antes de pergunta veria q ja postaram essa pasta umas 10x.. inclusive o flames, se n me engano, posto ela a algumas poucas paginas atras ¬¬ Link para o comentário Compartilhar em outros sites More sharing options...
FlamesAdmin 261 Postado Abril 1, 2012 Share Postado Abril 1, 2012 como faço para aumentar a velocidade e para healar mais nos potion? rep Link para o comentário Compartilhar em outros sites More sharing options...
vudi 17 Postado Abril 1, 2012 Share Postado Abril 1, 2012 @all Tem como abrir o serve por outro pograma sem ser pelo "PO dASH world[ Advanced]- Console ou Gui? Meu computador ta dando erro no Microsoft visual c++ runtime error qando abro por eles Link para o comentário Compartilhar em outros sites More sharing options...
Thedjhabbo 10 Postado Abril 1, 2012 Share Postado Abril 1, 2012 @tópico tenho uma duvida, mas acho que você não vai me ajuda... quando o player estive com batalha com um pokemon quando termina temos aquele famoso battle como pk, queria que quando acaba-se de luta com poke selvagem o pk (battle) sai-se rapido. Link para o comentário Compartilhar em outros sites More sharing options...
Dudu08267 7 Postado Abril 1, 2012 Share Postado Abril 1, 2012 Slicer no seu script da Qts de ball tem como fazer aparecer o nome do pokémon?? Tipo:16:34 You have wasted: 1253 Ultra Balls on Charizard. hoje ja dei o rep + Link para o comentário Compartilhar em outros sites More sharing options...
SaikiSailed 0 Postado Abril 1, 2012 Share Postado Abril 1, 2012 como le quito los Happy evolutions(Umbreon,Espeon) a Eevee Link para o comentário Compartilhar em outros sites More sharing options...
ABCDEFGHIJK 11 Postado Abril 1, 2012 Share Postado Abril 1, 2012 @Slicer Eu introduzi o seu sistema de Contagem de balls e esta dando esse erro: [01/04/2012 17:17:05] [Error - Action Interface] [01/04/2012 17:17:05] In a timer event called from: [01/04/2012 17:17:05] data/actions/scripts/catch.lua:onUse [01/04/2012 17:17:05] Description: [01/04/2012 17:17:05] data/lib/catch system.lua:27: bad argument #2 to 'find' (string expected, got nil) [01/04/2012 17:17:06] stack traceback: [01/04/2012 17:17:06] [C]: in function 'find' [01/04/2012 17:17:06] data/lib/catch system.lua:27: in function 'doBrokesCount' [01/04/2012 17:17:06] data/lib/catch system.lua:328: in function <data/lib/catch system.lua:292> Meu Catch System: 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}, [4] = {msg = "Ultra Ball", ball = "ultra", num = 8}, --edited brokes count system [5] = {msg = "Saffari Ball", ball = "saffari", num = 10}, } -------------------------------------------------------------------------------- function doBrokesCount(cid, str, ball) --edited brokes count system if tonumber(getPlayerStorageValue(cid, str)) then print("Error ocorred in function 'doBrokesCount'... storage "..str.." is a number value") print("Storage will be changed to the correct table...") doPlayerSendTextMessage(cid, 27, "A error ocorred... Warning sent to Game Masters!") setPlayerStorageValue(cid, str, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0") return true end local s = string.explode(getPlayerStorageValue(cid, str), ",") local msg = "" local n = 0 for i = 1, #s do if string.find(tostring(s[i]), ball) then local d, e = s[i]:find(""..pballs[i].ball.." = (.-)") local st2 = string.sub(s[i], d + pballs[i].num, e +5) local num = tonumber(st2)+1if num == 0 and ball == pballs[i].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[i] else msg = msg..s[i]..", " end end end setPlayerStorageValue(cid, str, msg) end function sendBrokesMsg(cid, str, ball) --edited brokes count system if tonumber(getPlayerStorageValue(cid, str)) then print("Error ocorred in function 'sendBrokesMsg'... storage "..str.." is a number value") print("Storage will be changed to the correct table...") doPlayerSendTextMessage(cid, 27, "A error ocorred... Warning sent to Game Masters!") setPlayerStorageValue(cid, str, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0") return true end local t = string.explode(getPlayerStorageValue(cid, str), ",") local msg = "You have wasted: " local n = 0for 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 -------------------------------------------------------------------------------- --edited brokes count system function doSendPokeBall(cid, catchinfo, showmsg, fullmsg, typeee) 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.chancelocal corpse = getTopCorpse(topos).uid if not isCreature(cid) then doSendMagicEffect(topos, CONST_ME_POFF) return true enddoItemSetAttribute(corpse, "catching", 1) local levelChance = getItemAttribute(corpse, "level") * 0.02local totalChance = math.ceil(basechance * (1.2 + levelChance)) local thisChance = math.random(0, totalChance) local myChance = math.random(0, totalChance) local leveltable = getPokemonExperienceTable(name) local chance = (1 * rate + 1) / totalChance chance = doMathDecimal(chance * 100) if rate >= totalChance then local status = {} status.clevel = tonumber(getItemAttribute(corpse, "level")) local clevel = status.clevel status.cexp = leveltable[clevel] local cexp = status.cexp status.cnext = leveltable[clevel+1] - cexp status.coffense = getItemAttribute(corpse, "offense") status.cdefense = getItemAttribute(corpse, "defense") status.cspeed = getItemAttribute(corpse, "speed") status.cvitality = getItemAttribute(corpse, "vitality") status.cspatk = getItemAttribute(corpse, "spattack") status.gender = getItemAttribute(corpse, "gender") status.happy = 160 doRemoveItem(corpse, 1) doSendMagicEffect(topos, catch) --edited brokes system addEvent(doCapturePokemon, 4000, cid, name, newid, status, typeee) addEvent(doCreatureExecuteTalkAction, 5000, cid, "/pokeread") return true end if totalChance <= 1 then totalChance = 1 endlocal myChances = {} local catchChances = {} for cC = 0, totalChance do table.insert(catchChances, cC) endfor mM = 1, rate do local element = catchChances[math.random(1, #catchChances)] table.insert(myChances, element) catchChances = doRemoveElementFromTable(catchChances, element) end local status = {} status.clevel = tonumber(getItemAttribute(corpse, "level")) local clevel = status.clevel status.cexp = leveltable[clevel] local cexp = status.cexp status.cnext = leveltable[clevel+1] - cexp status.coffense = getItemAttribute(corpse, "offense") status.cdefense = getItemAttribute(corpse, "defense") status.cspeed = getItemAttribute(corpse, "speed") status.cvitality = getItemAttribute(corpse, "vitality") status.cspatk = getItemAttribute(corpse, "spattack") status.gender = getItemAttribute(corpse, "gender") status.happy = 70doRemoveItem(corpse, 1) local doCatch = falsefor check = 1, #myChances do if thisChance == myChances[check] then doCatch = true end end if doCatch then doSendMagicEffect(topos, catch) --edited brokes count system addEvent(doCapturePokemon, 4000, cid, name, newid, status, typeee) else --edited brokes count system addEvent(doNotCapturePokemon, 4000, cid, name, typeee) doSendMagicEffect(topos, fail) end end --edited brokes count system function doCapturePokemon(cid, poke, ballid, status, typeee)if not isCreature(cid) then return true end local list = getCatchList(cid) if not isInArray(list, poke) then doPlayerAddSoul(cid, 1) enddoAddPokemonInOwnList(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) endif 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 leveltable = getPokemonExperienceTable(poke) local clevel = status.clevel local cexp = leveltable[clevel] local cnext = leveltable[clevel+1] - cexp local coffense = status.coffense local cdefense = status.cdefense local cspeed = status.cspeed local cvitality = status.cvitality local cspatk = status.cspatk local gender = status.gender local happy = 200local item = doCreateItemEx(ballid) doItemSetAttribute(item, "poke", poke) doItemSetAttribute(item, "hp", 1) doItemSetAttribute(item, "offense", coffense) doItemSetAttribute(item, "level", clevel) doItemSetAttribute(item, "exp", cexp) doItemSetAttribute(item, "nextlevelexp", cnext) doItemSetAttribute(item, "defense", cdefense) doItemSetAttribute(item, "speed", cspeed) doItemSetAttribute(item, "vitality", cvitality) doItemSetAttribute(item, "specialattack", cspatk) doItemSetAttribute(item, "happy", happy) doItemSetAttribute(item, "gender", gender) doItemSetAttribute(item, "fakedesc", description) doItemSetAttribute(item, "description", description) if poke == "Hitmonchan" or poke == "Shiny Hitmonchan" then doItemSetAttribute(item, "hands", 0) endlocal storage = newpokedex[poke].stoCatch --edited brokes count system if getPlayerMana(cid) >= 6 or getContainerSize(getPlayerSlotItem(cid, 3).uid) >= 18 then doPlayerSendMailByName(getCreatureName(cid), item, 1) doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a pokemon ("..poke..", level "..clevel..")!") 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") else doAddContainerItemEx(getPlayerSlotItem(cid, 3).uid, item) doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a "..poke.." (level "..clevel..")!") -------------------------------------------------------------------------------- sendBrokesMsg(cid, storage, typeee) --edited brokes count system setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0") end if #getCreatureSummons(cid) >= 1 then doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 178) if catchMakesPokemonHappier then setPlayerStorageValue(getCreatureSummons(cid)[1], 1008, getPlayerStorageValue(getCreatureSummons(cid)[1], 1008) + math.floor(clevel / 2)) end else doSendMagicEffect(getThingPos(cid), 178) enddoIncreaseStatistics(poke, true, true) endfunction doNotCapturePokemon(cid, poke) if not isCreature(cid) then return true endif 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) enddoPlayerSendTextMessage(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 sendBrokesMsg(cid, storage, typeee) -------------------------------------------------------------------------------- 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 endlocal a = newpokedex[poke] local b = getPlayerStorageValue(cid, a.storage) setPlayerStorageValue(cid, a.storage, b.." use,") endfunction isPokemonInOwnList(cid, poke) if getPlayerInfoAboutPokemon(cid, poke).use then return true endreturn 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 endreturn ret end function getStatistics(pokemon, tries, success) local ret1 = 0 local ret2 = 0local 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 Ja tentei arrumar e não consegui, e ja copiei denovo as coisas, ja criei outro char e nada. Agradeço desde já. Link para o comentário Compartilhar em outros sites More sharing options...
Slicer 1070 Postado Abril 1, 2012 Share Postado Abril 1, 2012 @yahooABC mano o script tava todo errado n sei se foi quando tu coloco aki no forum ou n sei la.. ;x e tu coloco no catch.lua? n modificase algu errado na tabela "ballcatch"?.. ;x sei la pq esse erro da pq ele n ta conseguindo acha essa parte.. "normal = 0," na storage dos pokes.. ;x colocase tb a tabela do configuration.lua?... @Dudu08267 pra isso teria q modificar a function e eh dificil explica.. ;/ e complicado pra implementar tb... Link para o comentário Compartilhar em outros sites More sharing options...
planetc 9 Postado Abril 1, 2012 Share Postado Abril 1, 2012 alguem me ajuda pela mor de deus ? :SS como q eu almento ou diminuo o poder de ataque de algum pokemon ?EXEMPLO: ele ta hitando 10, eu qro q ele hite 20 alguem :SS ? Link para o comentário Compartilhar em outros sites More sharing options...
FlamesAdmin 261 Postado Abril 1, 2012 Share Postado Abril 1, 2012 Fiz ski system Link para o comentário Compartilhar em outros sites More sharing options...
angeldoido 37 Postado Abril 1, 2012 Share Postado Abril 1, 2012 algum webmaker ajuda me respondendo topico http://www.xtibia.com/forum/topic/183455-modern-acc-pa-por-lvl-e-teleport/ Link para o comentário Compartilhar em outros sites More sharing options...
planetc 9 Postado Abril 1, 2012 Share Postado Abril 1, 2012 (editado) ow como eu fasso um npc q tipo "POR EXEMPLO" ele fala pra vc traze 2 fire stone, ai vc tras e ganha uma outfit ? alguem ajuda ? ;S do REP+ pra qem me ajuda Editado Abril 1, 2012 por Christopher Prado Stamboni Link para o comentário Compartilhar em outros sites More sharing options...
Dudu08267 7 Postado Abril 2, 2012 Share Postado Abril 2, 2012 (editado) ow como eu fasso um npc q tipo "POR EXEMPLO" ele fala pra vc traze 2 fire stone, ai vc tras e ganha uma outfit ? alguem ajuda ? ;S do REP+ pra qem me ajuda Tais ai: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local stg = 17763 -- storage para falar com o npc local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'mission') then if getPlayerStorageValue(cid, stg) >= 1 then selfSay("Sorry, you complete quest.", cid) talkState[talkUser] = 0 else selfSay("Ooooh good! I'm looking for some rare items... They are: Items", cid) talkState[talkUser] = 1 end end --------------------------------------------------------- if (msgcontains(msg, "yes") or msgcontains(msg, "sim")) and talkState[talkUser] == 1 then if doPlayerRemoveItem(cid, id, 1) and doPlayerRemoveItem(cid, id, 1) and doPlayerRemoveItem(cid, id, 1) and doPlayerRemoveItem(cid, id, 10) and doPlayerRemoveItem(cid, id, 1) == TRUE then selfSay("Thank you!", cid) setPlayerStorageValue(cid, 112, 1) -- storage para liberar outfit setPlayerStorageValue(cid, stg, 1) -- para ele nao fazer a missao novamente doPlayerAddExperience(cid,120000) -- experiencia doPlayerAddItem(cid, 2152, 30) doPlayerAddItem(cid, 2156, 1) local bags = getPlayerSlotItem(cid, 3) doAddContainerItem(bags.uid, 2148, 10) -- box 2 else selfSay("Sorry, but you don't have all items.", cid) talkState[talkUser] = 0 end elseif (msgcontains(msg, "no") or msgcontains(msg, "nao")) and talkState[talkUser] == 1 then selfSay("Good bye '..getCreatureName(cid)..'.", cid) talkState[talkUser] = 0 end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) q pena Slicer fica mei confuso sem o nome. mas dxa pra lá. Editado Abril 2, 2012 por Dudu08267 Link para o comentário Compartilhar em outros sites More sharing options...
Slicer 1070 Postado Abril 2, 2012 Share Postado Abril 2, 2012 @Christopher Prado Stamboni manin a formula de dano das skills do brun eh MUITO loka.. e tpw a formula tb envolve o exp.lua e nao faço ideia de como funciona certinhu.. ;x vo da um exemplo de qnt loko eh esse sistema de dano do brun... se tu pegar a formula q ta no lib/pokemon moves.lua.. usando como exemplo um venusaur lvl 100 usando solar beam... vai da.. min = 5 + getPokemonLevel(cid) + (movesinfo[spell].f / 100 * movetype * specialoffenseRate) max = min + getPokemonLevel(cid) * levelFactor min = 5 + 100 + (135/100 * 10 * 3.55) => 105+47.925 => 152,925 max = 152.925 + 100 * 1.4 => 292.925 esse em tese seria o dano q o solar beam tiraria dos pokes adversarios... mas dai clr entre o exp.lua q n sei nem como ele faz.. ;x resumindo.. o q podes fazer eh inventar outra formula ou no minimo tentar balanciar editando o lib/moves.lua... ;x Link para o comentário Compartilhar em outros sites More sharing options...
planetc 9 Postado Abril 2, 2012 Share Postado Abril 2, 2012 DUDU N TO CONSEGUINDO EDITA MAN ALGUMAS COISAS DA SCRIPT SLICER VO TESTA, vo balancea NO MOVES.LUA E DPS EU EDITO Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados