tibiaa4e 86 Postado Novembro 7, 2008 Share Postado Novembro 7, 2008 (editado) Pasta Enciclopedia com todos os links de outros tutoriais ! http://www.xtibia.com/forum/Pasta-Data-Enc...r-E-t99746.html Parte II – Funções Lua Nessa segunda parte irei mostrar como usar e quase todas as funções em lua existentes no otserver, lembrando que esse tutorial foi baseado no The Forgotten Server 0.3.0 Alpha 3. Portanto poderá haver funções aqui que não terá em outros otservers ou será diferente o nome. Lembrando que todas as funções existentes aqui poderão ser usadas tanto em actions,npcs,movements,talk actions e spells. Dividi as funções em três grandes grupos e subgrupos, os três grandes são funções get(receba), set (insira) e do (faça). Use Forgotten Server 3.0 pelo amor de deus, se você não saber usar sql aprende a usar SqlLite nesse link... Se você Aries você não tem honra para mexer aqui Funções Get São as funções que retornam valores, ou seja, elas fazem checagens. São muitos usadas e uteis. Ela é usada em condicionais (If, while, for) ou inseridas em variaveis. O modo de usa-la depende do tipo de script ou do jeito que você preferir. Dividi elas em dois grupos, a get simples e a get com parametros. Funções get simples São funções simples mesmo basta coloca-las e elas retornarão um valor, pode coloca-las em condicionais ou em variaveis. E todas elas buscam valores em players. Os que há creature pode ser usados em monstros (a maioria). São elas : getPlayerFood(cid) – Verifica quanto de tempo de comida o player possui. getCreatureHealth(cid) – Verifica a health atual do player. getCreatureMaxHealth(cid) – Verifica a health maxima do player. getCreatureMana(cid) – Verifica a mana atual do player. getCreatureMaxMana(cid) – Verifica a mana maxima do player. getPlayerLevel(cid) – Verifica o level do player. getPlayerExperience(cid) – Verifica a experiencia. getPlayerMagLevel(cid) – Verifica o magic level. getPlayerAccess(cid) – Verifica o nivel de acesso (player,gm,tutor...) getPlayerTown(cid) - Verifica o id da cidade natal do player. getPlayerVocation(cid) – Verifica a vocação dele. getPlayerSoul(cid) – Verifica o soul points. getPlayerFreeCap(cid) – Verifica quanto de capacidade atual existe. getPlayerLight(cid) - Verifica o tamanho da luz do player. getPlayerGuildId(cid) – Verifica o id atual da guild do player. getPlayerGuildName(cid) – Verifica o nome da guild. getPlayerGuildRank(cid) - Verifica o posto dele na guild. getPlayerGuildNick(cid) – Verifica o nick dele na guild. (aquilo escrito no final entre parenteeses). getPlayerGuildLevel(cid) – Verifica o nivel da guild. getPlayerSex(cid) – Verifica o sexo do player(0-mulher, 1 – homem). getPlayerLookDir(cid) – Verifica a direção na qual ele está olhando. (0-norte, 1-leste, 2-sul, 3 -oeste). getPlayerGUID(cid) – Verifica o id dele na database. getPlayerPromotionLevel(cid) – Verifica o nivel da promoção do player. getPlayerGroupId(cid) – Verifica o nivel dele. (igual acesso). getPlayerInstantSpellCount(cid) - Verifica quantas spells o player sabe. getMonsterTargetList(cid) – Verifica os montros na qual você está atacando. getMonsterFriendList(cid) – Verifica os monstros amigo (provavelmente summons). getCreatureOutfit(cid) – Verifica o id da roupa do player. getCreaturePosition(cid) – Verifica a posição x,y,z do player. getCreatureSpeed(cid) – Verifica a velocidade atual do player. getCreatureBaseSpeed(cid) – Verifica a velocidade base do player. getCreatureName(cid) – Verifica o nome do player. getCreatureTarget(cid) – Verifica quem o player está atacando. getPlayerPremiumDays(cid) – Verifica quantos dias de premmium account o player possui. getPlayerSkullType(cid) – Verifica qual skull o player possui. getPlayerBalance(cid) – Verifica o saldo bancario do player. getPlayerStamina(cid) – Verifica o tempo de stamina. getPlayerNoMove(cid) – Verifica se ele pode se mover. getPlayerExtraExpRate(cid) – Verifica a taxa de experiencia extra (a confirmar). getPlayerPartner(cid) – Se o player está em parte ou não. getPlayerParty(cid) – Verifica informações da party do player. getPartyMembers(lid) – Verifica os membros da party segundo o id da função acima. getCreatureMaster(cid) – Verifica a criatura mestre (a que sumona). getCreatureSummons(cid) – Verifica os summons da criatura. A sintaxe dessas funções é essa : Exemplo : if getCreatureMana(cid) == 20 then Ou mana = getCreatureMana(cid) if mana == 20 then Funções get com parametros. Essas funções fazem o mesmo papel da outra get simples, porém elas tem certos parametros pois normalmente elas checam coisas a mais, e algumas checam objetos e não só valores do player. Lembrando que se for comparar itens que são com nomes (exemplo : getItemNameById(2195) == 'boots of haste' then) deve se colocar entre aspas pois é uma função string. Numeros não prescisam estar dentro de aspas. São elas : getPlayerSkill(cid, skillid) - checa o skill especificado do player (0- fist,1-club, 2-sword, 3-axe, 4-distance, 5 -shield, 6 – fishing). getPlayerItemCount(cid,itemid) - checa a quantidade de item agrupaveis. getPlayerSlotItem(cid, slot) - Checa que item tem no slot do player (1-cabeca, 2- amuleto, 3- backpack, 4-armadura, 5-mao direita, 6-mao esquerda, 7-pernas, 8- botas, 9-anel, 10 slot da torcha). getPlayerWeapon(cid, <optional> ignoreAmmo) - Checa que arma o player esta usando. (o outro paramentro ainda n usei). getPlayerItemById(cid, deepSearch, itemId, <optional> subType) - Procura o item especifica no item, pode colocar o subtipo (viais por exemplo). getPlayerDepotItems(cid, depotid) - Ve quantos itens tem no depot da cidade (Por id de cidade). getPlayerFlagValue(cid, flag) - Ve as flag dos players (Apenas em TFS e nunca usei). getPlayerCustomFlagValue(cid, flag) - Verifica o valor da flag. getPlayerLearnedInstantSpell(cid, name) - Verifica se o player sabe a magia. getPlayerInstantSpellInfo(cid, index) - Desconheço getInstantSpellInfoByName(cid, name) - Verifica valores da magia getInstantSpellWords(name) - Retorna a palavra magica da magia. getPlayerStorageValue(uid, valueid) - Verifica o valor do storage do player getCreatureByName(name) - Retorna o nome da criatura. getPlayerGUIDByName(name) - Verifica o numero da tabela sql do player. getPlayerNameByGUID(guid) - Verifica o nome do jogador pelo numero da tabela sql getContainerSize(uid) - Verifica quantos slots tem o container. getContainerCap(uid) - Verifica quanto pesa o container. getContainerItem(uid, slot) - Verifica se há um container no slot especificado. getDepotId(uid) - - Verifica o id da cidade do depot. getItemDescriptionsById(itemid) - Pega a descrição do item pelo id. getItemNameById(itemid) - - Pega o nome do item pelo id. getItemPluralNameById(itemid) - Pega o nome em plural do item pelo id.(apenas itens agrupaveis). getItemIdArticleById(itemid) - Retorna um valor pelo id. Desconheço essa função getItemWeightById(itemid, count, <optional: default: 1> precise) - -Pega o peso do item por id. getItemDescriptions(uid) - - Pega a descrição do item por uid. (por exemplo se ele é item ou item2 em actions). getItemName(uid) - - Pega a descrição do item por uid. getItemAttack(uid) - Pega o ataque do item por uid. getItemPluralName(uid) - Pega o nome em plural por uid. getItemExtraAttack(uid) - Modifica o ataque extra da arma (Acho que deve ser ataque elemental ou defesa de armor). getItemIdArticle(uid) - - Desconheço. getItemDefense(uid) - - Pega a defesa do item por uid. getItemExtraDefense(uid) - - Pega a defesa extra (armor) por uid. getItemArmor(uid) - - Pega o valor de armour por uid. getItemAttackSpeed(uid) - - Pega a velocidade de ataque por uid. getItemHitChance(uid) - - Pega a chanche de dano do item por uid. getItemIdByName(name) - - Retorna o id do item pelo nome. getPromotedVocation(vocation) - - Verifica qual o nome da vocação promocional da vocação(Sorcerer = Master Sorcerer). getPlayerBlessing(cid, blessing) - - Verifica qual nivel de benção o player tem (1 = 1, 2 =2...). getTemplePositionByName(townName) - - Verifica as coordenadas do templo pelo nome da cidade. getTemplePositionById(townId) - - Verifica as coordenadas do templo pelo id da cidade. Funções Set São poucas funções. Elas inserem valores ou seja inserem novos valores, inutilizando os antigos. Deve se usa-las dentro de condicionais. Exemplo : if getItemNameById(item.uid) == 'boots of haste' then setItemArmor(item.uid, 5) end No caso se o item se chamar boots of haste, o script coloca arm 5 nela. São elas : setItemAttack(uid, attack) - Modifica o ataque da arma setPlayerStamina(cid, minutes) - Adicione tempo em stamina. setPlayerExtraExpRate(cid, value) - Modifica mais taxa de experiencia setPlayerPartner(cid, guid) - Desconheço setItemPluralName(uid) - Modifica ou adiciona o nome do item no plural. setItemName(uid) - Muda o nome do item. setItemIdArticle(uid) - Modifica o article no item (sei la q merda é essa) setItemExtraAttack(uid, extraattack) - Adiciona ataque extra na arma. setItemDefense(uid, defense) - Modifica defesa no item setItemExtraDefense(uid, extradefense) - Modifica aquela defesa extra na arma setItemArmor(uid, armor) - Modifica a armor do item setItemAttackSpeed(uid, attackspeed) - Muda a velocidade de ataque do item setItemHitChance(uid, hitChance) - Modifica a taxa de dano do item setGlobalStorageValue(valueid, newvalue) - Adiciona um valor global (Muito util para scripts avançados) setHouseOwner(houseid, ownerGUID) - Muda o dono da casa setWorldType(type) - Muda o estilo do mundo para PvP, Non Pvp e Pvp Enforced Funções do Funções que fazer algo, normalmente modificam , porem ao contrario do set algumas apenas adiciona valores. São usadas dentro de condicionais. A sintaxe dela é : if item.itemid == 2195 then doCreatureAddHealth(cid, -1000) end No caso se o item usado no script for 2195, ele remove 1000 de hp. São elas : doPlayerLearnInstantSpell(cid, name) - Faz o player aprende a magia pelo nome dela. doRemoveItem(uid, quantidade) - Remove o item do player. doPlayerFeed(cid, food) - Adiciona "comida" ao player. doPlayerSendCancel(cid, text) - Manda aquela mensagem branca no rodape da tela. doPlayerSendDefaultCancel(cid, ReturnValue) - Inutil pelo que saiba , pq nunca vi um script com isso e por isso n sei pra q serve. doTeleportThing(cid, newpos, <optional> pushmove) - Teleporta o player para uma nova posição. doTransformItem(uid, toitemid, <optional> count/subtype) - Transforma o item em outro. doCreatureSay(cid, text, type) - - Faz o player falar algo. doSendMagicEffect(pos, type[, player]) - Faz algum efeito magico doSendDistanceShoot(frompos, topos, type) - Faz algum efeito de distancia doChangeTypeItem(uid, newtype) - Muda o tipo dele ou a quantidade de itens agrupaveis. doSetItemActionId(uid, actionid) - Adiciona uma nova actionid por uid. doSetItemText(uid, text) - - Adiciona um texto ao item. doSetItemSpecialDescription(uid, desc) - Coloca a descrição especial no item. (Esse item foi feito especialmente para sei la kem). doSendAnimatedText(pos, text, color) - Manda um texto animado (Se vc joga servidor Pvp Enforced sabe qual é). doPlayerAddSkillTry(cid, skillid, n) - Adiciona uma tentativa em um skill (Se vc colocar 9999999 ele aumenta apenas 1 skill). doCreatureAddHealth(cid, health) - Adiciona life ao player. doCreatureAddMana(cid, mana) - Adiciona mana ao player. doPlayerSetTown(cid, townid) - Muda a cidade do player. doPlayerSetVocation(cid,voc) - Muda a vocação do player ( Não coloque vocação promocional em TFS pq dará erros). doPlayerRemoveItem(cid, itemid, count, <optional> subtype) - Remove um item do player. doPlayerAddExp(cid, exp) - Adiciona experiencia ao player. doPlayerAddOutfit(cid,looktype,addons) - Adiciona addons do outfit ao player. doPlayerRemoveOutfit(cid,looktype,addons) - Remove addons do outfit do player. doAddContainerItem(uid, itemid, <optional> count/subtype) - Adiciona um container por uid. doBroadcastMessage(message, type) - Manda uma mensagem global ao servidor. doPlayerBroadcastMessage(cid, message, <optional> type) - doPlayerSetSex(cid, newSex) - - Muda o sexo do Player (0- mulher, 1 homem) doCreatureChangeOutfit(cid, outfit) - Muda a roupa do player. doSetMonsterOutfit(cid, name, time) - Muda a roupa para de um monstro. doSetItemOutfit(cid, item, time) - Muda a roupa do player para de um item. doSetCreatureOutfit(cid, outfit, time) - Adiciona uma roupa por tempo. doPlayerAddMapMark(cid, pos, type, <optional> description) - Adiciona aquelas marcações no mapa do jogador. doPlayerAddPremiumDays(cid, days) - Adiciona dias de premmium no jogador doPlayerAddManaSpent(cid, mana) - Adiciona % de magic level (Se vc colcoar 99999999 ele aumentará muitos mls...) doPlayerAddSoul(cid, soul) - Adiciona soul points ao jogador doPlayerAddItem(uid, itemid, <optional> count/subtype, <optional: default: 1> canDropOnMap) - Adiciona itens no player. doPlayerAddItemEx(cid, uid, <optional: default: 0> canDropOnMap) - Adiciona um item2 no player (Estranho). doPlayerSendTextMessage(cid, MessageClasses, message) - Manda um texto pro player. doPlayerAddMoney(cid, money) - Adiciona dinheiro ao player doPlayerRemoveMoney(cid, money) - Remove dinheiro do player. doPlayerWithdrawMoney(cid, money) - Remove dinheiro do banco doPlayerDepositMoney(cid, money) - Adiciona dinheiro ao banco. doPlayerTransferMoneyTo(cid, target, money) - Transfere dinheiro do banco. doShowTextDialog(cid, itemid, text) - Mostra o texto do item doDecayItem(uid) - Decai o item (aprodecer) doCreateItem(itemid, type/count, pos) - doCreateItemEx(itemid, <optional> count/subtype) - Cria um item2. doTileAddItemEx(pos, uid) - Cria um item2 em um tile doAddContainerItemEx(uid, virtuid) - Adiciona um item2 no container doCreateTeleport(itemid, topos, createpos) - Cria um teleport doSummonCreature(name, pos) - Sumona um monstro Existem mais comandos porém são rarissimos de ser usados. Por que os cara do TFS criam comandos em Luas para o Gesior e Jiddo se lascarem criando tranqueiras em Lua. Stackpos Sem duvidas, umas das partes mais chatas de explicar, porém ao aprender é dificil esquecer. O stackpos é usado para se mexer em itens empilhados, infelizmente ele se modifica muito então essa tabela mostra os stackpos que não mudam. 0 – ground (chão)1- Qualquer objeto acima do chão (se houver chão) 253 – player ou monstro 255 – item mais alto de qualquer pilha 65535 – dentro de um player Agora tirando isso os de 2 a 252 sempre mudam (Eu acho que não esqueci os outros que mudam), então vou tentar explicar do jeito que entendi antigamente... Se você tem empilhado o chão, uma mesa, e um bag. Os stackpos ficam assim 0 – chão1 – mesa 2 – bag Agora se você tem os mesmo itens e em cima da bag uma backpack e um scarab coin. 0-chão1-mesa 2-scarab coin 3-backpack 4-bag Confundiu ? Sim é normal, se houver três ou mais itens acima do chão, o chão e o objeto acima dele continuam com o mesmo stackpos. Porém depois é contado de cima para baixo. Veja esse exemplo : stackpos: 0-areia1-mesa 2-backpack 3-bag 4-gold coin 5-rope 6-shovel 7-machete 8-dead human Nesse caso a ordem dos itens de baixo para cima é : Areia, mesa, dead human, machete, shovel, rope, gold coin.bag e backpack. Entenderam agora ? Se não tente fazer uns testes que com certeza entenderá. E depois pelo seu bem, tente não esquecer isso. Pois em movements é importantissimo. Bem esse tutorial foi leve e servirá de base para os proximos, pois esses comandos podem ser usados em tudo que há lua. Peço desculpas se ele fico confuso Pois não estou vagal quanto antes e tenho pouco tempo... Esperem que virão mais tutoriais. Comentarios é o combustivel. Então deem sugestões, reclamações ou me ofendam sei la. Editado Janeiro 20, 2009 por tibiaa4e Link para o comentário https://xtibia.com/forum/topic/99662-pasta-data-fun%C3%A7%C3%B5es-em-lua/ Compartilhar em outros sites More sharing options...
Jvchequer 63 Postado Novembro 8, 2008 Share Postado Novembro 8, 2008 OMFG! HE'S ALIVE!!!! TIBIA4E IS ALIVE!!!!! CALL THE POLICE! ;x Fala rapaz, excelente ver você postando coisas fresca novamente, ambos tutoriais, aprovados e fixados, CLARO QUE SIM! :] PS: Ficará mais fácil se você criar um tópico com os links para a apostila do ter que fixar 11 excelente tutoriais, é só pegar essa introdução e colar em um novo tópico, facilitaria muito para os usuários, kkkkk :] Link para o comentário https://xtibia.com/forum/topic/99662-pasta-data-fun%C3%A7%C3%B5es-em-lua/#findComment-636191 Compartilhar em outros sites More sharing options...
tibiaa4e 86 Postado Novembro 8, 2008 Autor Share Postado Novembro 8, 2008 Sim, agora eu faço com todo o prazer xD vlw ae por fixar To fazendo isso no tempo livre Agr estudando 2 horario e sem internet xD Link para o comentário https://xtibia.com/forum/topic/99662-pasta-data-fun%C3%A7%C3%B5es-em-lua/#findComment-636419 Compartilhar em outros sites More sharing options...
sfmlarl 0 Postado Novembro 18, 2008 Share Postado Novembro 18, 2008 (editado) Poxa, realmente perfeito! Gratz! Faz logo a de Weapons if getItemNameById(item.uid) == 'boots of haste' thensetItemArmor(item.uid, 5) end essa função esta errada, não? :S @down Blz... Editado Novembro 18, 2008 por Detoneitormen Link para o comentário https://xtibia.com/forum/topic/99662-pasta-data-fun%C3%A7%C3%B5es-em-lua/#findComment-640873 Compartilhar em outros sites More sharing options...
tibiaa4e 86 Postado Novembro 18, 2008 Autor Share Postado Novembro 18, 2008 @up Não... Só que acho que so funfa na 0.3 É uns comandos novos E pelo que me lembre eu peguei ela no tfs Link para o comentário https://xtibia.com/forum/topic/99662-pasta-data-fun%C3%A7%C3%B5es-em-lua/#findComment-641031 Compartilhar em outros sites More sharing options...
Gofaia 1 Postado Novembro 19, 2008 Share Postado Novembro 19, 2008 Simplismente.... Perfeito... Mesmo eu sendo scripter, só fazia scripts no ctrl + c e ctrl + v heheheh Isso me ajudou muitoooo.... Parabéns, otimo topico.. Bloody kisses Link para o comentário https://xtibia.com/forum/topic/99662-pasta-data-fun%C3%A7%C3%B5es-em-lua/#findComment-641772 Compartilhar em outros sites More sharing options...
marcaodailha 0 Postado Novembro 25, 2008 Share Postado Novembro 25, 2008 Agora sim, já to usando teu tutorial bro, muito bem explicado! será que vc podeira falar mais sobre como utilizar o getPlayerStorageValue? Grande abraço! Link para o comentário https://xtibia.com/forum/topic/99662-pasta-data-fun%C3%A7%C3%B5es-em-lua/#findComment-644771 Compartilhar em outros sites More sharing options...
noobinhu 38 Postado Novembro 25, 2008 Share Postado Novembro 25, 2008 Storage Values são dados guardados junto com os players na database SQL que nunca perderão seus valores automaticamente, a não ser que sejam editados. Por isso eles são utilizados em quest, sempre com IDs diferentes e valores também. Todo player, ao ser criado, tem todos os storage values com seu valor inicial -1 (não existe), desde o storage value 0 até o infinito positivo. Ao fazer uma quest, geralmente no script, terá algo assim: storageid = 4000 -- id que será guardado o valor da quest (storage value)quest = getPlayerStorageValue(cid, storageid) if quest == -1 or quest == 0 then -- caso não existir -- adciona items, prêmios, etc newvalue = 1 -- geralmente em quests, é atribuido o valor 1 (pode ser atribuido qualquer valor diferente de 0 e -1) setPlayerStorageValue(cid, storageid, newvalue) -- cria o storage value else -- se já existir o storage value com os valores diferentes de -1 e 0 -- avisa que a quest já foi feita end Isto foi um resumo do grande poder contido nos Storage Values, muito úteis para scripts bem feitos e complicados. Link para o comentário https://xtibia.com/forum/topic/99662-pasta-data-fun%C3%A7%C3%B5es-em-lua/#findComment-644779 Compartilhar em outros sites More sharing options...
tibiaa4e 86 Postado Novembro 26, 2008 Autor Share Postado Novembro 26, 2008 Os storage explicarei melhor em tutoriais de actions, npcs que ajudam muito mesmo A explicação do noobinhu foi otima tbm Link para o comentário https://xtibia.com/forum/topic/99662-pasta-data-fun%C3%A7%C3%B5es-em-lua/#findComment-644899 Compartilhar em outros sites More sharing options...
StrongJunior 0 Postado Novembro 30, 2008 Share Postado Novembro 30, 2008 Eu já sabia muita coisa ai, mas mi ajudou bastante, valeu poresse tutor, vai mi ajudar bastante a fazer minhas quest! Link para o comentário https://xtibia.com/forum/topic/99662-pasta-data-fun%C3%A7%C3%B5es-em-lua/#findComment-646938 Compartilhar em outros sites More sharing options...
tozinho123 0 Postado Janeiro 8, 2009 Share Postado Janeiro 8, 2009 ta muito bom, mais faltou as funções doTargetCombatHealth, doAreaCombatHealth, doTargetCombatMana e doAreaCombatMana Link para o comentário https://xtibia.com/forum/topic/99662-pasta-data-fun%C3%A7%C3%B5es-em-lua/#findComment-671374 Compartilhar em outros sites More sharing options...
brainless 0 Postado Janeiro 16, 2009 Share Postado Janeiro 16, 2009 (editado) as functions relacionadas à palavra ARTICLE (setItemIdArticle, getItemIdArticle) são relacionadas ao artigo do item... em ingles A para palavras iniciadas em consoantes, AN para palavras iniciadas em vogal em pt, O, A, Os, As espero ter sanado a dúvida =) antes que eu me esqueça, excelente tutorial, vai ajudar muito na hora de fazer scripts =) agora uma dúvida minha... acho que pra TODAS as functions get, tem uma set correspondente, n tem não? Editado Janeiro 16, 2009 por brainless Link para o comentário https://xtibia.com/forum/topic/99662-pasta-data-fun%C3%A7%C3%B5es-em-lua/#findComment-676756 Compartilhar em outros sites More sharing options...
tibiaa4e 86 Postado Janeiro 16, 2009 Autor Share Postado Janeiro 16, 2009 @up a maioria tem algumas que não como getPlayerLevel e outras Link para o comentário https://xtibia.com/forum/topic/99662-pasta-data-fun%C3%A7%C3%B5es-em-lua/#findComment-676901 Compartilhar em outros sites More sharing options...
Lwkass 0 Postado Fevereiro 7, 2009 Share Postado Fevereiro 7, 2009 me ajudou bastante para criar alguns scripts diferentes... vlw aew :smile_positivo: Link para o comentário https://xtibia.com/forum/topic/99662-pasta-data-fun%C3%A7%C3%B5es-em-lua/#findComment-692352 Compartilhar em outros sites More sharing options...
babybss 1 Postado Maio 26, 2009 Share Postado Maio 26, 2009 Perfeito, todas as funções! Você que me ajudou dando uma grande inspiração no meu começo de actions, ainda ajuda muito sem mesmo saber, acredite. Era o que eu presisava, muito obrigado (denovo) Link para o comentário https://xtibia.com/forum/topic/99662-pasta-data-fun%C3%A7%C3%B5es-em-lua/#findComment-743167 Compartilhar em outros sites More sharing options...
Posts Recomendados