Jump to content
Close

Search the Community

Showing results for tags 'Tutorial'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Community
    • Rules
    • Portal
    • Resources
    • Commerce
    • Clubs
  • OTServers
    • Discussion
    • Support
    • Tutorial
    • Download
    • Code Development
    • Contests and Events
    • Form Team
    • Advertise your Server
  • Tibia and Bots
    • Discussion
  • Others
    • Playground (Off-topic)
    • Other Games
    • Advertising
    • Graphics and Design
    • Development and Programming
  • League of Legends's Geral
  • League of Legends's Suporte
  • Nto New Season's Tópicos
  • Fakes's Fakes
  • Tibia's Geral
  • Tibia's Notícias
  • Tibia's Media
  • Tibia's Life Thread
  • Computação's Geral
  • Computação's Dicas e Tutoriais
  • Computação's Suporte
  • Roleplaying's Roleplaying
  • Academia de Mapping's Quadro da Clopin
  • Academia de Mapping's Dev Area
  • Academia de Mapping's Quadro do Nolis
  • Academia de Mapping's Quadro do Namikaze
  • Styller's Tópicos

Calendars

  • Official Calendar
  • OTServs Calendar
  • Several Calendars

Product Groups

  • Advertisements in Top
  • Advertisements In Signatures
  • Advertisements in Topics
  • Others Advertisements

Categories

  • Sales Section
    • Scripting Sales
    • Codes Sales
    • Mapping Sales
    • Websites Sales
    • Design/Sprites Sales
    • Bots Sales
  • Look Jobs
  • Looking for Freelancers
  • Team Formation

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Localization


My character


Favorite OTServ


Bot preferred


Interests

