Ir para conteúdo

Tutoriais sobre Scripting

Aprenda com os mestres da comunidade a desenvolver seus scripts, sistemas e domine a linguagem .lua!

Atenção!

- Esta área é para publicação de Tutoriais sobre criação de códigos Otserv.

- Ao ler um tutorial, dê reputação ao membro que o publicou e comente no tópico. Este pequeno incentivo faz com que membros continuem trazendo tutoriais e outros conteúdos ao fórum.

- Se o conteúdo não for seu, adicione Créditos!

- Por motivos de segurança é necessário que um membro da equipe Aprove o seu Tópico, dessa forma mantemos o fórum organizado e livre de conteúdos maliciosos, obrigado pela compreensão!

 

Procure pelo tipo de código:

 

  1. Started by KotZletY,

    Bom galera, o Tópico já diz tudo, irei explicar como mudar para Uint16 dessa vez nas Source, para quem não sabe. Irei explicar como aumentar em Magic Effects, para assim você seu Server usar mais de 255, e ShootEffects para usar mais de 41 Distance efeitos(muito mais). Existe Tópicos no Tk, porém não é a mesma coisa, esse é diferente pois você irá alterá o valor dos uint's disparados para o Client, para assim então usar além do Padrão! Abaixo umas informações essenciais ! Esse Tópico é especifico para TFS 0.4, para que assim você possa aumentar o limite de efeitos no Client, e usar mais de 255 efeitos, e mais de 41 efeitos em Distância. Vale lembra também qu…

  2. Started by thalia,

    Bom galera, tudo certo? XD Então galera, como todo mundo me pedia ajuda com scripts, decidir criar um canal no youtube focado bastante em como se tornar um script, no canal vai ter videos ensinando "scriptar" e como interpretar um script... enfim! Se inscrevam no canal e ajude a divulga-lo galera! muito obrigado a sua atenção, aqui vai o link do canal junto com o primeiro vídeo! Canal: http://www.youtube.com/user/NWEnsina #1 Vídeo - OT Scripting #1 - function onUse, if/else. Explicando Script #1 - Talkaction trocar 1kk por X [TK] Site/Bl…

  3. Started by Kimoszin,

    Ola gaaaaaaalera, é com muito prazer que venho trazer esse primeiro tutorial meu como Aprendiz do TibiaKing, Spells: Bom, spells sao as magias do nosso servidor, elas servem tanto para healar, atacar, dar suporte e etc ... Criar magias é algo muito simples, vc mesmo poderam criar quantas magias quiserem para o seu servidor seguindo esse tutorial, Muito bem, vamos começar ... Spells de Curar (Healing) Fazendo a sua Spell Nao precisamos mecher aqui Aqui sera, oque vai acontecer Aqui é o effect que saira quando o player usar a spell A spell nao vai agressivar, assim podendo ser usada em areas PZ Aqui sera um Extra, a…

  4. Started by MaXwEllDeN,

    Quer aprender a programar em Lua? Sugiro que você comece olhando esses tutoriais escritos por Urso Mock, Suricato Notorious e Raposa Skyen Hasus. Já leu todas as aulas anteriores e acha que você já está apto a criar seus próprios Scripts? Boa! Agora é hora de por suas habilidades em prática. Leia esses tutoriais: Outros Tutoriais: Avançado:

    • 31 respostas
    • 17.8k visualizações
  5. Started by Erimyth,

    ATENÇÃO! Este tutorial foi feito pelo tibiaa4e, portanto os créditos são 100% dele! Parte I – Básico do básico de Lua Começaremos por LUA porque é uma linguagem simples, que não precisa declarar variáveis e tudo mais. Aqui não explicarei as funções do otserver e sim como montar um script. Nessa primeira parte usarei o Português Estruturado que sinceramente não é útil quando você aprende a sintaxe da linguagem, porém é ótimo para você que está começando aprender o que está fazendo e não só copiando e colando. LEMBRANDO QUE PORTUGUÊS ESTRUTURADO NÃO É UMA LINGUAGEM É APENAS UM JEITO DE VOCÊ ENTENDER A SINTAXE DAS LINGUAGENS. Começando vamos explicar a sintaxe de um…

  6. Started by Erimyth,

    Lista de Funções LUA Aqui está um lista feita pelo elf com todas, ou quase todas as funções lua para o TFS. Tenho certeza que ela será útil para muitos scripters. 1. Funções #get getCreatureHealth(cid) //retorna o valor hitpoints do player ou monstro getCreatureMaxHealth(cid) //retorna o valor máximo de hitpoints do player ou monstro getCreatureMana(cid) //retorna o valor manapoints do player getCreatureMaxMana(cid) //retorna o valor máximo de manapoints do player getCreatureMaster(cid) getCreatureSummons(cid) //retorna em array os summons do player ou monstro getCreatureOutfit(cid) //retorna o outfit do player getCreaturePosition(cid) //retorna a posição em array d…

  7. Started by xWhiteWolf,

    Fala galera do TK, hoje eu vim trazer pra vocês uma coisa que se perdeu em todos esses anos de OT e que é uma das coisas mais importantes prum scripter intermediário/avançado. São as explicações dos respectivos callbacks de creaturescripts. Espero que ajude bastante gente Créditos: 90% Zonnebloem (um gringo ai que postou isso das sources) e 10% pra mim por completar oque ele não tinha escrito e arrumado umas coisas que ele escreveu errado. ____________________________ CREATURE EVENTS TIPOS: _________________ TFS 0.2 type="login" function onLogin(cid) type="logout" function onLogout(cid) type="advance" function onAdvance(cid, skill, oldLev…

  8. Started by Renato,

    ACTIONS onUse(cid, item, fromPosition, itemEx, toPosition) onLogin(cid) onLogout(cid) onAdvance(cid, skill, oldLevel, newLevel) onStatsChange(cid, attacker, type, combat, value) onDirection(cid, old, current) onOutfit(cid, old, current) onSendMail(cid, receiver, item, openBox) onReceiveMail(cid, sender, item, openBox) onTradeRequest(cid, target, item) onTradeAccept(cid, target, item, targetItem) onJoinChannel(cid, channel, users) onLeaveChannel (cid, channel, users) onLook(cid, thing, position, lookDistance) onThink(cid, interval) onTextEdit(cid, item, newText) onReportBug(cid, comment) onAreaCombat(cid, tileItem, tilePosition, isAggressive) …

    • 8 respostas
    • 6k visualizações
  9. Started by Shawii,

    Edit: não sei se estou na sessão certa, sou novo por aqui, se não estiver por favor me mova E ae! Fazia um bom tempo que não mexia com OT scripting, então para me ajudar, fiz um autocomplete e Highlight (marca as funções com cores diferentes) das funções que achei no tópico Lista de Funções LUA Não é uma coisa que se diga "NOOOSSA QUE FODA MALUCO DO CÉU", mas pode ajudar algumas pessoas que assim como eu não estão acostumadas com o nome das funções do TFS. Parte 1 - Adicionar o Autocomplete: Para adicionar o autocomplete basta pegar esse código: - Vá até o diretório Notepad++\plugins\APIs na pasta onde foi instalado o notepad++ - Copie qu…

  10. Started by Killua,

    Usando addEvent O uso do addEvent tem inúmeras utilidades e pode ser complicado para algumas pessoas, inclusive era para mim quando eu estava começando a aprender LUA. Para que serve o addEvent? Para "chamar" uma função após um periodo de tempo, ou seja, executar uma função após um tempo estipulado. O addEvent tem como parâmetros: callback, delay e ... addEvent(callback, delay, ...) Onde callback é a função que será chamada, delay é o tempo (em milissegundos) até que se chame essa função e ... são os parâmetros que a função chamada utiliza. Exemplo: addEvent(doBroadcastMessage, 1000, "Bom dia", 23) Aqui, após 1 segundo (1000 ms), a função doBroadcastM…

    • 5 respostas
    • 16.9k visualizações
  11. Started by GabrielSapient,

    Galera sempre procurei um Launcher AutoUpdate para meu servidor, depois de muita pesquisa e pouco conhecimento consegui fazer um em C#, está ai: 1. Download: • Download | • Scan 2. Oque ele faz: • Verifica a existência da versão local na pasta do cliente; • Se a versão do arquivo não existir, ele assume que a versão é "1.0" e cria um arquivo de versão; • Verifica arquivo .xml no servidor de atualização; • Baixar atualizações para todas as versões maiores do que a versão atual do cliente (atualiza tudo em apenas formato de arquivo .zip); • Extrai os arquivos .zip…

  12. Esse sistema foi feito utilizando a source disponibilizada neste link Pode funcionar em TFS 0.4, OTX 2.X e, talvez, em TFS 0.4 só que a probabilidade erros é maior por ter diferentes nomes de funções e variáveis. Fiz um vídeo seguindo o passo a passo abaixo para facilitar o processo de instalação do sistema. Hoje estarei ensinando a instalar os seguintes novos atributos/sistemas em sua source CriticalHitChance e DodgeChance -- (Funciona da mesma maneira que o critical básico de script, porém sem bugs de callstack) Life e Mana Absorb -- (Regenera, de acordo com a % atribuida, a partir de dano recebido) Life e Mana Leech -- (Regen…

  13. Opa, galerinha do TK, pro meu primeiro tutorial resolvi fazer uma solução de um problema que desde que cheguei no TK, vejo que ocorre com uma certa frequência. Os erros da data base. Neste tutorial vou ensinar a resolver os erros do tipo No such table, Insert into, No such column, ... has no column named... etc. 1°) NO SUCH TABLE Bom, para o erro No such table, basta vc visualizar qual table está faltando. Para isso basta ler o erro na distro: No caso da imagem, está faltando a table: player_statements Para resolver este e qualquer outro problema deste tipo, caso sua data base seja sqlite, basta abrir sua data base pelo Sqlite Studio(download: http:/…

  14. Started by ZORAN,

    Olá amigos da Comunidade Tibiaking venho trazer a vocês este tutorial de como compilar o TFS v1.0 em windows 32 or 64 bits com Microsoft Visual Studio 2013 (Obs: Eu uso a 2013 Ultimater Recomendo). Vamos ao tutorial >> 1) Primeito baixe os programas abaixo se não tiver claro: MSVS 2013 >> Click Here http://www.visualstudio.com/downloads/download-visual-studio-vs Agora baixar os Programas do TFS v1.0: TFS Sdk >> Click Here - Link 2: (Mirror) Source Do TFS v1.0 >> Click Here Atenção Baixe apenas a Boost da versão do Pc 32 or 64 Bits. Boost MSVS 2013 32Bits >> Click Here Boost MSVS 2013 64Bits >> Click Here 2) Agora…

  15. Boa noite meus amigos do TK! Hoje venho trazer uma vídeo aula que muitos me pediram sobre como adicionar novos pokémons no PDA que possui Icon System! (Funciona nos que não possuem Icon System tbm) É um esquema bem simples, porém detalhista. Basta seguir o passo a passo que você não terá problemas http://youtu.be/AUlpi33gsgk OBS: Desculpem, o vídeo ficou muito longo, mas acredito que para aqueles que estiverem com dúvidas, esse vídeo responderá quase tudo! Edit: Item Editor by EdMignari Edit 2.0: Esse é um vídeo do membro Dyego que será muito útil sobre como adicionar as sprites novas no seu Object Builder!Não deixem de conferir: https://ww…

    • 37 respostas
    • 6.3k visualizações
  16. Started by Featzen,

    Bom, todos acham 255 efeitos muito pouco, né? Então tá aí, pra quem quiser aumentar esse limite pra 65,535. Mas como nem tudo é perfeito, pra fazer isso você precisará estar usando OTClient e também ter as sources do seu servidor. PS: Só testei em 8.54 Vamos ás edições do servidor: No protocolgame.cpp: No protocolgame.h: No game.cpp: No game.h: No player.h: Bom, agora falta editar no const.h: Está quase pronto, agora, falta fazer o client aceitar esses dados, pra isso, em otclient/modules/game_things/things.lua, em baixo de: local version = g_game.getClientVersion()Adicine: …

  17. olá galera do tibiaking esse é meu primeiro topico então desculpem erros de português bom vamos lá essa função é para server em sqlite que querem resetar sem deletar players ou items. bom primeiro vou falar que essa função pode ser editada por você mais darei algumas opções vejá abaixo algumas funções como editar mais tags siga abaixo \/ é isso espero que tenha ajudado alguma dúvida comente para resolver-mos juntos obs¹: para executar as funções na sqlite procure na parte superior open SQL query editor coloque as funções nele e aperte f9

  18. Olá a todos! Estou aqui para ajudar no desenvolvimento de scripts para servidores de jogos baseados em OTS (Open Tibia Server). Se você precisa de algum script para o seu servidor e quer exercitar suas habilidades de programação, fique à vontade para enviar seus pedidos. Vou tentar ajudar da melhor forma possível. Para facilitar a comunicação, por favor, siga as diretrizes abaixo ao fazer seu pedido de script: Título do pedido: Comece seu pedido de script com um título claro e descritivo que resuma o que você está procurando. Por exemplo: "[Pedido de script - DataPackArea - Actions] Sistema de eventos automatizados". Descrição do script…

  19. Started by Adriano SwaTT,

    É, todos conhecem a "Mana Rune", então nem tenho muito o que fala... Então vamos lá.. A Imagem da Runa que será a "Mana Rune" está no spoiler abaixo. 1º Passo 2º Passo 3º Passo Ex: <item fromid="2275" toid="2285" article="a" name="spell rune"> <attribute key="weight" value="120" /> </item> Item FromID 2275 - ToID 2285, ou seja, da ID 2275 à ID 2285 todos os items serão chamados de "spell rune" como está na tag. P- Certo, então como procurá-la então? R- Simples... basta você procurar pelo nome do item, ou seja, procure por "spell rune". Nessa parte tem um porém... você tem que verificar se não há uma tag que comp…

  20. E ai galera do TK tudo bem? Bom venho trazer a vocês este tutorial compilando o TFS 1.2 em windows x32 ou x64 bit com Microsoft Visual Studio 2015. Então vamos lá: 1ª Baixe os programa primeiro: Visual Studio 2015 -> MSVC 2015 (compilador) TFS Sdk 3.2 -> Sdks 3.2 (libs) Boost MSVC 2015 -> (32-bit, 64-bit) 2ª Instale os Programa: Primeiro o Boost 32bit ou 64bit. Imagem: 3ª Agora extraia o arquivo tfs-sdk-3.2. Imagem: 4ª Pronto depois de ter feito isso agora abra a pasta da source e depois a pasta vc14 e abre o theforgottenserver. Imagem: …

  21. Ola galerinha, hoje vou ensinar a vc's como usar if, else, elseif, and e or em lua If, Else, ElseIF, Then Agora vamos ver oque é oque: Entendo o Script function onSay(cid, words) -- Função aoFalar if getPlayerVocation(cid) == 4 then -- Se a vocação do player for igual a 4 entao doPlayerSendTextMessage(cid, 22, "Eu sou um Knight") -- Mandar uma mensagem com o texto, dizendo sua vocação elseif getPlayerVocation(cid) == 3 then -- Se nao, se a vocação do player for igual a 3 entao doPlayerSendTextMessage(cid, 22, "Eu sou um Paladin") -- Mandar uma mensagem com o texto, dizendo sua vocação else -- Se nao doPlayerSendTextMessage(cid, 22, …

    • 20 respostas
    • 5.1k visualizações
  22. Fala pessoal do TK, busquei em vários fóruns de open tibia como alterar a versão do TFS 1.0 dando suporte a nova versão 10.51 (Que estará sendo lançada com o IP Changer) Enfim resolvi fazer um tutorial básico para alterar nas sources fazendo com que o TFS aceite da versão 10.37 até 10.51, show né? Vamos ao que interessa: Caso ainda não tenha faça o download das sources 10.41 disponibilizada pelo Mark Samman (táganhandomaisqueobillgates) na github: https://github.com/otland/forgottenserver Em 3 passos estará prontos, vamos lá! Passo 1: Começando, vá até a pasta src (pasta dos arquivos da source) e localize o arquivo protocolgame.cpp, então a…

  23. Started by Lurk,

    Fiz essa spell a pedido de um usuário do fórum e logo depois outro usuário pediu uma versão onde o target do player afetado pela magia ficasse bloqueado por um tempo configurável, gostei da ideia e decidi postar em forma de tópico. Primeiro de tudo você vai precisar dessa função feita/disponibilizada pelo @WooX (não se esqueçam de passar no tópico dele e agradecer) Em data/spells.xml adicione <instant name="Cancel Enemy Target" words="Cancel Enemy Target" lvl="12" mana="20" range="3" blockwalls="1" needtarget="1" exhaustion="2000" needlearn="0" event="script" value="canceltargetlurk.lua"> <vocation id="1"/> <vocation id="2"/> </ins…

  24. Started by OnDraKe,

    Porque um OTServer em linux? Linux é tudo 100% melhor que Windows. Proteção, o Linux tem uma rígida proteção contra acessos indesejados, acessos maliciosos. O Linux tem um mega capacidade de proteção DDoS isso e se você tiver as configurações corretas,roda map de qualquer tamanho sem limite de 100 mb. Primeiramente Obtenha uma plano Linux VPS/DEDICADO em www.gamershost.com Download Necessario: SSH Secure Shell FileZilla FTP Sources TFS - Qualquer versao. Primeiramente entre em contato com suporte do seu VPS/DEDICADO e peça para adicionar: Ubuntu add: deb http://ubuntu.mirror.cambrium.nl/ubuntu/ lucid main universe Debian add: deb http:/…

    • 19 respostas
    • 8.9k visualizações
  25. Started by Summ,

    Com o avanço do TFS outras versões como 10.04, 12.04, 13.10... pararam de oferecer uma boa estabilidade para os otserv tfs 1.0 +, então várias pessoa estão migrando para o linux 14.04 e sentem algumas dificuldades com instalação de libs, compilamento e instalação de um banco de dados, então a pedido de um amigo meu fiz um breve tutorial, para alem de ajuda-lo ajudar outros com eventuais dúvidas. Então vamos ao que interessa : Downloads necessarios: SSH Secure Shell WinSCP Acessando Shell SSH veja os passos a seguir : Proxima vez que você for acessa sua maquina por Shell clique em Profile sem ter necessidade de clicar em Quick Connect: …

  26. Started by Patrick Jean,

    Nome do Script: Removendo Account Salt Autor: Henke Rula Servidor Testado: OTX Server 9.8x e outras versões também serve Descrição: Mesmo tendo a opção no config.lua, não é retirado o salt do banco de dados. Então modifiquei nas sources forçando não criar o Salt na tabela. Requisitos: Sources do Servidor Abrir "iologindata.cpp" e procure por : query << "SELECT `name`, `password`, `salt`, `premdays`, `lastday`, `key`, `warnings` FROM `accounts` WHERE `id` = " << accountId << " LIMIT 1"; E Troque por: query << "SELECT `name`, `password`, `premdays`, `lastday`, `key`, `warnings` FROM `accounts` WHERE `id` = " << accountId << " LIM…

  27. Olá KingTibianos A pedido de um membro, vou postar um tutorial de como criar um NPC. Explicando detalhadamente. Primeiramente, cada npc se encontra em data/npcs no seu ot. Vou postar aqui como exemplo um NPC que venda algumas coisas: <?xml version="1.0" encoding="UTF-8"?> <npc name="Paul" script="default.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="129" head="57" body="86" legs="0" feet="114" addons="2"/> <parameters> <parameter key="module_shop" value="1"/> <parameter key="shop_sellable" value="crossbow,2455,150;bow,2456,130"/> <parameter key="sho…

    • 15 respostas
    • 26.5k visualizações
  28. Started by Grimmjow,

    Como criar um Script de quest Bom é bem simples fazer um Script de Quest, mais tem muita gente que ainda não sabe então irei ensinar através deste tópico. Primeiramente vá até a pasta "Actions" e depois vá em "Scripts" agora faça um arquivo chamadoQuest1.lua, e bote isso dentro dele: return TRUE end Legenda: Vermelho: É a Storage pode colocar qual quer numero, mais ele não deve existir em outra actions. Azul: É o ID do item. Agora volta na pasta "Actions" e abra o arquivo "Actions.xml" e coloque isto dentro dele: Agora para terminar a quest vá no Baú no seu mapa editor e bote o ActionID n…

    • 15 respostas
    • 39.9k visualizações
  29. Started by arthurluna,

    Bom Galera, muita gente anda procurando um script ou tutorial de como colocar o GOD pra falar anonimamente no HELP chat, é eu e meu amigo conseguimos arrumar, então vim posta para o TK, ajudando a todos como sempre.... DIA 1 DE FEVEREIRO INAUGURAÇÃO DO REPLICA DO TIBIA GLOBAL - WOTABR... EM BREVE SITE ESTARÁ DISPONÍVEL Em Game.cpp usa o comando - Ctrl + F e procure por esse script. case MSG_CHANNEL: { if(channelId == CHANNEL_HELP) { if(player->hasFlag(PlayerFlag_TalkOrangeHelpChannel)) type = MSG_CHANNEL_HIGHLIGHT; if(player->hasFlag(PlayerFlag_CanTalkRedChannel)) type = MSG_GAMEMASTER_CHANNEL; } break; } Em seguida troque…

    • 15 respostas
    • 1.9k visualizações
  30. [TESTADO EM OTX 2.1+] 8.60 Spoiler Opa, tudo bem? Resolvi fazer esse tutorial de como adicionar o Loot Channel em suas sources. <<< Exemplo de como vai ficar Primeiramente vá em configmanager.cpp e procure por: m_confNumber[START_LEVEL] = getGlobalNumber("newPlayerLevel", 1); Abaixo adicione: m_confNumber[LOOT_CHANNEL] = getGlobalNumber("lootChannelId", 11); Agora vá em configmanager.h e procure por: START_LEVEL, Abaixo adicione: LOOT_CHANNEL, Feito isso, vá em party.cpp e procure por: …

    • 15 respostas
    • 7.1k visualizações
  31. Started by OhGod,

    Mais uma vez eu aqui para mostrar como combila um OTserver no linux agora acompanhe o tutorial abaixo criado por OhGod e GM Bekman: Porque um OTServer em linux? Linux é tudo 100% melhor que Windows. Proteção, o Linux tem uma rígida proteção contra acessos indesejados, acessos maliciosos. O Linux tem um mega capacidade de proteção DDoS isso e se você tiver as configurações corretas. No Windowsvocê só pode utilizar mapa com o tamanho máximo 100mb no Linux é ilimitado. No Linux o OTServer tem um desempenho maior com agilidade muito boa. Deixando de bla, bla, vamos ao que interessa. AAAA, observe antes de tudo tenha uma maquina Linux, assim o tutorial terá se…

    • 14 respostas
    • 17.3k visualizações
  32. Started by Markin,

    Vim trazer hoje um tutorial bem útil para quem esta aprendendo a linguagem lua. Com a autorização do grande Jhon vou postar aqui um tópico desenvolvido por ele. Tutorial Básico sobre CreatureScripts CreatureScripts = São scripts que serão ativados após uma determinada ação criada pelo monstro ou personagem. Essas ações são determinadas como funções. Existem varias funções utilizadas para a criação de creaturescripts e estas são: onDeath(cid, corpse, killer)-- que é executada ao morrer. onPrepareDeath(cid, lastHitKiller, mostDamageKiller) -- semelhante a onDeath. onAttack(cid, target) -- executa ao atacar. onCombat(cid, target) -- se…

    • 14 respostas
    • 4.2k visualizações
  33. Started by L3K0T,

    ADICIONANDO O ELEMENTO muitas das vezes a gente precisa adicionar um novo elemento em nosso servidor, assim para criar novas magias, esse tutorial é para quem precisa disso. combat.cpp Abaixo de: case CONDITION_FIRE: return COMBAT_FIREDAMAGE; Adicione em baixo: case CONDITION_PLANTA: return COMBAT_PLANTADAMAGE; combat.cpp Abaixo de: case COMBAT_FIREDAMAGE: return CONDITION_FIRE; Adicone em baixo: case COMBAT_PLANTADAMAGE: return CONDITION_PLANTA; Condition.cpp Abaixo de: case CONDITION_FIRE: Adicione: case CONDITION_PLANTA: Abaixo de: case CONDITION_FIRE: re…

  34. Bom isso e simples mais alguns novatos nao sabem Vamo usa snakebite rod como exemplo Vou mudar o efeito dela para ice e tirar o efeito tera va na pasta data/intens/intens.xml <item id="2182" article="a" name="snakebite rod"> <attribute key="description" value="It seems to twitch and quiver as if trying to escape your grip." /> <attribute key="weight" value="4300" /> <attribute key="weaponType" value="wand" /> <attribute key="shootType" value="smallearth" /> <attribute key="range" value="3" /> Mude pra <item id="2182" article="a" name="snakebite rod"> <attribute key="description…

    • 13 respostas
    • 8.2k visualizações

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Informação Importante

Confirmação de Termo