Ir para conteúdo

Gogetasaya

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Gogetasaya deu reputação a Warzinhuw em ? OTC StoneDrake UI by Shiva - [Free Release]   
    Olá,
    Gostaria de escrever um prefácio, cortesia de um amigo conhecido aqui como Verticos, retratando um pouco da história e da origem, para que saibam o que estão recebendo e porquê.
     
    Há um tempo, criei a GUI para um cliente chamado Tinkz que pagou uma porção do preço de antemão, mantivemos uma ativa comunicação durante o processo de criação. Concordei com ele em enviar algumas partes da interface conforme fui as finalizando, para que ele pudesse já começar a implementar e codificar, pois sei o quão tedioso esse processo costuma ser. Ele me retornou esse favor não me respondendo mais assim que ele estava com todos os arquivos que queria em mãos. Alegadamente, ele foi e vendeu copias do layout em outras comunidades do OT e recebeu muito mais do que seu ‘investimento’ inicial. Desisti de vender o layout já que o cliente original me deu um golpe e Verticos ofereceu me recompensar por isso.
     
    Assim, ele me disse que posso compartilhar publicamente se quisesse. Então por quê não fiz isso antes?
     
    Sei que muitas pessoas estavam esperando por algo assim. Espero que isso agrade o dia de alguém.
    E gostaria de agradecer Verticos novamente por tornar isso possível, de forma alguma eu conseguiria compartilhar tudo isso de graça.
     

    A interface foi criada para ser uma versão um pouco mais estilosa e refinada do mesmo tema da interface do Tibia que todos conhecemos, a versão 7.X. Isso deve parecer familiar, mas novo.
    Tenha em mente que essa interface foi desenvolvida para implementação no OTCliente, mas pode ser usado para qualquer outra finalidade como: website, outro jogo, etc.
     
    Esse pack de interfaces contém apenas imagens e instruções para ajudar na implementação do layout, mas você mesmo terá que fazer isso. Seria muito legal se alguém publicasse uma versão publicamente desenvolvido e disponível para todos os usuários do OTClient, se não, acho que vão ter que pagar para alguns programadores fazerem isso.
    Pessoalmente, não tenho tempo para fazer isso mas posso ajudar se você ficar travado em algum ponto e se tiver uma branch publica para que eu possa contribuir. Ou, poste aqui sobre isso.
    Tem várias coisas uteis nesse pack mesmo para aqueles que só querem simplesmente mudar o visual de algumas coisas em seu client. Por exemplo, alguns ícones de ‘condition’ atualizados (Aqueles que você só espera encontrar em um servidor 7.X). 
     

     
    A interface foi originalmente feita com alguns tons de marrom, mas mais tarde no processo, mais e mais tons desse marrom foram neutralizados então temos um clássico tema de “pedra”.
     
    O layout é flexível e vem com inúmeras peças para possam decidir como usá-las. A combinação deve permitir que seja criado vários setups que combinam com cada gosto. (No exemplo abaixo, o resultado deve ser obtido através de código e não modificando as imagens):
     

     
    Diversos cabeçalhos e bordas de janelas para customizar ainda mais:

     
    Nem preciso dizer, o layout poderia se beneficiar de uma mudança na fonte, mas nem todo mundo está preparado para deixar pra traz o bom e antigo Verdana, então o Vernada foi usado como referencia na maior parte do tempo durante a criação do layout, mas segue aqui uma referência de qualquer forma. Mais informações no ‘readme’.

     
     
     
     

    Mirror 1
     
     Leia o arquivo Readme.txt para mais detalhes úteis.
    Aproveite!
     
    Crétidos: Shiva Shadowsong - (eu apenas traduzi para ele)
    Post orignial: ? OTC StoneDrake UI by Shiva - [Free Release] | OTLand
  2. Gostei
    Gogetasaya deu reputação a ZORAN em [Tutorial] Compilando TFS v1.0 com MSVC 2013   
    Olá amigos da Comunidade Tibiaking venho trazer a vocês este tutorial de como compilar o TFS v1.0 em windows 32 or 64 bits com Microsoft Visual Studio 2013 (Obs: Eu uso a 2013 Ultimater Recomendo).   Vamos ao tutorial >>   1) Primeito baixe os programas abaixo se não tiver claro:   MSVS 2013 >> Click Here http://www.visualstudio.com/downloads/download-visual-studio-vs   Agora baixar os Programas do TFS v1.0:   TFS Sdk >> Click Here - Link 2: (Mirror)
      Source Do TFS v1.0 >> Click Here
      Atenção Baixe apenas a Boost da versão do Pc 32 or 64 Bits.   Boost MSVS 2013 32Bits >> Click Here
      Boost MSVS 2013 64Bits >> Click Here
      2) Agora vamos começar a instalar os Programs do TFS v1.0 >> Primeiro instale o Boost 32 or 64Bits No diretorio raiz do seu HD:   Print >>  
      Agora coloque o SDK Extraido na raiz do Seu HD:   Print >>       Faça a mesma coisa com a source do TFS v1.0:   Print>>     Depois de ter feito tudo isso abra a pasta da source e abra a pasta vc12 e siga a print: ( Obs: Você vera Boost32 isso acontece porque na instalação  eu coloquei no diretório como Boost32 (Primeira foto) mas basta você deixar como C:\Boost  ( A letra C:\  Refere-se a letrado do seu HD  ela pode ser D - H - F e Etc... Varia de Pc a Pc.) )   Print >>     Com o Visual Studio (2013 Recomendado) aberto Siga as Prints abaixo:   Click com botão direito no projeto e vá em propriedades:   Print >>     Depois Click em Cofiguration manager:   Print >>   Vamos as explicações: 1 >> Click la Primeiro Quando abrir a caixa com os passos 2-3 and 4 siga-os abaixo >> 2>> Coloque release e só nada mais. 3>> escolha para qual sistema de 32 or 64Bits. (Lembrado que ali e de acordo com a Boost oks. ) 4>> Só Click lá quando terminar de fazer os passos acima. Rsrs.] ------------------------------------|||||------------------------------- 3) Terceira parte Passos 1 do tutorial vamos lá >> Primeiro agora depois de fazer os passos anteriores faça os seguintes passos Click em C/C++ >>> General e siga a Print:   Print>>     Caso você não entendeu siga as explicações: Vamos as explicações: 1>> Onde você Deve clicar C/C++ >> General. 2>> Click onde a seta esta apontado e click em edit ou de dois clicks. 3>> Quando abrir a caixa de dialogo  deixe os diretórios iguais ao da foto e de um Ok. ( Obs: Você vera Boost32 isso acontece porque na instalação  eu coloquei no diretório como Boost32 (Primeira foto) mas basta você deixar como C:\Boost )   Terceira parte passo 2 Click em Linker >> General e siga  as Prints >>   Prints >>     Vamos as explicações: 1>> Onde você deve Clicar depois de fazer os passos anteriores da terceira parte passos 1. Oks. 2>> igual ao passo 2 da parte 1 da terceira parte só que mais explicativo. 3>> Click em Edit e espere abrir a caixa de Dialogo siga a Print 2.   Print 2>>     Deixe igual a caixa de dialogo  onde esta marcado com o 1 Grande Oks. Depois basta da um OK e um Apply e Ok e esperar aparecer Ready >>    
      Print>>     Explicações: 1>> Esperar o Ready. 2>> Click com o botão direito no projeto e depois em BuilD.            Basta Esperar terminar a compilação e Pronto.            Caso o tutorial não tenha sido bem explicativo Posso melhorá-lo a sugestão e depois posto a foto final da compilação Oks.   Se quiser me agradecer eu serei grato pois deu trabalho fazer esse tutorial pois bugo algumas vezes.   Um grande abraço e fiquem com Deus!   Nota: Eu Tenho permissão do autor do tutorial Original em Inglês para criar o post em PT-Br Não e permitido copiar ou reproduzir sem a devida autorização de Dominique120. Não e permitido postar o Faq do mesmo aqui neste tutorial para ver mais informações siga o LINK ou Veja os #créditos.   #Creditos: -------------------///------------------ Dominique120 >> Click aqui para ver o tutorial original  -------------------///-------------------- ZORAN  >> Click aqui para ver o meu perfil
  3. Obrigado
    Gogetasaya deu reputação a JhonatanCWest em [Tutorial] Explicando e Criando Vocações   
    Olá TibiaKing,

    Vi muitas pessoas com dúvidas, mesmo contendo tutoriais, não entendiam,então tentarei fazer um bom tutorial.

    Ok, vamos por a mão na massa!

    Basicamente nós nos basearemos nisso:
    Localizado em: DATA/XML/VOCATION.XML

    Exemplo


    Primeiro vou explicar cada item pra você criar sua vocação certinha!

    id = não deve haver nenhuma igual, tente seguir a sequencia para não se perder.
    name = nome da nova vocação.
    description = quando der look aparecera esse nome, e caso acc manager também.
    needpremium = se precisa de premmium para ter essa vocação (0 = não 1 = sim)
    gaincap = o tanto de cap que vai ganhar quando upar
    gainhp = o tanto de vida que vai ganhar quando upar
    gainmana = o tanto de mana que vai ganhar quando upar
    gainhpticks = o tanto de segundos que demora pra subir a vida
    gainhpamount = o tanto de vida que vai ganhar a cada ( no nosso exemplo 6 ) segundos
    gainmanaticks = o tanto de segundos que demora pra subir a mana
    gainmanaamount = o tanto de mana que vai ganhar a cada ( no nosso exemplo 3 ) segundos
    manamultiplier = quanto ml vai demorar pra subir, quanto menor mais rápido
    attackspeed = velocidade do ataque de wands e weapons (quanto menor mais rápido)
    soulmax = o maximo de soul
    gainsoulticks = o tanto de segundos que vai demorar pra subir o soul
    fromvoc = como ele será reconhecido nos scripts ( bote igual o id )

    Formulas:

    meleeDamage = quanto hita com weapons ( exceto wands e rods )
    distDamage = quanto hita com ataques a distancia
    wandDamage = quando hita com wand
    magDamage = quando hita com magias
    magHealingDamage = quanto heala com magias de cura, ( tanto exura como exura sio )
    defense = quanto defende com escudos
    armor = quanto defende com armaduras

    Skill Ids:

    (0) Fist
    (1) Club
    (2) Sword
    (3) Axe
    (4) Distance
    (5) Shield
    (6) Fishing

    PS: Quando menor o skill multiplier, mais rápido upa os skills.

    Criando nova vocação :
    1. Basta você adicionar nosso exemplo, embaixo das vocations.

    Exemplo



    Adicionando Spells às novas vocações
    2. Basta adicionar o nome da nova vocação em: data/spells/spells.xml

    Exemplo



    Tutorial criado por mim, exceto a parte dos Skill_ids, que peguei de outros tutos.
    Pronto, espero ter ajudado.
    Se gostaram agradeçam por favor.
    Obrigado, JhonatanCWest
  4. Obrigado
    Gogetasaya 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%
     



     
  5. Curtir
    Gogetasaya deu reputação a Cat em [10.98] Carlin Revamp 2.0   
    Trago a vocês a nova versão desse remake que fiz um tempo atrás. Agradecimentos ao @JohnBonner que me ajudou em alguns locais.
    Confiram o que mudou:
    - Bugs em algumas houses corrigidos;
    - Saídas leste, oeste e norte modificadas;
    - Nova loja de paladins, no topo da estrutura onde se localizava a antiga;
    - Nova biblioteca;
    - Novo depot;
    - Adição de um segundo depot com loja de jewels no topo e vista para o Magician's park;
    - Adição do Magician's Park e estatuas de memorial nos dois lados da cidade;
    - Remake do templo;
    - Remake da prision;
    - Remake do teatro;
    - Novo porto, localizado ao sol, tendo como acesso a loja de potions e de móveis;
    - Castelo editado, novo piso no topo com duas passagens para saída;
    - Remake em loja de npc de tasks, com saída para campo com flores;
    - Outras edições menores.
     
    Espero que gostem!
     
    Download - Link direto (arquivo.otbm)
    carlinrevamp2.0.otbm
     
  6. Curtir
    Gogetasaya deu reputação a xWhiteWolf em Mining System   
    Antes de tudo queria agradecer ao cara do suporte que me pediu pra fazer isso, achei muito legal a idéia. Fala galera do TK, vim trazer um script bem simpleszinho mas que abre um leque de opções de RPG e diversão pro seu OT.. Trata-se do Mining System, um sistema que você pode utilizar a pick normal (ou uma outra pick especial) para minerar a terra e tentar conseguir items que você pode trocar por dinheiro, items ou utilizar para craftar items. São 70 leveis de Mining que vão upando conforme vc minera.
    Enfim, vamos ao script:
    actions\scripts\mining.lua:
    terra = {351,352,353,354,355}  levels = { [-1] = 2229, ---- skull [0] = 1294, --- small stone [1] = 3976, --- worm [10] = 2149, -- Small Emerald [12] = 2146, -- Small Sapphire [15] = 2145, -- Small Diamond  [17] = 2150, -- Small Amethyst [20] = 2147, -- Small Ruby [25] = 2144, -- Black Pearls  [27] = 2143, -- White Pearls [30] = 2157, -- Gold Nuggets [35] = 2156, --- red gem [36] = 2158, -- blue gem  [37] = 2155, -- green gem  [38] = 2153, -- violet gem [39] = 2154, -- yellow gem [40] = 7761, -- small enchanted emerald  [42] = 7759, -- Small Enchanted Sapphiire [45] = 7762, -- Small Enchanted Amethyst [50] = 7760, -- Small Enchanted Ruby [70] = 2177  -- Life Crystal } local config = { storage = 19333, chance = 40, --- chance de achar um item ou não k = 2, --- constante de level.. quanto maior, mais fácil é upar. (a fórmula é level ao quadrado dividido pela constante) experience = 19334 } function onUse(cid, item, fromPosition, itemEx, toPosition) local drops = {} function getDrops(cid) for i= -1,getPlayerStorageValue(cid, config.storage) do if levels[i] then table.insert(drops, levels[i]) end end return true end if isInArray(terra, itemEx.itemid) then getDrops(cid) doPlayerSetStorageValue(cid, config.experience, getPlayerStorageValue(cid, config.experience)+1) local experience = getPlayerStorageValue(cid, config.experience) if experience >= (8+(getPlayerStorageValue(cid, config.storage)^2))/config.k then doPlayerSetStorageValue(cid, config.storage, getPlayerStorageValue(cid, config.storage)+1) doPlayerSendTextMessage(cid, 27, "Congratulations, you have leveled! Your currect level is "..getPlayerStorageValue(cid, config.storage) ..".") if getPlayerStorageValue(cid, config.storage) == 50 then doPlayerSendTextMessage(cid, 20, "For reaching level "..getPlayerStorageValue(cid, config.storage) .." you have been awarded with Mining Helmet.") doPlayerAddItem(cid, 7497, 1, true) end end if config.chance >= math.random(1,100) then if #drops >= 1 then local item = drops[math.random(1,#drops)] doPlayerSendTextMessage(cid, 27, "You have found a "..getItemNameById(item)..".") doPlayerAddItem(cid, item, 1, true) end doSendMagicEffect(toPosition, 3) else doSendMagicEffect(toPosition, 2) return true end elseif itemEx.itemid == item.itemid then doPlayerSendTextMessage(cid, 27, "You're currenctly level "..getPlayerStorageValue(cid, config.storage)..".") else return false end return true end em terra vc coloca os ids dos chãos em que é possível minerar, levels é o level da skill e o ID do respectivo item que você fica capaz de conseguir após alcançar esse nível. Em outras palavras, no começo vc só consegue minerar skull, no nv 70 vc vai ter a chance de conseguir todos os items anteriores e não só life crystal. O restante das configurações está no meio do script:
    local config = {
    storage = 19333,
    chance = 40, --- chance de achar um item ou não
    k = 2, --- constante de level.. quanto maior, mais fácil é upar. (a fórmula é level ao quadrado dividido pela constante)
    experience = 19334
    }
    o storage é onde vai salvar o seu nível
    chance é a chance de pegar um item cada vez que minera.
    k é a constante de level, o nivel 10 precisa de 10*10/k de experiencia para ser alcançado (com k sendo 2 dá 50 de experiencia), ou seja, com 50 picaretadas na terra vc pega nivel 10.
    experience é o storage que fica salvo sua experiencia.
    Bônus: Ao alcançar level 50 você ganha o Mining Helmet como prêmio, ele não faz nada de especial mas é como se fosse um troféu. No meu server tem uma série de troféus que voce pode colecionar e fica como sendo uma conquista épica para os players.
    e no actions.xml:
    <action itemid="2553" script="mining.lua"/> OBS: Sugiro que vcs utilizem uma outra pick pra não dar conflito mas você faz oque quiser.
    PS: Uma fotinha pra vcs verem
    Espero que tenham gostado!  
  7. Curtir
    Gogetasaya deu reputação a Pifafa em OTClientV8, version v1.0   
    Olá amigos, hoje trago a vocês um otclient especial. O mesmo já esta copilado é só editar, ele realmente é muito mas muito bom... Funciona em varias versão do tibia, mais detalhe entre e aprecie!
    Pessoal, se não for pedir muito de 1 joinha pra mim ahahaha, grande abraço e bom aproveito!
    FEATURES ( O que tem nele)
    Renderização reescrita e otimizada (60 fps em um computador de 11 anos)
    Melhor suporte ao DirectX9 e DirectX11
    Renderização adaptável (otimizações gráficas automatizadas)
    Renderização de luz reescrita
    Localização de caminho reescrita e caminhada automática
    Sistema de caminhada reescrita
    API lua HTTP com suporte a JSON
    Atualizador automático
    Novo sistema de arquivos
    Criptografia e compactação de arquivos
    Sistema de diagnóstico automático
    Interface atualizada
    Nova falha e manipulador de erros
    Novo protocolo de login HTTP
    Loja e novidades no jogo
    Gerenciador de teclas de atalho atualizado
    Lista de batalhas atualizada e otimizada
    Mira, desbotamento do piso, barras e painéis de saúde / mana extras
    Removemos muitas coisas inúteis e desatualizadas
    Suporte para proxies para diminuir a latência e proteger contra DDoS (opção paga extra)
     
    Quick Start Abra o arquivo init.lua edite a gosto:
    -- CONFIG APP_NAME = "otclientv8" -- important, change it, it's name for config dir and files in appdata APP_VERSION = 1337 -- client version for updater and login to indentify outdated client -- If you don't use updater or other service, set it to updater = "" Services = { website = "http://otclient.ovh", -- currently not used updater = "http://otclient.ovh/api/updater.php", news = "http://otclient.ovh/api/news.php", stats = "", crash = "http://otclient.ovh/api/crash.php", feedback = "http://otclient.ovh/api/feedback.php" } -- Servers accept http login url or ip:port:version Servers = { OTClientV8 = "http://otclient.ovh/api/login.php", OTClientV8proxy = "http://otclient.ovh/api/login.php?proxy=1", OTClientV8classic = "otclient.ovh:7171:1099", OTClientV8cwithfeatures = "otclient.ovh:7171:1099:25:30:80:90", } ALLOW_CUSTOM_SERVERS = true -- if true it will show option ANOTHER on server list -- CONFIG END Então é isso pessoal um grande abraço um excelente uso desse maravilho otclient, não sei quanto tempo o mesmo ficara disponível por alguma razão o link do dowload o mesmo do GitHub está logo abaixo:

    Fotos de como ele pode ficar!
     
    Caso queira ver como funciona entre em: www.tibinha.com é só abaixar ele no site!
    Link do Projeto: https://github.com/OTCv8/otclientv8#quick-start
    Dowload: 
    https://github.com/OTCv8/otclientv8/archive/master.zip
     
    Créditos ao Kondra
  8. Curtir
    Gogetasaya deu reputação a L3K0T em AUMENTANDO TELA DE VISÃO OTCLIENTE EM REV3884 8.60 0.4   
    REV3884 TFS 0.4 OTC 0.6.6

     
    OBSERVAÇÃO:
    Bom galera hoje vim trazer um código de expansão de visão para o otclient alterado por mim,  usado somente para rev3884 e então se você usa um tfs 0.3.6 ou tfs 1.0 não vai dar certo,
    *Esse código foi alterado por mim para ser usado apenas para rev3884, procolo 8.60 e TFS 0.4 que no caso não achei e resolvi compartilhar essas alterações.
     
     
     
    1° TUTORIAL 1 SOURCE DO SEU SERVIDOR.
     
    Abra Protocollgame.cpp 
     
    1 Ache
    ((x >= myPos.x - 8 + offsetz) && (x <= myPos.x + 9 + offsetz) && //(y >= myPos.y - 6 + offsetz) && (y <= myPos.y + 7 + offsetz)); ALTERE PARA:
     
    ((x >= myPos.x - Map::maxClientViewportX + offsetz) && (x <= myPos.x + (Map::maxClientViewportX+1) + offsetz) && (y >= myPos.y - Map::maxClientViewportY + offsetz) && (y <= myPos.y + (Map::maxClientViewportY+1) + offsetz));  
     
    2 Ache:
     
    GetMapDescription(pos.x - 8, pos.y - 6, pos.z, 18, 14, msg);  
    ALTERE PARA:
     
    GetMapDescription(pos.x - Map::maxClientViewportX, pos.y - Map::maxClientViewportY, pos.z, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, msg);  
     
    3 Ache:
     
    if(oldPos.y > newPos.y) // north, for old x { msg->put<char>(0x65); GetMapDescription(oldPos.x - 8, newPos.y - 6, newPos.z, 18, 1, msg); } else if(oldPos.y < newPos.y) // south, for old x { msg->put<char>(0x67); GetMapDescription(oldPos.x - 8, newPos.y + 7, newPos.z, 18, 1, msg); } if(oldPos.x < newPos.x) // east, [with new y] { msg->put<char>(0x66); GetMapDescription(newPos.x + 9, newPos.y - 6, newPos.z, 1, 14, msg); } else if(oldPos.x > newPos.x) // west, [with new y] { msg->put<char>(0x68); GetMapDescription(newPos.x - 8, newPos.y - 6, newPos.z, 1, 14, msg); } ALTERE PARA:
     
    if (oldPos.y > newPos.y) { // north, for old x msg->put<char>(0x65); GetMapDescription(oldPos.x - Map::maxClientViewportX, newPos.y - Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); } else if (oldPos.y < newPos.y) { // south, for old x msg->put<char>(0x67); GetMapDescription(oldPos.x - Map::maxClientViewportX, newPos.y + (Map::maxClientViewportY+1), newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); } if (oldPos.x < newPos.x) { // east, [with new y] msg->put<char>(0x66); GetMapDescription(newPos.x + (Map::maxClientViewportX+1), newPos.y - Map::maxClientViewportY, newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); } else if (oldPos.x > newPos.x) { // west, [with new y] msg->put<char>(0x68); GetMapDescription(newPos.x - Map::maxClientViewportX, newPos.y - Map::maxClientViewportY, newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); }  
     
    4 ache
     
    GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 5, 18, 14, 3, skip); //(floor 7 and 6 already set) GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 4, 18, 14, 4, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 3, 18, 14, 5, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 2, 18, 14, 6, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 1, 18, 14, 7, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 0, 18, 14, 8, skip);  
    Altere para
     
    GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 5, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 3, skip); //(floor 7 and 6 already set) GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 4, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 4, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 3, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 5, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 2, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 6, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 1, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 7, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 0, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 8, skip);  
     
    5 ache
     
    GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, oldPos.z - 3, 18, 14, 3, skip);  
    ALTERE PARA
     
    GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, oldPos.z - 3, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 3, skip);  
     
    6 ACHE
     
    GetMapDescription(oldPos.x - 8, oldPos.y + 1 - 6, newPos.z, 1, 14, msg);  
    ALTERE PARA
     
    GetMapDescription(oldPos.x - Map::maxClientViewportX, oldPos.y - (Map::maxClientViewportY-1), newPos.z, 1, (Map::maxClientViewportY+1)*2, msg);  
     
    7 ACHE
     
    GetMapDescription(oldPos.x - 8, oldPos.y - 6, newPos.z, 18, 1, msg); ALTERE PARA
     
    GetMapDescription(oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, 1, msg);  
     
    8 Ache
     
    GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z, 18, 14, -1, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 1, 18, 14, -2, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 2, 18, 14, -3, skip);  
    Altere para
     
    GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -1, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z + 1, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -2, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z + 2, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -3, skip);  
     
    9 ache
     
    GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 2, 18, 14, -3, skip);  
    Altere para
     
    GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z + 2, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -3, skip);  
     
    10 ache
     
    GetMapDescription(oldPos.x + 9, oldPos.y - 1 - 6, newPos.z, 1, 14, msg);  
    Altere para
     
    GetMapDescription(oldPos.x + Map::maxClientViewportX+1, oldPos.y - (Map::maxClientViewportY+1), newPos.z, 1, ((Map::maxClientViewportY+1)*2), msg);  
     
    AGORA EM MAP.H
     
     
    ache
     
    static const int32_t maxViewportX = 11; //min value: maxClientViewportX + 1 static const int32_t maxViewportY = 11; //min value: maxClientViewportY + 1 static const int32_t maxClientViewportX = 8; static const int32_t maxClientViewportY = 6; altere para:
     
    static const int32_t maxViewportX = 18; //min value: maxClientViewportX + 1 static const int32_t maxViewportY = 18; //min value: maxClientViewportY + 1 static const int32_t maxClientViewportX = 14; static const int32_t maxClientViewportY = 12;  
    Pronto agora é só compilar a source do seu servidor 8.60 rev3884
     
     
    PARTE 2 OTCLIENT 0.6.6
     
    abra o map.cpp da source do otclient 
     
    ache
     
    void Map::resetAwareRange() { AwareRange range; range.left = 8; range.top = 6; range.bottom = 7; range.right = 9; setAwareRange(range); } ALTERE PARA
     
    void Map::resetAwareRange() { AwareRange range; range.left = 14; //Change this to = maxClientViewportX range.top = 12; //Change this to = maxClientViewportY range.bottom = range.top+1; range.right = range.left+1; setAwareRange(range); } COMPILE A SOURCE DO OTCLIENT E PRONTO!!! ESPERO TER SANADO VÁRIAS DÚVIDAS DE AUMENTAR TELA DO OTCLIENT EM REV3884.
    CRÉDITOS: Pra mim pela alterações funcionais. e pelo Flatlander por disponibilizar para tfs 0.3.6 e 1.0 pois esse está alterado pra tfs 0.4
     
     
     
  9. Curtir
    Gogetasaya deu reputação a Noninhouh em [Tutorial] Ajustando andar diagonal   
    Bom, vou mostrar a vocês como editar o andar diagonal no otclient da maneira que vocês preferirem...
    Atualmente, creio que quando você anda diagonalmente, tem um delay até que você possa andar novamente. Vou ensinar tirar esse delay, e deixar a velocidade ao gosto de vocês.
     
    Em creature.cpp do server, procure pela linha:
    if(std::abs(newPos.x - oldPos.x) >= 1 && std::abs(newPos.y - oldPos.y) >= 1) lastStepCost = 3;  
    Esse lastStepCost será a velocidade que o player terá ao andar diagonalmente, em relação a velocidade de quando ele anda em uma direção reta, por exemplo, um player que demora 1 segundo para andar 1 sqm, demoraria 3 segundos para andar diagonalmente. Edite esse valor ao seu gosto!
     
    Em creature.cpp do client, procure as linhas que tem isso:
    getStepDuration(true) E deixe assim:
    getStepDuration()  
    Agora procure por:
    float factor = 3; if(g_game.getClientVersion() <= 810) factor = 2; Apague essa parte
     
    Logo mais abaixo tem:
    if(!ignoreDiagonal && (m_lastStepDirection == Otc::NorthWest || m_lastStepDirection == Otc::NorthEast || m_lastStepDirection == Otc::SouthWest || m_lastStepDirection == Otc::SouthEast)) interval *= factor; Em factor, deixe o mesmo valor que você deixou em lastStepCost no servidor.
     
    Agora em localplayer.cpp no client, novamente procure por:
    getStepDuration(true) E troque por:
    getStepDuration()  
    Pronto, seu personagem andará diagonalmente mais suave, e com a velocidade que você escolheu. 
  10. Curtir
    Gogetasaya deu reputação a Marco Oliveira em Servidor 10.90 | Windows 32/64 Bits | Versão Final   
    Depois de muitos pedidos e muita procura acabei compilando o TFS da versão 10.90, está estável. 
    As sources são originais, não houve modificações nelas, apenas os sistemas foram adicionados...
     
    Clique Aqui para fazer o download da versão 32 bits.
    Clique Aqui para fazer o download da versão 64 bits.
    Clique Aqui para fazer o download das sources.
     
    Clique Aqui para o scan de 32 bits.
    Clique Aqui para o scan de 64 bits.
    Clique Aqui para o scan das sources.
     
    Para usar o Reward Chest adicione a seguinte flag no monstro.
    <flag rewardchest="1" /  
    Você também pode definir o drop para ser único, dessa forma só a pessoa que fez o maior dano irá obter este item. exemplo:
    <item id="5903" chance="100000" uniquedrop="1" /><!-- ferumbras' hat --> Na versão final foram corrigidos os bugs das mensagens do Server Log como as de potion e loot. Seguem as screen shots..
     

     

     
     
    Ps: Eu ainda não tinha disponibilizado o download para outros fóruns.. até pq era exclusivo de um outro fórum do mesmo conteúdo....
    Se algum ADM tiver alguma duvida sobre os tópicos não autorizados por favor me mandar msg inbox.
  11. Curtir
    Gogetasaya deu reputação a KotZletY em Tutorial 2 em 1 - Magic e Shoot Effects   
    Bom galera, o Tópico já diz tudo, irei explicar como mudar para Uint16 dessa vez nas Source, para quem não sabe. Irei explicar como aumentar em Magic Effects, para assim você seu Server usar mais de 255, e ShootEffects para usar mais de 41 Distance efeitos(muito mais). Existe Tópicos no Tk, porém não é a mesma coisa, esse é diferente pois você irá alterá o valor dos uint's disparados para o Client, para assim então usar além do Padrão!
      Abaixo umas informações essenciais ! 
    Esse Tópico é especifico para TFS 0.4, para que assim você possa aumentar o limite de efeitos no Client, e usar mais de 255 efeitos, e mais de 41 efeitos em Distância.  Vale lembra também que você não é obrigado a mudar em ambos, se você quiser apenas aumentar o Limite de Efeitos para mais de 255, então mude apenas ele, caso queria aumentar apenas os Efeitos que são lançados a distância(ShootEffects ou Distance Effects), caso queria os dois, use ambos. 
     
    Vamos começar primeiramente com os Magic Effects:
     
     
     
    Agora vamos mudar o ShootEffects para uint16.
     
     
    Bom não adianta mudar isso se não fizer alteração no Client, então deixarei aqui, dois Tópicos de como mudar de uint8 para uint16 no Client em em ShootEffects e MagicEffect.
     
     
    Mudando os Efeitos de uint8 a 16 para Magic Effects
    Mudando os Efeitos de uint8 a 16 para Shoot Effects
     
    Então é isso ae, qualquer erro só comentar para que eu possar tentar ajudar.
     
    Tópico exclusivo do Tk, proibido posta em outro site, blog ou fórum! 
     
    xD
  12. Curtir
    Gogetasaya deu reputação a Killua em Como usar addEvent   
    Usando addEvent
     
    O uso do addEvent tem inúmeras utilidades e pode ser complicado para algumas pessoas, inclusive era para mim quando eu estava começando a aprender LUA.
     
    Para que serve o addEvent?
    Para "chamar" uma função após um periodo de tempo, ou seja, executar uma função após um tempo estipulado. 
     
    O addEvent tem como parâmetros: callback, delay e ...
    addEvent(callback, delay, ...)
     
    Onde callback é a função que será chamada, delay é o tempo (em milissegundos) até que se chame essa função e ... são os parâmetros que a função chamada utiliza. Exemplo:
    addEvent(doBroadcastMessage, 1000, "Bom dia", 23) Aqui, após 1 segundo (1000 ms), a função doBroadcastMessage(message, type) será executada com os parâmetros message = "Bom dia" e type = 23.
     
    O addEvent pode ser usado de duas maneiras:
    Chamando uma função existente ou criando uma nova função.
     
    Para chamar uma função existente, basta usar como acima, para usá-lo para criar uma nova função, usa-se assim, por exemplo:
    addEvent(function()      if isCreature(cid) then           doPlayerAddItem(cid, 2160, 10)           doPlayerSendTextMessage(cid, 25, "Voce ganhou 10k.")      end end, 1000) Assim é basicamente a mesma coisa, mas pude colocar várias funções dentro de um único addEvent e mantive o delay 1000 (1 segundo).
    Obs: Precisei usar 2 ends, um para fechar function() e outro para fechar o if.
     
    Atenção! Além disso, existe uma outra diferença entre as duas formas de uso, vou tentar explicar da melhor maneira possível:
    Quando usamos o addEvent com uma função já existente (1o exemplo), as informações usadas serão as geradas no momento em que o evento foi chamado, por exemplo:
    function onUse(cid, item, fromPosition, itemEx, toPosition)      if getPlayerLevel(cid) > 10 then           doPlayerSendTextMessage(cid, 25, "Uma pedra sera criada na sua posiçao dentro de 2 segundos.")           addEvent(doCreateItem, 2000, 1308, 1, getThingPos(cid))      end      return true end Se usarmos assim, a pedra será criada na posição onde o jogador se encontrava no momento em que "deu use" e não onde ele estará 2 segundos depois. Se você quiser que a pedra seja criada na nova posição do jogador (pos de 2 segundos depois), você deve fazer uma nova checagem, criando uma função:
    function onUse(cid, item, fromPosition, itemEx, toPosition)      if getPlayerLevel(cid) > 10 then           doPlayerSendTextMessage(cid, 25, "Uma pedra sera criada na sua posiçao dentro de 2 segundos.")           addEvent(function()                if isCreature(cid) then                     doCreateItem(1308, 1, getThingPos(cid))                end           end, 2000)      end      return true end Atenção novamente: A checagem if isCreature(cid) que utilizei, é muito importante para um addEvent que envolva criaturas. Se você executasse o addEvent sem a checagem e o player logasse ou morresse antes desses 2 segundos se passarem, daria um erro na distro e interromperia o resto do script.
     
     
    Recursão
    Uma outra ótima funcionalidade dos addEvents é a recursão, ou seja, criar um evento que fica se repetindo. É simplesmente um addEvent chamando a sí mesmo.
    Para usar, crie uma função, exemplo:
    function respawnMonster(name, pos)      if doCreateMonster(name, pos) then           doBroadcastMessage(name.." nasceu!")      end      addEvent(respawnMonster, 10000, name, pos) end Quando chamada, esta função ficará criando um monstro e uma determinada área a cada 10 segundos, sem nunca parar.
    Para chamar a função, seria assim:
    respawnMonster("Demon", {x = 123, y = 123, z = 5}) Considerações
    Reloads param os addEvents. Se um script talkaction executou um addEvent programado para acontecer depois de 5 minutos e se dentro deste intervalo de tempo, você usar /reload talkactions, o addEvent será interrompido.
     
    Erros no código podem fazer o evento ser interrompido, preste sempre atenção.
     
    Se ainda ficou com alguma dúvida, poste aqui.
     
     
        
  13. Curtir
    Gogetasaya deu reputação a Ryzor em [LUA] Conhecendo o os.date   
    Este tutorial abaixo foi inteiramente criado por shoeei.

    Introdução
    Vou tentar ajudar vocês com um tutorial de os.date. Sendo sincero, eu aprendi a pouco tempo como usar o os.date, em um exemplar de programação lua. Estou fazendo este tutorial para esclarecer a maioria das duvidas que vocês possam ter, então, por favor, prestem muita atenção se forem ler, e não leiam a menos, que estejam com tempo, paciência e vontade de aprender, pois eu creio que mesmo sendo novato com o os.date, eu vou conseguir fazer um bom tutorial.

    Publico Alvo
    Este tutorial foi feito para ensinar programadores lua, do nível iniciante/intermediário, ou seja, aqueles que já tem algum conhecimento quanto a os.time, variáveis, loopings, e etc...

    Tutorial
    Em OtServers, os.date é pouco explorado, já que sua funcionalidade, é, por muitos, desconhecida. Então vou explicar como você poderia usa-lo em um script para o seu ot. Vamos ver, digamos que você queira que um script funcione a partir das oito da manhã, e pare de funcionar a partir das duas da tarde; para isso, você poderia usar o os.date. O os.date, assim como o os.time, serve para controlar valores de tempo, e retornam os mesmos de acordo com os valores da cpu, a partir de quando o script entra em funcionamento, então, o exemplo acima ficaria assim:
    function onSay(cid, words, param) if os.date("%X") >= "08:00:00" and os.date("%X") <= "14:00:00" then doPlayerSendTextMessage(cid, 22, "Teste") end end No exemplo acima, a talkaction só ira funcionar se for depois das oito da manhã, e antes das duas da tarde, então, dentro deste intervalo de tempo, o script funcionará normalmente, e irá mandar a mensagem "Teste" para o jogador. Já se o script for executado fora deste intervalo, no caso, nada acontecerá.
    Deve-se notar, também, que no script acima, dentro dos parênteses esta isto:
    "%X" Certo, eu acho que eu poderia chamar isto de Pattern; existem vários destes parâmetros que podem ser utilizados, neste caso, eu usei o "%X", pois ele retorna valores do horário na seguinte forma:
    Onde, azul são as horas, vermelho são os minutos, e verde são os segundos; neste caso, você deveria usar os números como um relógio digital de 24 horas.

    Acho que a lógica do os.date já deu para entender, mas vamos recapitular:

    O os.date é usado para retornar algum valor de tempo;
    Você pode usa-lo como uma condição para executar um outro comando;
    Dentro dos parênteses do os.date, você deve usar parâmetros.

    Uma coisa muito importante do os.date, é que você deve igualar ele, com valores entre aspas, mesmo que sejam números, por exemplo:
    if os.date("%X") >= "08:00:00" and os.date("%X") <= "20:00:00"Perceba que os números estão entre aspas. Certo, depois de termos recapitulado a lógica do os.date, vamos aos mais importantes parâmetros que podem ser usados e os valores que são retornados por eles; segue a lista:
     
    Pattern - Explicação:
    %a - dia da semana abreviado (Wed) %A - dia da semana completo (Sunday) %b - nome do mês abreviado (Sep) %B - nome do mês completo (April) %c - data e hora (09/16/98 23:48:10) %d - dia do mês [01-31] %H - hora de um relógio de 24 horas [00-23] %I - hora de um relógio de 12 horas [01-12] %M - minutos [00-59] %m - mês [01-12] %S - segundos [00-60] %w - dia da semana por números [0-6 = Domigo-Sabado] %x - data (09/16/98) %X - hora (23:48:10) %Y - ano (1998) Vocês podem perceber que todas as palavras que forem usadas, tanto abreviações, como palavras inteiras, devem ser em ingles, é claro.
     
    Certo, dito os mais usados parâmetros e a lógica do os.date, acho que isso pode encerrar o nosso tutorial, mas antes, uma ultima dica; se você tem duvida de que valor o parâmetro vai retornar, faça o seguinte:
    function onSay(cid, words, param) local par = os.date("Parâmetro") doPlayerSendTextMessage(cid, 22, "O valor é "..par.."!") end E por ultimo, mas não menos importante, para se criar uma tabela usando o os.date, deve-se usá-lo da seguinte maneira:
    os.date("*t", Valor_da_Tabela) Finalização
    Isso deve funcionar e encerrar o nosso tutorial; é claro que o os.date pode ter mais alguma utilidade que eu desconheça, mas eu acho que isso pode ser uma boa introdução dele. Espero que tenham gostado, ate mais.
  14. Curtir
    Eai pessoal tudo tranquilo ?
    fiquei um bom tempo afastado do fórum e hoje resolvi voltar com tudo!.Queria trazer um conteúdo um pouco diferente foi ai que me lembrei de uma pasta que um amigo me passou a um bom tempo atrás e que estava perdida no meu computador.
     
    - Mas Rezende as sprites são de quem ?
     
     
    quem nunca escutou um desses gritos  ?  
     
    O pacote contem 76 sprites dos Cavaleiros Do Zodíaco que por muito tempo entreteu e ainda interte muitos pessoas sendo elas novas ou mais velhas ... mas enfim chega de enrolação vamos ao pacote de sprites
     
     
     
    Conteúdo do pack:



     
    Imagens:
     
    Cavaleiros de ouro:



     
     
    Cavaleiros de bronze:



     
     
    Deuses:



     
     
     
     
    Download: http://www.4shared.com/rar/Oqpj19tjce/Sprites_CDZ_By_Rezende16.html
     
    Scan: https://www.virustotal.com/pt/file/07780dbe3349c0b623138a1ffdc7c379d71d88484cca7c86ebbe04ced37d2fc7/analysis/1432909420/
     
     
    Crédito: Desconhecido
  15. Curtir
    Gogetasaya deu reputação a .HuRRiKaNe em CDZ Sprites   
    Preview:

     

     

     

     
    Download:
    http://www.mediafire.com/download/zh1fyrglwtbbhtc/CDZ.rar
     
    Scan:
    https://www.virustotal.com/#/file/6b341cfa1e4097a70450effd136d9059a2366cfdcbaa337557c64cc6f0d24ec4/detection
     
    Créditos:
    StormsHard
  16. Curtir
    Gogetasaya deu reputação a Natanael Beckman em DEV C++ Compilando TFS no Windows   
    DEV C++,  aprenda a compila uma source TFS!
     
    Downloads(Baixe de acordo as configurações do seu windows):
    DEV C++ CONFIGURADO PARA 32BITS
    DEV C++ CONFIGURADO PARA 64BITS
    REV 3884 TFS 0.4
     
    Certo, feitos os downloads, extrai DEV C++ no Disco C e REV 3884 em Documentos.
    ======================================
    Abra o DEV C++:
    ======================================

    ======================================
    Abra a Source:
    ======================================

    ======================================
    Localize a pasta da Source e abra o arquivo TheForgottenServer.dev, Documentos> trunk.r3884> dev-cpp> TheForgottenServer.dev:
    ======================================

    =============================================================

    ======================================
    Aguarde carregar todos os arquivos:
    ======================================

    ======================================
    Vamos adicionar o parâmetro -D__CONSOLE__ no teclado digita ALT + P, clique em parameters e adicione o parâmetro... Feito? clique em OK:
    ======================================

    ======================================
    Vamos compilar Source, no teclado digite CTRL+F9 e aguarde finalizar o processo:
    ======================================

    ======================================
    Se der tudo certo em Log vai estar como mostra a imagem abaixo:
    ======================================

    ======================================
    Verifique na pasta Documentos> trunk.r3884> dev-cpp você vai encontrar o arquivo TheForgottenServer.exe e pronto meu parabéns você compilou!
    ======================================

    ===========================================
    Só isso galera tutorial rápido resumido e útil!
    Créditos Natanael Beckman!    
    ===========================================     
     
    Caso você adquira uma source com apenas os arquivos .cpp e .h e não sabe como compilar o projeto, abaixo vamos explicar:
    Na pasta onde está localizado os arquivos .cpp e .h crie uma pasta chamada dev-cpp, e dentro dela adicione uma imagem icone.
     

     
    Abra o DEV-C++, clique em  File> New> Project:
     

     
    Logo em seguida selecione Empty Project, em name terá o nome Project1 altere utilize o nome quer quiser, após isso clique em OK e em seguida selecione a pasta dev-cpp que criamos:
     

     
    Agora selecione a opção Win32GUI caso use source OTX ou TFS selecione Win32Console ao lado << Browse selecione a imagem do icone que está na pasta Dev-Cpp.
     

     
    No mesmo menu na aba Parameters em C++ compiler adicione os seguintes parâmetros:
    -D__ENABLE_SERVER_DIAGNOSTIC__ -D__ROOT_PERMISSION__ -D__GROUND_CACHE__ -D__USE_SQLITE__ -D__USE_MYSQL__ -D__CONSOLE__ -D__WAR_SYSTEM__ E em Linker adicione as seguintes libs:
    -lboost_filesystem -lboost_thread -lboost_system -lboost_regex -lsqlite3 -lwsock32 -llua5.1 -lws2_32 -leay32 -lmysql -lxml2 -lgmp -lz -s   No mesmo Menu na aba Build Option escreva na segunda coluna horizontal escreva Obj e dê OK.     Na lateral terá o nome do seu projeto o meu no caso é The Forgotten Server, clique com o botão direito do mouse em cima do nome e clique na opção Add Project:      Selecione na pasta da sua source todos os arquivos .cpp e .h após isso salva o projeto e já pode compilar CTRL+F9:         OpenSSL 0.9.8   1º baixe http://devpaks.org/details.php?devpak=73 2° abra Dev-Cpp > Tools > Packager Manager > Install > Seleciona o arquivo baixado e instala, fecha abre e testa!
      Clica aqui \/
  17. Curtir
    Gogetasaya deu reputação a Natanael Beckman em DEV C++ Compilando TFS no Windows   
    Obrigado Luan, galera não custa nada, clica em gostei ou comentar agradecendo, um ato pequeno pra você e é o nosso combustível pra continuar postando bons tutoriais.
  18. Curtir
    Gogetasaya deu reputação a principe sharingan em [AJUDA] Como alterar o Fishing ( Poke Server )   
    Para modificar as chances é no Config.lua. Em Rates, aumente ou diminua a % rateSkill = 1.0.
     
    Para alterar os pokemons que vem no Fishing, va em data/actions/scripts e abra o Fishing.lua Se não tiver neste local vá em data/actions/scripts/tools  e abra.
    Lá vai estar de acordo com o lvl que você é de Fishing os pokemons que se vai pescar exemplo:
     


    O d0 o 0 é o lvl de fishing, e dai é só alterar os pokemons.
  19. Obrigado
    Gogetasaya deu reputação a vudi em [8.54] PokeCyan [ Editado By Senhor] Atualizado 3.0 2016   
    Boa Noite , Boa Tarde ou Bom Dia TK's não sei a hora que vocês vão ver o Tópico
         Estava com meu Projeto do "Pokemon H" Fiz várias Ediçoes no Servidor Que Baixei aqui no Tibia King Mesmo e vim disponibilizá-los para vocês.
                                                                                   Então bora ao que interessa né?
     
                   
     
     
    • Menu:
    ├ Informações;
    ├ Edições;
    ├ Erros;
    ├ Prints;
    ├ Mapa
    ├ Download;
    ├ Atualização;
    ├ Utilitários;
    └ Créditos.
     
     
                                                       
     
     • Informações Básicas •
     
     
     
      
     
    • Edições / Ajustes •
     
     
     
     
     
    • Erros do Servidor •
     
     
     
     
     
     
    • Prints•
     
     
     
     
      
     
    • MAPA •
     
     
     

     
    • Downloads •
     
    Cliente * MediaFire e Scan
     
     
    Servidor * MediaFire e Scan 
     
     
     

     
    • Download Atualização 2.0 •
     
     
    Download: https://www.mediafire.com/?ik211gku2hdqz2t
     
    Scan : 
     

     
    • Download Atualização 3.0 • 2016
     
     
     
                                                       OBS: NÃO TERÁ MAIS EDIÇÕES. 
     
      
     
    • Utilitários  •
     
    Remeres que usei pra editar: AQUI
     
     
     
     
     
    • Créditos •
     
     Brun Por Criar o Servidor
    Slicer Por Editar o Servidor
    Mulurka (pelas out)
    Stylo pelo tuto do ícone system
    noninhu por ajudar em alguns spells
    tem 2 caras tbm eu eskeci o nome deles agora que ajudaram 1 com as insignias na barra de skill e o outrio pelas scripts da liga pokemon
    dandanrvb pelas scripts do icone system
    erondino por algumas caves
     ih é só bjundão a all 
    Vudi (Eu) Por editar o resto do servidor e trazer as novidades
    Tioj Pelas edições e Por fazer eu copiar a organização do tópico dele kk obg
    Kuuhaku pela cave dos geot .
    Held Itens By Gabriel Sales
    Gabriel Sales AnnaFeeh pelo script do ditto system pxg
     
     

     
    Obs: Se Está faltando algum crédito me avise pra mim colocar ( Não sei se está faltando algum)
    Obs: Qualquer Outra Duvida Estarei de Suporte no Tópico
    Obs: SENHA GOD/GOD 
     
    OBS : Se Pegar o Servidor e Postar em Outro Fórum sem as minhas permissão vou pedir para o dono do forum ou site retirar o conteúdo . (Esse Conteúdo é exclusivo do TibiaKing obrigado)
     
     
    Se ajudei Já sabe né  
       
  20. Curtir
    Gogetasaya deu reputação a Wolf Admin em [PEDIDO] COMO CRIAR MAGIAS PARA POKETIBIA   
    Para Criar magias, vc vai no pokemon moves.lua, Abre o procura por uma spell que você deseja "imitar" (Você só ira copiar, colar e trocar o efeito). Irei usar de Exemplo a "Earthquake":
     
    elseif spell == "Earthquake" then   local eff = getSubName(cid, target) == "Shiny Onix" and 175 or 118  --alterado v2.6.1   local function doQuake(cid) if not isCreature(cid) then return false end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end    doMoveInArea2(cid, eff, confusion, GROUNDDAMAGE, min, max, spell) end   times = {0, 500, 1000, 1500, 2300, 2800, 3300, 3800, 4600, 5100, 5600, 6100, 6900, 7400, 7900, 8400, 9200, 10000}   setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 10000, cid, 3644587, -1) for i = 1, #times do                   --alterado v1.4     addEvent(doQuake, times, cid) end   - Azul: Nome da Spell Vermelho: ID do efeito da spell Ciano: Tipo do Dano que a spell irá causar (DARKDAMAGE, PSYCHICDAMAGE, WATERDAMAGE ....)   ~~ Você terá q copiar a spell e colar abaixo, em Seguida troque o nome da spell em Azul pelo nome que você preferir. ~~Logo Após, onde está Vermelho, Coloque o id do Efeito do Spell (Você pode escolher o Efeito por game fazendo /z 1, /z 2, /z 3, /z 4, etc. ou Abrindo seu Dat Editor ou Object Builder e veja o ID do efeito lá. ~~Mude o efeito da parte em Ciano para o efeito que a spell ira causar(FLYINGDAMAGE, FIGHTINGDAMAGE, ROCKDAMAGE, FIREDAMAGE, GRASSDAMAGE, GHOSTDAMAGE, etc...)   Agora Vá na pasta spells/scripts/ps e Crie um arquivo em lua com o nome da spell que você criou no pokemon moves.lua e adicione isso:  
     
    Coloque o mesmo  nome da spell lá na parte Verde.
     
    ~~Agora, abra o spells.xml e Adicione isso lá nas ultimas linhas:
      <instant name="Nome Da Spell" words="spell301" lvl="1000" mana="0" event="script" value="ps/Nome da spell.lua"></instant>     Espero ter ajudado, Postem suas duvidas sobre o assunto aqui, se houver..  
  21. Curtir
    Gogetasaya deu reputação a Wolf Admin em [PEDIDO] COMO CRIAR MAGIAS PARA POKETIBIA   
    Se vc Quer criar a magia aqua Fun, eu tenho ela aqui, do Tempo do PokeZot V2...
    Abra seu Pokemon moves.lua e adicione isso:
     


      Mas cuidado em qual parte de la vc vai adicionar, porque pode dar erros.. Por fim adicione isso no configuration.lua nos moves do pokemon que vc quer que tenha o ataque:    move10 = {name = "Aqua Fun", level = 70, cd = 20, dist = 1, target = 0, f = 40, t = "water"},   Espero ter ajudar, Rep+ se ajudei

Informação Importante

Confirmação de Termo