Ir para conteúdo

Líderes


Conteúdo Popular

Mostrando conteúdo com a maior reputação desde 21/03/2018 em todas áreas

  1. 7 pontos
    Fala galerinha do TK, aqui vai um script muito útil para vários servidores. O script serve para salvar o player e a house do mesmo, utilizando o comando !save. O script foi testado em OTXServer 2. local Configs = { Exhausted = 180, Storage_Exhausted = 5000001, Messages = { SALVED = "You character has been salved.", EXHAUST = "You need wait %d seconds to save again.", }, } local function doSavePlayerAndHouse(cid) doPlayerSave(cid) if getHouseByPlayerGUID(getPlayerGUID(cid)) then doSaveHouse(getHouseByPlayerGUID(getPlayerGUID(cid))) end return true end function onSay(cid, words, param) if getPlayerStorageValue(cid, Configs.Storage_Exhausted) >= os.time() then doPlayerSendCancel(cid, string.format(Configs.Messages.EXHAUST, getPlayerStorageValue(cid, Configs.Storage_Exhausted) - os.time())) return true end doSavePlayerAndHouse(cid) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, Configs.Messages.SALVED) setPlayerStorageValue(cid, Configs.Storage_Exhausted, os.time() + Configs.Exhausted) return true end Tag do talkactions.xml <talkaction words="/save;!save" event="script" value="SavePlayers.lua"/>
  2. 5 pontos
    Usando o script do Cjaker como base (e a descrição do tópico dele, na cara dura mesmo!), otimizei as operações no banco de dados (tava muito zuado) e adicionei um range de accounts protegidas pra evitar apagar os gms/samples/contas de spoofers do otservlist/etc... ; Salve galera, mais um script para quem está precisando dar aquela limpada no banco de dados e otimizar o Servidor. -- Especificações -- TFS 1.1+ Objetivo é limpar as contas inativas/vazias e os players Inativos assim removendo os usuários que estão inativos e ocupando espaço no banco de dados. -- Instruções -- Em globalevents.xml insira essa linha <globalevent type="startup" name="CleanDatabases" script="cleandatabase.lua" /> Crie um script chamado cleandatabase.lua na pasta globalevents/scripts e cole isso dentro dele. --- --- Generated by EmmyLua(https://github.com/EmmyLua) --- Created by leu. --- DateTime: 04/04/18 18:42 --- --[[ Clean Database by Cjaker | Refactor and SQL Optimizations by Leu ]]-- local inactiveMonths = 1 --> Quantos meses o player ficou inativo local createdMonths = 1 --> Quantos meses a conta foi criada e não possui character criado. local protectedAccIdEnd = 20 --ignorar accounts com id <= 20 local function clearInactivePlayers() local inactiveTimestamp = os.time() - (86400 * (inactiveMonths*30)) local totalClear=0 local fromClause = "`players` WHERE `account_id` > ".. protectedAccIdEnd .." AND lastlogin <= "..inactiveTimestamp local resultId = db.storeQuery("SELECT COUNT(*) as num_inativos FROM "..fromClause) if resultId ~= false then totalClear = result.getDataInt(resultId, 'num_inativos') result.free(resultId) if totalClear > 0 then db.query("DELETE FROM "..fromClause) end end return totalClear end local function clearEmptyAccounts() local totalClear = 0 local createdTimestamp = os.time() - (86400 * (createdMonths*30)) local fromClause = "`accounts` ACCS WHERE `id` > ".. protectedAccIdEnd .." AND `creation` <= "..createdTimestamp.." AND (SELECT COUNT(*) from `players` WHERE `account_id` = ACCS.`id`) > 0" local resultId = db.storeQuery("SELECT COUNT(*) as num_inativas FROM "..fromClause) if resultId~= false then totalClear = result.getDataInt(resultId,'num_inativas') result.free(resultId) if totalClear > 0 then db.query("DELETE FROM "..fromClause) end end return totalClear end function onStartup() print('>> ' ..clearInactivePlayers().. " players inativos deletados.") print('>> ' ..clearEmptyAccounts().. " contas vazias deletadas.") end é isso senhores, paganois, flw!
  3. 4 pontos
    Olá pessoas, eu sou o DONO do NTO Ultra e tenho todo o direito de postar minha base. Um rapazinho roubou minha base e não vou deixar assim, vou disponibilizar minha base para pessoas com melhores intenções possam a usar e não somente ele. Enfim, enjoy! Download: Base: http://www.mediafire.com/file/53byfm87omkgnbz/NTO Ultra Base (2).zip Scan: https://www.virustotal.com/pt/file/ee5d204db4e7b5dd91975f2f22e9596de3ad399f77960a5ba039d356747d909c/analysis/1522445217/ (O nome do arquivo está bugado no virus total, SÃO OS MESMOS ARQUIVOS). Cliente: http://www.mediafire.com/file/dysybgaw38oaa8j/NTO_Ultra_Client.zip Scan: https://www.virustotal.com/pt/file/cc32ee2ccc1241de7758e1e3b66302cf8f56db3ecdf386660a4a67663155e1ac/analysis/1522445349/ (O nome do arquivo está bugado no virus total, SÃO OS MESMOS ARQUIVOS). Distro e Client: Client: http://download1321.mediafire.com/krqu2o5kmz5g/ug1pndwb39uhn6a/Client.exe SCAN DLLs: http://www.mediafire.com/file/9rm97rpo9tqvmrz/Dlls.rar SCAN Distro/TFS: http://download1486.mediafire.com/amrbio6rourg/fd054wyecokbcyu/TheForgottenServer.zip SCAN Creditos: Kozleth (algo assim) Mateus (Quem fez tudo) Madara Rinnegan (Base) IMAGENS IN-GAME
  4. 4 pontos
    To trazendo para vocês um servidor bem antigo, que eu gostava muito na época dos 7.6, hoje em dia não se vê mais, depois do LucianoOT que era um mapa próprio, foi o segundo servidor que eu joguei e me apaixonei, o dono me passou o servidor porém antigamente tinha um bug da party, eu nao sabia arrumar e esqueci o server, hoje em dia tem milhares de sources, e afins, ajeitei o servidor, mexi em todo o MAPA, adicionei quests, fixei algumas, tirei bugs, acrescentei mais coisas, hunts, mapa tá maneirinho. Eu ia trazer quests, mais detalhes sobre o servidor, porém formatei o PC, e to sem as coisas aqui. Servidor tem as principais quests; Annilhator Demon Helmet Behemoth Quest Desert Quest (10k) entre outras, que você pode ver em action/chest.lua há umas 50 quests. Foram refeitos todos os npcs do servidor, adicionado runas 100x, bless, funitures, bp mf, rings etc. Sources Estamos usando OTHire 0.0.3, repositório OTHire. Servidor http://www.mediafire.com/file/4s88718vcbqvkwy/SadSoul.rar https://www.virustotal.com/#/file/a458e0fcc0fa9e13dfd88c62e963519e54a1b34f2be1f7c30555c865953f4b99/detection Website ZnoteAAC http://www.mediafire.com/file/jgt5hadp07it1g2/Website.rar https://www.virustotal.com/#/file/7e79516f6b805b25ad46f4a67fcb955ffad3b0d9c650c6e125f0d2731b6de1a7/detection Cliente 7.72 http://www.mediafire.com/file/ydlygu6x28y2p36/BHminas_Client.rar https://www.virustotal.com/#/url/bbff7de641f30479d8e7a5a638102d1723ea1dcb943155307c02ff6bd9679362/detection Para trocar o IP pelo da sua maquina só editar o cliente com Notepadd C++ ou sublime, da ctrl + f e procurar por -> gd.ddns.net Database http://www.mediafire.com/file/eusflcfyj2fx23w/otserv.sql Creditos: Peonso pela src.
  5. 4 pontos
    henriquesafadao

    Otpokemon Sprites

    Esto compartilhando com vocês do TK o spr é dat do Otpokemon 11/04/2018. Tem um aqui no Tk mais é uma verção anterior a esta!!!!!Fiquem Ligado asim que tive Nova Atualização irei Compartilha com vocês Scan:=https://www.virustotal.com/pt/file/ed4a742e870fa2d0a4567b88dddc50b458f9461d19d0c417654373f3246719af/analysis/1523488621/ Down:=https://mega.nz/#!j0RjFTRR!wSMAA-lYAOzuqcqfHTmys50vB74m0CftHTkQD3hHC1w
  6. 4 pontos
    Way20

    DarkTheme e AutoComplete para Notepad++

    Olá a todos, acredito que muitos além de mim utilizam o Notepad++ para trabalhar com códigos, é por isso que hoje venho trazer um tema que eu mesmo fiz e um AutoComplete atualizado para o Notepad++. AutoComplete. Para quem não está familiarizado, o AutoComplete é uma função do Notepad++ que completa funções ou palavras assim que você começa digita-las. Neste AutoComplete que estou disponibilizando, possui todas as funções existentes no TFS 0.3.7 e 0.4. Para instalar o AutoComplete, primeiro você deve ativar a função no seu Notepad++. Para isso vá em Configurações -> Preferencias -> Autocompletar e deixa as configurações como mostra a seguir. Em seguida, basta colocar o arquivo Lua.xml no seguinte diretório do Notepad++. Notepad++\plugins\APIs Dark Theme. Eu fiz este tema porque detesto o tema original do Notepad++, todo aquele branco chega a arder os olhos e é muito cansativo ficar olhando pra quem programa muito tempo utilizando a ferramenta. Este tema não traz consigo somente a alteração da cor do fundo, mas um destaque de cor verde a cada função existente no AutoComplete. Um código Lua utilizando o tema, fica assim. Além disso, o tema não dá suporte apenas para a Linguagem Lua, mas também para C++, PHP, MySQL, Javascript, XML, HTML, CSS e INI. Para realizar a instalação do tema, basta ir em Configurações -> Importar -> Importar Tema(s) e escolher o arquivo DarkCode.xml. Pronto! Após realizado todos os procedimentos, basta reiniciar seu Notepad++ que todas as alterações terão efeito. É isso, acredito que possa ser útil no dia a dia de quem desenvolve em Lua.
  7. 4 pontos
    underewarr

    Spy System

    Créditos: Azi,Underewar(Remover bugs) Caso precisem de atualizações para as novas tfs,derivado só pedir. TalkAction.Xml <talkaction log="yes" access="3" words="!equipment" event="script" value="arquivo.lua"/> Arquivo.Lua
  8. 4 pontos
    Olá pessoal, hoje vou ensinar como tornar o seu website mais seguro obtendo um certificado SSL gratuito, habilitando HTTPS criptografados em servidores web. Neste tutorial, você usará o Certbot para obter um certificado SSL gratuito para o Nginx no Ubuntu 16.04 e configurar seu certificado para ser renovado automaticamente. Tudo que eu colocar em script é o comando que você irá usar no terminal de conexão no ubuntu. Etapa 1 - Instalando o Certbot : sudo add-apt-repository ppa:certbot/certbot Você precisará pressionar ENTER para aceitar. Em seguida, atualize a lista de pacotes para obter as informações do pacote do novo repositório: sudo apt-get update E finalmente, instale o pacote Nginx do Certbot: sudo apt-get install python-certbot-nginx O Certbot está agora pronto para uso, mas para que ele configure o SSL para o Nginx, precisamos verificar algumas das configurações do Nginx. Etapa 2 - Configurando o Nginx: O Certbot pode configurar automaticamente o SSL para o Nginx, mas ele precisa ser capaz de encontrar o bloco de server correto na sua configuração. Ele faz isso procurando uma diretiva server_name que corresponda ao domínio para o qual você está solicitando um certificado. Se você está começando com uma nova instalação do Nginx, você pode atualizar o arquivo de configuração padrão. Abra-o com o seu editor de texto favorito em /etc/nginx/sites-available/default e encontre a linha server_name existente e substitua o sublinhado _ pelo seu nome de domínio. Salve o arquivo e saia do seu editor. Recarregue o Nginx para carregar a nova configuração. sudo systemctl reload nginx O Certbot agora poderá encontrar o bloco de server correto e atualizá-lo. Em seguida, atualizaremos nosso firewall para permitir o tráfego HTTPS. Etapa 3 - Permitindo HTTPS por meio do firewall: Para permitir adicionalmente o tráfego HTTPS, podemos permitir o perfil Completo Nginx e, em seguida, excluir a tolerância do perfil HTTP Nginx redundante: sudo ufw allow 'Nginx Full' sudo ufw delete allow 'Nginx HTTP' Para verficar seu status use: sudo ufw status Seu status deve ficar assim agora: Output Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx Full ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx Full (v6) ALLOW Anywhere (v6) Agora estamos prontos para executar o Certbot e buscar nossos certificados. Etapa 4 - Obtenção de um certificado SSL Certbot fornece uma variedade de maneiras de obter certificados SSL, através de vários plugins. O plugin Nginx irá cuidar de reconfigurar o Nginx e recarregar a configuração sempre que necessário: sudo certbot --nginx -d exemplo.com -d www.exemplo.com Onde está exemplo no comando acim mude para o seu dominio. Se esta for sua primeira vez executando o certbot , você será solicitado a digitar um endereço de e-mail e concordar com os termos de serviço. Depois disso, o certbot se comunicará com o servidor Let's Encrypt e executará um desafio para verificar se você controla o domínio para o qual está solicitando um certificado. Se isso for bem-sucedido, o certbot perguntará como você gostaria de definir suas configurações de HTTPS. Saída Por favor, escolha se deseja ou não redirecionar o tráfego HTTP para HTTPS, removendo o acesso HTTP. -------------------------------------------------- ----------------------------- 1: Nenhum redirecionamento - Não faça mais alterações na configuração do servidor da web. 2: Redirecionar - Redirecionar todas as solicitações para o acesso HTTPS seguro. Escolha isto para novos sites ou se tiver certeza de que seu site funciona em HTTPS. Você pode desfazer isso mudar editando a configuração do seu servidor web. -------------------------------------------------- ----------------------------- Selecione o número apropriado [1-2] e depois [enter] (pressione 'c' para cancelar): Selecione sua escolha e pressione ENTER . A configuração será atualizada e o Nginx será recarregado para pegar as novas configurações. certbot irá finalizar com uma mensagem informando que o processo foi bem sucedido e onde seus certificados estão armazenados: Saída ANOTAÇÕES IMPORTANTES: Parabéns! Seu certificado e cadeia foram salvos em /etc/letsencrypt/live/example.com/fullchain.pem. Seu certificado expiram em 2017-10-23. Para obter uma versão nova ou ajustada deste certificado no futuro, simplesmente execute certbot novamente com o opção "certonly". Renovar de forma não interativa * todos * os seus certificados, execute "certbot renew" - As credenciais da sua conta foram salvas no seu Certbot diretório de configuração em / etc / letsencrypt. Você deveria fazer um backup seguro desta pasta agora. Este diretório de configuração também contém certificados e chaves privadas obtidos pela Certbot assim fazer backups regulares desta pasta é ideal. - Se você gosta do Certbot, considere apoiar nosso trabalho: Doando para ISRG / Let's Encrypt: https://letsencrypt.org/donate Doando para a EFF: https://eff.org/donate-le Seus certificados são baixados, instalados e carregados automaticamente. Tente recarregar seu site usando https:// e observe o indicador de segurança do seu navegador. Ele deve indicar que o site está protegido corretamente, geralmente com um ícone de cadeado verde. Vamos terminar testando o processo de renovação. Etapa 5 - Verificando a Renovação Automática do Certbot Os certificados só são válidos por noventa dias. Isso é para incentivar os usuários a automatizar seu processo de renovação de certificados. O pacote certbot que nós instalamos cuida disso para nós. Para testar o processo de renovação, você pode fazer uma execução a seco com certbot: sudo certbot renew --dry-run Se você não vir nenhum erro, está tudo pronto. Quando necessário, o Certbot renovará seus certificados e recarregará o Nginx para obter as alterações. Se o processo de renovação automatizado falhar, o software enviará uma mensagem para o e-mail que você especificou, avisando quando seu certificado estiver prestes a expirar. Fonte: https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04
  9. 4 pontos
    Conforme vejo em vários tópicos as "manjadas" perguntas: "-Quantos GBs roda esse mapa" - "-Quantos players aguenta" - "-O que é uplink" - "-Como proteger-se dos ataques DDoS" e as demais perguntas que vejo frequentemente aqui no tibiaking, resolvi criar este tópico. Então, com o intuito de um único tópico sanar essas dúvidas trago algumas respostas para você que vão contratar vps, dedicados, hospedagens, domínios e demais serviços relacionado a hosting. Não adiantaria eu tentar explicar na linguagem avançada de sistemas, da programação o que seria cada coisa, no entanto vou explicar com aquele jeitinho básico e Brasileiro. Vamos lá, leiam com ATENÇÃO! O que é VPS? VPS significa "Virtual Private Server". No Vps você poderá hospedar seu servidor e site, ou seja; VPS é uma máquina como seu computador onde você poderá abrir o .exe do seu servidor, entrar em sites, baixar o xampp , vertigo o que for necessário para rodar seu servidor, imagine um computador apenas seu com estrutura para hospedagem de games, bancos de dados garantindo uptime (tempo 100% online) e proteção contra percas e danos. Qual a diferença entre VPS e Dedicados? VPS é digamos bem que "uma parte do dedicado", vamos supor que o vendedor pegue uma máquina dedicada (imagine um CPU próprio) e então crie "usuário" dentro dela através de virtualizadores como vmware, kvm, openvz, xen e companhia. É importante lembrar que se temos 10 VPS (Usuários) dentro da máquina dedicada todos estarão usando a mesma internet, mesmo tráfego e tudo mais, ou seja caso haja algum ato malicioso como ataques de má fé, muitos que estão dentro do Dedicado serão afetados (em alguns casos grandes). Já o Dedicado é a máquina (CPU) única para você, por isso tem o custo mais "salgado" digamos assim... Semelhante ao VPS você poderá abrir seu servidor, hospedar o site como um computador seu, única diferença é que você não o divide com ninguém (egoísta em jovem). O que é Hospedagem de sites? Que fique claro, hospedagem não serve para você hospedar seu OTSERVER, hospedagem é apenas para sites/banco de dados. As hospedagens são de uma só demanda são apenas espaços em discos utilizando um único ip para todos os clientes da rede de hospedagem, então o nome do seu site é definido pelos servidores de nome. A maioria das hospedagens possuem o CPanel (ferramenta de manuseamento) no Cpanel você pode transferir arquivos e manusear seu site deixando o online para todo público. Que fique claro: Hospedagem não é válida para "abrir" sue otserver. Memória RAM, Quantos GB aguenta? Chega disso, a memória ram NÃO é a principal responsável pela jogabilidade simultânea de seus jogadores. A tal memória ram é baseada apenas para rodar o servidor (deixa-lo online), pós deixa-lo online quase não se usará ela. Processador, é importante? Sem comentários, o processador é o principal fato e responsável para suportar seus jogadores online, ou seja: o tomate da sua salada. Conforme os usuários logados em seu servidor o CPU vai ficando sobrecarregado e então aumentando cada vez mais a porcentagem de uso do TheForgottenServer, sendo assim quanto menor o número maior e mais lisa a jogabilidade dos seus players, é importante lembrar que o uso de CPU não pode bater 100%, caso isso ocorra pode ocorrer um crash (desligamento) do servidor ou da máquina. Banda/Uplink: Uplink é a velocidade da internet, você nunca abriu um servidor de CS, Tibia em sua casa e te perguntaram: "-Qual a velocidade da sua internet", definindo, a internet será a responsável pela conexão dos usuários com a máquina VPS/Dedicado, quanto maior a conexão melhor. Cores do processador: Não há necessidade de mais de 2cores, pelo fato do seu executável (The Forgotten Server) não usar mais que isto, a 0.3.7, 0.4, 1.0 e 1.2 (Versões do TFS) não utilizam mais que 1 core, no entanto 2 é de bom tamanho. Afinal, melhor sobrar do que faltar não é? Quantos GB de ram roda esse mapa? Como explicado a cima a ram é a responsável por rodar os mapas/servidores, então para vocês terem uma base, a cada 25MB de mapa necessita de 1GB de memória, ou seja: seu mapa pesa 95MB, precisaremos então de 4GB ou mais de memória para rodar o servidor. Ataques DDoS: Ataques Dos, DDoS são ataques realizados de pessoas de má fé que possuem uma banda maior que a banda/tráfego do seu dedicado, e então este ataque impossibilita a conexão do seu dedicado/vps com a internet, derrubando sua máquina (QUERO DEIXAR CLARO QUE ATAQUES DDOS NÃO DERRUBAM SEU EXECUTÁVEL E SIM A CONEXÃO DA MÁQUINA) então caso seu servidor caiu, o distro fechou isto é BUG e não ataques DDoS. Dedicado no Brasil: ESQUEÇA! A palavra Dedicado, Brasil e Bom na mesma frase é a mesma coisa que "Político honesto". Infelizmente o dedicado que possui datacenter no Brasil como hostgator, uolhost e demais empresas que possuem sua infraestrutura no Brasil estão descartados pelo mercado de OpenTibia devido a conexão baixa (QUE TEMOS NESSE LINDO PAÍS VALEU DILMA) facilitando os atacantes DDoS. Não estou difamando nenhuma empresa com datacenter Brasileiro apenas em minha humilde opinião descartando no ramo de jogos online, já em banco de dados, site e demais utilidades recomendadíssimo. Hospedar OTSERVER: Para finalizar procure sempre máquinas com bom processador, memória suficiente, boa conexão e hoje em dia a cima de tudo, boa proteção/filtro DDOS. FIM! Lembrando que fiz esse tutoriais para iniciantes explicando da melhor forma possível para que entendam o básico. Espero que ajude muitos com as perguntas frequentes. Qualquer dúvida sinta-se livre para perguntar, afinal ninguém nasceu sabendo! Até mais!
  10. 3 pontos
    Rusherzin

    RESPONDIDO Duvida Sobre Lua

    Hmmm, tenta mudar essa linha: addEvent(regenerationOverTime, delay, cid, skill, magic) Por isso: addEvent(regenerationOverTime, delay, cid.uid, skill, magic)
  11. 3 pontos
    NarutoStory

    Naruto Story 21.04.2018 | Custom

    Additional information: Exp changes with our level: 1 - 100: x6 101 - 200: x5 201 - 300: x4 301 - 400: x3 Estimated start of the game: 21.04.2018 An hour choose you: 16:00, 18:00, write comments and vote on FP: https://www.facebook.com/NarutoStoryFP/ Website: narutostory.net We are waiting for you, NST!
  12. 3 pontos
    OTXServer Global Full Feyrist by Malucooo [CLIENTS COMPATÍVEIS] 11.49 [BUGS E DOWNLOAD] BAIXEM E REPORTEM EM: http://www.gitlab.com/malucooo/otxserver-global/ IPCHANGER TIBIA 11: http://www.tibiaking.com/forum/forums/topic/82629-1140-ip-changer/ [FEATURES] NEW DEPOT, NEW SPAWN, NEW CAST SYSTEM, NEW NPC SYSTEM VIA BANK BALANCE, NEW CRITICAL BOOST SYSTEM, NEW POTIONS, REWARD SYSTEM, PREY SYSTEM... [MAPA] FULL GLOBAL MAP WITH FEYRIST TODAS CIDADES E NOVAS AREAS QUESTS FUNCIONANDO! [EVENTS] WAR-ANTIENTROSA [AGRADECIMENTO] TIBIAKING PELO ESPAÇO CONCEDIDO, TODOS QUE COLABORARAM MOSTRANDO OS BUGS, AOS AMIGOS QUE TRABALHAM COMIGO AQUI NO FÓRUM E NO GRUPO DO WHATSAPP, OTXSERVER (Matt Gomez), AOS CRIADORES DO THE FORGOTTEN SERVER E PRINCIPALMENTE E MAIS UMA VEZ A TODOS QUE ACREDITARAM E ACREDITAM NO PROJETO. [PUBLICIDADE] DATAPACK DISPONIBILIZADO POR ERICK NUNES(MALUCOOO). [CONTATO] FACEBOOK:https://www.facebook.com/erick.nunes.75/ SKYPE: e_nunes@live.com WHATSAPP: +5493412804526. [Créditos] Tfs 1.3 Developers -Zbizu - Pitis91 - MatheusMkalo - Gesior - Lundrial - M4G0 - Fish04k - Printer - Djarek - Ninjalulz - Slavidodo - Thexamx - Socket2810 - Ciroc -Absolute - Gordonbay - Mitsuig - Alissonfgp - Gunz - Bruno Minervino - Comedinha -Hirako - Maya - Mattyx14 – Darkjav - Viking Tibia - Cjaker (Eternal-Scripts)
  13. 3 pontos
    Ryukiimaru

    [SHOW OFF] Elder Tale Online

    E ae pessoas, venho apresentar aqui o projeto Elder Tale Online, que como base principal terá o anime Log Horizon. Pagina: facebook.com/ElderTaleOnline Youtube: https://www.youtube.com/channel/UCO_dna2DQWkbCAT3gSr5kBA
  14. 3 pontos
    henriquesafadao

    Otpokemon Sprites

    Vlw..Download foi atualizado. angelocp12 Irei desconpilar assim que termina irei cria novo tópico é li marco
  15. 3 pontos
    mullino

    FEXADO Starlix Baiak

    ESTE TOPICO FOI FEXADO
  16. 3 pontos
    sirarcken

    Tutorial VMS GOOGLE GRATUITA.

    Bom tutorial básico ai configurando meio por cima a VMs da google aquela que tu ganha. Bom se divirtar com seus projetos.
  17. 3 pontos
    VitorSubhi

    [Sistema] Advanced Trade Points v1.0

    Apresentação: Olá galera do Tibia King, este é meu primeiro tutorial que desenvolvo após anos apenas sugando da comunidade, chegou a hora de compartilhar um pouco de conhecimento, rsrs... Após ver que muitos usuários tinham interesse em um sistema de Trade de Points in-game resolvi trazer um sistema totalmente completo para vocês. Funcionamento: Player 1 após adquirir os Points, pode iniciar uma negociação com o Player 2 através do comando /tradepoints Player 2, Quantidade. Será aberto uma Janela de Trade com o item referente aos Points. Após ambos aceitarem a negociação será realizado a troca de Points pelo item requisitado. Observações: Necessário ter acesso às Sources de sua Distro. Testado em servidor 8.6 (The Forgotten Server 0.4). Antes que venham falar que possui sistemas parecidos, veja o diferencial (Item não aparece em nenhum inventário, e não é necessário usar/comprar qualquer item). Algumas Imagens: Instalação: Sources > Luascript.cpp Sources > Luascript.h Server > Data > Lib > 050-function Server > Data > Creaturescripts > Scripts >Trade_Orbs.lua Server > Data > Creaturescripts > Creaturescripts.xml Server > Data > Creaturescripts > Scripts > Login.lua Server > Data > Talkactions > Scripts > Points_Trade.lua Server > Data > Talkactions > Talkactions.xml Créditos: Todo o sistema foi feito completamente por mim: Vítor Subhi. The Forgotten Server (Pelas Sources) Vodkart, White Wolf, Natanael Beckman, e a todos os demais membros do TK que não lembro o nome, que contribuíram indiretamente através de seus tutoriais.
  18. 3 pontos
    Vodkart

    RESPONDIDO Patente Na Frags E Kill

    function getPlayerFrags(cid) local time = os.time() local times = {today = (time - 86400), week = (time - (7 * 86400))} local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC") if(result:getID() ~= -1) then repeat local content = {date = result:getDataInt("date")} if(content.date > times.today) then table.insert(contents.day, content) elseif(content.date > times.week) then table.insert(contents.week, content) else table.insert(contents.month, content) end until not result:next() result:free() end local size = { day = table.maxn(contents.day), week = table.maxn(contents.week), month = table.maxn(contents.month) } return size.day + size.week + size.month end function getDeathsAndKills(cid, type) -- by vodka local query,d = db.getResult("SELECT `player_id` FROM "..(tostring(type) == "kill" and "`player_killers`" or "`player_deaths`").." WHERE `player_id` = "..getPlayerGUID(cid)),0 if (query:getID() ~= -1) then repeat d = d+1 until not query:next() query:free() end return d end function GetPatenteLook(cid) local ranks, kills = { [{0, 9}] = "Iniciante", [{10, 49}] = "Matador", [{50, 99}] = "Assassino", [{100, 149}] = "Heroico", [{150, 199}] = "Sanguinario", [{200, math.huge}] = "Serial Killer" },getDeathsAndKills(cid, "kill") for v , r in pairs(ranks) do if kills >= v[1] and kills <= v[2] then return r end end end function onLogin(cid) registerCreatureEvent(cid, "newlook") return true end function onLook(cid, thing, position, lookDistance) if isPlayer(thing.uid) and thing.uid ~= cid then doPlayerSetSpecialDescription(thing.uid,"\n"..(getPlayerSex(thing.uid) == 0 and "She" or "").." Ele Matou ["..getDeathsAndKills(thing.uid, "kill").."]Players.\n"..(getPlayerSex(thing.uid) == 0 and "She" or "").." Ele Morreu ["..getDeathsAndKills(thing.uid, "death").."] Veses...\nSua Patente é "..GetPatenteLook(thing.uid)..".") return true elseif thing.uid == cid then doPlayerSetSpecialDescription(cid,"\nVoce Matou ["..getDeathsAndKills(cid, "kill").."]Players.\nVoce Morreu ["..getDeathsAndKills(cid, "death").."] Veses...\nSua Patente é "..GetPatenteLook(cid)..".") local string = 'You see yourself.' if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then string = string..' You are '.. getPlayerGroupName(cid) ..'.' elseif getPlayerVocation(cid) ~= 0 then string = string..' You are '.. getPlayerVocationName(cid) ..'.' else string = string..' You have no vocation.' end string = string..getPlayerSpecialDescription(cid)..'\n' if getPlayerGuildId(cid) > 0 then string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid) string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.' end if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then string = string..'\nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].' string = string..'\nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.' end if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then string = string..'\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].' end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string) return false end return true end
  19. 3 pontos
    underewarr

    Randar RPG Tibia Server

    ATUALIZAÇÔES AGORA NESSE LINK ATUALIZAÇÔES NO LINK ACIMA Olá a todos estou com uma ideia e vou faze-la, História Servidor: Em uma época de pouca revolução uma grande guerra acontece, algo precisa ser feito e criado, entre mortes e estupros, 2 reis se destacam por criar armas mirabolantes, treinar magos, piratas, e até mesmo espiões, enquanto o outro lado defende a todo custo algo muito valioso, uma fonte inesgotável de magia negra. Funcionalidade Do Servidor: Reinos : Antar Kingdoms, Helvy Kingdoms Reis : Thais Modox, Mark Edron Conceito: Os jogadores poderão falar e conversar com todos npcs da cidade, npcs terão uma AI que os comandara, sendo assim você podendo aumentar seu honor a respeito do seu kingdom. você ganha respeito e bônus a cada honor alcançado, dependendo do seu nivel de rank e das batalhas que ajuda você ganha, respect com respect você pode trocar em cargos, ainda não criei os cargos mais estou pensando em 10-25 cargos do primeiro ao ultimo muitas coisas acontecerão, existem lugares que só certos cargos entram, quests,items, e até mesmo npcs, os players de maior cargo serão os responsáveis por ser leader da guerra entre os reinos,e é o único que pode evitar ou declarar uma guerra, cada player ocupara um cargo que afetara a economia e estabilidade da cidade. Saques e roubos a outros reinos são visto como fora da lei, ou seja não é permitido, a staff do jogo seria a maior classe nobre dentro do jogo "Very Milionary Man" e eles tem muita influencia com npcs podendo até mandar uma certa equipe atras de jogadores assim, jogadores que levam a vida saqueando e roubando serão visto como piratas. A cada quest ou missão que você faz com os npcs você ganha 1 ponto de amizade, isso pode ser muito útil no futuro caso precise de ajuda, npcs que tem parentesco como filha de um grande leader de exercito, o jogador poderá se relacionar com essa filha para conseguir mais pontos de amizade com o leader e tentar persuadi-lo para oque quiser. O que falta?: Precisa ser criado em c++ os seguintes sistemas Dialogue System NPCS IA life system NPCS trade with others system Citys Evolve system Citys Traders Caravan system NPCS Wars agains with others system Honor,Favor,Friendly,Love,Anger....All that stuff system NPCS Hunt Monster NPC Up level NPC Training SKill NPC Reponsive PK attack NPC Resposive HONOR helper NPC Sell Items Buy Items. NPCS Farmers,BlackSmith.... (Create, Food for city storage,Armour, Sword....)Based on item players are colleting to city or others workers . Gems Skills System (Like Path of exile) You put a fire bolt gem on your armor, with that now u have leraned fire bolt and can use. (More Information Here) Family System (born, Growup, Died) Precisa ser pensado um modo de se criar um client que tenha muito mais features que o OTC e o client Comun. Exemplo Scene System Better Mechanics System Better Attack System Better Defense System Better Sumon Spells System Stun For Better Spells System New stuff like improvee your ice damage on ice spells only if u have a right item. Estou criando um site para recrutamento e postagens e atualizações do que for sendo criado até la vocês podem comentar aqui mesmo oque acha, irei começar a recrutamento de suseranos aqui mesmo no forum do tibiaking. Tenho em mente que em alguns meses eu tenha algumas coisas funcionando, o tópico pode até ficar morto por algumas semanas mais atualizações irão aparecer e vocês vão se surpreender. a ideia a ser apresentado é essa enfim preciso de programadores, c++,c#,java....etc qual quer sabedoria é util. Sigam o tópico,se puderem, obrigado. Detalhes fazem toda a diferença Inicio do projeto 06/03/2018 criado pagina para administração de serviços da equipe. 06/03/2018 06/03/18 Pagadminteam.php (V 0.2) @new Stuff House Hunt System 07/03/18 @possiveis ideias New Item System 07/03/18 Kingdom Systems(Begin) Jobs: 1 - Investigador 07/03/18 Gif Mining System Beta versão 0.1 @Update Mining System 23/03/2018 @Quest Log Update Fixado 23/03/2018 @Dev Update Videos @Dev Update 1 24/03 @Dev Update 2 24/03 Dev Update 3 25/03/2018 Dev Update 4 29/03/2018 ATUALIZAÇÔES AGORA NESSE LINK ATUALIZAÇÔES NO LINK ACIMA
  20. 3 pontos
    Jobs

    Fishing Monsters 1.1x +

    To adicionando uns scripts no me servidor, sistemas e to achando super dahora e vejo que não tem por aqui, vim disponibilizar pra vocês. actions.xml <action itemid="2580" script="monsterFishing.lua" allowfaruse="1"/> scripts/monsterFishing.lua local waterIds = {493, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 7236, 10499, 15401, 15402} local lootTrash = {2234, 2238, 2376, 2509, 2667} local lootCommon = {2152, 2167, 2168, 2669, 7588, 7589} local lootRare = {2143, 2146, 2149, 7158, 7159} local lootVeryRare = {7632, 7633, 10220} local useWorms = true -- Config for monster fishing local config = { enabled = true, -- ativar ou desativar a pesca monstro debug = false, -- ativar mensagens de depuração no console verifyMonsters = false, -- desabilite isso se você estiver tendo problemas com o Monster fishing :: Warning - Invalid monster name chance = 50, -- chance de pegar um monstro em% - 50 significa que você tem 50/50 de chance de pegar um monstro ou um peixe bossLevel = 300, -- nível mínimo para pegar um "boss" bossSkill = 90, -- min habilidade de pesca para pegar um "boss" monsters = { -- [minLevel] = {"monster", "names", "for", "level"} [100] = {"Quara Hydromancer", "Quara Constrictor", "Quara Mantassin", "Idontexist"}, [150] = {"Quara Pincher", "Quara Predator"}, [200] = {"Serpent Spawn", "Wyrm"}, [300] = {"Sea Serpent"}, }, bosses = { -- Monsters that can only be caught with atleast "bossLevel" and "bossSkill" "Titan Goddess of Water", } } -- Validate monsters configuration if config.verifyMonsters then local m = {} for minLevel, monsters in pairs(config.monsters) do m[minLevel] = {} if config.debug then print("#monsters", #monsters) end for i = 1, #monsters do if MonsterType(monsters[i]) then table.insert(m[minLevel], monsters[i]) else print("Monster fishing::Warning - Invalid monster name:", monsters[i]) end end if config.debug then print("Monster fishing::Debug - #monsters added", #m[minLevel]) end end config.monsters = m end function onUse(player, item, fromPosition, itemEx, toPosition, isHotkey) local targetId = itemEx.itemid if not isInArray(waterIds, itemEx.itemid) then return false end if targetId == 10499 then local targetItem = Item(itemEx.uid) local owner = targetItem:getAttribute(ITEM_ATTRIBUTE_CORPSEOWNER) if owner ~= 0 and owner ~= player:getId() then player:sendTextMessage(MESSAGE_STATUS_SMALL, "You are not the owner.") return true end toPosition:sendMagicEffect(CONST_ME_WATERSPLASH) targetItem:remove() local rareChance = math.random(1, 100) if rareChance == 1 then player:addItem(lootVeryRare[math.random(#lootVeryRare)], 1) elseif rareChance <= 3 then player:addItem(lootRare[math.random(#lootRare)], 1) elseif rareChance <= 10 then player:addItem(lootCommon[math.random(#lootCommon)], 1) else player:addItem(lootTrash[math.random(#lootTrash)], 1) end return true end if targetId ~= 7236 then toPosition:sendMagicEffect(CONST_ME_LOSEENERGY) end if targetId == 493 or targetId == 15402 then return true end player:addSkillTries(SKILL_FISHING, 1) if math.random(1, 100) <= math.min(math.max(10 + (player:getEffectiveSkillLevel(SKILL_FISHING) - 10) * 0.597, 10), 50) then if useWorms and not player:removeItem("worm", 1) then return true end if targetId == 15401 then local targetItem = Item(itemEx.uid) targetItem:transform(targetId + 1) targetItem:decay() if math.random(1, 100) >= 97 then player:addItem(15405, 1) return true end elseif targetId == 7236 then local targetItem = Item(itemEx.uid) targetItem:transform(targetId + 1) targetItem:decay() local rareChance = math.random(1, 100) if rareChance == 1 then player:addItem(7158, 1) return true elseif rareChance <= 4 then player:addItem(2669, 1) return true elseif rareChance <= 10 then player:addItem(7159, 1) return true end end if config.enabled and math.random(100) <= config.chance then local level = player:getLevel() local skill = player:getSkillLevel(SKILL_FISHING) local tmpMonsters = {} for minLevel, monsters in pairs(config.monsters) do if config.debug then print("Monster fishing::Debug - Level check:", level, ">=", minLevel) end if level >= minLevel then if config.debug then print("Monster fishing::Debug - Level check passed - #monsters:", #monsters) end for i = 1, #monsters do if config.debug then print("Monster fishing::Debug - Found monster:", monsters[i]) end table.insert(tmpMonsters, monsters[i]) end end end if level >= config.bossLevel and skill >= config.bossSkill then for i = 1, #config.bosses do table.insert(tmpMonsters, config.bosses[i]) end end if config.debug then print("Monster fishing::Debug - #tmpMonsters: "..#tmpMonsters) end if #tmpMonsters > 0 then local pos = player:getPosition() Game.createMonster(tmpMonsters[math.random(1, #tmpMonsters)], pos) return true end end player:addItem("fish", 1) end return true end Caso na hora de pescar venha esse item ao invés do fish, é por causa dos items.xml, dai é só você mudar player:addItem("2667", 1) e adicionar o ID do fish.
  21. 3 pontos
    @Adventure script: actions.xml: <action actionid="55555" script="arquivo.lua" /> <action itemid="12548" script="arquivo.lua" /> A actionid, coloque no bau quando o player clicar no bau ele receberá uma mensagem dizendo que precisa de tal chave, para ele clicar na chave e clicar no bau, o motivo da action é somente para que essa mensagem ocorra naquele bau. E o itemid é o id da chave, o player irá clicar nela e clicar no bau, e ocorrera todo o processo que já está descrito no script, acredito que não tem mais nada que eu possa explicar mas caso não entenda algo é só perguntar. Abraços!!
  22. 2 pontos
    Dwarfer

    Job System

    ACABOU A MOLEZA! Você que sempre fez os NPC's trabalharem dia e noite, disponíveis a qualquer momento mesmo que seja apenas para receber um "hi, buy rope, yes". A COISA MUDOU! Agora você vai ter que ralar. E olhe que os monstros estão com muito gold para gastar devido às mortes de aventureiros, despreparados de AOL ou de bençãos, que acabam por deixar dinheiro nas suas backpacks. VÁ TRABALHAR, SEU VAGAB..! Depois dessa ladainha toda, estava eu testando algumas funções, umas coisitas aqui e ali e ao misturar tudo saiu isso aí meio que sem querer. Tem uns pontos que podem ser melhorados, mas como disse serviu apenas como uns testes para mim, mas resolvi compartilhar, mesmo sendo simplesinho. Acho que será útil para servidor com um pouquinho de RPG. Testado em TFS 0.4 e versão 8.60. O Job System é um sistema no qual o player atenderá pedidos dos monstros. Cada pedido correto, o player ganha 1 job point que pode ser utilizado para comprar itens no npc ou como você queira fazer, em quests, acessos, seja lá o que for. O funcionamento é demonstrado no vídeo abaixo: Segue o código do sistema (MOD) e do NPC. jobsystem.xml CONFIGURAÇÃO: Desde que configure corretamente o mapa, não tem praticamente nada para modificar. monsters = { [1] = {"Amazon", "Dwarf", "Elf Scout"}, [2] = {"Barbarian Bloodwalker", "Dwarf Guard", "Warlock"}, [3] = {"Vampire Bride", "Dwarf Geomancer", "Infernalist"} } times = { deal = 30, lever = 2 } Aqui deal é o tempo em segundos entre cada pedido. Lever é o tempo em minutos para poder usar a alavanca novamente. Aconselho deixá-los nesses valores, já testei e funcionou certinho assim. A configuração ocorre praticamente no mapa: 1 - Crie uma "loja" do mesmo tamanho e com a mesma configuração que as mostradas no vídeo e na imagem abaixo. Apenas com a posição do meio livre. Não importa a "orientação" da loja. A única exigência é que a alavanca sempre esteja do lado do braço direito do char, conforme a imagem. MUITO IMPORTANTE: NÃO USE ITENS STACKABLES NA LOJA 2. Definindo o rank da loja: ALAVANCA DE ACTION ID: 4421 - Rank Apprentice 4422 - Rank Merchant 4423 - Rank Rashid 3. Todos os itens que não devem ser arrastados (itens da loja ou de decoração que não devam ser arrastados como o royal axe que mostrei lá no vídeo) devem receber o actionid 4420. 4. Os pisos onde os monstros serão criados devem ter actionid 4420. Além disso, ser área no-pvp e no logout (apenas por precaução). 5. Toda a área restante deve ser Protection Zone (PZ). Além disso, os locais do centro da loja onde os players ficarão devem ser No Logout Area. Dwarfer.xml job.lua Configuração do NPC: promote = {tomerchant = 50, torashid = 100}, tomerchant = 50 -> São necessários 50 pontos no rank Apprentice para avançar torashid = 100 -> São necessários 100 pontos no rank Merchant para avançar entice_rank = {-- Apprentice [2154] = {price = 1}, [2158] = {price = 3}, [2155] = {price = 7}, [2156] = {price = 100} }, merchant_rank = { -- Merchant [1998] = {price = 15}, [5950] = {price = 25}, [1987] = {price = 70}, [2402] = {price = 100} }, rashid_rank = { -- Rashid [9993] = {price = 15}, [9992] = {price = 25}, [9992] = {price = 70}, [7399] = {price = 100}} } [id_do_item] = {price = preço do item} que aparecerá na lista do NPC. É isso aí, seus vagal's
  23. 2 pontos
    Jobs

    Thora Layout Completo

    Estou trazendo o layout do ThoraOT, foi disponibilizado em outro fórum cheio de erros, faltando várias coisas e como estou aprendendo php, entrando nesse ritmo quis da uma mexida nele e tô trazendo para vocês. Fixes; Fixado Players Online 100% Fixado Top Guilds 100% Fixado Powergamers 100% Added; Adicionado versão mais recente do boostrap Adicionado Cast System Page Adicionado Glyphicons Reformulada pagina de Characters. Reformulada Suporte Team (com funções) Adicionado World Map (passar o mouse no mapa e aparecer informações) A unica pendencia no momento é o Powergamers! Screens: Antes: DEPOIS: Vou adicionar créditos ao membro que disponibilizou o layout. Tabela para o a pagina de Suporte. ALTER TABLE `players` ADD `function` VARCHAR(100) NOT NULL DEFAULT ''; Download: http://www.mediafire.com/file/9zsn7l3xzas5v8x/Thora Layout.rar Scan: https://www.virustotal.com/#/file-analysis/OTUyM2RlZDIwZjFmOWZjNjRjMGE0YTNjYWRkMzA2YjI6MTUyNDE2NzI1NA==
  24. 2 pontos
    gabriel28

    RESPONDIDO Spell

    @koringa
  25. 2 pontos
    tiroleivi

    Global v30 - OTX 10.99

    Global v30 - OTX - 10.99 Especificações : - Warzone 1, 2 e 3 - Task system, com bosses e ranks; - Bank System - Gray Beach City completa 100% (incluindo Subsolo) - NewVenore 100% - New AB 100% - Monstros 100% - Trainer Offline 100% - Trainer Online 100% - Todas montarias; - Taming system funcionando 100%; - Database completa - Wrath of Emperor Quest - War System 100% - Market System 100% - Roshamull Completa100% (incluindo subsolo) - Oramond Full - Zao 100% - Sem bug de pegar items com o browse field - POI 100% - Varios bugs de mapas removidos - Blood Herb Quest 100% - Npc Addoner, (e tem os npc originais fica a seu critério) - Chayenne Realm Quest - Pythius The Rotten Quest 100% OBs: é o mesmo ot Global TFS 1.2 v30 do : Qwizer, a diferença é que esse aqui está em OTX na Vs.10.99, foi removido erros da Database, e esta sem erro na distro rodando 99,9%. Imagens : Downloads : OTServ + Database : Download // Scann Xampp 1.7.3 : Download // Scann Web_Site : Download // Scann Source : Download // Scann Tibia Clientes : Download Remere's Map Editor : Download // Scann Créditos : Tiroleivi TibiaStaff Qwizer (pelo OT)
  26. 2 pontos
    Sttorm

    [TFS 0.x] Peça sua script 2.0

    O nome do tópico já diz tudo ; siga as regras -- Regras ; <> Apenas TFS 0.X ( 0.2 , 0.3.6, 0.4, etc) <> Esclareça bem seu pedido ; se possível poste um print <> Nem tudo está ao meu conhecimento , reconheca que nem sempre conseguirei fazer as scripts <> Eu faço a script e você me da um REP+ ;
  27. 2 pontos
    Isso vai te retornar o resultado em minutos, porque eles fazem uma multiplicação pra ficar mais facil entendimento do tempo configurado, onde o "1000" são os milissegundos, "60" os segundos e o "2" minutos, pois o resultado para ser lido deve ser em milissegundos.
  28. 2 pontos
    function onSay(cid, words) local msg = [[ Bem vindo: • DIGITA AQUI ------ Todas enformação do servido Novidades,Upload, Iremos esplica aqui, ------ ]] doPlayerPopupFYI(cid, msg) return true end <talkaction words="!infoday" event="script" value="infoday.lua"/>
  29. 2 pontos
    Calvin

    RESPONDIDO Ajuda Em Spell

    Posta ela inteira mano ! Mais mesmo assim testa e me fala. elseif spell == "Mamaragan" then local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 207 ret.check = 0 ret.spell = spell ret.cond = "Stun" local pos = getThingPosWithDebug(cid) local areas = {rock1, rock2, rock1, rock10, rock4, rock10, rock5, rock11, rock6, rock10, rock5, rock12, rock9, rock4, rock5} for i = 0, 14 do addEvent(doMoveInArea2, i*120, cid, 207, areas[i+1], ELECTRICDAMAGE, min, max, spell, ret) addEvent(doMoveInArea2, i*120, cid, 207, areas[i+1], ELECTRICDAMAGE, 0, 0, spell) end
  30. 2 pontos
    tataboy67

    Mandera-Global Recrutando

    Opa galera beleza? Mandera-Global... O mais novo Global ao estilo baiak que está para vir o servidor está sendo feito desde agosto de 2017. ele consta com alguns sistemas únicos... porem como sabem, o dinheiro não é infinito ! E tenho que procurar agora algum programador para que possa me ajudar a continuar o projeto . então hoje vim pedir a vocês que REALMENTE saibam programar ! Para se tornarem membros da minha equipe ^^. >> Serão pagos 30% dos lucros do servidor. << Imagens do servidor: GALERA O SERVIDOR ESTÁ BEM COMPLETO... o programador será responsável por fazer alguns sistemas a mais só isso. :D vamo que vamo clã
  31. 2 pontos
    Jpn

    Poketibia (Open Source) TFS 0.3.6

    Eae galera faz tempo que parei com o tibia e estava eu vasculhando pelo pc e encontrei essa base minha base. então como o tibiaking me ajudou demais com minhas duvidas e erros, resolvi retribuir o favor. obs: essa base pode estar incompleta: pokemons mal configurados assim como attacks etc.. • Base Utilizada PokeGod • • Adicionado Passive System (Incompleto). • Feito Alguns Remakes . • Aumentado Effects até 427. • Sem Level System. • Suporte Só pra Mysql. • Adicionando ataques no pokemon em Data/Lib/Pokelib • e Mais Alguns que não lembro. • Bugs (Não Tive Tempo Pra Resolver) • • Alguns Pokemons Podem Estar Morrendo Ao Colocar Pra Fora da Ball, mais nada dificil de resolver. • Comando /cb Algumas Vezes ele da erro e ao invés dele manda um poke pra vc, ele manda um item, mais se vc continuar ele manda o poke desejado. • Goback ajeitar o effect da ball ao soltar o pokemon. • Downloads • Server+Cliente+Source: http://www.mediafire.com/file/xe1uc15h71cx0xx/PokeGod+Atualizado.rar Scans: https://www.virustotal.com/pt/file/fc4e55376543c00c1bcbaff95e64c636573cda4d13aa2b5afc0e4a679bd2065a/analysis/ • Prints • • Creditos• • yuricrazk9 pela base. • aos donos do pokegod (não sei o nomes deles).
  32. 2 pontos
    Jobs

    Npc Guarda Da Cidade

    vamo lá. npc.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Guard" script="guard.lua" walkinterval="0" floorchange="0"> <health now="100" max="100" /> <look type="139" head="20" body="39" legs="45" feet="7" addons="0" /> </npc> guard.lua local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end local config = { attackRadius = {x = 7, y = 5, targetDistance = 2, walkDistance = 7}, attackPK = {value = true, skulls = {SKULL_WHITE, SKULL_RED}}, attackMonster = {value = true, ignore = {"Rat", "Cave Rat"}, ignoreSummon = true}, damageValue = {min = 10, max = 20} } -- Do not touch local targetId = 0 local masterPosition function Creature.isAttackable(self) if not self:isNpc() then if self:isPlayer() and not self:getGroup():getAccess() then if config.attackPK.value and isInArray(config.attackPK.skulls, self:getSkull()) then return true end end if self:isMonster() and config.attackMonster.value then local master = self:getMaster() if (config.attackMonster.ignoreSummon and master and not master:isPlayer()) or not isInArray(config.attackMonster.ignore, self:getName()) then return true end end end return false end function Npc.searchTarget(self) local attackRadius = config.attackRadius for _, spectator in ipairs(Game.getSpectators(self:getPosition(), false, false, attackRadius.x, attackRadius.x, attackRadius.y, attackRadius.y)) do if spectator:isAttackable() then targetId = spectator:getId() end end end function onThink() local npc = Npc() local target = Creature(targetId) -- If we have not a target, then we shall search for one if not target then npc:searchTarget() return end -- Let's get target offset position local npcPosition = npc:getPosition() local targetPosition = target:getPosition() local offsetX = npcPosition.x - targetPosition.x local offsetY = npcPosition.y - targetPosition.y -- Target is out of reach, search for new one local radius = config.attackRadius if math.abs(offsetX) > radius.x or math.abs(offsetY) > radius.y then npc:searchTarget() return end -- Back to spawn position if npcPosition:getDistance(masterPosition) >= radius.walkDistance then npcPosition:sendMagicEffect(CONST_ME_TELEPORT) npc:teleportTo(masterPosition) return end -- If target is found local npcId = npc:getId() doTargetCombatHealth(npcId, targetId, COMBAT_FIREDAMAGE, -config.damageValue.min, -config.damageValue.max, CONST_ME_HITBYFIRE) npcPosition:sendDistanceEffect(targetPosition, CONST_ANI_FIRE) doNpcSetCreatureFocus(targetId) -- Follow Target local distance = radius.targetDistance local path = npc:getPathTo(targetPosition, 0, distance, true, true) if path and npcPosition:getDistance(targetPosition) > distance then doMoveCreature(npcId, path[1]) end npcHandler:onThink() end function onCreatureAppear(self) if self == Npc() and not masterPosition then masterPosition = self:getPosition() end npcHandler:onCreatureAppear(self) end
  33. 2 pontos
    Eae galera, venho trazer para vocês em primeira mão a SPR mais recente do otPokémon que está na atualização 14.42 (04/03/2018). A SPR vai completa, com todas as sprites do otPokémon. Screenshots Informações Além das sprites exibidas nas screenshots acima, há novos addons, etc. Download Scan Créditos otPokémon - Pelas sprites; GOD Vitor - Por disponibilizá-las.
  34. 2 pontos
    mullino

    RESPONDIDO Patente Na Frags E Kill

    opa posso sim vc tem q add essas 2 tags <event type="look" name="fraglook" script="fraglook.lua"/> <event type="login" name="fraglook_register" event="script" value="fraglook.lua"/> em login.lua add registerCreatureEvent(cid, "fraglook")
  35. 2 pontos
    Way20

    RESPONDIDO Cast System não abre channel!

    O Private Chat Channel só é aberto para Players que possuem Premium Account. Altere no seu config.lua. Config.lua freePremium = true Ou faça esta alteração na sua source. Chat.cpp De: if(!player->isPremium() || getPrivateChannel(player)) Para: if(getPrivateChannel(player))
  36. 2 pontos
    NOVIDADESMaster Ball [100%]Hydra Stone [100%]Mega Stone [100%]Boost Stone [100%]Shadow Megas [100%]Red Megas [100%]Áreas VIP e Free [100%]Held System [100%]Double EXP [100%]Cooldown dos golpes [100%] Sistema de Torneio [100%]Pergaminhos [100%]Todas as gerações [100%] Sistema de VIP [100%]Novas quests [100%] Base editada Poke Dash [100%]_________________________________________SCREENSHOTSIn-game _________________________________________Download Tamanho do arquivo: 80 MB.Servidor: http://www.mediafire.com/download/f1g2pn4p068d9s0/Servidor+Pokemon+Anonymous+3.1.rarClient: http://www.mediafire.com/download/xk9z5c4s4i4k27q/Poke+Anonymous+2.5.rarScanServidor: https://www.virustotal.com/pt/file/9c3955934c833b0e0c939b729b74a24490326a44ef9861d83c5dd21f9c3da924/analysis/1443300701/Client: https://www.virustotal.com/pt/file/ba4a3491c58d8c80e4f0ed40399e56af9dee1b230786c40746ac47f27c6694af/analysis/1445008664/_________________________________________CréditosBolzLucas KuchikiCromendakPxG
  37. 2 pontos
    Way20

    RESPONDIDO Patente Na Frags E Kill

    Testa ai. function getPlayerFrags(cid) local time = os.time() local times = {today = (time - 86400), week = (time - (7 * 86400))} local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC") if(result:getID() ~= -1) then repeat local content = {date = result:getDataInt("date")} if(content.date > times.today) then table.insert(contents.day, content) elseif(content.date > times.week) then table.insert(contents.week, content) else table.insert(contents.month, content) end until not result:next() result:free() end local size = { day = table.maxn(contents.day), week = table.maxn(contents.week), month = table.maxn(contents.month) } return size.day + size.week + size.month end function getDeathsAndKills(cid, type) -- by vodka local query,d = db.getResult("SELECT `player_id` FROM "..(tostring(type) == "kill" and "`player_killers`" or "`player_deaths`").." WHERE `player_id` = "..getPlayerGUID(cid)),0 if (query:getID() ~= -1) then repeat d = d+1 until not query:next() query:free() end return d end function onLogin(cid) registerCreatureEvent(cid, "newlook") return true end local patentes = { ["0-9"] = "Iniciante", ["10-49"] = "Matador", ["50-99"] = "Assassino", ["100-149"] = "Heroico", ["150-199"] = "Sanguinario", ["200-9999"] = "Serial Killer" } function onLook(cid, thing, position, lookDistance) if isPlayer(thing.uid) and thing.uid ~= cid then doPlayerSetSpecialDescription(thing.uid,"\n"..(getPlayerSex(thing.uid) == 0 and "She" or "").." Ele Matou ["..getDeathsAndKills(thing.uid, "kill").."]Players.\n"..(getPlayerSex(thing.uid) == 0 and "She" or "").." Ele Morreu ["..getDeathsAndKills(thing.uid, "death").."] Veses...") local pKills = getDeathsAndKills(thing.uid, "kill") for k, v in pairs(patentes) do local frags = string.explode(k, "-") if pKills >= tonumber(frags[1]) and pKills <= tonumber(frags[2]) then doPlayerSetSpecialDescription(thing.uid, "Ele é um "..v) end end return true elseif thing.uid == cid then doPlayerSetSpecialDescription(cid,"\nVoce Matou ["..getDeathsAndKills(cid, "kill").."]Players.\nVoce Morreu ["..getDeathsAndKills(cid, "death").."] Veses...") local pKills = getDeathsAndKills(cid, "kill") for k, v in pairs(patentes) do local frags = string.explode(k, "-") if pKills >= tonumber(frags[1]) and pKills <= tonumber(frags[2]) then doPlayerSetSpecialDescription(cid, "Voce é um "..v) end end local string = 'You see yourself.' if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then string = string..' You are '.. getPlayerGroupName(cid) ..'.' elseif getPlayerVocation(cid) ~= 0 then string = string..' You are '.. getPlayerVocationName(cid) ..'.' else string = string..' You have no vocation.' end string = string..getPlayerSpecialDescription(cid)..'\n' if getPlayerGuildId(cid) > 0 then string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid) string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.' end if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then string = string..'\nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].' string = string..'\nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.' end if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then string = string..'\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].' end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string) return false end return true end
  38. 2 pontos
    Eai galeraaa, bom, hoje eu to aqui pra falar de uma ideia que eu tive após eu ter uma conversa com um brother. Bom, quem acompanha o Tk a mais de 4 anos, talvez já tenha ouvido falar do meu antigo projeto Arton, clicando aqui você poderá ver a página no facebook. Ele era uma mistura de Tibia e MU, tinha alguns sistemas como: Chaos Machine, Fly com Asas, Aprimoramento de equipamentos (+1 +2...), dentre outros sistemas. Aqui eu vou deixar alguns vídeos de alguns sistemas. 1. Barra de ataque e demonstração de algumas magias. 2. Sistema de Chaos Machine (Máquina de melhorias) 3. Sistema de atributos e visualização de item. 4. Sistema de aprimoramento de items. 5. Sistema de equipar armadura somente com uma quantidade de skill. 6. Novo sistema de ataque. 7. Sistema de batalhas com NPC. Bom, a ideia é a seguinte: Eu quero voltar com o projeto Arton, porém com uma nova identidade (Zen World) e uma nova proposta, porém, sem esquecer das antigas. O projeto não utilizará base alguma e será desenvolvido completamente do 0, utilizando o Unity 3D. O PVP e a jogabilidade do Tibia será totalmente adaptada a plataforma Mobile, assim levando a dinâmica e emoção do mesmo. Uma das novas ideias é lançar o jogo para navegadores e mobiles. O Zen World utilizará o sistema de mapas parecido com o do Ragnarok/TibiaME/MU (dividido em partes) O projeto está aberto a vagas! Então caso você se interesse pelo projeto e deseja ajudar, não deixe de comentar. Bom galera, eu estou bastante enferrujado para escrever tópicos sobre projetos kkkkk, o meu último já tem bastante tempo. Qualquer dúvida ou caso se interessem, comentem aqui! o Feedback é muito importante.
  39. 2 pontos
  40. 2 pontos
    Alencar123

    Summon Protect

    em creaturescripts/scripts: function onTarget(cid, target) if isPlayer(cid) and isSummon(target) then doPlayerSendCancel(cid, "Você não pode atacar seu summon") end return false end function onStatsChange(cid, attacker, type) if type == STATSCHANGE_HEALTHLOSS then if isPlayer(cid) and isSummon(attacker) or isPlayer(attacker) and isSummon(cid) or isSummon(cid) and isSummon(attacker) and getCreatureMaster(cid) == attacker then end end return false end tags em creaturescripts.xml: <event type="target" name="nomeevent1" event="script" value="summonattack.lua"/> <event type="statschange" name="nomeevent2" event="script" value="summonattack.lua"/> em login.lua registerCreatureEvent(cid, "nomeevent1") registerCreatureEvent(cid, "nomeevent2") no arquivo .xml do summon/monstro registre o evento 2: <script> <event name="nameevent2"/> </script>
  41. 2 pontos
    Sttorm

    colocar cooldown em spell

    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_EFFECT, 189) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 1000) setConditionFormula(condition, -0.9, 0, -0.9, 0) setCombatCondition(combat, condition) function onCastSpell(cid, var) local waittime = 5 -- Tempo de exhaustion local storage = 5818 if exhaustion.check(cid, storage) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.") return false end return doCombat(cid, combat, var) end
  42. 2 pontos
    local removeTime = 5 -- Segundos local removeMsg = "You're gonna be disconnected in "..removeTime.." seconds for sharring the account." function onLogin(cid) for _, pid in pairs(getPlayersByAccountId(getPlayerAccountId(cid))) do if getPlayerIp(cid) ~= getPlayerIp(pid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, removeMsg) addEvent(function() doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) doRemoveCreature(cid) end, removeTime*1000) break end end return true end
  43. 2 pontos
  44. 2 pontos
    henriquesafadao

    como abaixar xp do poketibia

    Va em Lib,configuration, é procure playerExperienceRate = é diminua o valor que estive ae . o playerExperienceRate = deminui tantu o xp do play quantu a do Pokemon Level
  45. 2 pontos
    Daniel

    Lista de Tibia Clients antigos e novos

    DOWNLOAD TIBIA CLIENTS Windows e Linux | .exe e .zip Esta lista reúne todos os Tibia Clients publicados aqui no Tibia King. Todos os downloads possuem scan. É preciso ter cadastro em nossa comunidade para baixar de forma segura. Problemas para baixar? Comente. Lista de Tibia Clients pela ordem: 3.0, 3.1, 4.0, 6.0, 6.1, 6.4, 7.0, 7.01, 7.02, 7.10, 7.13, 7.21, 7.23, 7.24, 7.26, 7.27, 7.30, 7.40, 7.41, 7.5, 7.55, 7.6, 7.7, 7.72, 7.8, 7.81, 7.9, 7.92, 8.10, 8.11, 8.20 (8.x, 9.x, 10.x e 11.x serão adicionados em breve, você pode baixar diretamente neste link)
  46. 2 pontos
    Daniel

    Tibia Client 8.20

    Baixe aqui o Tibia Client versão 8.20 (via Google Drive) Scan Update 8.20 Renovação de Kazordoon e Darashia. Adição da Tutorial Island. Atualização do Amazon Camp (Venore), Orc Fort, Plains of Havoc, Femor Hills, Ghostlands e Green Claw Swamp. Fonte: https://www.tibiawiki.com.br/wiki/Updates_e_Patches
  47. 2 pontos
    Daniel

    Tibia Client 8.10

    Baixe aqui o Tibia Client versão 8.10 (via Google Drive) Scan Update 8.10 Atualização das vocações (balanceamento). Adição de novas quests, monstros, NPCs e dos elementos Holy, Morte e Ice. Ampliação do efeito dos elementos sobre criaturas, armas, equipamentos e magias. Implementação do Encantamento de armas, da possibilidade de dividir pontos de experiência em Party e de nadar. Fonte: https://www.tibiawiki.com.br/wiki/Updates_e_Patches
  48. 2 pontos
    Way20

    RESPONDIDO setplayerlookdirection?

    doCreatureSetLookDir(cid,dir)
  49. 2 pontos
    Jobs

    RESPONDIDO Site Bugado

    Quando for copiar algo de outro lugar e estiver formatado, passa para um bloco de notas primeiro e depois joga aqui, ou remova o formatado, fica muito ruim de ler, dificulta :] Entre em system/load.init e depois de session_start(); coloque isso na linha abaixo: date_default_timezone_set("America/Sao_Paulo");
  50. 2 pontos
    Maste

    Madu

Líderes está configurado para São Paulo/GMT-03:00
×
Close