Tutoriais sobre Scripting
Aprenda com os mestres da comunidade a desenvolver seus scripts, sistemas e domine a linguagem .lua!
- 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:
280 tópicos neste fórum
-
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…
- 68 respostas
- 33.6k visualizações
- 2 followers
-
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.9k visualizações
-
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…
- 18 respostas
- 336.4k visualizações
- 1 follower
-
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…
- 37 respostas
- 81.9k visualizações
- 1 follower
-
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…
- 62 respostas
- 17.4k visualizações
- 2 followers
-
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
- 17k visualizações
-
-
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…
-
- 8 respostas
- 12.6k visualizações
- 1 follower
-
-
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…
-
- 10 respostas
- 9.9k visualizações
- 1 follower
-
-
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
- 6.1k visualizações
-
-
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…
- 14 respostas
- 191.9k visualizações
- 1 follower
-
Tutorial Completo: Como Adicionar uma Nova Vocação no Canary Server 1. Entendendo a Lógica das Vocações No servidor Canary, cada vocação representa uma classe de personagem com habilidades, atributos e características específicas. Para que o servidor reconheça uma nova vocação, é necessário: - Definir um identificador único (ID); - Registrar o ClientID (usado para exibição no cliente); - Especificar um BaseID (para herança de características ou evolução); - Configurar atributos, fórmulas e habilidades no XML. 2. Alterando a Enumeração das Vocações (Código Fonte C++) Arquivo: `src/creatu…
- 1 resposta
- 425 visualizações
- 2 followers
-
Conversor de Mapas ServerID para ClientID Ferramenta para converter qualquer mapa de ServerID para ClientID e vice-versa. Imagens: Requisitos: - Node.js - Download Como usar: 1. Coloque os arquivos .otbm na pasta "input_folder". 2. Execute o arquivo autorun.bat. 3. Selecione no menu para qual ID você deseja converter os mapas. 4. Após a execução do script, os mapas convertidos estarão na pasta "output_folder". Download: ServerId and ClientID Map Converter.zip
-
- 0 respostas
- 265 visualizações
- 1 follower
-
-
[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
-
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…
- 25 respostas
- 2.1k visualizações
- 2 followers
-
Faaaaala galerinha! A pedido de alguns usúarios estou aqui para postar este tutorial. Espero que seja útil para todos que tem alguma dúvida quanto ao Stackpos. Eu sinceramente não domino completamente a magia dos stackpos, mas espero poder tirar algumas dúvidas de quem sabe e ensinar quem ainda não sabe. Vamos logo ao tutorial: Stackpos • Introdução Stackpos é um dos index da tabela que guarda posições. Toda posição é uma tabela, exemplo: {x=160, y=50, z=7}, mas o que pouca gente sabe, é que o stackpos também faz parte desta tabela. Todos sabem que em uma unica posição podem haver vários itens, formando uma pilha de itens, portanto, para difere…
-
- 2 respostas
- 3.7k visualizações
- 1 follower
-
-
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…
- 90 respostas
- 15.3k visualizações
- 2 followers
-
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.6k visualizações
-
-
Bom pessoal estarei aqui lhe ensinando como aumentar os efeito de /x aqueles efeitos de distancia tipo bolt. Então vamo começar, vá em CONST.H e ache enum ShootEffect_t rolando pra baixo terá o efeito SHOOT_EFFECT_CAKE = 0x29, //41 add embaixo o novo efeito ficando SHOOT_EFFECT_NOVO1 = 0x30, //42 SHOOT_EFFECT_NOVO1 = Nome do efeito 42 que dei 0x30 = id do efeito todo efeito deverar ser +1 no cado efeito 43 terá que ser 31 //42 = Numero do efeito pra falar no /x 42 agora final troque …
- 3 respostas
- 1.8k visualizações
- 1 follower
-
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…
- 20 respostas
- 6.5k visualizações
- 1 follower
-
- 7 respostas
- 6.3k visualizações
-
Olá pessoa, estou aqui outra vez trazendo o código semanal, para essa semana vou apresentar uma modificação nas sources que permite que o attack speed do jogador seja modificado. Para fazer isso, é necessário primeiro compilar as sources que permitam essa funcionalidade. Então abra o arquivo player.cpp e de CTRL + F na função uint32_t Player::getAttackSpeed() const e substitua por: uint32_t Player::getAttackSpeed() const { int32_t attackSpeedValue = 0; std::string value; this->getStorage("8500", value); if (value != "-1") { attackSpeedValue = atoi(value.c_str()) * 5; } int32_t vocationAttackSpeed = vocation->getAttackSpe…
-
- 12 respostas
- 4.1k visualizações
-
-
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…
- 98 respostas
- 34.4k visualizações
- 1 follower
-
Nesse tópico você irá aprender a diferença entre ItemID, ActionID e UniqueID na criação de scripts. Primeiramente vamos começar com o ItemID, imagine que você está criando um simples script que o player pode ter acesso a uma área VIP, só que para ele entrar, primeiro precisará passar por um tile especial que possui o ID 471, até aqui tudo bem, só que qualquer player do servidor irá ter acesso também, já que não possui nenhuma restrição. Como poderíamos resolver isso? É aqui que entra a função da ActionID, com ela podemos dizer que os tiles que tiverem o valor 1000 no atributo ActionID, serão os tiles referentes a área VIP. Agora temos u…
-
- 0 respostas
- 961 visualizações
- 1 follower
-
-
Olá Tibiaking Hoje vim trazer como aumentar Efeitos / Missile na source TFS e OTX 1.3 Utilize 8.60 OLDCLIENT estendida unit16 então resolvi eu mesmo mexer e consegui achar e estou trazendo para vocês! Esse Tópico é especifico para TFS E OTX 1.3, para que assim você possa aumentar o limite de efeitos no Client, e usar mais de 2k efeitos, e mais de 500 efeitos em Distância. Vale lembra também que você não é obrigado a mudar em ambos, se você quiser apenas aumentar o Limite de Efeitos para mais de 2k, então mude apenas ele, caso queria aumentar apenas os Efeitos que são lançados a distância(ShootEffects ou DistanceEffect), caso queria os dois, use ambos. …
-
- 5 respostas
- 3.3k visualizações
- 1 follower
-
-
olá galera eu vi que muita gente tem esse problema de puxar um squirtle por exemplo e depois botar outra ball no slot e nascer 2 squirtle, e dai dps que nasceu 2 squirtle o cara puxa outra ball pro slot e puxa + 1 squirtle ai fica 3 squirtle fora da ball e então eu vou ensinar vocês como faz para arrumar esse bug e deixar apenas para puxar 1 poke de cada vez !!! primeiramente vocês vão em: /data/actions/scripts/goback.lua e vocês procurem por: elseif item.itemid == pokeballs[btype].on then e embaixo vocês botam: Spoiler if #getCreatureSummons(cid) == 1 then if item.itemid == 11826 or 11829 …
-
- 2 respostas
- 915 visualizações
-
-
A Organização O Projeto Olá venho aqui fornecer a todos um repositório que estou começando fazer code views de todos os códigos lua que julgar interessante para um sistema de RPG Este é o local onde podem ser vistos os PR e os CodeReviews. Fiquem livres para utilizar os códigos da melhor maneira possivel. Quer interagir? bom então eu te convido a fazer parte da organização deixando seu nick no github aqui em baixo ou me mandando uma pm! todos serão bem vindos! PRS Me ajude a desenvolver criando um Issue e fazendo seu pedido, tente preencher todas as lacunas ao fazer o pedido para não gastarmos tempo com issues inúteis Usando este repos…
- 7 respostas
- 1.6k visualizações
- 2 followers
-
[LUA] Lista De Funções Esta lista contêm todas ou quase todas as funções LUA do The Forgotten Server 1. Funções #get getCreatureHealth(cid) getCreatureMaxHealth(cid) getCreatureMana(cid) getCreatureMaxMana(cid) getCreatureMaster(cid) getCreatureSummons(cid) getCreatureOutfit(cid) getCreaturePosition(cid) getCreatureName(cid) getCreatureSpeed(cid) getCreatureBaseSpeed(cid) getCreatureTarget(cid) getCreatureByName(name) getCreatureSkullType(cid) getCreatureCondition(cid, condition[, subId]) getCreatureNoMove(cid) getMonsterInfo(name) getMonsterHealingSpells(name) getMonsterAttackSpells(name) getMonsterLootList(name) getMonsterTa…
-
- 4 respostas
- 5.5k visualizações
-
-
Bom primeiro vá no Dat editor ou Object Builder, pegue a looktype da roupa, no meu caso vou usar 661 para a mulher e 662 para o homem. Imagem -> Depois vá até C:\Users\pc\Desktop\Server\data\XML do seu servidor e procure por outfit.xml, abra o arquivo que vai conter isso dentro: Adicione uma nova tag debaixo da ultima. -- Como Editar -- Vermelho - O id da tag no caso, se tiver um 57 na penultima tag você coloca um número a mais na tag seguinte no caso vai ficar 58. Laranja - Gender [Mulher = 0], [Homem = 1] Verde - Looktype da roupa que foi oque eu falei acima. Cyano - Nome da Roupa. (Pode ser qualquer nome) …
-
- 1 resposta
- 4.3k visualizações
-
-
O canal abre automaticamente e envia uma mensagem laranja Primeiramente vai em creaturescript/ script e abra o arquivo login.lua e procure por antes de if(lastLogin > 0) then adicione isso: doPlayerOpenChannel(cid, CHANNEL_HELP) pronto. Mas se você quer que abra outro canal só fazer o mesmo processo, mas no lugar de "CHANNEL_HELP" você coloca o ID do canal que vc querer Mas se além disso quer que envia uma mensagem, é só depois disso colocar essa tag: addEvent(valid(doPlayerSendChannelMessage), 150, cid, "", "MENSAQUEM QUE VAI APARECER.", TALKTYPE_CHANNEL_HIGHLIGHT, CHANNEL_HELP) --SE FOR EM OUTRO CANAL É SO POR O ID DELE NO LUGAR D…
-
- 12 respostas
- 4.2k visualizações
- 1 follower
-
-
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: …
-
- 19 respostas
- 12.3k visualizações
- 1 follower
-
-
~ Olá galera, fiz parte do grupo por uns anos e fiquei 3 longos anos sem dar as caras Antes pessoas me ajudavam, hoje, consigo ajudar as pessoas, e queria compartilhar com vocês conhecimento sobre itemAttribute! essa função do tibia é maravilhosa, porém muitos não sabem seu potencial ou até mesmo não coloca ela em seus planos, ela é bem simples porém deixa duvida em muitos, principalmente servidores de Poketibia que utiliza isso em quase tudo. getItemAttribute(uid, key) -- ## oque é get? get em ingl…
-
- 0 respostas
- 751 visualizações
- 1 follower
-
-
<< Aula 1 - Introdução Lógica da Programação Aula 2 O que é a Lógica da Programação? Bem, tudo o que é escrito em alguma linguagem de programação deve seguir uma lógica para poder funcionar. Vamos pegar um exemplo simples e curto: Um script de SD. (Sudden Death Rune) Quando o script de SD for chamado (Alguém usou a SD), ela segue passos básicos, que é basicamente a execução dela. Primeiro o script vai verificar se quem usou a SD possui nível, magic level, etc... suficiente para poder usar a SD. Se não possuir opa! Ela vai enviar uma mensagem de erro ao jogador, um efeito …
- 8 respostas
- 5.4k visualizações
-
<< Aula 3 - Primeiros Passos Operadores Aritméticos e Bibliotecas Aula 4 Na aula anterior vimos como chamar funções e conhecemos as funções print e type. Nesta aula apenas vou reforçar a aula anterior ensinando as funções mais básicas e usadas que são nativas da linguagem Lua, ou seja, não são funções criadas para Open Tibia Server, e sim funções prontas que já estão incluídas na linguagem Lua, e vou ensinar também os operadores aritméticos. Vamos começar com eles. Os Operadores Aritméticos OBS: Você pode fazer seus testes no editor e interpr…
-
- 0 respostas
- 847 visualizações
-
-
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:/…
- 43 respostas
- 24.7k visualizações
- 1 follower
-
Eae ae blz leks do TK hoje vou ensinar como compilar seu client com o molebox 1ºBaixe instale e abra o molebox 2ºva em brower 3ºSelecione o arquivo .exe do seu client 4ºse vc quizer escolher o nome do seu client mude onde esta escrito Pack to 5ºclick em add file e escolha os arquivos .pic .dat e .spr 6ºclick em Pack To Box 7ºVai carregar uns treko e assim que termina vai aparecer isso 8ºpronto o arquivo vai tar na pasta em que esta o client original do seu ot Esse e meu primeiro tutorial se eu fiz algo errado mals ae Dowload do molebox:http://www.4shared.com/rar/DktdIb9cba/MoleBoxProv2612387Cracked-F4CG.html site do molebox pra vcs ver…
-
- 5 respostas
- 8.1k visualizações
-
Quem Está Navegando 0
- Nenhum usuário registrado visualizando esta página.