Ir para conteúdo

Bruno Maciell

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Bruno Maciell recebeu reputação de whit3w0lf em (Naruto) Naruto Legend 2.0 - Com Tp   
    [8.54] Naruto Legend V2.0 - Com Teleports!


    Informações:
    - Novo Mapa RPG, com teleports (Com Levels);
    - Novas Organizações (Akatsuki, anbu, sannin, shippuden, hokage, etc);
    - Novas Transformações;
    - 24 Vocações;
    - Novos Jutsus;
    - Novos Itens;
    - Novos Sistemas e comandos;
    - Novos Monstros;
    - 3 Vilas;
    - Ajeitei o servidor para rodar em sqlite (Account Manager já configurado).
    - Sistema Premium (Com Premium Zone).
    - Servidor 100% estável;
    - E mais!


    Prints




















    Download Servidor & Scan:
    Download:
    http://www.mediafire...1e54136t4b7855m

    Scan:
    https://www.virustot...sis/1355872674/

    Download Client & Scan:
    Incluso tibia.spr e tibia.dat!
    Download:
    http://www.mediafire...9fdj1y9nc4ta1fy

    Scan:
    https://www.virustot...sis/1355873069/


    Créditos:
    Tfs Team
    Uffox
    Wono-CJ
    SmoOkeR
  2. Gostei
    Bruno Maciell recebeu reputação de GreenxWorld em (Pokemon) Serve Lunus Original   
    Como todos sabem muita gente ta atraz do serve lunus ate muita pessoal venha fala pra min sobre um serve lunus que postei pra min arruma !!

    como disse: eu postei quando tinha pq hj nao tenho mais =/

    Mais resolvido pq achei em outro forum o serve lunus original e venho compartilha com todos aqui do Tk

    Serve !!

    http://www.4shared.com/rar/6crMLbWQ/Lunusot_lostpkm_.htm

    Cliente !!

    https://www.4shared.com/rar/paNj1-Cw/pokemon_lunus.html

    Obs: Nao vou por informaçoes pq todos praticamente sabe como eo lunus e caso nao saiba so baixa e testa

    Conta Do God





    Espero ter ajudado
  3. Gostei
    Bruno Maciell deu reputação a Pesadelo277 em Projeto PokeBR   
    Ola Pessoal do Tibia King 
    Eu Peguei uma base de Poketibia bem antiga, então eu decidi fazer um projeto sério de pokemon, logo abaixo eu deixarei umas print screen , por enquanto vamos falar o que tem no server.
    BaseUsada:PGalaxy
     
    Informações:
     
    •Adicionado pokemons da 3ª Geração (nao esta completa)
    •Server com System de level !.
    •Clan System (PDA Slicer).
    •Alguns bugs corrigidos.
    •Pokemons das gerações: 1 - 2 - 3 - 1 shiny - 3 shiny ----
    •Sprites Reformuladas
    •Client Extendido
    •Bike System
    •Npc De itens de task de clãns.
    •Adicionada Area VIP
    •Shinys Espalhado pelo mapa.
    •Adicionada 2 Cidades do continente Hoen, e mais uma cidade na vip (se consegue acesso a Hoenn atravez de Cinnabar [barco])
    •Adicionadas Varias quest
    •Duel System.
    •Golden arena.
    •Moves system (m1 a m12).
    •Maximo 6 pokemons na bag.
    •Order 100%.
    •Foi dado uma Balanceada na força e na vida dos pokes.
    •Attacks dos pokemon iguais do Otpokemon bom pelomenos a maioria esta com novos attacks.
    •Bug da Master Ball corrigida captura qual quer pokemon.
    •Agora da para vc dar Boost no Pokemon ate o 100.
     
    Erros do Servidor:
    Bom por enquanto nem um que eu saiba.
     
    Prints:
     
    Downloads:
    https://www.mediafire.com/file/m08cab371gb9ycu/Poke_BR.rar/file
    Poke BR.rar
     
     
    Créditos:
    •Aos criadores do PDA •Slicer •E eu
  4. Gostei
    Bruno Maciell deu reputação a ZenohXX em Base PokeWish + Pokelight   
    Olá, contextualizando, para quem não me conhece, por algum tempo trabalhei em um servidor de poketibia chamado Pokelight.
    Utilizamos a base, que compramos, do PokeWish parar criar nosso servidor Pokelight, mas com o tempo a staff acabou optando por tomar outros rumos, tanto profissionais quanto pessoais e acabou que não fazia mais sentido continuarmos com o projeto.
    Sabendo do potencial dessa base e da paixão que ainda tenho por poketibia, na esperança de que surja um servidor bacana com esta base, venho disponibilizar todos os arquivos do servidor.

    Vídeos do projeto
     
     
     
    Em breve farei alguns tutoriais e observações de como fazer o melhor uso possível dos arquivos e disponibilizarei mais recursos usados durante o projeto, além de dar suporte a solução de problemas aqui neste tópico.

    Utilize Ubuntu 20.04 para executar o servidor.


    Servidor:
     
    Link para download (Servidor Wish, cliente Wish, ferramentas e sources): https://drive.google.com/file/d/14Kl7Bw86Y9Cm1GPy-BUuDJSYqHBUCdGV
    Link para download (RME): https://drive.google.com/file/d/1bwAcuhkRxF2RZ_rcpvSOvxExrWE9oMDC
    Link para download (Cliente Pokelight): https://drive.google.com/file/d/1PFUp7grPXcV2enUp3Og7BO9LFnSjs5Il
    Link para download (Servidor Pokelight última versão): https://drive.google.com/file/d/1057SbzLui7uOXcxJMoc5yaa3_9F8O-os/
    Scan: Arquivos passam de 700MB, não é possível fazer o scan.
  5. Gostei
    Bruno Maciell deu reputação a Underewar em [Pokexadventure] Release Open_Beta [10.98].   
    Após anos sem contribuir com um servidor fico feliz em lançar essa versão com muitas correções!

    Está versão é a versão OPEN_BETA.

    Que pode ser testada aqui. (Online até dia 25/05/2023)

    Foram corrigos muitos bugs e existem diversas melhorias em muitos dos sistemas existentes.

    Vocês podem encontrar as Libs que devem estar com uns 30% desses novos sistemas que foram adicionados e podem testar ou usar os códigos.

    O servidor esta online a 120+ dias, foi construído com XP 1 e bateu 66 Players Online.

    O ideal é usar este servidor em low rate.

    Atualizações

    Verifique a pagina do facebook para saber todas as atualizações!
    Se você curtiu acompanhe a pagina para acompanha o lançamento do jogo oficial!
     
    Importante
     

    A cada onda do nosso sistema de incursões, você terá a chance de encontrar um Pokémon Shiny raro e, após a terceira onda, um chefe shiny ainda mais raro aparecerá, oferecendo recompensas valiosas para os treinadores ousados o suficiente para enfrentá-lo.
    Utilize seus tokens de incursão para reiniciar o sistema e tentar novamente.

    Para saber sobre todas as novidades Por favor considere olhar nossa pagina,

    https://www.facebook.com/pokexadventure/photos
     
    Imagens
     
     
    Downloads

    Para configurar basta substituir a pasta data que você pode encontrar fazendo download da source, cole a pasta data baixa do Pokexadventure e divirta-se!

    Sources

    pokexadventure_open_beta_datapack.rar

    DLLS + Executaveis (Windows)

    OTC
     
    (mediafire.com)
     
    Website
     
    https://github.com/otsoft/myaac

    Ferramentas : 
    auto_restarter_windows.bat

    RME 3.5 ou superior.

    Object builder 10.98 Support ou superior.

    Item editor 10.98 Support ou superior.

    Tutoriais para Compilações
     

    Créditos : @Underewar @pota
  6. Gostei
    Bruno Maciell deu reputação a Gabrieltxu em [Psoul] Base PokeJornadas   
    Prometi a mim mesmo não ajudar mais a comunidade, porem com os acontecimentos em cima dessa base me deixou com raiva e vim compartilhar a mesma com vocês, o servidor foi feito em cima da base vasada do Psoul, onde Walox e outro que não sei o nick trabalharam, porem como já de costume Walox melhorou a interface assim como a Mytology e a ZRing, e para não perder o costume anunciou a venda do mesmo, onde algumas pessoas chegaram a pagar bem caro pela base, quase 2 mil reais. 
    Até ai tudo bem, porem não contente começou a vender ainda mais copias do servidor, e quem comprava também vendia a copia do servidor, algo que acho totalmente errado.
    Enfim para acabar com essa palhaçada hoje estou postando a base.
     
    Ressalvo que NÃO IREI DAR SUPORTE A ESSA BASE, BASE CONTEM MUITOS BUGS, OQUE TEM DE MELHOR É A INTERFACE MESMO 
     
    Algumas Imagens do servidor:
     
    Scans
     
    Link para Download (Contem tudo, Client, server etc..): https://mega.nz/file/6dIwRaxT#y2nRFVckLLTLFSBRRtEUJVb-KBAwVPfMhqxyTEEv4Cs
    Mediafire: https://www.mediafire.com/file/d89t3ol1beq8129/poke+jornadas+completo+++src.rar/file
    Senha do Winrar: naoetrote1234567890@
     
    Créditos:  - Criadores da base Psoul
                     - Walox (Wave) e equipe
     
     
    É isso, espero que essa pratica de venda de servidores desenfreados acabe, desejo boa sorte a todos com a base e façam bom proveito.      
     
     
  7. Gostei
    Desenvolvi por muito tempo uma base Pokémon do 0 (parti do TFS 1.2 e fui implementando tudo até chegar nessa versão que estou disponibilizando). O resultado é um servidor extremamente leve e estável (já testado com 100+ players e por mais de 1 mês sem cair). Basicamente, ele suporta tranquilamente 1k+ players e não tem nenhum bug conhecido que faça com que ele caia.
     
    Esse servidor ficou no ar por muito tempo (mais de 2 anos) e era conhecido como PokeDash. Acabei ficando sem tempo para administrar o servidor, o que fez com que a maioria dos players parassem de jogar e com que eu fechasse de vez.
     
    Pensei por muito tempo sobre o que fazer com ele, e decidi disponibilizar para a comunidade. Trata-se de algo único (eu ao menos nunca vi um servidor de Pokémon construído a partir do TFS 1.2)!
     
    Como desenvolvi todos os sistemas do 0, tomei cuidado para fazer tudo da melhor maneira possível e para que possa ser facilmente modificado e atualizado. Basicamente, os Pokémons podem ser criados a partir de um único arquivo XML (como monstros do Tibia), e nesse arquivo você pode especificar tudo, desde level máximo e mínimo de spawn, loots, tipos (fogo, agua, etc), se ele pode usar habilidades (surf, fly, etc), moves (quando alguém captura), ataques (quando selvagem), evoluções, chance de catch, etc.
    Exemplo de Pokemon
    Resumo de alguns sistemas (tem muita coisa, então coloquei os principais)
    ✅ Pokemons com level, status e boost. O level do player/boost também influencia no status dos pokes.
    ✅ Sistema de Love (seu poke fica mais forte que os demais quando upa de level matando pokemons mais fortes que ele).
    ✅ Base propria com Shinys e Ancients.
    ✅ Cada player pode conseguir ancient stone para evoluir 1 shiny para ancient através de quest.
    ✅ Moves bar e pokemon bar (troca de pokemon com 1 click).
    ✅ Autoloot agrupando em bags.
    ✅ Ganho de exp ao capturar/dar dex em pokes com um bonus adicional para o primeiro catch de cada poke.
    ✅ Mapa original com mais de 40 quests, incluindo outland com Ancients.
    ✅ Eventos diários automáticos: Futebol todo dia 19:30, arena PVP todo dia 20:00, golden arena aos sabados 17:00, bag premiada aos domingos/feriados 17:00.
    ✅ Profissões (facilmente customizáveis):
    Catcher: 3.5% mais chance de capturar um Pokemon. Hunter: 10% mais status de dano para o seu Pokemon (tanto magico quanto fisico). Blocker: 25% mais vida para seus Pokemons. Healer: 100% mais cura que aplica tanto em potions quando moves dos seus Pokemons. Explorer: 15% mais experiencia para seu personagem durante a caça. ✅ Task diária de catch/loot dando Tokens. Os tokens podem ser trocados por itens raros (dentre eles premier ball e bags personalizadas) além de pagar seu curso com o NPC Job Manager para aprender uma das profissões acima. Uma das maneiras de conseguir tokens é fazendo tasks diárias.
    ✅ Muito mais!
    Screenshots

     

    Download
    Baixe o pack contendo o servidor, cliente, site, editor de mapa e editor de itens clique aqui!. Caso considere minha contribuição interessante para a comunidade, considere realizar uma doação para a chave pix: [email protected]
    GM account: gm/gmgmgm
    O projeto será atualizado em sua homepage: https://pokedashpota.vercel.app/
     
    SCAN
     
    ---EDIT---
    Download sources
    SCAN
     
     Problemas e soluções
    GroupID não existe ao tentar logar no server.
     
    Erros ao importar o schema.sql.
     
    Comando /cb não funcionando:
     
  8. Gostei
    Olá galera do TK !
    Venho por meio deste tópico, publicar a ultima versão do meu servidor derivado de Tibia NTO Hard juntamente com todos os arquivos necessários para edições.
     
    Confesso que não foi fácil tomar essa decisão, afinal de contas foram mais de 5 anos nessa vida de administrador de otserver e esses arquivos são de muita valia, tenho certeza de que muito do que conquistei e me tornei, é resultante dos servidores que pude administrar. Costumo dizer que não sou programador e que estou mais para um gerente de scripts, todos os meus servidores foram criados com base em arquivos disponibilizados em comunidades como esta, sendo assim, pensei comigo, seria interessante eu disponibilizar e de certa forma contribuir, acredito que esses arquivos ainda podem ser útil para muitos.
     
    O que tem de diferente no NTO Hard ? 
    Foi feito com muito carinho ! Rs. Eu poderia fazer uma lista (BÍBLIA) do que tem no servidor porém estou sem tempo mas tenho certeza que esse é o servidor NTO mais completo, atual e disponível para ser baixado em qualquer comunidade de otserver.
     
    Veja algumas Imagens !
     
    O que tem nesse Pacote Full de Arquivos NTO Hard ? 
     
    Datapack mais recente e completa do servidor. Site Gesior com template própria + AntiDDOS. Client Descompilado + Estendido + DLL Manabar com ajuste na altura da Barra de Vida/Chakra + DLL Proteção para extensão.cab Source OTX compatível com o servidor CabCreator Item Editor que funciona com o item.otb do server Object Builder 0.4.1 Remeres Map Editor Estendido para funcionar com o client do server Pic Editor  IP Changer  
     
    DOWNLOAD  &  SCAN
     
     
    dbresetada.sql
  9. Gostei
    Bruno Maciell deu reputação a Leohige em The Ruby Server - Base Pokémon TFS 1.2 - 9.80   
    The Ruby Server - Base Pokémon
    Ao olhar as diversas bases que podem ser encontradas aqui no fórum e em outros locais da internet, pude ver que todas elas carecem de qualidade. Todas estas bases são feitas utilizando gambiarras para diversos sistemas funcionarem, e com isso vários problemas surgem, como de sistemas que não funcionam direito, e o mais importante, com um desempenho extremamente baixo, gerando apenas servidores instáveis. Com isso eu decidi que iria começar a desenvolver uma base para servidores relacionados a Pokémon, com dois objetivos. Um dos objetivos é ganhar mais conhecimento em cima da linguagem de programação C++, o outro objetivo é disponibilizar uma base completamente estável, funcional e de fácil configuração e desenvolvimento para servidores de Pokémon, para que mais ótimos trabalhos possam surgir. Este projeto também irá incluir um cliente próprio e estável, junto com um website.
     
    Também planejo criar uma espécie de Wiki para o servidor, cliente e website, com o objetivo de auxiliar quem for desenvolver em cima deste servidor, e também aqueles que pouco entendem do assunto relacionando a criação de escripts, Pokémon, spells e etc.
     
    Alguns poucos sistemas foram implementados no servidor por ora. Sistemas como o de catch e de goback serão implementados mais para frente, quando outros sistemas forem completamente implementados, como o sistema de configuração de Pokeballs, criação de Pokémons e sistema de shinys. Estou visando a qualidade do servidor como um todo, por isso algumas coisas irão demorar para aparecer.

    O sistema de Pokeballs e de criação de Pokémon já está bem encaminhado, e um sistema de gêneros também já está pronto com fácil configuração, onde o spawn destes Pokémon com sexo será por % igual aos jogos da franquia. Um sistema de surgimento de Ditto aleatório já está praticamente implementado, onde um Pokémon aleatório pode ser um Ditto disfarçado.
     
    [+] Informações do Servidor
    Baseado em: TFS 1.3
    Protocolo: 10.98
     
    [+] Informações do Client
    Baseado em: otclient 0.6.6

    [+] Informações do Website
    Baseado em: nenhum
    Desenvolvido em: PHP (por ser o mais comum na comunidade)
     
    Como contribuir?
    Eu gostaria muito que a comunidade ajudasse no desenvolvimento deste projeto, pois o mesmo será disponibilizado para todos, e para contribuir não necessariamente é preciso entender de programação. Você pode também ajudar testando e reportando os bugs encontrados no repositório do projeto no GitHub, assim como com sugestões e ideias de mudança/implementação no servidor através do próprio repositório ou através do Discord, ou ajudar na criação de guias para o website do projeto.
     
    Links
     
    [+] RubyServer - GitHub
    https://github.com/rubyserver/rubyserver
     
    [+] RubyClient - GitHub
    https://github.com/rubyserver/rubyclient
     
    [+] RubyServer - Website
    https://rubyserver.github.io/rubyserver/
     
    [+] RubyServer - Discord
    https://discord.gg/XTrZGpy
     
    Algumas Imagens
     
     
     
     
     
  10. Gostei
    Bruno Maciell deu reputação a Johncore em [TFS 1.3] Otg Server Global - 12.85 (Updates Diarios)   
    Open Source MMORPG emulador de Tibia escrito em C++.
    Servidor Global 12.85 Oficial para o Tibiaking!
    Baseado no TFS 1.3

     
     
      
     Novidades!
     
    - Protocolo 12.85
    - Bestiary
    - Charms
    - Boosted Creature
    - Quick Loot
    - Supply Stash
    - Event Schedule
    - GLOBAL MAP FULL
    - Quests com Quest Log 100%
    - Bounac
    - Wherehyenas
    - Mirrored Nightmare
     
     
     

     
    Imagens :
     
    THAIS TEMPLE
     

     
     
    



    Downloads 

     
     Servidor + Database + Source: 
    »» PROJETO OFFICIAL:  
    https://github.com/otg-br/global1285
     
    GRUPO WHATSAPP OTG SERVER:
    https://chat.whatsapp.com/EWV3dVvS6nt1em7q23FGu7

     
     
     

     
    Créditos :
    The Forgotten Server
    Otg contribuidores
    Johncore
    Erick Nunes
    Mattyx
    Cjaker
    Leu
    Marson Schneider
    Rafhael Oliveira

     
     
  11. Gostei
    Bruno Maciell deu reputação a WhiteBubble em Dbo Rox V2 8.60 [Open Source][99% SEM BUGS]   
    Dragon Ball
    Rox
    Servidor 100% estável com mais de 200 horas online.
    38 Vocações sendo 9 delas vip que são:
    Shenron,Vegetto,Zaiko,Kagome,Tapion,Kame
    Chilled,C8 e King Vegetta.
    Spells de fast attack (Usa uma vez sai 10 hits).
    Eventos automaticos como: Castle,Battlefield,Run event.
    Reborn level maximo 600.
    Vamos aos bugs que eu encontrei:
    * Zombie event quando o zombie pega algum player todos do evento e mandando pra fora e evento encerra.
    * Erro quando usa spell e a pessoa morre antes da spell acabar no caso das de combo.
    * Erro nos eventos Battlefield e Run event quando vai adicionar a recompensa da erro por faltar uma tabela na database que não me recordo o nome agora.
     
    Update v2
     Adicionado 7 novas vocações vips sendo elas:
    Bills,Whiss,Golden Freeza,Vegetto Blue,Zamasu,Gogeta Blue e Goku Black Evo.
    Adicionado 3 vocações free sendo elas: Zeno, Vados e Vegetto Black.
    Vocações que antes era vip no update v1 agora são free.
    Fazer reborn não precisa mais fazer quest das esferas do dragão.
     Adicionado cassino que se ganha small diamonds que se troca por:
    Divine Stone(Usado para upgrade), Black Stone (Item para virar Vegetto Black) e Leviathan Amulet.
    Adicionado npc que vende Anti Loss Ring Protege 10% contra todos danos e funciona como a band of loss porem infinita. Ele fica no Yama.
    Adicionado sistema de pontuação por hora online, cada 1 hora online = 1 ponto que se pode trocar por itens no npc Points Trader no Yama.
    Adicionado sistema Anti-MC, podendo logar somente 2 contas por ip.
    Adicionado 3 bosses espalhados pelo mapa (Earth).
    Adicionado sistema de forja podendo criar o melhor set, armas free e o item para virar Zeno.
     Adicionado sistema de upgrade fazendo seu item ficar mais forte.
     Adicionado transformação ultra god para todas as vocações, sendo pega no templo de reset ao lado do esquerdo do templo. Necessário ter level 800 e possuir 100 God Essences que dropam do Ultra God Bills em God Island.Para entrar no templo de reset é necessário possuir 1 reset, para dar reset necessita ter level 800 e digitar o comando "!reset", você voltara para o level 100 com o hp/mp de um player level 100 mas ganhara acesso a área de reset que tem o npc de ultra god e a área de forja.
    Nova moeda acima de Gold sendo ela Blue God equivalente a 100 Gold Bars.
     Area de evento pvp e dice/bag adicionada no Yama.
     Area vip adicionada.
     Adicionado 2 sets novos free, 2 armas free, 2 shields free, senzu free (God Senzu), Senzu vip (Mystic Senzu), Vados staff free, Whiss staff vip.
     Vocações que antes era vip na v1 se pega na capsule ao lado direito do templo.
     Algumas modificações no mapa, hunts, quest.
    Por enquanto é só isso que estou lembrando,conforme eu lembro edito o tópico.
     
    Gostou ? Clique em Gostei logo abaixo.
     
    Para consertar o erro da loteria só executar essa query na sua database:
    CREATE TABLE `lottery` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `item` varchar(255) NOT NULL, `world_id` tinyint(2) unsigned NOT NULL default '0', `item_name` varchar(255) NOT NULL, `date` varchar(256) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;  
     
     
     Downloads
     
    Server (Distro para windows e linux já compilada)      Scan
    Cliente    Scan
    Sources     Scan
    Site (Modern Acc)    Scan
    Database     Scan
     
     
     
     
    Creditos server: Kramer, WhiteBubble
    Creditos site: @Hastafaru e a WhiteBubble por adaptar ao server
    Creditos source: Fir3element e WhiteBubble por aumentar limite de efeitos e por skill fist skill para aumentar attack speed.
     
  12. Gostei
    Bruno Maciell deu reputação a L3K0T em Deixando as Sprites mais Rápida no OTclient   
    Bom galera hoje vou ensinar a vocês como acelerar as Sprites do seu jogo pra ficar como do Tíbia Global, assista o vídeo abaixo que você vai entender.
     
     
     
    Primeiramente vá na source do seu OTClient 0.6.6 "otclient-0.6.6\src\client"ou superior e abre o game.cpp depois de aberto procure.
     
    if(version >= 1050) mude para 
    if(version <= 1050) Salve e Agora vá em const.h e procure.
     
    INVISIBLE_TICKS_PER_FRAME = 500, ITEM_TICKS_PER_FRAME = 500, mude para
    INVISIBLE_TICKS_PER_FRAME = 100, ITEM_TICKS_PER_FRAME = 100,  
    Feito isso salve e da Rebuild no compilador do otcliente que voce usa "recompilação limpa"
     

     
    Depois de compilar vá no seu Object Builder e compile seu cliente pra "Improved Animations"
     

     
    pronto, agora só usar  
     
     
    ATENÇÃO
    USE SOMENTE EM CASO DE ERROS DO OTCLIENT, CASO NÃO LER SEU CLIENTE;
     
    ache
    function load() local version = g_game.getClientVersion() em baixo coloca
     
    g_game.enableFeature(GameSpritesU32)  
  13. Gostei
    Bruno Maciell deu reputação a Cat em Sistema de Medalhões! Solicite aqui!   
    » página de medalhões 
     
    »» Medalhões Automáticos ««
    Curtidas: Medalhões que evoluem conforme as reações de outras pessoas em suas publicações.

     
    Posts:  EM BREVE
     
     
     
    »» Medalhões Não Automáticos ««
    Concedidos pela Staff
     
    Seguidores no Perfil: 
     
    Tempo de Registro no TibiaKing: 
     
    Medalhões do Tibia King:
     
     
  14. Gostei
    Bruno Maciell deu reputação a L3K0T em Fade Tile OTCliente 0.6.6   
    by L3K0T
     
    Fade Tile
    Bom galera hoje vou ensina a vocês como deixar seu mapa com a alteração fade tile, exatamente igual ao vídeo do meu canal abaixo, com apenas algumas "alterações" na SOURCE do seu Otclient 0.6.6.
     
    VÍDEO;;
     
    TUTORIALBY L3K0T
     
     
     
    1° VÁ EM  na source do seu otcliente src\client e abra o mapview.cpp e ache;;
     
    m_optimizedSize = Size(g_map.getAwareRange().horizontal(), g_map.getAwareRange().vertical()) * Otc::TILE_PIXELS; abaixo coloque;;
    m_fadeL3K0TTime = 150; ache;;
    void MapView::draw(const Rect& rect) { // update visible tiles cache when needed if(m_mustUpdateVisibleTilesCache || m_updateTilesPos > 0) updateVisibleTilesCache(m_mustUpdateVisibleTilesCache ? 0 : m_updateTilesPos); float scaleFactor = m_tileSize/(float)Otc::TILE_PIXELS; Position cameraPosition = getCameraPosition(); int drawFlags = 0; if(unlikely(g_map.isForcingAnimations()) || (likely(g_map.isShowingAnimations()) && m_viewMode == NEAR_VIEW)) drawFlags = Otc::DrawAnimations; if(m_viewMode == NEAR_VIEW) drawFlags |= Otc::DrawGround | Otc::DrawGroundBorders | Otc::DrawWalls | Otc::DrawItems | Otc::DrawCreatures | Otc::DrawEffects | Otc::DrawMissiles; else drawFlags |= Otc::DrawGround | Otc::DrawGroundBorders | Otc::DrawWalls | Otc::DrawItems; if(m_mustDrawVisibleTilesCache || (drawFlags & Otc::DrawAnimations)) { m_framebuffer->bind(); if(m_mustCleanFramebuffer) { Rect clearRect = Rect(0, 0, m_drawDimension * m_tileSize); g_painter->setColor(Color::black); g_painter->drawFilledRect(clearRect); if(m_drawLights) { m_lightView->reset(); m_lightView->resize(m_framebuffer->getSize()); Light ambientLight; if(cameraPosition.z <= Otc::SEA_FLOOR) { ambientLight = g_map.getLight(); } else { ambientLight.color = 215; ambientLight.intensity = 0; } ambientLight.intensity = std::max<int>(m_minimumAmbientLight*255, ambientLight.intensity); m_lightView->setGlobalLight(ambientLight); } } g_painter->setColor(Color::white); auto it = m_cachedVisibleTiles.begin(); auto end = m_cachedVisibleTiles.end(); for(int z=m_cachedLastVisibleFloor;z>=m_cachedFirstVisibleFloor;--z) { while(it != end) { const TilePtr& tile = *it; Position tilePos = tile->getPosition(); if(tilePos.z != z) break; else ++it; if (g_map.isCovered(tilePos, m_cachedFirstVisibleFloor)) tile->draw(transformPositionTo2D(tilePos, cameraPosition), scaleFactor, drawFlags); else tile->draw(transformPositionTo2D(tilePos, cameraPosition), scaleFactor, drawFlags, m_lightView.get()); } if(drawFlags & Otc::DrawMissiles) { for(const MissilePtr& missile : g_map.getFloorMissiles(z)) { missile->draw(transformPositionTo2D(missile->getPosition(), cameraPosition), scaleFactor, drawFlags & Otc::DrawAnimations, m_lightView.get()); } } } m_framebuffer->release(); // generating mipmaps each frame can be slow in older cards //m_framebuffer->getTexture()->buildHardwareMipmaps(); m_mustDrawVisibleTilesCache = false; } altere para;;
    void MapView::draw(const Rect& rect) { // update visible tiles cache when needed if(m_mustUpdateVisibleTilesCache || m_updateTilesPos > 0) updateVisibleTilesCache(m_mustUpdateVisibleTilesCache ? 0 : m_updateTilesPos); float scaleFactor = m_tileSize/(float)Otc::TILE_PIXELS; Position cameraPosition = getCameraPosition(); int drawFlags = 0; if(unlikely(g_map.isForcingAnimations()) || (likely(g_map.isShowingAnimations()) && m_viewMode == NEAR_VIEW)) drawFlags = Otc::DrawAnimations; if(m_viewMode == NEAR_VIEW) drawFlags |= Otc::DrawGround | Otc::DrawGroundBorders | Otc::DrawWalls | Otc::DrawItems | Otc::DrawCreatures | Otc::DrawEffects | Otc::DrawMissiles; else drawFlags |= Otc::DrawGround | Otc::DrawGroundBorders | Otc::DrawWalls | Otc::DrawItems; if(m_mustDrawVisibleTilesCache || (drawFlags & Otc::DrawAnimations)) { m_framebuffer->bind(); if(m_mustCleanFramebuffer) { Rect clearRect = Rect(0, 0, m_drawDimension * m_tileSize); g_painter->setColor(Color::black); g_painter->drawFilledRect(clearRect); if(m_drawLights) { m_lightView->reset(); m_lightView->resize(m_framebuffer->getSize()); Light ambientLight; if(cameraPosition.z <= Otc::SEA_FLOOR) { ambientLight = g_map.getLight(); } else { ambientLight.color = 215; ambientLight.intensity = 0; } ambientLight.intensity = std::max<int>(m_minimumAmbientLight*255, ambientLight.intensity); m_lightView->setGlobalLight(ambientLight); } } g_painter->setColor(Color::white); int ms = stdext::millis(); auto it = m_cachedVisibleTiles.begin(); auto end = m_cachedVisibleTiles.end(); for(int z=m_cachedLastVisibleFloor;z>=m_cachedFirstVisibleFloor;--z) { while(it != end) { const TilePtr& tile = *it; Position tilePos = tile->getPosition(); if(tilePos.z != z) break; else ++it; if (m_mustDrawFadeInTilesCache && ((ms - m_fadeStart) / (float)m_fadeL3K0TTime) < 1.0 && z <= m_fadeCachedLastVisibleFloor) g_painter->setOpacity(((float)((int)(ms - m_fadeStart) % m_fadeL3K0TTime) / (float)m_fadeL3K0TTime)); if (g_map.isCovered(tilePos, m_cachedFirstVisibleFloor)) tile->draw(transformPositionTo2D(tilePos, cameraPosition), scaleFactor, drawFlags); else tile->draw(transformPositionTo2D(tilePos, cameraPosition), scaleFactor, drawFlags, m_lightView.get()); if (m_mustDrawFadeInTilesCache) g_painter->resetOpacity(); } if(drawFlags & Otc::DrawMissiles) { for(const MissilePtr& missile : g_map.getFloorMissiles(z)) { missile->draw(transformPositionTo2D(missile->getPosition(), cameraPosition), scaleFactor, drawFlags & Otc::DrawAnimations, m_lightView.get()); } } } if (m_mustDrawFadeOutTilesCache && ((ms - m_fadeStart) / (float)m_fadeL3K0TTime) < 1.0) { g_painter->setOpacity(1.0 - ((float)((int)(ms - m_fadeStart) % m_fadeL3K0TTime) / (float)m_fadeL3K0TTime)); auto f_it = m_cachedFadeTiles.begin(); auto f_end = m_cachedFadeTiles.end(); for (int z = m_fadeCachedLastVisibleFloor; z >= m_fadeCachedFirstVisibleFloor; --z) { while (f_it != f_end) { const TilePtr& tile = *f_it; Position tilePos = tile->getPosition(); if (tilePos.z != z) break; else ++f_it; if (g_map.isCovered(tilePos, m_fadeCachedFirstVisibleFloor)) tile->draw(transformPositionTo2D(tilePos, cameraPosition), scaleFactor, drawFlags); else tile->draw(transformPositionTo2D(tilePos, cameraPosition), scaleFactor, drawFlags, m_lightView.get()); } } g_painter->setOpacity(1); } m_framebuffer->release(); // generating mipmaps each frame can be slow in older cards //m_framebuffer->getTexture()->buildHardwareMipmaps(); m_mustDrawVisibleTilesCache = false; } float fadeOpacity = 1.0f; if(!m_shaderSwitchDone && m_fadeOutTime > 0) { fadeOpacity = 1.0f - (m_fadeTimer.timeElapsed() / m_fadeOutTime); if(fadeOpacity < 0.0f) { m_shader = m_nextShader; m_nextShader = nullptr; m_shaderSwitchDone = true; m_fadeTimer.restart(); } } if(m_shaderSwitchDone && m_shader && m_fadeInTime > 0) fadeOpacity = std::min<float>(m_fadeTimer.timeElapsed() / m_fadeInTime, 1.0f); Rect srcRect = calcFramebufferSource(rect.size()); Point drawOffset = srcRect.topLeft(); if(m_shader && g_painter->hasShaders() && g_graphics.shouldUseShaders() && m_viewMode == NEAR_VIEW) { Rect framebufferRect = Rect(0,0, m_drawDimension * m_tileSize); Point center = srcRect.center(); Point globalCoord = Point(cameraPosition.x - m_drawDimension.width()/2, -(cameraPosition.y - m_drawDimension.height()/2)) * m_tileSize; m_shader->bind(); m_shader->setUniformValue(ShaderManager::MAP_CENTER_COORD, center.x / (float)framebufferRect.width(), 1.0f - center.y / (float)framebufferRect.height()); m_shader->setUniformValue(ShaderManager::MAP_GLOBAL_COORD, globalCoord.x / (float)framebufferRect.height(), globalCoord.y / (float)framebufferRect.height()); m_shader->setUniformValue(ShaderManager::MAP_ZOOM, scaleFactor); g_painter->setShaderProgram(m_shader); } g_painter->setColor(Color::white); g_painter->setOpacity(fadeOpacity); glDisable(GL_BLEND); #if 0 // debug source area g_painter->saveAndResetState(); m_framebuffer->bind(); g_painter->setColor(Color::green); g_painter->drawBoundingRect(srcRect, 2); m_framebuffer->release(); g_painter->restoreSavedState(); m_framebuffer->draw(rect); #else m_framebuffer->draw(rect, srcRect); #endif g_painter->resetShaderProgram(); g_painter->resetOpacity(); glEnable(GL_BLEND); // this could happen if the player position is not known yet if(!cameraPosition.isValid()) return; float horizontalStretchFactor = rect.width() / (float)srcRect.width(); float verticalStretchFactor = rect.height() / (float)srcRect.height(); // avoid drawing texts on map in far zoom outs if(m_viewMode == NEAR_VIEW) { for(const CreaturePtr& creature : m_cachedFloorVisibleCreatures) { if(!creature->canBeSeen()) continue; PointF jumpOffset = creature->getJumpOffset() * scaleFactor; Point creatureOffset = Point(16 - creature->getDisplacementX(), - creature->getDisplacementY() - 2); Position pos = creature->getPosition(); Point p = transformPositionTo2D(pos, cameraPosition) - drawOffset; p += (creature->getDrawOffset() + creatureOffset) * scaleFactor - Point(stdext::round(jumpOffset.x), stdext::round(jumpOffset.y)); p.x = p.x * horizontalStretchFactor; p.y = p.y * verticalStretchFactor; p += rect.topLeft(); int flags = 0; if(m_drawNames){ flags = Otc::DrawNames; } if(m_drawHealthBars) { flags |= Otc::DrawBars; } creature->drawInformation(p, g_map.isCovered(pos, m_cachedFirstVisibleFloor), rect, flags); } } // lights are drawn after names and before texts if(m_drawLights) m_lightView->draw(rect, srcRect); if(m_viewMode == NEAR_VIEW && m_drawTexts) { for(const StaticTextPtr& staticText : g_map.getStaticTexts()) { Position pos = staticText->getPosition(); // ony draw static texts from current camera floor, unless yells //if(pos.z != cameraPosition.z && !staticText->isYell()) // continue; if(pos.z != cameraPosition.z && staticText->getMessageMode() == Otc::MessageNone) continue; Point p = transformPositionTo2D(pos, cameraPosition) - drawOffset; p.x = p.x * horizontalStretchFactor; p.y = p.y * verticalStretchFactor; p += rect.topLeft(); staticText->drawText(p, rect); } for(const AnimatedTextPtr& animatedText : g_map.getAnimatedTexts()) { Position pos = animatedText->getPosition(); /* // only draw animated texts from visible floors if(pos.z < m_cachedFirstVisibleFloor || pos.z > m_cachedLastVisibleFloor) continue; // dont draw animated texts from covered tiles if(pos.z != cameraPosition.z && g_map.isCovered(pos, m_cachedFirstVisibleFloor)) continue; */ if(pos.z != cameraPosition.z) continue; Point p = transformPositionTo2D(pos, cameraPosition) - drawOffset; p.x = p.x * horizontalStretchFactor; p.y = p.y * verticalStretchFactor; p += rect.topLeft(); animatedText->drawText(p, rect); } } } ache;;
    void MapView::updateVisibleTilesCache(int start) { if(start == 0) { m_cachedFirstVisibleFloor = calcFirstVisibleFloor(); m_cachedLastVisibleFloor = calcLastVisibleFloor(); assert(m_cachedFirstVisibleFloor >= 0 && m_cachedLastVisibleFloor >= 0 && m_cachedFirstVisibleFloor <= Otc::MAX_Z && m_cachedLastVisibleFloor <= Otc::MAX_Z); if(m_cachedLastVisibleFloor < m_cachedFirstVisibleFloor) m_cachedLastVisibleFloor = m_cachedFirstVisibleFloor; m_cachedFloorVisibleCreatures.clear(); m_cachedVisibleTiles.clear(); m_mustCleanFramebuffer = true; m_mustDrawVisibleTilesCache = true; m_mustUpdateVisibleTilesCache = false; m_updateTilesPos = 0; } else m_mustCleanFramebuffer = false; // there is no tile to render on invalid positions Position cameraPosition = getCameraPosition(); if(!cameraPosition.isValid()) return; bool stop = false; // clear current visible tiles cache m_cachedVisibleTiles.clear(); m_mustDrawVisibleTilesCache = true; m_updateTilesPos = 0; // cache visible tiles in draw order // draw from last floor (the lower) to first floor (the higher) for(int iz = m_cachedLastVisibleFloor; iz >= m_cachedFirstVisibleFloor && !stop; --iz) { if(m_viewMode <= FAR_VIEW) { const int numDiagonals = m_drawDimension.width() + m_drawDimension.height() - 1; // loop through / diagonals beginning at top left and going to top right for(int diagonal = 0; diagonal < numDiagonals && !stop; ++diagonal) { // loop current diagonal tiles int advance = std::max<int>(diagonal - m_drawDimension.height(), 0); for(int iy = diagonal - advance, ix = advance; iy >= 0 && ix < m_drawDimension.width() && !stop; --iy, ++ix) { // only start really looking tiles in the desired start if(m_updateTilesPos < start) { m_updateTilesPos++; continue; } // avoid rendering too much tiles at once if((int)m_cachedVisibleTiles.size() > MAX_TILE_DRAWS && m_viewMode >= HUGE_VIEW) { stop = true; break; } // position on current floor //TODO: check position limits Position tilePos = cameraPosition.translated(ix - m_virtualCenterOffset.x, iy - m_virtualCenterOffset.y); // adjust tilePos to the wanted floor tilePos.coveredUp(cameraPosition.z - iz); if(const TilePtr& tile = g_map.getTile(tilePos)) { // skip tiles that have nothing if(!tile->isDrawable()) continue; // skip tiles that are completely behind another tile if(g_map.isCompletelyCovered(tilePos, m_cachedFirstVisibleFloor)) continue; m_cachedVisibleTiles.push_back(tile); } m_updateTilesPos++; } } } else { // cache tiles in spiral mode static std::vector<Point> m_spiral; if(start == 0) { m_spiral.resize(m_drawDimension.area()); int width = m_drawDimension.width(); int height = m_drawDimension.height(); int tpx = width/2 - 2; int tpy = height/2 - 2; int count = 0; Rect area(0, 0, m_drawDimension); m_spiral[count++] = Point(tpx+1,tpy+1); for(int step = 1; tpx >= 0 || tpy >= 0; ++step, --tpx, --tpy) { int qs = 2*step; Rect lines[4] = { Rect(tpx, tpy, qs, 1), Rect(tpx + qs, tpy, 1, qs), Rect(tpx + 1, tpy + qs, qs, 1), Rect(tpx, tpy + 1, 1, qs), }; for(int i=0;i<4;++i) { int sx = std::max<int>(lines[i].left(), area.left()); int ex = std::min<int>(lines[i].right(), area.right()); int sy = std::max<int>(lines[i].top(), area.top()); int ey = std::min<int>(lines[i].bottom(), area.bottom()); for(int qx=sx;qx<=ex;++qx) for(int qy=sy;qy<=ey;++qy) m_spiral[count++] = Point(qx, qy); } } } for(m_updateTilesPos = start; m_updateTilesPos < (int)m_spiral.size(); ++m_updateTilesPos) { // avoid rendering too much tiles at once if((int)m_cachedVisibleTiles.size() > MAX_TILE_DRAWS) { stop = true; break; } const Point& p = m_spiral[m_updateTilesPos]; Position tilePos = cameraPosition.translated(p.x - m_virtualCenterOffset.x, p.y - m_virtualCenterOffset.y); tilePos.coveredUp(cameraPosition.z - iz); if(const TilePtr& tile = g_map.getTile(tilePos)) { if(tile->isDrawable()) m_cachedVisibleTiles.push_back(tile); } } } } if(!stop) { m_updateTilesPos = 0; m_spiral.clear(); } if(start == 0 && m_viewMode <= NEAR_VIEW) m_cachedFloorVisibleCreatures = g_map.getSightSpectators(cameraPosition, false); } altere para;;
    void MapView::updateVisibleTilesCache(int start) { int m_oldCachedFirstVisibleFloor = m_cachedFirstVisibleFloor; int m_oldCachedLastVisibleFloor = m_cachedLastVisibleFloor; bool m_mustUpdateFadeTilesCache = false; if(start == 0) { m_cachedFirstVisibleFloor = calcFirstVisibleFloor(); m_cachedLastVisibleFloor = calcLastVisibleFloor(); if (m_drawFadeEffect && m_oldCachedFirstVisibleFloor != m_cachedFirstVisibleFloor) m_mustUpdateFadeTilesCache = true; assert(m_cachedFirstVisibleFloor >= 0 && m_cachedLastVisibleFloor >= 0 && m_cachedFirstVisibleFloor <= Otc::MAX_Z && m_cachedLastVisibleFloor <= Otc::MAX_Z); if(m_cachedLastVisibleFloor < m_cachedFirstVisibleFloor) m_cachedLastVisibleFloor = m_cachedFirstVisibleFloor; m_cachedFloorVisibleCreatures.clear(); m_cachedVisibleTiles.clear(); m_mustCleanFramebuffer = true; m_mustDrawVisibleTilesCache = true; m_mustUpdateVisibleTilesCache = false; m_updateTilesPos = 0; } else m_mustCleanFramebuffer = false; // there is no tile to render on invalid positions Position cameraPosition = getCameraPosition(); if(!cameraPosition.isValid()) return; bool stop = false; // clear current visible tiles cache m_cachedVisibleTiles.clear(); m_mustDrawVisibleTilesCache = true; m_updateTilesPos = 0; // cache fade visible tiles // draw from first floor that is currently visible (the higher) to the last seen visible floor // effect is only present in view mode lower than FAR_VIEW. if (m_viewMode <= FAR_VIEW && m_mustUpdateFadeTilesCache) { m_cachedFadeTiles.clear(); if (m_oldCachedFirstVisibleFloor < m_cachedFirstVisibleFloor) { m_fadeCachedLastVisibleFloor = m_cachedFirstVisibleFloor-1; // The lowest floor will be the highest floor in cache, at least one floor above it. m_fadeCachedFirstVisibleFloor = m_oldCachedFirstVisibleFloor; // The highest floor will be the old highest visible floor. m_mustDrawFadeOutTilesCache = true; m_mustDrawFadeInTilesCache = false; } else { m_fadeCachedLastVisibleFloor = m_oldCachedFirstVisibleFloor - 1; // The lowest floor will be the highest floor in cache, at least one floor above it. m_fadeCachedFirstVisibleFloor = m_cachedFirstVisibleFloor; // The highest floor will be the old highest visible floor. m_mustDrawFadeOutTilesCache = false; m_mustDrawFadeInTilesCache = true; } if (m_lastCameraFloor != cameraPosition.z) { m_lastCameraFloor = cameraPosition.z; m_fadeStart = 0; } else { m_fadeStart = stdext::millis(); } for (int iz = m_fadeCachedLastVisibleFloor; iz >= m_fadeCachedFirstVisibleFloor; --iz) { const int numDiagonals = m_drawDimension.width() + m_drawDimension.height() - 1; // loop through / diagonals beginning at top left and going to top right for (int diagonal = 0; diagonal < numDiagonals; ++diagonal) { // loop current diagonal tiles int advance = std::max<int>(diagonal - m_drawDimension.height(), 0); for (int iy = diagonal - advance, ix = advance; iy >= 0 && ix < m_drawDimension.width(); --iy, ++ix) { // position on current floor // TODO: check position limits Position tilePos = cameraPosition.translated(ix - m_virtualCenterOffset.x, iy - m_virtualCenterOffset.y); // adjust tilePos to the wanted floor tilePos.coveredUp(cameraPosition.z - iz); if (const TilePtr& tile = g_map.getTile(tilePos)) { //skip tiles that have nothing if (!tile->isDrawable()) continue; //skip tiles that are completely behind another tile if (g_map.isCompletelyCovered(tilePos, m_fadeCachedFirstVisibleFloor)) continue; m_cachedFadeTiles.push_back(tile); } } } } } // cache visible tiles in draw order // draw from last floor (the lower) to first floor (the higher) for(int iz = m_cachedLastVisibleFloor; iz >= m_cachedFirstVisibleFloor && !stop; --iz) { if(m_viewMode <= FAR_VIEW) { const int numDiagonals = m_drawDimension.width() + m_drawDimension.height() - 1; // loop through / diagonals beginning at top left and going to top right for(int diagonal = 0; diagonal < numDiagonals && !stop; ++diagonal) { // loop current diagonal tiles int advance = std::max<int>(diagonal - m_drawDimension.height(), 0); for(int iy = diagonal - advance, ix = advance; iy >= 0 && ix < m_drawDimension.width() && !stop; --iy, ++ix) { // only start really looking tiles in the desired start if(m_updateTilesPos < start) { m_updateTilesPos++; continue; } // avoid rendering too much tiles at once if((int)m_cachedVisibleTiles.size() > MAX_TILE_DRAWS && m_viewMode >= HUGE_VIEW) { stop = true; break; } // position on current floor //TODO: check position limits Position tilePos = cameraPosition.translated(ix - m_virtualCenterOffset.x, iy - m_virtualCenterOffset.y); // adjust tilePos to the wanted floor tilePos.coveredUp(cameraPosition.z - iz); if(const TilePtr& tile = g_map.getTile(tilePos)) { // skip tiles that have nothing if(!tile->isDrawable()) continue; // skip tiles that are completely behind another tile if(g_map.isCompletelyCovered(tilePos, m_cachedFirstVisibleFloor)) if (m_mustDrawFadeInTilesCache && tilePos.z < m_fadeCachedLastVisibleFloor + 1) continue; m_cachedVisibleTiles.push_back(tile); } m_updateTilesPos++; } } } else { // cache tiles in spiral mode static std::vector<Point> m_spiral; if(start == 0) { m_spiral.resize(m_drawDimension.area()); int width = m_drawDimension.width(); int height = m_drawDimension.height(); int tpx = width/2 - 2; int tpy = height/2 - 2; int count = 0; Rect area(0, 0, m_drawDimension); m_spiral[count++] = Point(tpx+1,tpy+1); for(int step = 1; tpx >= 0 || tpy >= 0; ++step, --tpx, --tpy) { int qs = 2*step; Rect lines[4] = { Rect(tpx, tpy, qs, 1), Rect(tpx + qs, tpy, 1, qs), Rect(tpx + 1, tpy + qs, qs, 1), Rect(tpx, tpy + 1, 1, qs), }; for(int i=0;i<4;++i) { int sx = std::max<int>(lines[i].left(), area.left()); int ex = std::min<int>(lines[i].right(), area.right()); int sy = std::max<int>(lines[i].top(), area.top()); int ey = std::min<int>(lines[i].bottom(), area.bottom()); for(int qx=sx;qx<=ex;++qx) for(int qy=sy;qy<=ey;++qy) m_spiral[count++] = Point(qx, qy); } } } for(m_updateTilesPos = start; m_updateTilesPos < (int)m_spiral.size(); ++m_updateTilesPos) { // avoid rendering too much tiles at once if((int)m_cachedVisibleTiles.size() > MAX_TILE_DRAWS) { stop = true; break; } const Point& p = m_spiral[m_updateTilesPos]; Position tilePos = cameraPosition.translated(p.x - m_virtualCenterOffset.x, p.y - m_virtualCenterOffset.y); tilePos.coveredUp(cameraPosition.z - iz); if(const TilePtr& tile = g_map.getTile(tilePos)) { if(tile->isDrawable()) m_cachedVisibleTiles.push_back(tile); } } } } if(!stop) { m_updateTilesPos = 0; m_spiral.clear(); } if(start == 0 && m_viewMode <= NEAR_VIEW) m_cachedFloorVisibleCreatures = g_map.getSightSpectators(cameraPosition, false); } ache;;
    void MapView::updateGeometry(const Size& visibleDimension, const Size& optimizedSize) { int tileSize = 0; Size bufferSize; int possiblesTileSizes[] = {1,2,4,8,16,32}; for(int candidateTileSize : possiblesTileSizes) { bufferSize = (visibleDimension + Size(3,3)) * candidateTileSize; if(bufferSize.width() > g_graphics.getMaxTextureSize() || bufferSize.height() > g_graphics.getMaxTextureSize()) break; tileSize = candidateTileSize; if(optimizedSize.width() < bufferSize.width() - 3*candidateTileSize && optimizedSize.height() < bufferSize.height() - 3*candidateTileSize) break; } if(tileSize == 0) { g_logger.traceError("reached max zoom out"); return; } Size drawDimension = visibleDimension + Size(3,3); Point virtualCenterOffset = (drawDimension/2 - Size(1,1)).toPoint(); Point visibleCenterOffset = virtualCenterOffset; ViewMode viewMode = m_viewMode; if(m_autoViewMode) { if(tileSize >= 32 && visibleDimension.area() <= NEAR_VIEW_AREA) viewMode = NEAR_VIEW; else if(tileSize >= 16 && visibleDimension.area() <= MID_VIEW_AREA) viewMode = MID_VIEW; else if(tileSize >= 8 && visibleDimension.area() <= FAR_VIEW_AREA) viewMode = FAR_VIEW; else viewMode = HUGE_VIEW; if(viewMode >= FAR_VIEW) m_multifloor = false; else m_multifloor = true; } // draw actually more than what is needed to avoid massive recalculations on huge views /* if(viewMode >= HUGE_VIEW) { Size oldDimension = drawDimension; drawDimension = (m_framebuffer->getSize() / tileSize); virtualCenterOffset += (drawDimension - oldDimension).toPoint() / 2; } m_viewMode = viewMode; m_visibleDimension = visibleDimension; m_drawDimension = drawDimension; m_tileSize = tileSize; m_virtualCenterOffset = virtualCenterOffset; m_visibleCenterOffset = visibleCenterOffset; m_optimizedSize = optimizedSize; m_framebuffer->resize(bufferSize); requestVisibleTilesCacheUpdate(); } altere para;;
    void MapView::updateGeometry(const Size& visibleDimension, const Size& optimizedSize) { int tileSize = 0; Size bufferSize; int possiblesTileSizes[] = {1,2,4,8,16,32}; for(int candidateTileSize : possiblesTileSizes) { bufferSize = (visibleDimension + Size(3,3)) * candidateTileSize; if(bufferSize.width() > g_graphics.getMaxTextureSize() || bufferSize.height() > g_graphics.getMaxTextureSize()) break; tileSize = candidateTileSize; if(optimizedSize.width() < bufferSize.width() - 3*candidateTileSize && optimizedSize.height() < bufferSize.height() - 3*candidateTileSize) break; } if(tileSize == 0) { g_logger.traceError("reached max zoom out"); return; } Size drawDimension = visibleDimension + Size(3,3); Point virtualCenterOffset = (drawDimension/2 - Size(1,1)).toPoint(); Point visibleCenterOffset = virtualCenterOffset; ViewMode viewMode = m_viewMode; if(m_autoViewMode) { if(tileSize >= 32 && visibleDimension.area() <= NEAR_VIEW_AREA) viewMode = NEAR_VIEW; else if(tileSize >= 16 && visibleDimension.area() <= MID_VIEW_AREA) viewMode = MID_VIEW; else if(tileSize >= 8 && visibleDimension.area() <= FAR_VIEW_AREA) viewMode = FAR_VIEW; else viewMode = HUGE_VIEW; if(viewMode >= FAR_VIEW) m_multifloor = false; else m_multifloor = true; } m_viewMode = viewMode; m_visibleDimension = visibleDimension; m_drawDimension = drawDimension; m_tileSize = tileSize; m_virtualCenterOffset = virtualCenterOffset; m_visibleCenterOffset = visibleCenterOffset; m_optimizedSize = optimizedSize; m_framebuffer->resize(bufferSize); requestVisibleTilesCacheUpdate(); } Agora em  mapview.h
    ache:;;
    stdext::boolean<true> m_shaderSwitchDone; abaixo adicione;;
    //efeito mapa by l3k0t stdext::boolean<true> m_drawFadeEffect; stdext::boolean<false> m_mustDrawFadeOutTilesCache; stdext::boolean<false> m_mustDrawFadeInTilesCache; std::vector<TilePtr> m_cachedFadeTiles; int m_fadeCachedFirstVisibleFloor; int m_lastCameraFloor; int m_fadeCachedLastVisibleFloor; ticks_t m_fadeStart; int m_fadeL3K0TTime;  
    Feito isso é só salvar e compilar com as alterações no modo REBUILDER e bom uso.
    Ajudei?? REP+  
     
    Créditos:
    Criadores do PokezRing
    ReyHammer (criador original)
     
     
     
     
  15. Gostei
    Bruno Maciell deu reputação a L3K0T em New Target OTC 0.6.6 e 0.6.7 - 2020   
    Olá galera, hoje vim trazer um tutorial bem completinho para vocês do sistema de "Target Animada pela source do OTC" renovada para otcliente 0.6.6 e 0.6.7 e espero que gostem  
     
    Imagens do Target Azul;;

     
    Imagens do Target Vermelho;;

     
    VIÍDEO:;;
     
     
    TUTORIAL
    1° Vai na pasta do seu otcliente e ache a pasta da source dele otclient-0.6.6\src\client dentro dela abre o arquivo creature.cpp e procure;;
    void Creature::draw(const Point& dest, float scaleFactor, bool animate, LightView *lightView) { if(!canBeSeen()) return; Point animationOffset = animate ? m_walkOffset : Point(0,0); if(m_showTimedSquare && animate) { g_painter->setColor(m_timedSquareColor); g_painter->drawBoundingRect(Rect(dest + (animationOffset - getDisplacement() + 2)*scaleFactor, Size(28, 28)*scaleFactor), std::max<int>((int)(2*scaleFactor), 1)); g_painter->setColor(Color::white); } if(m_showStaticSquare && animate) { g_painter->setColor(m_staticSquareColor); g_painter->drawBoundingRect(Rect(dest + (animationOffset - getDisplacement())*scaleFactor, Size(Otc::TILE_PIXELS, Otc::TILE_PIXELS)*scaleFactor), std::max<int>((int)(2*scaleFactor), 1)); g_painter->setColor(Color::white); } internalDrawOutfit(dest + animationOffset * scaleFactor, scaleFactor, animate, animate, m_direction); m_footStepDrawn = true; if(lightView) { Light light = rawGetThingType()->getLight(); if(m_light.intensity != light.intensity || m_light.color != light.color) light = m_light; // local player always have a minimum light in complete darkness if(isLocalPlayer() && (g_map.getLight().intensity < 64 || m_position.z > Otc::SEA_FLOOR)) { light.intensity = std::max<uint8>(light.intensity, 3); if(light.color == 0 || light.color > 215) light.color = 215; } if(light.intensity > 0) lightView->addLightSource(dest + (animationOffset + Point(16,16)) * scaleFactor, scaleFactor, light); } } altere para;;
     
    void Creature::draw(const Point& dest, float scaleFactor, bool animate, LightView *lightView) { if(!canBeSeen()) return; Point animationOffset = animate ? m_walkOffset : Point(0,0); /* if(m_showTimedSquare && animate) { g_painter->setColor(m_timedSquareColor); g_painter->drawBoundingRect(Rect(dest + (animationOffset - getDisplacement() + 2)*scaleFactor, Size(28, 28)*scaleFactor), std::max<int>((int)(2*scaleFactor), 1)); g_painter->setColor(Color::white); } if(m_showStaticSquare && animate) { g_painter->setColor(m_staticSquareColor); g_painter->drawBoundingRect(Rect(dest + (animationOffset - getDisplacement())*scaleFactor, Size(Otc::TILE_PIXELS, Otc::TILE_PIXELS)*scaleFactor), std::max<int>((int)(2*scaleFactor), 1)); g_painter->setColor(Color::white); } */ if(m_showTimedSquare && animate) { /*ImagePtr L3K0Tt = Image::load("data/images/target.png"); //se preferir usar por imagem TexturePtr L3K0T = TexturePtr(new Texture(L3K0Tt, false)); g_painter->drawTexturedRect(Rect(dest + (animationOffset - getDisplacement() + 2)*scaleFactor, Size(L3K0T->getHeight(), L3K0T->getWidth())*scaleFactor), L3K0T);*/ EffectPtr efeitoL3K0T = EffectPtr(new Effect()); efeitoL3K0T->setId(653); //id da sprite do efeito g_painter->setColor(m_timedSquareColor); Rect rect = Rect(dest + (animationOffset - getDisplacement())*scaleFactor, Size(Otc::TILE_PIXELS, Otc::TILE_PIXELS)*scaleFactor); g_painter->drawTexturedRect(rect, efeitoL3K0T->getThingType()->getTexture(0)); g_painter->setColor(Color::white); g_painter->setColor(Color::white); // by L3K0T g_painter->setOpacity(0.9); } if(m_showStaticSquare && animate) { /*ImagePtr L3K0Tt = Image::load("data/images/target.png"); //se preferir usar por imagem TexturePtr L3K0T = TexturePtr(new Texture(L3K0Tt, false)); g_painter->drawTexturedRect(Rect(dest + (animationOffset - getDisplacement() + 2)*scaleFactor, Size(L3K0T->getHeight(), L3K0T->getWidth())*scaleFactor), L3K0T);*/ EffectPtr efeitoL3K0T = EffectPtr(new Effect()); efeitoL3K0T->setId(653); //id da sprite do efeito g_painter->setColor(m_staticSquareColor); Rect rect = Rect(dest + (animationOffset - getDisplacement())*scaleFactor, Size(Otc::TILE_PIXELS, Otc::TILE_PIXELS)*scaleFactor); g_painter->drawTexturedRect(rect, efeitoL3K0T->getThingType()->getTexture(0)); g_painter->setColor(Color::white); //1 para não piscar e fixar no vermelho } internalDrawOutfit(dest + animationOffset * scaleFactor, scaleFactor, animate, animate, m_direction); m_footStepDrawn = true; if(lightView) { Light light = rawGetThingType()->getLight(); if(m_light.intensity != light.intensity || m_light.color != light.color) light = m_light; // local player always have a minimum light in complete darkness if(isLocalPlayer() && (g_map.getLight().intensity < 64 || m_position.z > Otc::SEA_FLOOR)) { light.intensity = std::max<uint8>(light.intensity, 3); if(light.color == 0 || light.color > 215) light.color = 215; } if(light.intensity > 0) lightView->addLightSource(dest + (animationOffset + Point(16,16)) * scaleFactor, scaleFactor, light); } } salve.
     
     2° agora volte na pasta da source do otclient e abra o arquivo thingtype.h e procure por;;
    const TexturePtr& getTexture(int animationPhase); altere para
    /*const TexturePtr& getTexture(int animationPhase);*/ depois ache;;
    std::vector<int> getSprites() { return m_spritesIndex; } abaixo cole;;
    const TexturePtr& getTexture(int animationPhase); dps é só abrir o object guilder e importar o efeito do target;; >>>>> effect_653.obd  tem outras sprite doadas por mim segue o link 
     
     
    Depois de recortar é só por o efeito no otc e colocar o ID da sprite ali aonde tá o numero 653 no código.
     
    Ajudei?? REP+  
     
    Créditos:;
    -Eu por alterar outras coisas que faltou.
    -Jair Kevick (código base)
     

  16. Gostei
    Bruno Maciell deu reputação a alun0n0v0 em Base Poke Hand antiga   
    Ola Galera Venho trazer uma base que todos nos adorava, a Poke Hand(Antiga) sim é elas mesmo estou com ela alguns anos baixada em meu pc e venho traser para a comunidade ela, etão vamos la.
     
    Base Poke hand
    Shiny e mega
    Sistema de Auto loot
    respaw de shiny free
    Mega pokemon 
    sistema de bike
    sistema de Held T1 ao T7
    50 Quest
    Sistema de Rare candy e Boost stone
    Master ball
    -----------------------------------------------------------------------------
     
    download:  http://www.mediafire.com/file/vjbpo5m3b6x6w5p/Base_Hand_g.rar/file
    Scan: https://www.virustotal.com/gui/url/6efa9873650435768ab6d5817919c8c2201006a36d09448a01b9619bf0bdd41d/detection
    -------------------------------------------------------------------------------------
     
    Creditos: a Mim
     Hang caxias ( desenvovedor da base)
     
     
     
    ME PERDO PESSOAL SE ESTA FALTANDO ALGO, MAS É MEU PRIMEIRO POST NO TK. PESSOAL DEIXA UM UP PARA FORTALECER
     
  17. Gostei
    Bruno Maciell deu reputação a .HuRRiKaNe em Global Map Full - By NvSo   
    Informações:
    » Map RL 8.60, Com Novas Áreas;
    » Distro 100% - Sem Erros;
    » Magias Novas;
    » Monstros 100% RL;
    » Addons 100% RL;
    » NPC's 98% RL;
    » Addon Bonus 100%;
    » Items 95%;
    » War System 100%;
    » Quests RL 90%;
    » Servidor 100% Estável;

    Screen's:




    Download Server / Scan:
    » Download Server:
    http://www.mediafire.com/?9dw90td7e8bp955

    » Scan Server:
    OBS: Não realizei o scan porque o arquivo ultrapassa o limite de 32MB no virustotal!

    Account GOD:
    tibia / tibia

    Créditos:
    NvSo
    Kaiser e The OTX Team
    TheForgotten Server
    Cipsoft
    Animal Pak
  18. Curtir
    Bruno Maciell deu reputação a LeoTK em [OPEN-SOURCE] POKEMASTERX   
    Salve galera estou repostando esse servidor aqui porque só existem em outro fórum decidi trazer para cá porque tem uma galera que esta procurando features desse projeto então resolvi postar pra galera usar ele de base ou até usa-lo em seu todo Direto e rápido \/ Créditos : Dono do servidor Rodrigo e kttallan Postando a pedido dele FEATURES ~~ - SHINY CHARM SYSTEM - POKE CARD SYSTEM - VARIAS QUESTS COMO CYBER E CLONES - DAILY QUESTS - 3° GERAÇÃO - SISTEMA DE CLAN, DUNGEUN DE CLAN E SKILL DE CLAN - EMBEDDED TOWER - BROTHERHOOD - Market System FILES BASE POKEMASTERX SERVIDOR>> https://www.mediafire.com/file/5xumyzyoyoap089/servidor.zip/file SOURCES>> https://www.mediafire.com/file/gmsgv5adofj9ms5/source.zip/file CLIENTE>> https://www.mediafire.com/file/p123k5566ir5ztf/OTC.zip/file SITE>> https://www.mediafire.com/file/w6k8v379p076chz/html.zip/file Créditos pelo excetuável Windows
    Deadpool
     
    Download ><
    https://www.mediafire.com/file/9b9otysmodss0b7/dll_e_.exe.rar/file
     
    Scanner >< Creditos <> JulianoZN
    https://www.virustotal.com/gui/file/09454a58b8e4b6e93cac68d3491af25cda0840c480e03a52b1403e821cdd27c7/detection
     
    Créditos pelo excetuável Windows
    Drakopoulos
     
    Download ><
    https://www.mediafire.com/file/h5llyn57j8z9d1c/MasterX_Visual_C++_x64_+_Dlls.7z/file
     
    Scanner >< Creditos <> JulianoZN
    https://www.virustotal.com/gui/file/775b33bb559284abe78df63524cd6ce421c85dccd36d333ec827681acd80b998/detection
     
    Créditos pelo cliente/source
    Walox
     
    Download >< Mega.nz
    https://mega.nz/#F!wIwzkDxA!kIDcEyVUNOfMPO1R3Zj8Qw
     
     
     
     
    Scanner > Baixando para fazer o scanner
     
     
     
     
     
    Prints

     

     

     
    Scanner
    Servidor >
    https://www.virustotal.com/gui/file/d3878f934f4953705e042c67472b06ee52180b49b1e46791d6595bbb47b63ff7/detection
     
    Source >
     
    https://www.virustotal.com/gui/file/e1d9df90d4a3f3da091d7d4a652a1a04200ee858bbec7511de6653c5872fc4e8/detection
     
    OTC
     
    https://www.virustotal.com/gui/file/b2ef9894a65c2baf3a42b9d72fde57d7112e5bee958374f0e2fe272fa2a002ba/detection
     
    Site
    https://www.virustotal.com/gui/file/668974f55994e084a5e0a02307e10ec8abddaae9416aca1c9c695ae655087154/detection
  19. Curtir
    Bruno Maciell deu reputação a GamerGoiano em PokeAimar (Level System) 8.54 2020   
    Me mandaram esse servidor e eu decidi deixar ele jogável porque muita gente tinha dificuldade em deixar online.
    Como deixar online:
    Basta criar um banco de dados com o xampp (use o xampp mais recente), com o nome poketibia e do lado onde está utf, escolhe Agrupamento (Colation) após isso é só importar o banco de dados que ta junto com o servidor.
    Ai é só abrir o servidor, esperar carregar e depois abrir o cliente e logar 
    Conta god: GOD / 123456
    Download: https://www.mediafire.com/file/3atv44omlf3f036/PokeAimar.rar/file
    Vem com Sources e SPR+Dat Editável
    Scan: https://www.virustotal.com/gui/file/828a6e443c29221b9cd46f3fffe5f65c63bbb8e8ffc109a4fc91554d9c10e752/detection
    Créditos: Kaboflow, PDA, Psoul, Pstorm, Gengo, TFS Team, Cipsoft, DxP, PokemasterX.
    É um mistão de scripts do fórum + scripts próprios, acima listados os responsáveis pela criação do datapack e servidor.
    Descrição:
    Level System 100%
    1ª e 2ª geração completos
    Kanto e Ilhas Laranjas 100%
    Tv System 100%
    (Techinical Machine) Ensinar Moves pros Pokes 100%
    Daycare e Egg System 100%
    Duel System (PVP) 100%
    Gym System 100%
    Berries (Plantar, Colher e Usar) 100%
    Fly, Surf, Ride, Dive e Headbutt 100%
    Mastery System (Especializar em Elemento) 100%
    Tournament System 100%
    Saffari Zone 100%
    Poke Balls Effects 100%
    Pokemons na Character List 100%
    Poke Bar 100%
    Atravessar seu pokemon 100%
    Relógio In-Game 100%
    New Pokedex 100%
     



     
  20. Curtir
    Bruno Maciell deu reputação a kpdo em [Pokemon Kpdo] Pokemon kpdo exaioros By Cater   
    Olá caros amigos do forum estou aqui postando o pack completo do pokemon kpdo que atualmente se econtra online a 3 anos, eu sou o administrador do atual servidor pokemon kpdo, irei primeiramente falar o motivo de eu estar postando.
     
    Um dos meus EX-staffs roubou os arquivos que eu passei e resolveu vender a terceiros o que eu achei muito anti-ético então resolvi postar open source, pois o que o mesmo fez comigo foi muito errado então não restou a nao deixar gratuito para que o mesmo não lucre nas minha costa.
     
    Download:
    Client+Servidor: Mega
     
    Scan: O scan pega o client como um falso positivo por ter injeção de dll injection da barra do meu cliente porém vale lembrar que não tem virus, assim como o pack é um falso positivo.
    Link do Scan: VirusTotal
     
    Os sistemas que o jogo tem são:
    Sistema de som Cool down e poke bar. Duel System Tv Cam System Sistema de torneio Sistema de Duelos com aposta Pokemons da 1 até a 5 geração e seus devidos shinys. Sistema de shinys  Muitas quests  TM system etc.  
    Creditos:
    Renan(Admin) Equipe staff kpdo atual e EX staffs; www.exaioros.com
  21. Curtir
    Bruno Maciell deu reputação a omarwsk em Pokemon HuatsonOT V2.0 (DXP) NO lvl sys & Poke Bar   
    Hello there, im realeasing my server again, i abandoned this project some time ago and i dont want it to get old without be used. so i will give it to you with some other changes that i do. Sorry if i cant support you, dont speak much Portuguese. 
    I will add some notes PLEASE READ THEM 
     
    Custom level system *REMOVED* Custom Stat System*REMOVED* ZOOM System on client (Ctrl+1 & Ctrl+2) *NEW* Reworked UI on client *NEW* Custom Autoloot system 100% *NEW* Custom Pokemon change bar (Need to add images to client only first 250 pokes with picture) *NEW* Bike & MotorBike System *NEW* Smeargle System Kecleon System Mega Stone system Outland zone lvl +150 Nightmare Zone (open pvp zone, no revives) lvl +300 Held System (elemental added)  Tokens Machine !invite fixed on the source (need to activate on talkactions)

    PLEASE READ THIS NOTES


    New Prints
     
    Old Prints
    Mega stones looted by normal pokes with custom loot system (can check on the dex)
     
    New 3 quests untested and without pokes inside, only bosses  and rewards on chests


     
    Known Bugs
     
     
    Scans

    Download Links
    Use the database included with the page.
     
    Credits
    All mentioned on the original post of DXP Cipsoft Pxg TibiaKing forums for the releases Me (Omarwsk)  
     
    EDIT:
    sorry, i really abandoned this project, if you get this error 
     
    [Error - GlobalEvent Interface] data/globalevents/scripts/broadcast.lua:onThink Description: data/globalevents/scripts/broadcast.lua:19: attempt to index field '?' (a nil value) stack traceback: data/globalevents/scripts/broadcast.lua:19: in function <data/globalevents/scripts/broadcast.lua:17> [Error - GlobalEvents::think] Couldn't execute event: autoBroadcast FIX:
     
     
  22. Obrigado
    Bruno Maciell recebeu reputação de koyotestark em (Talakctions) Deletando Player Por Comando   
    Data/Talakctions/Scripts/ Copie e abra qualquer arquivo.lua e renomeie para Deletplayer.lua abra e cole isso dentro:





    E Em Talkactions.xml Ponha:




    Para Deleta O Devido Player Basta Falar: /del nome do player


    Creditos
    Blorin Mage (Otland)
  23. Gostei
    Bruno Maciell recebeu reputação de Cain Jorge em (Naruto) Naruto Legend 2.0 - Com Tp   
    [8.54] Naruto Legend V2.0 - Com Teleports!


    Informações:
    - Novo Mapa RPG, com teleports (Com Levels);
    - Novas Organizações (Akatsuki, anbu, sannin, shippuden, hokage, etc);
    - Novas Transformações;
    - 24 Vocações;
    - Novos Jutsus;
    - Novos Itens;
    - Novos Sistemas e comandos;
    - Novos Monstros;
    - 3 Vilas;
    - Ajeitei o servidor para rodar em sqlite (Account Manager já configurado).
    - Sistema Premium (Com Premium Zone).
    - Servidor 100% estável;
    - E mais!


    Prints




















    Download Servidor & Scan:
    Download:
    http://www.mediafire...1e54136t4b7855m

    Scan:
    https://www.virustot...sis/1355872674/

    Download Client & Scan:
    Incluso tibia.spr e tibia.dat!
    Download:
    http://www.mediafire...9fdj1y9nc4ta1fy

    Scan:
    https://www.virustot...sis/1355873069/


    Créditos:
    Tfs Team
    Uffox
    Wono-CJ
    SmoOkeR
  24. Gostei
    Bruno Maciell deu reputação a padreesss em PokeXLegend   
    Olá Pessoal Sou Novo Aki Vim Traser Meu 1° Post De Base Lendaria, Editei Essa Base Não Sei De Quem é a Base,
    Mais a Editei pra uma amigo mais ele não quis mais, dai eu resolvi pegar essa base so com megas de pokemons Bons vamos la. 
     

    [Pokemons Adicionados]

    Arch Heatran. [100%]
    Hoopa Unbound. [100%]
    Shiny Hoopa Unbound. [100%]
    Genesect Star. [100%]
    Fallen Jirachi. [100%]
    Majestic Lugia. [100%]
    Black Kyogre. [100%]
    Black Groudon. [100%]
    Zygarde. [100%]
    Shiny Zygarde. [100%]
    Power Charizard. [100%]
    Shiny Power Charizard. [100%]
    Power Raichu. [100%]
    Shiny Power Raichu. [100%]
    Power Arcanine. [100%]
    Shiny Power Arcanine. [100%]
    Power Venusaur. [100%]
    Shiny Power Venusaur. [100%]
    Power Blastoise. [100%]
    Shiny Power Blastoise. [100%]
     
    Fotos: http://prntscr.com/bg3e47

    [Boxs Adicionadas]

    Xerneas Box Level 6000. [100%]

    Yveatal Box Level 4000. [100%]
     
     
     
    [Sistemas Novos] 
     
    Fotos: http://prntscr.com/bg3baw
     
    NPC [SHOP] Donate. [100%]
     
    Fotos: http://prntscr.com/bg3gzq
     
    NPC [SHOP] Stone. [100%]
     
     
     
    [Removidos Do Map]

    Megas De Boxs Trocados Por Power Pra Tirar um Pouco Do Lag.
     
    Retirado  Lag [70%]
     
    [Removidos]
    Removidos  Bugs [70%]
     
    Removido Bug Que Dava Erro Ao Logar No Account manager [100%]
     
    [Sprints De Todas Box Trocadas]
     
    Box1 a Box19.

    [Download] Servidor+Client: https://mega.nz/#!60EDlLiT!LnAvjmlPLZ_FDTHU3KG0pH0yVJ4md8BCM61s_ayIH4Y
     
    [Scan] Servidor+Client:  https://www.virustotal.com/pt/file/5fc602ad54c6a668ca06daa96e24239c3c19b0c5e118e04af09abf9c31f16352/analysis/1466248383/
     
    [Scan Avast] : Servidor+Client: http://prntscr.com/bhvydx
     
     
    [Contato] Facebook: https://www.facebook.com/everton.jesus.54
  25. Gostei
    Bruno Maciell deu reputação a lukario em pokemon Shaman (pda old cliente)   
    pokemonSHAMANbase pda
    old client
     
     
    CONTENIDO
     
    no olvide mudar item no carpeta de remeresmapeditor..
     
    y demás esta decir que no falo portuges pero, preciso de gente seria para ficar um servidor
    IMAGES remeres
    IMAGEN CLIENT
    BUG
    LINK so mega
    SCAN DO SERVIDOR
    si ajude da +rep

Informação Importante

Confirmação de Termo