Found 160 results

  1. Eai galera do TK! Descobri uma coisa hoje e não sei se já tem por aí... Então trouxe aqui pra vocês pois é um grande adianto pra quem ta procurando as imagens do store. Vamos aos passos: Logue sua conta no tibia global com o cliente normal da cipsoft. Abra a store e navegue por todos os items/categorias. (Perceba que os novos items que você acessa a imagem demora um pouco para carregar, isso por que está sendo salva no seu PC!) Após feito isso, abra o command prompt (Atalho: Windows+R) e digite o %appdata%. (A janela que vai abrir é onde ficam guardados todos os arquivos de cache dos seus aplicativos.) Navegue até a pasta Tibia->ImageCache. Eis aqui o pote de ouro! Cada pasta de o nome final do arquivo, copie o nome da pasta e cole renomeando sua imagem. E voilá eis o seu arquivo de imagem em png já com o nome! É isso aí galera, se gostou do tutorial... REP+
  2. Acertando o Fuso Horário Boa tarde, resolvi fazer esse tutorial, pois eu tive esse probleminha que foi facilmente resolvido. Estou compartilhando caso alguém esteja passando ou passe pelo mesmo problema ache a solução aqui no Tibia King. Nível: Fácil Objetivo: Deixar o fuso horário do servidor Linux, que normalmente é fora do Brasil, igual ao nosso. Sistema Operacional Testado: Ubuntu 14.04 1º Passo - Vamos conectar ao nosso servidor Linux via SSH. 2º Passo - Até agora foi fácil né? Agora vamos digitar o comando date para verificar se o horário do servidor está diferente do nosso. 3º Passo - Agora vamos ajustar o fuso horário, para começar digite o comando sudo dpkg-reconfigure tzdata . Nessa primeira tela vamos selecionar o nosso continente. 4º Passo - Selecionado o nosso continente, vai pedir que selecione a nossa Time Zone , no meu caso vou selecionar a cidade de São Paulo, que é o lugar mais próximo de onde moro. 5º Passo - Pronto, depois disso vai aparecer a mensagem mostrando da nova Time Zone que foi escolhida. 6º Passo - Mas já não tinha acabado? É, já acabou, só vamos confirmar se o horário digitando o comando date novamente. Antes que alguém fale.. Porra! Turanoh, mas ficou uns minutos de diferença? Isso é o meu relógio que ta meio errado mesmo, e outra pode ser que tenha uma pequena diferença, qualquer coisa ajuste também o relógio do seu PC, veja se a Time Zone dele é a mesma que foi selecionada no seu servidor, só assim eles ficarão sincronizados. Pequena Conclusão, agora pelo menos vai me facilitar muito na hora de configurar meu servidor, por exemplo escolhendo o horário do save server, horário de eventos, raids automáticas, entre outras coisinhas. Espero que facilite sua vida também, para quem leio o tópico todo, obrigado pela atenção! Agora, enfim acabamos! Espero de alguma forma ter te ajudado, valeu.
  3. Olá esse é meu primeiro tópico então me desculpem pelos erros crie um arquivo chamado addvip.lua em /data/talkactions/scripts feito isso cole o código abaixo no arquivo e salve ---Created By Rugalo function onSay(cid, words, param) if not tonumber(param) then doPlayerSendCancel(cid, "Escreva quantos dias quer de vip.") return true end doPlayerAddPremiumDays(cid, tonumber(param)) return true end agora vá em /data/talkactions/talkactions.xml abra o arquivo e cole o código abaixo <talkaction words="/addvip" access="5" event="script" value="addvip.lua"/> Pronto só reiniciar o seu server para usar o comando é assim /addvip nomedopalyer,diasdevip Exemplo:/addvip Rugalo,30
  4. Boa tarde pessoal, estou com uma duvida enorme... Queria saber se tem como colocar os sprites das versões mais novas em um servidor 8.6. Obrigado
  5. Olá TK =D Sou Francisco Souza e resolvi ajudar pessoas com internet compartilhada como eu, a criar seu ot e deixa-lo online com sua internet compartilhada sempre funcionou comigo, tenho certeza que irá funcionar com vocês também ! Qualquer duvida, tipo, como abrir porta no WIndows 7 ou 8, basta comentar ai como resposta espero que gostem e aproveitem o vídeo
  6. Bom, muita gente me manda PM pedindo ajuda sobre "como abrir um servidor das versões atuais", citando que só existem esses tipos de tutoriais para versões antigas, etc e tal, então decidi faze-lo para ajudar os iniciantes! Primeiramente devo explicar que um servidor de Tibia é basicamente formado por sources e datapack. A source é o código fonte escrito em C++, que depois de compilada se transforma no arquivo/executável (aquele tela preta) que usamos para abrir o servidor. O datapack é onde ficam os arquivos LUA e XML que servem para diversas finalidades dentro do servidor: desde a criação de monstros, magias .. a criação de eventos complexos. Para esse tutorial irei usar como base o projeto "Otxserver-New" do malucooo (atualizada diariamente pelo github). Esse é o link do servidor no github, basta ir em download zip, depois que baixar descompacte. O próximo passo é a compilação. • Compilação do TFS em WINDOWS e LINUX. (caso não saiba, ou não queira compilar, se usar windows, pode baixar ela já compilada aqui). Agora é preciso baixar um servidor web, que contenha apache, php, e mysql, para deixar o site online (sim, as novas versões não suportam o sqlite, apenas o mysql, portanto a unica forma deixa-lo online é um servidor mysql rodando o database, e para a criação de account no servidor terá que usar algo que interaja com o mesmo, ou seja, um website). Como website, eu, particularmente, sempre usei o Gesior, mas fica a escolha de cada um. Aqui fica o repositório do gesior para versão TFS 1.0+. Agora você deve baixar um servidor web (xampp, vertrigo, usbwebserver, etc). Esta etapa não tem segredo, existem vários tutoriais aqui no fórum de como deixar um website de Tibia online. Lembrando que se for em windows é preciso baixar as libs necessárias, e em linux no tutorial de compilação já é instalado as libs necessárias. Após estar com o servidor web ligado, dados de conexão mysql configurados no config.lua, database importada no phpmyadmin, website instalado e funcionando, pronto, agora é só ligar o servidor. FAQs (perguntas frequentes): É isso pessoal, um simples tutorial, espero ter ajudado. Se for preciso complementarei futuramente o tutorial. Abraços. libs.zip
  7. Compilando TFS 1.3 no Windows 1. Baixe os softwares requeridos Para compilar o The Forgotten Server no Windows, você vai precisar: Visual Studio 2015 (Compilador) TFS SDK v3.2 (libs) Libs do Boost C++ (32-bits, 64-bits) 2. Instale os softwares requeridos Após ter baixado os softwares listados na etapa acima, comece instalando o Visual Studio e Boost C++. Extraia o TFS SDK v3.2 em qualquer pasta do seu computador e execute o arquivo "register_tfssdk_env.bat" para setar a variável de ambiente do local onde está o TFS SDK, assim nosso compilador irá encontrar as libs quando começar a compilar. Mova o arquivo "register_boost_env.bat" da pasta do TFS SDK para a pasta onde você instalou as libs do Boost C++ e execute-o (se você seguiu os passos do instalador, está esta na pasta chamada boost_1_62_0). 3. Baixe as sources Se você possuir o Git Client instalado, você poderá clonar a última cópia com este comando: > git clone https://github.com/otland/forgottenserver.git Se você não possuir o Git Client instalado, você poderá baixar a última cópia do The Forgotten Server através do link: https://github.com/otland/forgottenserver/archive/master.zip 4. Compilando Procure o diretório vc14 na pasta do The Forgotten Server que você baixou, e abra o arquivo "theforgottenserver.sln". Isso deverá iniciar o Visual Studio 2015 e você estará pronto para continuar. Para configurar a compilação, navegue para Build -> Configuration Manager no menu superior. Um popup deverá aparecer onde você poderá escolher entre "Release" ou "Debug" para compilar, escolha também para qual Plataforma você irá compilar: 32-bits (Win32) ou 64-bits (x64). Para iniciar a compilação, abra o menu Build novamente e clique em Build Solution (Ctrl + Shift + B). 5. Vídeo-aula https://www.youtube.com/watch?v=Zfil84FMJsk 6. Créditos Mark - Autor do tutorial e do projeto The Forgotten Server Bruno Minervino - Tradução e gravação do vídeo
  8. Boa noite, não sei se estou criando o tópico na área correta, se não, me desculpe! gostaria de tirar a duvida sobre o calculo do combat formula, tendo em vista que esse calculo esta relacionado ao dano de um item setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -120.3, 1, -141.3, 80) gostaria de saber a função do "-120.3" "1" e "141.3" "80" como é feito esse calculo?
  9. Galera me ajudem por favor... olhei diversos tutoriais por todas internet, mas estou apanhando para editar meu mapa 8.54 poketibia. quando abro mapa ele fica assim.. por que?
  10. Olá, TibiaKing. Não sou muito de fazer posts em fórum, mas resolvi largar a preguiça e ajudar um pouco vocês dado a falta de um bom tutorial de como compilar OTServer. O tutorial abaixo não foi feito por mim, apenas estarei traduzindo os passos, baseando-me na descrição do projeto "forgottenserver". A source se encontra aqui: https://github.com/otland/forgottenserver/wiki/Compiling Mãos à obra. "O Forgotten Server pode ser compilado em uma variedade de sistemas operacionais. Atualmente nós provemos instruções de builds para os seguintes sistemas: Compiling on Arch Linux Compiling on Debian GNU/Linux Compiling on Fedora Compiling on FreeBSD Compiling on Gentoo Compiling on Mac OS X Compiling on Ubuntu Compiling on Windows Não se preocupe se o seu sistema não estiver listado acima. A probabilidade é que você pode compilar no seu sistema de qualquer forma, mas você terá que baixar e instalar os programas necessários junto com as libraries por sua conta. Se seu sistema tem um gerenciador de pacotes, você pode salvar algumas horas instalando eles com o gerenciador de pacots, ao invés de baixar e compilar os pacotes manualmente dos seus respectivos websites. Para baixar o código fonte (source), você vai precisar do Git (alternativamente você pode baixar uma copia do GitHub e pular esse passo). Uma vez que você tenha instalado o Git, rode o programa para baixar uma cópia do código fonte: $ git clone --recursive https://github.com/otland/forgottenserver.git Para compilar as libraries e o The Forgotten Server (executável do servidor, daqui em diante referido como "TFS"), você irá precisar de um compilador e algumas libraries. Nós recomendamos GCC ou Clang. Você terá que installar CMake para gerar os arquivos para o seu compilador. As seguintes libraries são requisitadas para compilar o TFS. (Lembram do que eu disse? TFS = Executável do Server) Boost GMP Lua MySQL C connector PugiXML Uma vez que as libraries estejam instaladas, crie um diretório (vulgo: pasta) com o nome "build" na pasta raíz do diretório the forgottenserver que você baixou usando o Git (ou de forma direta mesmo). Agora, aponte para o diretório com o CMake para gerar os arquivos da build. Se você estiver usando o CMake gráfico, ele se parecerá com isso: "Where is the source code: ~/forgottenserver" "Where to build the binaries: ~/forgottenserver/build/" Se você estiver usando linha de comando, a interface parecerá com isso: user@host:~/projects/forgottenserver/build$ cmake .. Depois de executar o CMake com sucesso, seu compilador deve estar pronto para compilar o TFS provido pelas builds geradas pelo diretório da build. ---------------------------------------------------------------------------------------------------------------------------------------------- Compilando em Arch Linux ---------------------------------------------------------------------------------------------------------------------------------------------- 1. Instale os programas requisitados Os seguintes comandos irão instalar Git, CMake, um compilador e as libraries usadas pelo TFS. Git será usado para baixar a source e o CMake será usado para gerar os arquivos da build. $ sudo pacman -Syu $ sudo pacman -S base-devel git cmake lua gmp boost boost-libs libmariadbclient pugixml 2. Baixe o código source. $ git clone --recursive https://github.com/otland/forgottenserver.git 3. Crie os arquivos build. $ cd forgottenserver $ mkdir build $ cd build $ cmake .. 4. Build. $ make ---------------------------------------------------------------------------------------------------------------------------------------------- Compilando em Debian GNU/Linux ---------------------------------------------------------------------------------------------------------------------------------------------- 1. Instale os programas requisitados Os seguintes comandos irão instalar Git, CMake, um compilador e as libraries usadas pelo TFS. Git será usado para baixar a source e o CMake será usado para gerar os arquivos da build. # apt-get install git cmake build-essential liblua5.2-dev libgmp3-dev libmysqlclient-dev libboost-system-dev libboost-iostreams-dev libpugixml-dev 2. Baixe o source $ git clone --recursive https://github.com/otland/forgottenserver.git 3. Crie os arquivos build. $ cd forgottenserver $ mkdir build && cd build $ cmake .. 4. Buid $ make ---------------------------------------------------------------------------------------------------------------------------------------------- Compilando em Fedora ---------------------------------------------------------------------------------------------------------------------------------------------- 1. Instale os programas requisitados Os seguintes comandos irão instalar Git, CMake, um compilador e as libraries usadas pelo TFS. Git será usado para baixar a source e o CMake será usado para gerar os arquivos da build. $ sudo dnf install git cmake gcc-c++ boost-devel gmp-devel community-mysql-devel lua-devel pugixml-devel 2. Baixe o codigo source $ git clone --recursive https://github.com/otland/forgottenserver.git 3. Crie os arquivos build. $ cd forgottenserver $ mkdir build && cd build $ cmake .. 4.Build $ make ---------------------------------------------------------------------------------------------------------------------------------------------- Compilando em FreeBSD ---------------------------------------------------------------------------------------------------------------------------------------------- 1. Instale os programas requisitados Os seguintes comandos irão instalar Git, CMake, um compilador e as libraries usadas pelo TFS. Git será usado para baixar a source e o CMake será usado para gerar os arquivos da build. # pkg install git cmake luajit boost-libs gmp mysql-connector-c pugixml 2. Baixe o codigo source. $ git clone --recursive https://github.com/otland/forgottenserver.git 3. Crie os arquivos build $ cd forgottenserver $ mkdir build && cd build $ cmake .. 4. Build. $ make ---------------------------------------------------------------------------------------------------------------------------------------------- Compilando em Gentoo ---------------------------------------------------------------------------------------------------------------------------------------------- Para compilar em Gentoo, siga os mesmos passos da compilação em FreeBSD, mas com as seguintes libraries. # emerge dev-vcs/git dev-util/cmake dev-libs/boost dev-libs/gmp dev-db/mysql-connector-c++ dev-lang/luajit dev-libs/pugixml ---------------------------------------------------------------------------------------------------------------------------------------------- Compilando em Mac OS X ---------------------------------------------------------------------------------------------------------------------------------------------- 1. Instale o programa necessário. 1.1 Instalando Homebrew Homebrew é um gerenciador de pacotes para Mac OS X. Ele usa uma formula de scripts para compilar o programa no seu sistema. Se você já tiver Homebrew instalado, você pode pular este passo. Abra o terminal e execute o seguinte comando. $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 1.2 Instalando programa e suas libraries O seguinte comando irá instalar Git, CMake e as libraries usadas pela TFS. $ brew install git cmake gmp mysql-connector-c luajit boost pugixml 2. Baixe o codigo source. $ git clone --recursive https://github.com/otland/forgottenserver.git 3. Crie os arquivos da build. $ cd forgottenserver $ mkdir build; cd build $ cmake .. 4. Build $ make ---------------------------------------------------------------------------------------------------------------------------------------------- Compilando em Ubuntu ---------------------------------------------------------------------------------------------------------------------------------------------- Para compilar em Ubuntu, siga os mesmos passos do FreeBSD, mas com a seguinte library. $ sudo apt-get install git cmake build-essential liblua5.2-dev libgmp3-dev libmysqlclient-dev libboost-system-dev libboost-iostreams-dev libpugixml-dev ---------------------------------------------------------------------------------------------------------------------------------------------- Compilando em Windows ---------------------------------------------------------------------------------------------------------------------------------------------- 1. Baixe os programas necessários. Para compilar a TFS no Windows, você irá precisar de: Visual Studio ( TFS SDK v3.2 (libraries) sha1sum: 3fb1b140e40e8e8bc90f82f92bd022a50569b185 sha256sum: 2ffb549f336ad11550da9b9c40716880e13b1cc0ee86e7599022dcacc972a3bf Boost C++ Libraries (32-bit download, 64-bit download) 2. Instale os programas necessários. Uma vez que você tenha baixado os programas listados acima, comece instalando o Visual Studio e o Boost C++ libraries. Extraia o TFS SDK em qualquer lugar on seu computador e execute o arquivo "register_tfssdk_env.bat" para identificar o caminho do ambiente variavel para o TFS SDK, parar que o compilador possa encontrar as libraries quando formos compilar nosso source code. Mova o arquivo "register_boost_env.bat" da pasta TFS SDK para o diretório onde você instalou o Boost C++ libraries e execute o mesmo lá. (deve estar dentro da pasta chamada boost_1_62_0). 3. Baixe o código source. $ git clone --recursive https://github.com/otland/forgottenserver.git Se você não tiver o Git instalado, você pode baixar uma cópia do The Forgotten Server dessa URL: https://github.com/otland/forgottenserver/archive/master.zip 4. Build. Encontre o diretório vc14 dentro da sua source do TFS que você baixou e deseja compilar e abra theforgottenserver.sln. Isso deveria lançar o Visual Studio e você deve estar pronto para compilar. Para configurar a build, va até Build -> Gerenciador de Configuração no menu. Uma caixa de diálogo deverá aparcer onde você pode escolher entre Debug build e Release e também entre 32bit e 64bit. Para começar a compilar, abra o menu da build e clique em Build Solution. Bom, é isso pessoal. Espero que seja útil! Abraços e até a próxima.
  11. Salve galera do TK, vou trazer pra vocês um programa que uso para fazer as imagens gifs que geralmente posto com os mapas. O programa chama ScreenToGif, ele na verdade é um gravador de tela e que na hora de salvar tem a opção de salvar em .gif, ele é muito simples de usar, basicamente vc vai deixar a tela dele ajustada para a área que você quer gravar, vai iniciar, pausar quando finalizar e salvar. Caso queira baixar Clique Aqui > Scan. O site está em português e tem o manual para uso, mas vou deixar uma breve explicação aqui : Como usar :
  12. Salve galera do TK, estarei revivendo um projeto antigo de tutorial sobre mapping e espero ter ajuda para dar continuidade. Esse post inicialmente será feito como introdução MAS NETO QUE PORR@ É ESSA? Basicamente jovem estarei trazendo um pouco de experiência na área de mapping, de várias pessoas, estilos diferentes, afinal cada mapper tem um estilo e isso muda muita coisa, entre um e outro, então a ideia é trazer uma variedade de conteúdo para que vocês possam observar como trabalhamos e criar seu próprio estilo fazendo mapas bonitos. Regras: 1 - Eu vou criar um tutorial, ao final irei indicar um mapper, ele irá fazer outro tutorial sobre outro estilo e no final ele vai indicar outro mapper, e assim sucessivamente. 2 - Usar meu tutorial como referência, ou seja, sendo bem detalhado nos quesitos que vão abordar e trazer imagens. 3 - Se não quiser participar, por qualquer motivo, comenta que não pode e será escolhido outro. 4 - Titular o tópico com "[Projeto] Mapping Art - (Nome do tema)" (ex: [Projeto] Mapping Art - Cidades)". No caso convido o @Daniel para dar continuidade (o tipo do mapa fica a escolha do mapper, só peço para que não seja repetido). Vou falar um pouco sobre nature, que é o básico! Tutorial 1: NetoKain - Nature Nature - Complemento. Vou passar uma breve explicação de como eu geralmente faço para montar a nature com arvores e arbustos, acho que ficou meio vago na explicação anterior, nesse caso vamos iniciar com o ground já feito. Após seguir os passos e caso tenha entendido o tutorial deixe sua imaginação andar junto com um bom planejamento e coerência. Bom mapping a todos, espero o tutorial do @Daniel!
  13. Fala galerinha, sei que muitos não sabem criar um website para seu servidor e usam o Account Manager, para criar um site não é muito difícil porém o processo é um pouco delicado e demorado, devido à isto criei um vídeo explicando tim tim por tim tim como criar um site para seu OTServ. Download do XAMPP 1.6.5: http://www.oldapps.c...mpp=38?download Download do Gesior 0.3.8: http://tibiaking.com...gesior-acc-038/ Download do Real Server: http://tibiaking.com...0-king-version/ OBS: Ignore o "bem entendida" do inicio do vídeo. Você gostou deste conteúdo!? Este conteúdo te ajudou!? Isso será realmente útil pra você!? Então, se possível, faça uma doação (de qualquer valor) que estará me ajudando também!
  14. Tutorial de como desativar a mensagem do cliente de atualização que aparece no cliente Tibia 10, habilitar a opção MC para o seu cliente e modificar o cliente para o IP do seu servidor de versão Tibia 10. • Desativando a mensagem de atualização: 1 - Você precisa baixar HexEditor XVI32 anexado a este tópico. 2 - Descompacte e abra Tibia.exe do seu diretório Tibia 10 com HexEditor XVI32. 3 - Substitua as próximas coisas por isso: Procure: 13EF52 Troque: E8 D6 A2 24 00 Por: B8 00 00 00 00 Procure: 27A94 Troque: 6A 00 6a 00 6A 4D EB 26 Por: 90 90 90 90 90 90 EB 2B Procure: 29700 Troque: 6A 00 6A 01 6A 4D E8 C3 9F 18 00 Por: 90 90 90 90 90 90 90 90 90 90 90 • Ativando Multi-clienting (MC): 1 - Usando o HexEditor XVI32, substitua as seguintes coisas: Procure: 1CD310 Troque: FD FF FF 00 75 40 68 Por: FD FF FF 00 EB 40 68 • Colocando meu IP no Tibia Cliente: 1 - Usando o HexEditor XVI32, substitua as seguintes coisas: Procure: 48B8DC -48B920 Troque: login01.tibia.com login02.tibia.com login03.tibia.com login04.tibia.com Por: Your 17 letters domain. ex: thebest.no-ip.org Procure: 48B920-48B986 Troque: tibia01.cipsoft.com tibia02.cipsoft.com tibia03.cipsoft.com tibia04.cipsoft.com Por: Your 19 letters domain. ex: imthebest.no-ip.org 2 - Alterar a chave de inclusão: Procure: 48C712 Troque: 132127743205872284062295099082293384952776326496165507967876361843343953435544496682053323833394351797728954155097012103928360786959821132214473291575712138800495033169914814069637740318278150290733684032524174782740134357629699062987023311132821016569775488792221429527047321331896351555606801473202394175817 Por: 109120132967399429278860960508995541528237502902798129123468757937266291492576446330739696001110603907230888610072655818825358503429057592827629436413108566029093628212635953836686562675849720620786279431090218017681061521755056710823876476444260558147179707119674283982419152118103759076030616683978566631413 Todos os créditos neste tópico são: • Shadow Dan • Madzix • Gesior.pl • José Rondon HexEditor XVI32 anexado ao tópico. HexEditorXVI32.rar
  15. 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://sqlitestudio.pl/?act=download) e clicar em Open SQL query editor: Mas caso sua data base seja Mysql abra pelo phpMyadmin, ou por outro editor de sua preferencia. 1.1°) EXECUTANDO OS COMANDOS PARA RESOLVER O PROBLEMA Bom, dependendo da table que estiver faltando, vc irá colocar seu respectivo comando, segue abaixo TODOS os comandos básicos necessários para que sua data base fique Ok! : (VC VAI PEGAR O COMANDO REFERENTE À TABLE QUE VC QUER!!!) account_viplist Sqlite accounts Sqlite bans Sqlite environment_killers Sqlite global_storage Sqlite guild_invites Sqlite guild_kills Sqlite guild_ranks Sqlite guild_wars Sqlite guilds Sqlite house_auctions Sqlite house_data Sqlite house_lists Sqlite houses Sqlite killers Sqlite market_history Sqlite market_offers Sqlite player_deaths Sqlite player_depotitems Sqlite player_inboxitems Sqlite player_items Sqlite player_killers Sqlite player_namelocks Sqlite player_skills Sqlite player_spells Sqlite player_statements Sqlite player_storage Sqlite player_viplist Sqlite players Sqlite server_config Sqlite server_motd Sqlite server_record Sqlite server_reports Sqlite tile_items Sqlite tile_store Sqlite tiles Sqlite announcements Sqlite pagsegurotransacoes Sqlite player_advances Sqlite reports Sqlite thanks Sqlite z_bug_logs Sqlite z_featured_article Sqlite z_forum Sqlite z_helpdesk Sqlite z_monsters Sqlite z_network_box Sqlite z_news_tickers Sqlite z_ots_comunication Sqlite z_polls Sqlite z_polls_answers Sqlite z_poll_votes Sqlite z_shop_history_item Sqlite z_shop_history_pacc Sqlite z_shop_offer Sqlite z_spells Sqlite z_news_big Sqlite 2°) No such column / "NOME DA TABLE" has no column named "NOME DA COLUMN QUE FALTA" / Insert into Bom, para resolver esse problema vc deve identificar em qual TABLE está essa coluna que falta. Para isso, basta ler o erro como na imagem: No caso da imagem, está faltando a column WORLD_ID dentro da table MARKET_OFFERS. Para resolver, vc deve executar excluir a sua table MARKET_OFFERS existante em sua data base, e em seguida, executar o domando da da market_offers, encontrado acima, logicamente isso só se aplica ao caso da imagem, depende do seu caso, vc deve excutar o comando da table que estiver sendo referida no erro. Mas antes de executá-lo vc deve excluir a sua table EXISTENTE, para então executar o comando. ESTA FORMA DE RESOLUÇÃO SE APLICA AOS TRÊS CASOS: NO SUCH COLUMN, ...HAS NO COLUMN NAMED... e INSERT INTO. Bom galera, é isso. SE ENCONTRAREM, OU SE DEPARAREM COM ALGUM ERRO, BASTA ME PEDIR AJUDA QUE EU DAREI TOTAL SUPORTE PARA VOCÊS! SE ESTIVR FALTANDO MAIS ALGUMA TABLE QUE EU NÃO COLOQUEI AQUI, PF ME INFORMEM E EU ATUALIZAREI O TÓPICO!!! Lembrem-se, se eu te ajudei, por favor, deem REP++ pois foi meio trabolhoso fazer este tutorial todo... ESTOU A DISPOSIÇÃO DE TODOS! Tanto por PM quanto por SKYPE, e até mesmo por aqui, pois vou checar este tópico regularmente!! Espero ter ajudado!! Abraços.
  16. Bom galera, sei que o natal acabou de passar, porém esqueci de postar esse system antes... Fiz uma versão 2.0 do meu npc de natal (papai noel). Agora ao invés do bom velhinho entregar diretamente o item, vc recebe uma caixa que ao clicar vc recebe um item 100% aleatorio (dentre os itens que foram programados dentro do script). Funciona assim: o player vai até o papai noel e fala: hi, aí o papai noel fala ho-ho-ho... aí o player responde sim (ou yes) e então o player recebe uma caixa. Ao clicar na caixa, o player recebe um dos itens, que estiverem programados no script, de forma aleatoria. Então vamo lá. Pra adicionar esse system, primeiro vá na pasta data/npc e crie um arquivo chamado Papai Noel.xml e coloque isso dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Papai Noel" script="data/npc/scripts/papai_noel.lua" walkinterval="1500" speed="100" walkradius="2" floorchange="0"> <health max="100" now="100"/> <look type="160" head="0" body="113" legs="94" feet="132" addons="0" mount="0"/> <parameters> <!--MESSAGES--> <parameter key="message_greet" value="HO-HO-HO, |PLAYERNAME| bem-vindo. Voce gostaria de um presente?"/> <parameter key="message_farewell" value="HO-HO-HO, tenha um feliz natal, |PLAYERNAME|."/> </parameters> </npc> Agora vá na pasta data/npc/scripts e crie um arquivo chamado papai_noel.lua e coloque isso dentro: Agora vá na pasta data/actions e adicione essa tag dentro do arquivo actions.xml: <action itemid="11401" event="script" value="giftbox.lua"/> Agora va na pasta data/actions/scripts e crie um arquivo chamado giftbox.lua e coloque isso dentro: local items = { [1]=2160, --ID do item 1 [2]=2157, --ID do item 2 [3]=2121} --ID do item 3 local stor = (11401+os.date("%Y")) --Nao mexa function onUse(cid) if getPlayerStorageValue(cid, stor) ~= 1 then a = math.random(1, #items) doPlayerAddItem(cid, items[a], 1) setPlayerStorageValue(cid, stor, 1) else doPlayerSendCancel(cid, "Voce ja pegou seu presente.") end doPlayerRemoveItem(cid, 11401, 1) return true end E isso é tudo pessoal!
  17. Bom, eu já percebi que muitos estão tendo problemas para adicionar as imagens no store in-game do tibia e decidi pesquisar e tentar faze-lo funcionar corretamente. Depois de muito tempo pesquisando, tentando e errando, achei uma explicação na Otland, vou mostrar passo-a-passo como se faz para que funcione: Primeiro, vá até o seu config.lua e procure por coinImagesURL = "http://some.url/images/store/" Substitua ´some.url´ pelo site do seu servidor e retiro o /images , no meu caso ficará assim coinImagesURL = "http://asterion-ot.servegame.com/store/" Agora, vá até a pasta www ou htdocs e crie uma pasta chamada store com uma outra pasta chamada 64 dentro dela, veja abaixo: Dentro da pasta store: Agora, dentro da pasta 64, você tem que colocar as imagens dos produtos em formato PNG ( APENAS PNG ) e com as dimensões 64x64: Depois disso, é só criar os items no gamestore.lua normalmente e colocar os nomes das respectivas imagens como deseja. SHAZAM!!! PS: AS IMAGENS TEM QUE SER COM FUNDO TRANSPARENTE, SE NÃO FICARAM ASSIM: Créditos: Narko (otland member) Me.
  18. Resumo A maneira atual para implementar Modal Window é um pouco complicada. Atualmente precisamos cria-la em algum lugar, registrar o evento, adicionar os botões em uma ordem específica, definir o ID da janela, dos botões e da escolha. Isso não é o ideal, então esta biblioteca foi criada pelo Non Sequitur para ajudar nisso. E eu estou trazendo para a OtServBrasil. Exemplo/ Tutorial Usando Modal Window Instalando Adicionar em data/lib/lib.lua dofile('data/lib/modalwindow.lua') Crie o arquivo modalwindow.lua com o seguinte conteúdo em data/lib if not modalWindows then modalWindows = { modalWindowConstructor = ModalWindow, nextFreeId = 500, windows = {} } end local MT = {} MT.__index = MT function ModalWindow(...) local args = {...} if type(args[1]) == 'table' then local self = setmetatable(args[1], MT) local id = modalWindows.nextFreeId self.id = id self.buttons = {} self.choices = {} self.players = {} self.created = false modalWindows.nextFreeId = id + 1 table.insert(modalWindows.windows, self) return self end return modalWindows.modalWindowConstructor(...) end function MT:setDefaultCallback(callback) self.defaultCallback = callback end function MT:addButton(text, callback) local button = {text = tostring(text), callback = callback} table.insert(self.buttons, button) return button end function MT:addButtons(...) for _, text in ipairs({...}) do table.insert(self.buttons, {text = tostring(text)}) end end function MT:addChoice(text) local choice = {text = tostring(text)} table.insert(self.choices, choice) return choice end function MT:addChoices(...) for _, text in ipairs({...}) do table.insert(self.choices, {text = tostring(text)}) end end function MT:setDefaultEnterButton(text) self.defaultEnterButton = text end function MT:setDefaultEscapeButton(text) self.defaultEscapeButton = text end function MT:setTitle(title) self.title = tostring(title) end function MT:setMessage(message) self.message = tostring(message) end local buttonOrder = { [4] = {3, 4, 2, 1}, [3] = {2, 3, 1}, [2] = {1, 2}, [1] = {1} } function MT:create() local modalWindow = modalWindows.modalWindowConstructor(self.id, self.title, self.message) local order = buttonOrder[math.min(#self.buttons, 4)] if order then for _, i in ipairs(order) do local button = self.buttons[i] modalWindow:addButton(i, button.text) button.id = i if button.text == self.defaultEnterButton then modalWindow:setDefaultEnterButton(i) elseif button.text == self.defaultEscapeButton then modalWindow:setDefaultEscapeButton(i) end end end for _, choice in ipairs(self.choices) do modalWindow:addChoice(_, choice.text) choice.id = _ end self.modalWindow = modalWindow end function MT:sendToPlayer(player) if not self.modalWindow then self:create() end player:registerEvent('ModalWindowHelper') self.players[player:getId()] = true return self.modalWindow:sendToPlayer(player) end Adicionar em data/creaturescripts/craturescripts.xml <event type="modalwindow" name="ModalWindowHelper" script="modalwindowhelper.lua" /> Crie o arquivo modalwindowhelper.lua com o seguinte conteúdo em data/creaturescripts/scripts/ function onModalWindow(player, modalWindowId, buttonId, choiceId) local modalWindow for _, window in ipairs(modalWindows.windows) do if window.id == modalWindowId then modalWindow = window break end end if not modalWindow then return true end local playerId = player:getId() if not modalWindow.players[playerId] then return true end modalWindow.players[playerId] = nil local choice = modalWindow.choices[choiceId] for _, button in ipairs(modalWindow.buttons) do if button.id == buttonId then local callback = button.callback or modalWindow.defaultCallback if callback then callback(button, choice) break end end end return true end Pronto! Espero que gostem. Posteriormente irei postar um tutorial de como usar/ aplicar e alguns scripts utilizando a Biblioteca.
  19. Tutorial, ensinando à compilar as sources do OTC de qualquer versão utilizando codeblocks no windows, à pedido de um amigo! LINKS: MinGW - https://sourceforge.net/projects/mingw/files/ CMake - https://cmake.org/download/ CodeBlocks - http://www.codeblocks.org/downloads/26 Libs MinGW32 - http://www.mediafire.com/file/gf1cr1rj0znxdan/otclient-libs-mingw32.rar MinGW c/Libs - https://mega.nz/#!6AtwEJpB!UO4vyzuXYTe8Fw5jaAzA3fg9XKZ4aIngeYqAG0Rv9kM Source OTC 0.6.5 - https://codeload.github.com/edubart/otclient/zip/v0.6.5 Source OTC 0.6.6 - https://codeload.github.com/edubart/otclient/zip/v0.6.6 Source OTC 0.6.7 - http://www.tibiaking.com/forum/forums/topic/34344-otclient-067-1071/ Versão Mais Atualizada(Last Release) - https://github.com/edubart/otclient/archive/master.zip GitHub - https://github.com/edubart/otclient/ Tópico - http://www.tibiaking.com/forum/forums/topic/43700-otc-compilando-otclient-no-windows/ Scans: https://www.virustotal.com/#/file/2281f14503ea910f93cbc4a29d21326c5ee55c7380659082ae3a16c896ac100f/detection https://www.virustotal.com/#/file/e4ed1666b44c63d3603a74e7e101a1af80eff79993e5a7642f4149f71b7edc9d/detection https://www.virustotal.com/#/file/aab27bd5547d35dc159288f3b5b8760f21b0cfec86e8f0032b49dd0410f232bc/detection Créditos: EduBart - Sources do OTClient Kyogron - MinGW c/ Libs Wend - Tutorial / Tópico no TK Avuenja - Tópico das Sources 0.6.7 Eu(Banker) - Vídeo-Tutorial
  20. Eu adicionei um pokémon mais ele não anda.
  21. Killua

    Como usar addEvent

    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 doBroadcastMessage(message, type) será executada com os parâmetros message = "Bom dia" e type = 23. O addEvent pode ser usado de duas maneiras: Chamando uma função existente ou criando uma nova função. Para chamar uma função existente, basta usar como acima, para usá-lo para criar uma nova função, usa-se assim, por exemplo: addEvent(function() if isCreature(cid) then doPlayerAddItem(cid, 2160, 10) doPlayerSendTextMessage(cid, 25, "Voce ganhou 10k.") end end, 1000) Assim é basicamente a mesma coisa, mas pude colocar várias funções dentro de um único addEvent e mantive o delay 1000 (1 segundo). Obs: Precisei usar 2 ends, um para fechar function() e outro para fechar o if. Atenção! Além disso, existe uma outra diferença entre as duas formas de uso, vou tentar explicar da melhor maneira possível: Quando usamos o addEvent com uma função já existente (1o exemplo), as informações usadas serão as geradas no momento em que o evento foi chamado, por exemplo: function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) > 10 then doPlayerSendTextMessage(cid, 25, "Uma pedra sera criada na sua posiçao dentro de 2 segundos.") addEvent(doCreateItem, 2000, 1308, 1, getThingPos(cid)) end return true end Se usarmos assim, a pedra será criada na posição onde o jogador se encontrava no momento em que "deu use" e não onde ele estará 2 segundos depois. Se você quiser que a pedra seja criada na nova posição do jogador (pos de 2 segundos depois), você deve fazer uma nova checagem, criando uma função: function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) > 10 then doPlayerSendTextMessage(cid, 25, "Uma pedra sera criada na sua posiçao dentro de 2 segundos.") addEvent(function() if isCreature(cid) then doCreateItem(1308, 1, getThingPos(cid)) end end, 2000) end return true end Atenção novamente: A checagem if isCreature(cid) que utilizei, é muito importante para um addEvent que envolva criaturas. Se você executasse o addEvent sem a checagem e o player logasse ou morresse antes desses 2 segundos se passarem, daria um erro na distro e interromperia o resto do script. Recursão Uma outra ótima funcionalidade dos addEvents é a recursão, ou seja, criar um evento que fica se repetindo. É simplesmente um addEvent chamando a sí mesmo. Para usar, crie uma função, exemplo: function respawnMonster(name, pos) if doCreateMonster(name, pos) then doBroadcastMessage(name.." nasceu!") end addEvent(respawnMonster, 10000, name, pos) end Quando chamada, esta função ficará criando um monstro e uma determinada área a cada 10 segundos, sem nunca parar. Para chamar a função, seria assim: respawnMonster("Demon", {x = 123, y = 123, z = 5}) Considerações Reloads param os addEvents. Se um script talkaction executou um addEvent programado para acontecer depois de 5 minutos e se dentro deste intervalo de tempo, você usar /reload talkactions, o addEvent será interrompido. Erros no código podem fazer o evento ser interrompido, preste sempre atenção. Se ainda ficou com alguma dúvida, poste aqui.
  22. Olá pessoal do TibiaKing, hoje venho aqui trazer um mini tutorial de como colocar o exhaustion corretamente em suas spells, bastante gente utiliza o exaustion que está no proprio xml, mas por lá acontece alguns erros exemplo: se tiver uma spell com 8000 de exaustion, e outra de 2000 e você vai no seu servidor e usa a spell com 8000 de exhaustion, tem que esperar o tempo dela pra usar qualquer outra, o método que venho trazer aqui ele funciona corretamente e ainda avisa no console quanto tempo falta para usar a spell, sem mais delongas vamos lá! 1- vá até o seu XML procure a magia que quer por o exhaustion exemplo: perceba que ela tem um exhaustion definido ali em cima, para esse método funcionar corretamente e recomendado deixar o exhaustion do XML em 1000. forma correta: 2- feito isso vamos ate a pasta onde se encontra seu script e abra ele: como exemplo irei utilizar uma spell de área que empurra os players próximos! 3- com a spell aberta, logo no inicio da spells vamos inserir as seguintes linhas de código: ficando assim: 4- por fim, logo abaixo do function onCastSpell(cid, var) vamos adicionar as seguintes linhas de código: ficando assim: Pronto com isso o exhaution já foi adicionado a sua spell, faça bom proveito: Print:
  23. Bom, eu passei por um problema quando estava testando o Gesior no meu OTServer: mesmo com o server online e portas liberadas o site continuava mostrando como offline. Eu vi que algumas pessoas sugeriram trocar no arquivo layout.php isto: if($config['status']['serverStatus_online'] == 1) por isto: if($config['status']['serverStatus_online'] >= 0) mas eu vi que estava errado, pois ele iria mostrar o server como online mesmo que não estivesse. Então eu andei olhando os códigos, mexendo nos arquivos e acabei achando o erro. No arquivo load.compat.php, dentro da pasta system, na linha #254 (pelo menos aqui) eu encontrei o seguinte código: $statusInfo = new ServerStatus($config['server']['ip'], $config['server']['statusPort'], 1); onde está escrito 'statusPort' eu percebi que no config.lua não tinha isto, pois lá estava 'statusProtocolPort'. Então basta trocar esta linha por: $statusInfo = new ServerStatus($config['server']['ip'], $config['server']['statusProtocolPort'], 1); Espero ter ajudado!
  24. Buenas, TK! Bom, hoje falarei sobre indentação, o que é, por que e para que é utilizado. A palavra indentação, é um anglicismo (palavra derivada do inglês "indentation", mas que não existe no nosso vocabulário real, como "linkar", "scannear", "printar", etc) e se refere a hierarquia de código de programação. Já viram aqueles códigos com espaços originados da tecla "tab" do teclado? Então, são estes mesmos, servem para deixar o código com estrutura, elegância, fácil entendimento e em algumas linguagens de programação como Python, é obrigatório para seu funcionamento. Exemplo de indentação de código em C: if (unlikely(prev->policy == SCHED_RR)) if (!prev->counter) { prev->counter = NICE_TO_TICKS(prev->nice); move_last_runqueue(prev); } switch (prev->state) { case TASK_INTERRUPTIBLE: if (signal_pending(prev)) { prev->state = TASK_RUNNING; break; } default: del_from_runqueue(prev); } prev->need_resched = 0; Como seria sem indentação: if (unlikely(prev->policy == SCHED_RR)) if (!prev->counter){ prev->counter = NICE_TO_TICKS(prev->nice); move_last_runqueue(prev); } switch (prev->state){ case TASK_INTERRUPTIBLE: if (signal_pending(prev)){ prev->state = TASK_RUNNING; break; } default: del_from_runqueue(prev); } prev->need_resched = 0; Basicamente, você adiciona um "tab" em cada bloco de comando e a cada nova função, ou em outras palavras, sempre que você abre um "then" e fecha com um "end", ou um "do" e fecha com um "end", e etc. Como é facilmente notável, a indentação permite que você identifique onde começa e determina cada ponto, de onde cada bloco de comando pertence, ou seja, define a hierarquia. Geralmente alguns editores de textos possuem a função de indentação automática, de acordo com o código que você marcar que está programando (como o notepad++ com um plugin em específico), porém também existem programas que fazem tal função com código pronto, como o Lua Auto Indent, porém é recomendado utilizar apenas quando você já pega códigos prontos que não estão indentados, afinal, se você o utilizar sem saber indentar, continuará sem conhecimento sobre. Em Lua, você pode se deparar com este tipo de coisa: Como diariamente vejo que muitos scripters do Open Tibia não tem conhecimento da indentação, espero que isso lhes contribuam com algo, e que percebam a diferença de mexer em um código indetado, e um bagunçado "não-indentando".
  25. Funciona apenas para TFS 1.0+ e Tibia 9.7 em diante. Tutorial feito por Evans, traduzido e adaptado por EddyHavoc. A funcionalidade ModalWindow te permite adicionar botões, entradas de escolha e textos. Pode ser usada para diversas coisas, para diferentes funcionalidades, tudo que precisa é conhecimento e criatividade. funções do ModalWindowNeste tutorial não iremos nos aprofundas, mas terá exemplos de como utilizar. Escolhendo seu tapete gratuitamente! Neste exemplo precisa de algo para acionar o script, ou seja um actionscript.Neste exemplo, foi usado um item simples. Você pode fazê-lo de qualquer outra maneira, isso é puramente por exemplo. Construindo a janela modal e enviando para o jogador:ModalWindow: sendToPlayer () envia apenas a janela, quando a janela for atendida (pressione o botão, etc.) o evento onModalWindow () em CriatureScripts será acionado! Tenha em mente que o jogador deve ter o evento registrado antes de enviar o ModalWindow! CreatureEvent onModalWindow (): Resumo Você deve registrar a ModalWindow como um CreatureEvent antes de enviá-la para o jogador ou então o jogador não receberá nada Você deve cancelar o registro da ModalWindow em CreatureEvent quando o jogador recebe. Dessa forma, o jogador pode receber a janela modal de forma limpa e apropriada novamente no futuro As janelas, botões e escolhas possuem IDs que você precisa definir. Isso permitirá que você verifique qual Modal Window, qual botão, que escolha o jogador selecionou em onModalWindow () Botões e escolhas são todos opcionais. Você pode ter uma Modal Window que tenha apenas botões. Você pode até ter 4 botões em vez de 2 (4 é o máximo embora). É bastante flexível. O setDefaultEnter / EscapeButton (id) leva apenas 1 parâmetro, o id do botão setDefaultEnterButton disparado ao clicar duas vezes ou a tecla Enter pressionada setDefaultEscapeButton ativado quando a tecla Escape pressionada Seja criativo! As ModalWindow abriram muitas oportunidades para os desenvolvedores criarem! Código usado nestes exemplos: function onUse(player, item, fromPosition, itemEx, toPosition, isHotkey) player:registerEvent("ModalWindow_Tutorial") local title = "Pick your favorite color!" local message = "You get a free tapestry in the color of your choice!" local window = ModalWindow(1000, title, message) window:addButton(100, "Confirm") window:addButton(101, "Cancel") window:addChoice(1, "Red") window:addChoice(2, "Orange") window:addChoice(3, "Yellow") window:addChoice(4, "Green") window:addChoice(5, "Blue") window:addChoice(6, "Purple") window:setDefaultEnterButton(100) window:setDefaultEscapeButton(101) window:sendToPlayer(player) return true end function onModalWindow(player, modalWindowId, buttonId, choiceId) player:unregisterEvent("ModalWindow_Tutorial") local tapestry = {1869, 1866, 1863, 1860, 1872, 1857} if modalWindowId == 1000 then if buttonId == 100 then player:addItem(tapestry[choiceId], 1) end end end Créditos: Evans EddyHavoc

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...