Ir para conteúdo

Líderes


Conteúdo Popular

Mostrando conteúdo com a maior reputação desde 22-06-2019 em todas áreas

  1. 18 pontos
    Gengo

    [OtClient] Mensagem Personalizada

    Hoje venho trazer um sistema que pode deixar seu servidor com um diferencial dos demais, espero que vocês possam aprender algo com esse sistema e criar outros tipos de personalização nas mensagens. O que seria essa personalização? Seria uma personalização da mensagem do broadcast, em vez de ficar aquela mensagem vermelha no meio da tela, você pode escolher sua própria cor para a mensagem, no fim do tópico demonstrarei com imagens para que você possa entender melhor. Script: Procure pela pasta no seu otclient em modules/game_textmessage e abra o arquivo textmessage.otui e substitua por esse: Agora na mesma pasta abra o arquivo textmessage.lua e procure pela função displayMessage e debaixo de: if msgtype == MessageSettings.none then return end Coloque o seguinte script: Feito essas alterações a personalização já deve estar funcionando, para testar você pode utilizar o seguinte comando: /bc green | O torneio mundial da Elite Four se iniciará em 15min. → Onde /bc é o comando broadcast → green é a cor que deseja personalizar, pode ser tanto em hexa como o nome da cor → mensagem qualquer → É necessário colocar o pipeline | caso queira colocar uma outra cor, senão ele assumirá como padrão a cor vermelha do broadcast. Caso você não tenha o script do broadcast, porem é impossivel não ter já que é padrão nos servidores, vou deixar disponível aqui: Imagens de como fica in-game: Eai, vai ficar de fora? Implemente já essa personalização e torne-se um servidor diferenciado dos demais.
  2. 8 pontos
    Yan Liima

    [8.60] TFS 0.4 Rev3996 War & Cast

    Salve salve pessoal, no inicio desse ano estava dando uma estudada e mexendo com a TFS 0.4 rev3884, e vi que havia alguns bugs e que não tinha Cast incluso. Com base nisso decidi atualizar e otimizar a source, já que ainda ela é uma das mais utilizadas no mundo de Otserv. Um rapaz tinha me procurado e comprado ela por um preço razoavel, mas ao descobrir que ele estava revendendo por um preço bem maior, decidi compartilhar esse meu trabalho com vocês! Acredito que possa ser uma das melhores REV atualmente. Conto com o seu feedback, caso haja algum bug, algo que tenha que mudar/optimizar, não exite em avisar aqui no tópico. Toda ajuda será bem vinda xD The Forgotten Server, Tibia Versão: 8.60 O que contém nela? Dentro da pasta contém o config.lua com todas as tag já adicionadas. Não esquecam de executar a Query do Cast na DB: Downloads uint8(Effects até 255) Distro: TheForgottenServer.exe Src + datapack: Source & Data ------------------------------------------------------- Downloads uint16(Effects até 65534) Distro: TheForgottenServer.exe Src + datapack: Source & Data É necessário fazer a modificação do Hexadecimal no cliente. Aqui tem um já pronto: Cliente.exe (só será necessario se utilizar a src com o uint 16.) ------------------------------------------------------- Scans: Distro(uint8) & Distro(uint16) Source Cliente Obs: Os virus detectado é um falso positivo, então não se preocupem! E para quem se interessa em saber onde se localiza os code do Cast, aqui está uma imagem. Você pode achar procurando por "//CAST" Façam um ótimo aproveito
  3. 3 pontos
    Yan Liima

    xTibia - Vagas Abertas 2019!

    Vagas abertas para quem quer fazer parte da equipe do xTibia! Se você gosta da comunidade, tem conhecimento em OTServs e deseja fazer parte da equipe, essa é a hora. Preencha o formulário que se encontra abaixo: >> Formulário << Estaremos validando e se for necessario estaremos entrando em contato, boa sorte! xD Caso haja duvidas com o cargo de mod/coordenador, veja: Moderador xTibia Coordenador xTibia
  4. 2 pontos
    JulianoZN

    [OPEN-SOURCE] POKEMASTERX

    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
  5. 2 pontos
    @Marshmello se for pra ficar insultando e comentar tópicos no qual não quer ajudar, é melhor nem comentar! Não irei alerta-lo novamente!
  6. 2 pontos
    SE AJUDEI DEIXA UM REP+
  7. 2 pontos
    XZero

    Revelando Bot mesmo no Ghost

    @vinicius231 Vai na linha 154 e adiciona isso: https://pastebin.com/sqRfUYWp local x = getTopCreature(toPos).uid if isPlayer(x) and getPlayerGroupId(x) > 1 then doPlayerSendTextMessage(x, 20, "O Player "..getCreatureName(cid).." esta pescando nesse local.") end
  8. 2 pontos
    Yan Liima

    [System] Trade Points

    #Introdução Reparei que muitas pessoas estão atrás desse sistema que o DBOBR & NTOBR usa, e atualmente o VitorSubhi postou um, porém é necessário modificar as sources. Apesar de achar o dele bem melhor, estarei deixando este meu sistema(não é necessário mexer nas sources). #Funcionamente O jogador vai até um NPC e compra um papel, após ter comprado ele pode estar dando trade nesse papel e negociando com algum jogador, em troca de qualquer item. Ao finalizar a negociação, os points são transferidos/removidos(caso houver points na conta). Também é possivel comprar o papel por comando, estarei disponibilizando ambos para vocês. #Alguns prints: Estarei deixando o script para vocês em inglês, modifique como quiser ;D Então vamos lá... #Instalação Em data/lib crie um arquivo chamado tradepoints.lua cole isto dentro: Em data/creaturescript/tradepoints.lua: TAG: <event type="tradeaccept" name="Trade_Points" event="script" value="tradepoints.lua"/> <event type="traderequest" name="Trade_Points_Request" event="script" value="tradepoints.lua"/> login.lua: registerCreatureEvent(cid, "Trade_Points") registerCreatureEvent(cid, "Trade_Points_Request") NPC XML: <?xml version="1.0" encoding="UTF-8"?> <npc name="Frodo" script="data/npc/scripts/trade_points.lua" walkinterval="2000" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="275" head="114" body="113" legs="113" feet="113" corpse="2212"/> <parameters> <parameter key="module_shop" value="1" /> <parameter key="message_greet" value="Hello |PLAYERNAME|. I sell some utensils and Premium Points Transfer for you to transfer points to other players, remember to buy use '10' to 10 points." /> </parameters> </npc> Data/npc/scripts/trade_points.lua: Caso queira que a compra do papel seja feita por talkactions, aqui está: TAG: <talkaction words="!sellpoints;/sellpoints" event="script" value="trade_points.lua"/> Prontinho xD Agradecimentos ao Junior(lordzetros) por ajudar na função scanContainer e ao @VitorSubhi
  9. 2 pontos
    Gengo

    [OtClient] Pokemon Health Info

    Eai galera do xtibia, hoje venho por meio desse post trazer para vocês uma pokebar, sei que já existe porém este é um pouco diferente do que costumamos ver. Antes de tudo faça o download do arquivo e vamos a configuração. OBS: Seu otClient precisa ter opcodes para poder funcionar. 1) Coloque o module na pasta do seu otClient em /modules. 2) No arquivo do seu servidor em data/lib/106-mainfunctions.lua coloque o seguinte trecho de código: 3) Ainda no mesmo arquivo 106-mainfunctions.lua procure pela função doOTCSendPokemonHealth e substitua ela pelo trecho a seguir: 4) Caso seu servidor não tenha a função table.serialize, adicione ela no arquivo do servidor em data/lib/012-table.lua: 5) No arquivo do seu servidor data/creaturescripts/script/login.lua coloque o seguinte trecho no final do onLogin antes do return sendPokeOTC(cid) 6) Abrindo o arquivo do npc Nurse Joy em especifico o script.lua, procure o trecho de codigo: doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_POKEMON_HEALTH, healthMax.."|"..healthMax) Substitui por esse: doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_POKEMON_HEALTH, healthMax.."|"..healthMax.."|"..getItemAttribute(mypb.uid, "identificador")) E no finalzinho da função do mesmo arquivo lua, antes do end, coloque o seguinte codigo: for indice, value in pairs(getPlayerPokeballs(cid)) do doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_POKEMON_HEALTH, getBallMaxHealth(cid, value).."|"..getBallMaxHealth(cid, value).."|"..getItemAttribute(value.uid, "identificador")) end 7) E por ultimo no arquivo opcodes.lua localizado na pasta data/creaturescript/script/opcodes.lua procure por: if buffer == "refresh" then doOTCSendPokemonHealth(cid) end E substitui por: if buffer == "refresh" then for indice, value in pairs(getPlayerPokeballs(cid)) do doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_POKEMON_HEALTH, getBallHealth(cid, value).."|"..getBallMaxHealth(cid, value).."|"..getItemAttribute(value.uid, "identificador")) end end Bom é basicamente isso, a unica coisa que estará faltando e que vou deixar para vocês fazerem é quando o player colocar ou retirar outro pokemon na bag fazer com que o servidor chame a função sendPokeOTC(cid), não estarei ensinando essa parte pq o meu é bem diferente e não adiantaria eu mostrar como se faz, mas também não é um bixo de 7 cabeças fazer essa parte. Fazendo esse tutorial certinho e tudo mais, ficará assim no game: Espero que gostem e que entendam, desculpe-me por qualquer coisa não sou muito de explicar e ficar escrevendo tutorial. Download do arquivo: https://www.mediafire.com/file/p8wch1fogveh48e/game_poke.rar/file Scan do arquivo: https://www.virustotal.com/#/file/d88b33ad27520ddd28afdaeb7d17af26805fa3bf39400f1a30813a0da3ca1695/detection
  10. 1 ponto
    Sistema de multi addon system sem erro, com talkaction pra trocar e configuração simples, estou postando pq vi uns frango vendendo o sistema... Ganhar dinheiro em cima das coisas de outros é coisa de retardado com limitação... se diz programador mas não sabe faze porra nenhuma, aqui fica uma reflexão desses "programadores"... Para usar é só colocar o addon no pokemon com o item, logo em seguida o pokemon ficara com o addon, para remove-lo é só digitar !addon 0, e para usa-lo novamente digite !addon 1, isso serve pra todos os addons que você adicionar, quando colocar mais de 1 addon é só ir trocando pelo comando, !addon 2, !addon 3 e etc, não esqueça de configurar o limite na lib. Lib action talkaction Parte que é colocada no look.lua (creaturescripts) Xml <action itemid="15923;15924;13089;13091;13092;13090;13101;13098;13099;13097;13394;13100;2207;2208;13106;13105;2456;2421;2422;2423;2428;2429;2430;2431;2432;2433;2434;2435;2436;2437;2445;2446;2447;2448;2449;2450;2451;2452;2453;2455;2458;2459;2460;2461;2487;2481;2486;2477;2478;2479;2480;2472;2473;2474;2339" event="script" value="addon.lua"/> <talkaction words="!addon" event="script" value="addon.lua"/> Sinto pena de quem pagoou por isso... bom uso nos seus poketibia. Créditos: Eu (Crypter) Demostração do funcionamento https://i.gyazo.com/bfa3b68eb259fcc67718d1bcbef55e70.mp4 https://i.gyazo.com/562e651c859a4fb05ab0be6584661c4e.mp4
  11. 1 ponto
    Ayron5

    [Resolvido] Enviar para depot

    Teste aí, aqui está 100%
  12. 1 ponto
    ITALOx

    [8.60] TFS 0.4 Rev3996 War & Cast

    Finalmente, estava esperando por ela, OBRIGADO fofinho, rs
  13. 1 ponto
    Vodkart

    Simple Task 3.0

    Mods: NPC Como configurar?
  14. 1 ponto
    kttallan

    PokéMaster X

    Olá pessoal, me chamo Allan Harlen sou dono e criador da marca PokéMaster X. Sou bastante conhecido na área por algumas pessoas, já participei de diversos projetos conhecidos (enfase ao PokéAlpha e DarkxPoke) Nessa caminhada já estou com quase 9 anos de Tibia/Pokétibia e creio que consegui desenvolver um dos melhores e mais dinâmicos servidores online, que por sinal foi vazada. Por causa desse motivos nunca formei uma equipe, até agora! No decorrer desse 1 ano e meio de servidor a minha base foi vazada e vendida de diversas formas por membros da minha própria "equipe", como oque eu mais temia já havia acontecido resolvi hoje tomar a decisão de estruturar uma equipe mais preparada com os ideias que pretendo para o futuro do meu servidor. O PokéMaster X nunca foi um servidor grande (particularmente sempre gostei de poucos players, é mais fácil organizar e atualizar, levando em consideração também que sou o único que tinha o poder de resolver os problemas, então poucos players já eram o suficiente para me dar bastante trabalho, rsrs), tendo chegado no auge a seus 150 players e diariamente uma média de 30 a 60 players (isso varia bastante), a verdade é que meu servidor já tem tempo no mercado, é difícil atrair novos players, sendo que a diferença que impacta no game como level/itens e afins eles não conseguiram alcançar, porém eu sempre tento inovar, desda abertura do servidor eu lanço atualizações a cada 2 semanas em média, consegui isso graças a grande interação que minha equipe de tutores/gms tem com os players, modificando o game de acordo com o gosto dos players (claro, tudo conforme o possível e avaliando a proposta do game). Resumindo, venho por meio desse tópico procurar membros que tenham interesse em entrar na minha equipe, atualmente é formada por apenas 3 pessoas de minha confiança, porém são pessoas que não tem o conhecimento de algumas áreas importantes como Mapa/Programação (que é o que eu preciso) e só dão support in-game. A grande maioria de vocês já tem conhecimento do meu projeto por causa do vazamento, porém a base postada é de 1 ano atrás, já houve muita mudança! Vou mostrar um pouco do nosso servidor para vocês! Nosso servidor conta com 2 continentes próprios (Feito exclusivamente por mim), sendo eles Kanto e Hoenn! Também de nossa exclusividade o nosso OTcliente com um designer mais aberto e de estrutura quase móvel! Também temos um sistema de proteção em 2 fatores, sendo necessário o player digitar sua senha antes registrada para poder se mover após logar no servidor, evitando assim problema com hackers! Sistema de Held Itens (Todos eles funcionam, com excessão do Y-Ghost) Sistema de Multi-Addons, para pokémons normais e pokémons shinys. Sistema de Smeargle, sendo eles do 1 ate o 10, com sistema de reset dos sketch! Sistema de Fusão de Held/Fragmentos/Itens/Smeargle. Sistema de Survival Arena (Semelhante a Golden Arena, porém você ganha pontos por pokémons eliminados que podem ser trocados por prêmios). Embedded Tower (Um pouco diferente da PxG, sendo a área mais complexa com as recompensas diferenciadas, Tower NV5+ só em equipe!). Sistema de Daily Kill/Daily Catch/Daily Itens (Esse aqui é exclusivo do nosso servidor, no caso você entrega itens os itens que ele pediu e ganha o valor do item 2x) Market System Brotherhood System (Diferente da PxG a nossa BH é uma confederação e não uma quest, onde há 1 quest interna no nosso atual sistema). Particle Aura Clones Quest Sistema de PokéCard Berries System (Diferente da PxG, aqui você tem que coletar as berries nas arvores e depois planta-las em sua casa). Como vocês viram, o nosso servidor tem diversos sistemas próprios e em sua grande maioria desenvolvida por mim, porém dou crédito a grande programadores que me ajudaram bastante no decorrer da caminhada (Viktor [Tibiaking], Victor, Gustav e outros). Necessito de novos membros com as seguintes habilidades. Mapper (Intermédiario, não necessita saber manjar 100%, se tiver um conhecimento bom e usável talvez você possa ingressar!) Programador (Lua, C++, eu aprendi bastante a desenvolver sistemas em lua, porém peco bastante no C++ e OTC, necessito de uma pessoa nessa área). Outros (Se você tiver uma habilidade que seja diferencial e acha que vai agregar na equipe, é só me mandar uma mensagem informando-as). Pequena observação! O PokéMaster X está aberto a 1 ano e 4 meses, nesse período de tempo o servidor nunca foi resetado, conseguimos (eu, tutores e players) manter um balanceamento muito grande no game referente a economia e atualizações, porém minha atual situação não dá conta de evoluir o servidor sozinho fazendo com que eu perca a grande maioria dos players que conquisto com divulgação e marketing, o servidor tem bastante conteúdo, porém tem muita coisa a ser feita, coisas pequenas que influenciam no game até sistemas bem elaborados que já estão no papel. Eu particularmente tenho bastante experiência na área de Mapas, essa é minha área, porém por ser a única pessoa a mexer no servidor tive que desenvolver conhecimento em outras áreas, chegando até o desenvolvimento de sistemas que é uma área muito boa, porém demanda tempo e é esse período tempo que eu não invisto em X coisa pois estou trabalhando em Y coisa que eu perco o tempo, exerço 3 funções acabando não dando conta de nenhuma, obrigado pela atenção. Outra observação importante, os membros que tem a intenção de entrar na equipe para ter acesso aos dados, sinto em lhe dizer, mas não conseguiram. A única vantagem de ter minha base vazada é que dá para trabalhar muito bem em cima dela, tanto na fase de testes quanto na produção. Peço que os interessados entre em contato por PM informando seus atributos e talvez se do interesse de ambos termos uma conversa mais elaborada! Lembrando que o servidor está Online, e você pode acessar e conferir os sistemas a qualquer momento. || www.pokemasterx.com.br ||
  15. 1 ponto
    kttallan

    Duvidas Modules OTClient

    Essa parte no OTmod do servidor. Name: nome da pasta @onLoad: function de inicialização do module. @onUnload: function de terminação do module. se não tem nada é = nil isso é uma function da source do otcliente g_game é que faz a chamada! As outras questões você tem que estudar o module por completo para poder entender seu funcionamento..
  16. 1 ponto
    Marshmello

    Layout otPokemon AMV

    Fala Pessoal eu tenho um layout aqui , não vai me server a nada então estarei Postando pra vcs PRINTS Download Scan Base otPokemon AMV pra quem quiser Creditos : LEKOT pelo WEbSite como ele postou um meu, eu posto um dele tmbn ;D
  17. 1 ponto
    Drazyn

    PokéMaster X

    Projeto interessantíssimo! Adoraria fazer parte dessa equipe ??
  18. 1 ponto
    Michyalex

    [DXP] PokeAlpha OpenSource

    Eai galera ja que parei de fazer meu projeito basado no DXP V3, vou disponibilizar por si algum quer olhar ou fazer algo com isso. Cabe destacar que as modificaçoes sao para ficar quase o igual ao PXG, vou destacar que sou spanhol e sim alguma palabra fica errada fala para mim ^^! ¿O que contem? - Arrumado as maiorias dos portraits e balls "Unmovable" - Maioria das spells sao agora ao estilo do PXG * Thunder bolt posiçao arrumada * Stone edge, Rock Slide posiçao arrumada * Invisible spell arrumada *Tongue grap modificada agora quita vida e nao deixa mover ao pokemon * Great Love, Night Daze, Entre outros adicionado o efeito central. - Items.xml 1000-1200 items con nome - Bike system arrumado com storage independente - OTClient o layout da camera refeito para parecer ao PXG - Spells com cors (bug com Mega) - Añadidos 30 efeitos. - Arrumado o look para parecer ao PXG - Price System, Mark trabalha com $ e nao Gold - House look arrumado nas sources para ficar como PXG - Arrumado os cors do minimap de algums items - Fly, Ride, Surf, tem as velocidades reais do PXG - Mensagems em portuguesse foi trocado por Ingleis a malhoria - Market com exemplo de venda de Mega direito - Muitos sprites arrumados, outfits, items, efeitos. - Exp por stages igual ao PXG - Modulo do Autoloot modificado ¿Maior BUG? - Statschange.lua (Creaturescripts) - Surf ainda nao arrumado Downloads: Scans: ¿Como faço para editar esse mapa? Créditos: DXP TEAM Comunidade do XTIBIA Smix Deadpool (City-Name Module) Michy (eu)
  19. 1 ponto
    Obs: ja tem tutoriais aqui no xtibia porem estão tendo problemas entao vamos lá Antes de começar lembre-se esse codigo nao da de usar o old cliente depois Oque Precisa ? Source do Servidor e Source do OtClient Source usada: Para nao dar bug na hora de subir escada ou desce, aumente o máximo de tiles que poderá ser carregado const.h procure por #define NETWORKMESSAGE_MAXSIZE 15360 mude para #define NETWORKMESSAGE_MAXSIZE valor que voce quer <OBS isso e para a quantidade de pixel será possivel receber sem bugar> #define NETWORKMESSAGE_MAXSIZE 1000000000 --- Valor que coloquei no meu protocalgame.cpp procure por bool ProtocolGame::canSee(uint16_t x, uint16_t y, uint16_t z) const { #ifdef __DEBUG__ if(z < 0 || z >= MAP_MAX_LAYERS) std::cout << "[Warning - ProtocolGame::canSee] Z-value is out of range!" << std::endl; #endif const Position& myPos = player->getPosition(); if(myPos.z <= 7) { //we are on ground level or above (7 -> 0), view is from 7 -> 0 if(z > 7) return false; } else if(myPos.z >= 8 && std::abs(myPos.z - z) > 2) //we are underground (8 -> 15), view is +/- 2 from the floor we stand on return false; //negative offset means that the action taken place is on a lower floor than ourself int32_t offsetz = myPos.z - z; return ((x >= myPos.x - 8 + offsetz) && (x <= myPos.x + 9 + offsetz) && (y >= myPos.y - 6 + offsetz) && (y <= myPos.y + 7 + offsetz)); } Substitua por bool ProtocolGame::canSee(uint16_t x, uint16_t y, uint16_t z) const { #ifdef __DEBUG__ if(z < 0 || z >= MAP_MAX_LAYERS) std::cout << "[Warning - ProtocolGame::canSee] Z-value is out of range!" << std::endl; #endif const Position& myPos = player->getPosition(); if(myPos.z <= 7) { //we are on ground level or above (7 -> 0), view is from 7 -> 0 if(z > 7) return false; } else if(myPos.z >= 8 && std::abs(myPos.z - z) > 2) //we are underground (8 -> 15), view is +/- 2 from the floor we stand on return false; //negative offset means that the action taken place is on a lower floor than ourself int32_t offsetz = myPos.z - z; return ((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)); } procure por if(newPos.z > oldPos.z) MoveDownCreature(msg, creature, newPos, oldPos, oldStackpos); else if(newPos.z < oldPos.z) MoveUpCreature(msg, creature, newPos, oldPos, oldStackpos); if(oldPos.y > newPos.y) // north, for old x { msg->AddByte(0x65); GetMapDescription(oldPos.x - 8, newPos.y - 6, newPos.z, 18, 1, msg); } else if(oldPos.y < newPos.y) // south, for old x { msg->AddByte(0x67); GetMapDescription(oldPos.x - 8, newPos.y + 7, newPos.z, 18, 1, msg); } if(oldPos.x < newPos.x) // east, [with new y] { msg->AddByte(0x66); GetMapDescription(newPos.x + 9, newPos.y - 6, newPos.z, 1, 14, msg); } else if(oldPos.x > newPos.x) // west, [with new y] { msg->AddByte(0x68); GetMapDescription(newPos.x - 8, newPos.y - 6, newPos.z, 1, 14, msg); } } } } Substitua por if(newPos.z > oldPos.z) MoveDownCreature(msg, creature, newPos, oldPos, oldStackpos); else if(newPos.z < oldPos.z) MoveUpCreature(msg, creature, newPos, oldPos, oldStackpos); if (oldPos.y > newPos.y) { // north, for old x msg->AddByte(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->AddByte(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->AddByte(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->AddByte(0x68); GetMapDescription(newPos.x - Map::maxClientViewportX, newPos.y - Map::maxClientViewportY, newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); } } } } Procure por ////////////// Add common messages void ProtocolGame::AddMapDescription(NetworkMessage_ptr msg, const Position& pos) { msg->AddByte(0x64); msg->AddPosition(player->getPosition()); GetMapDescription(pos.x - 8, pos.y - 6, pos.z, 18, 14, msg); } Substitua por ////////////// Add common messages void ProtocolGame::AddMapDescription(NetworkMessage_ptr msg, const Position& pos) { msg->AddByte(0x64); msg->AddPosition(player->getPosition()); GetMapDescription(pos.x - Map::maxClientViewportX, pos.y - Map::maxClientViewportY, pos.z, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, msg); } Procure por void ProtocolGame::MoveUpCreature(NetworkMessage_ptr msg, const Creature* creature, const Position& newPos, const Position& oldPos, uint32_t oldStackpos) { if(creature != player) return; msg->AddByte(0xBE); //floor change up if(newPos.z == 7) //going to surface { int32_t skip = -1; 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); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } else if(newPos.z > 7) //underground, going one floor up (still underground) { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, oldPos.z - 3, 18, 14, 3, skip); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } //moving up a floor up makes us out of sync //west msg->AddByte(0x68); GetMapDescription(oldPos.x - 8, oldPos.y + 1 - 6, newPos.z, 1, 14, msg); //north msg->AddByte(0x65); GetMapDescription(oldPos.x - 8, oldPos.y - 6, newPos.z, 18, 1, msg); } Substitua por void ProtocolGame::MoveUpCreature(NetworkMessage_ptr msg, const Creature* creature, const Position& newPos, const Position& oldPos, uint32_t oldStackpos) { if(creature != player) return; msg->AddByte(0xBE); //floor change up if(newPos.z == 7) //going to surface { int32_t skip = -1; 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); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } else if(newPos.z > 7) //underground, going one floor up (still underground) { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, oldPos.z - 3, (Map::maxClientViewportX+1), (Map::maxClientViewportY+1)*2, 3, skip); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } //moving up a floor up makes us out of sync //west msg->AddByte(0x68); GetMapDescription(oldPos.x - Map::maxClientViewportX, oldPos.y - (Map::maxClientViewportY-1), newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); //north msg->AddByte(0x65); GetMapDescription(oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); } Procure por void ProtocolGame::MoveDownCreature(NetworkMessage_ptr msg, const Creature* creature, const Position& newPos, const Position& oldPos, uint32_t oldStackpos) { if(creature != player) return; msg->AddByte(0xBF); //floor change down if(newPos.z == 8) //going from surface to underground { int32_t skip = -1; 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); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } else if(newPos.z > oldPos.z && newPos.z > 8 && newPos.z < 14) //going further down { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 2, 18, 14, -3, skip); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } //moving down a floor makes us out of sync //east msg->AddByte(0x66); GetMapDescription(oldPos.x + 9, oldPos.y - 1 - 6, newPos.z, 1, 14, msg); //south msg->AddByte(0x67); GetMapDescription(oldPos.x - 8, oldPos.y + 7, newPos.z, 18, 1, msg); } Substitua por void ProtocolGame::MoveDownCreature(NetworkMessage_ptr msg, const Creature* creature, const Position& newPos, const Position& oldPos, uint32_t oldStackpos) { if(creature != player) return; msg->AddByte(0xBF); //floor change down if(newPos.z == 8) //going from surface to underground { int32_t skip = -1; 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); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } else if(newPos.z > oldPos.z && newPos.z > 8 && newPos.z < 14) //going further down { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z + 2, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -3, skip); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } //moving down a floor makes us out of sync //east msg->AddByte(0x66); GetMapDescription(oldPos.x + Map::maxClientViewportX, oldPos.y - (Map::maxClientViewportY-1), newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); //south msg->AddByte(0x67); GetMapDescription(oldPos.x - Map::maxClientViewportX, oldPos.y + Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); } Agora no Map.h Procure por 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; Substitua por static const int32_t maxViewportX = 15; //min value: maxClientViewportX + 1 static const int32_t maxViewportY = 15; //min value: maxClientViewportY + 1 static const int32_t maxClientViewportX = 14; static const int32_t maxClientViewportY = 8; Agora no map.cpp do Otclient Procure por void Map::resetAwareRange() { AwareRange range; range.left = 8; range.top = 6; range.bottom = 7; range.right = 9; setAwareRange(range); } Substitua por { AwareRange range; range.left = 15; //Change this to = maxClientViewportX range.top = 15; //Change this to = maxClientViewportY range.bottom = range.top+1; range.right = range.left+1; setAwareRange(range); } ou por { AwareRange range; range.left = 14; //Change this to = maxClientViewportX range.top = 8; //Change this to = maxClientViewportY range.bottom = range.top+1; range.right = range.left+1; setAwareRange(range); }
  20. 1 ponto
    Vai na pasta data/globalevents e no arquivo globalevents.xml coloca: Na pasta data/globalevents/scripts cria um novo arquivo chamado save.lua e coloque isso dentro: Mas lembre-se o forum as vezes coloca uns caraters no texto que só pode ser vista com codificação ANSI exemplo: <[email protected]@[email protected] name="save" interv??al="1800" event="scrip???t" [email protected]="save.lua"/>??
  21. 1 ponto
    joaopera

    [Resolvido] Slot Cliente

    Só vc mudar no servidor, mods/firstitems.lua acha o id do cassino coins e apaga, ai todo char q vc criar não vai ter mais
  22. 1 ponto
    JulianoZN

    [OPEN-SOURCE] POKEMASTERX

    Já tem compilado para windows logo abaixo do topico vai ter a seção de creditos e la vai encontrar compilado para windows
  23. 1 ponto
    Yan18

    É possível criar um Poketibia em C ?

    Tranquilo. Não, o jogo também foi feito em C++, e utiliza Lua com os scripts.
  24. 1 ponto
    Benny

    Projeto de Layout

    Bom, acho que acabou as ideias de layout. No caso eu fiz isso, gostaria de dicas do que fazer/melhorar ? abraço
  25. 1 ponto
    local ring = { outfit = 123, -- outfit que ele ganha efeito = 1, -- efeito que fica nele iditem = 123, -- id do ring tempo = 1, -- tempo que ele fica transformado waittime = 1.5, -- tempo que pode usar dnv storage = 12345, -- não mexa } function onUse(cid, item, fromPosition, itemEx, toPosition) addEvent(function() if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "Espere um pouco") elseif ring.iditem == ring.iditem then doPlayerAddOutfit(cid, ring.outfit) doPlayerRemoveOutfit(cid, ring.tempo, ring.outfit) return false end end, ring.tempo) não sei bem se irá funcionar
  26. 1 ponto
    gabrielzika

    [OtClient] Mensagem Personalizada

    Ótimo conteúdo!! Quem estiver com problemas em colocar a cor, basta usar o mesmo broadcastclass.lua que ele disponiblizou.
  27. 1 ponto
    Marshmello

    Help - Boost Stone System

    Isso simplesmente e bug do OTC kkk, troque o ID da boost stone para outro e tente
  28. 1 ponto
    Marshmello

    [OtClient] Mensagem Personalizada

    Cada dia um code melhor que o outro , parabéns meu mano ♥
  29. 1 ponto
    Use: doSummonCreature(poke, getThingPos(cid))
  30. 1 ponto
    Drakopoulos

    Posição do efeito

    Tenta assim function dropEffect(pos, eff, n) if n > 0 then posEff, posEff.x, posEff.y = pos, posEff.x +1, posEff.y +1 doSendMagicEffect(posEff, eff) addEvent(dropEffect, 1000, posEff, eff, n-1) end end
  31. 1 ponto
    dedefoxx

    [OtClient] Mensagem Personalizada

    aqui funcionou rep Vlw Ai Ficou Top
  32. 1 ponto
    Walox

    água transparente ( Walox Edit )

    Olá! Bom venho trazer para vocês sprites com animações que eu editei para o meu servidor! Vi que muitas pessoas tem dificuldade para mexer no PHOTOSHOP e como para mim é o contrario pretendo ajudar no que puder ^^ Bom vamos parar de frescura e ir para o conteudo haha, Espero que gostem e colaborem com o UP ❤️ Baixe e use com moderação haha qualquer coisa só chamar no chat ^^ Baixar Conteudo
  33. 1 ponto
    Gengo

    [OtClient] Auto-Loot

    É possível sim fazer sem opcodes, então vamos fazer umas pequenas alterações para que seja possível. Acrescente as seguintes funções no arquivo do modulo: Obs: Atente-se ao comentário feito. connect(g_game, { onTextMessage = onTextMessage }) -- Utilize dentro da função init disconnect(g_game, { onTextMessage = onTextMessage }) -- Utilize dentro da função terminate Debaixo da função init coloque a seguinte função: function onTextMessage(mode, text) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if string.find(text, 'AutoLoot>') then createListLoot(text:explode('>')[2]) end end end Agora para enviar para o otclient utilize o mesmo conceito apresentado no tutorial, porem com uma alteração minima, em vez de utilizar doSendPlayerExtendedOpcode, utilizamos a função doPlayerSendCancel, ficando assim: doPlayerSendCancel(cid, "AutoLoot>"..loot)
  34. 1 ponto
    Já imaginou como o Tibia seria com SOM? E agora isso se tornou realidade com suporte a mais de 180mil sons! e sistema climático FX neve, chuva, poeira, nevoa e outros! tudo isso no clássico Tibia Oldschool 7.x! SISTEMA DE NEVE SISTEMA DE CHUVA And our powerful sound system, with a capacity of more than 180 thousand sounds! Rates: Experience: 1x Skills: 5x Loot: 1x Host: Xeon x3220 @ 3.20GHz (Quad Core Processor) 60/60 MB Dedicated Connection Hosted in São Paulo, Brazil (Average ping for USA + EU is < 120) (Average ping for BRA is < 15) Features: Global Old Map 7.4 com as cidades atuais do tibia (Carlin, Thais, Venore, Ab'dendriel, Kazz, Edron, Liberty Bay, Yalahar, Svargrond, Port Hope, Farmine and others!) The new cities included in old Tibia have all the appearance and gameplay of old Tibia! Sound System (Complete sound system with support for more than 180 thousand sounds, making sound from the steps, spells, items, runes, and ambient sounds of caves, and all the speeches of the monsters!) A new gaming experience! FX System Snow, Rain, Spark, Fog, Dust, Water Bubbles, Sunbeams and other visual elements! A new feature to enhance the in-game experience with visual elements contrasting to the beautiful old graphic! Widescreen and Ultra-Wide monitor support We support wide monitors, open vision, you fill more in the game 7.x Gameplay gameplay do antigo tibia, com funcionabilidades de várias versões (6.0~7.4~7.6~8.3) Monsters can be lured from far away Runes without level Armors without vocation Traps with pots Spells 7.4 UH & Manafluid and others. Ant-Bot - Ant-Mc An ant bot system that randomly exchanges the object IDs for the same object with different ID, making it practically impossible to use a bot for large advantages. All donations can be optionally obtained in-game! Social Media: Facebook Screens: Website: OverBash www.overbash.com Client: Custom Começa 1 de Julho! espero você! Essa é uma nova experiência de Tibia Oldschool, espero você em OverBash
  35. 1 ponto
    O NPC caminha junto com o player ate a hunt. Esse sistema é bem SIMPLES, um amigo me pediu, desenvolvi para ele e vim compartilhar com vocês Crie um arquivo lua em npcs e adicione : local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local possnpc = { --- poss que o npc vai andar {x=81 ,y=339, z=7}, {x=82 ,y=339, z=7}, {x=83 ,y=339, z=7}, {x=84 ,y=339, z=7}, {x=85 ,y=339, z=7}, {x=86 ,y=339, z=7}, {x=79, y=340, z=7} } local possplayer = { -- poss que o player vai andar {x=81 ,y=339, z=7}, {x=82 ,y=339, z=7}, {x=83 ,y=339, z=7}, {x=84 ,y=339, z=7}, {x=85 ,y=339, z=7}, {x=86 ,y=339, z=7} } local pid = getNpcId() -- não mexa local config = { -- não mexa str = 150729, tempo = 30, } function andarnpc() for i, pos in ipairs(possnpc) do addEvent(doTeleportThing, 1000+400*(i-1), pid, pos) end end function andarplayer(cid) for i, posdois in ipairs(possplayer) do if isCreature(cid) then addEvent(doTeleportThing, 1000+500*(i-1), cid, posdois) end end end for _, player in pairs(getPlayersOnline()) do if msgcontains(msg, "hunt") and getPlayerStorageValue(player, config.str) >= os.time() then selfSay("Não posso atender você agora!", cid) break end if msgcontains(msg, "hunt") and getPlayerStorageValue(player, config.str) < os.time() then setPlayerStorageValue(cid, config.str, os.time() + config.tempo) selfSay("Vou te levar ate a caverna misteriosa !", cid) andarnpc() andarplayer(cid) break end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Configuração : Aqui é aonde o npc vai andar, são as mesma poss que o player vai andar, porem você tem que por uma ultima poss para o npc, nessa ultima poss você coloca a posição aonde o npc estava antes do jogador falar com ele ! local possnpc = { --- poss que o npc vai andar {x=81 ,y=339, z=7}, {x=82 ,y=339, z=7}, {x=83 ,y=339, z=7}, {x=84 ,y=339, z=7}, {x=85 ,y=339, z=7}, {x=86 ,y=339, z=7}, {x=79, y=340, z=7} } Essa é a poss do inicio, aonde o npc vai aparecer quando ele levar o jogador, não esqueca de colocar a posição correta, se não o npc vai ficar dentro da hunt com o player, e outros players não vão conseguir encontrar o npc. {x=79, y=340, z=7} -- poss aonde o npc tava antes de levar o player para a hunt OBS: Existe um tempo para poder falar com o NPC, caso o npc esteja levando algum player para a hunt, outro jogador não pode conversar com ele, ate que ele complete a caminhada, caso queira mudar o tempo edite aqui : tempo = 30, -- 30 = 30 segundos
  36. 1 ponto
    Drakopoulos

    [OPEN-SOURCE] POKEMASTERX

    Fala meus lindos, executável + dlls compilado no visual c++ em x64 evitando o "erro" do mapa muito grande. Depois mando o projeto para compilar pois preciso separar as libs que foram usadas. MasterX Visual C++ x64 + Dlls.7z
  37. 1 ponto
    Gengo

    [OTClient] Player Info OTPokemon

    [OTClient] Health Player Info OTPokemon Eae galerinha do xtibia, hoje venho trazer mais uma contribuição para a comunidade, um módulo indêntico ao do OtPokemon. Mesmo que seja simples a instalação, tem sempre aquele que não sabe onde deve colocar o módulo, peço então que tenha paciência quanto a esse simples tutorial, aos demais aqueles que já sabem, peço que ao menos leia a Observações do módulo. 1º Faça o download do módulo. 2º Extraia o módulo para a pasta do seu otClient em /modules ficando assim: Feito o passo 1 e 2 creio que já estará funcionando, isto se você fez tudo certinho. •Observações do módulo• Demonstrativo do módulo no jogo.
  38. 1 ponto
    Marshmello

    SPR/DAT otPokemon 01/03/2019

    Salve Ekz Trazendo pra vocês as Sprites do otPokémon Atualizada SEGUE AS PRINTS DOWNLOAD SCAN
  39. 1 ponto
    JulianoZN

    [ACTION] Carpet System em Transform_to

    Então eu tinha esse script de carpet em transform_to a bastante tempo desde 2016, mais simples Então então estou postando hoje Vamos ao Assunto. vai em data "datapack"/actions/scripts Crie um arquivo chamado carpet.lua coloque isso Volte na pasta actions abra o actions.xml Coloque Carpet fechado Carpet aberto DONO: PokemonZbr ( Online ) DONO: OtPokemonTvZ ( Offline ) Links do meu jogo https://pokemonzbr.com/ (Online) http://otpokemontvz.com/ (Offline) Eu sou: Scripter: 5% Mapper: 30% Programador: 4% Website : 50%
  40. 1 ponto
    Luiz Vitor

    [8.0] Colocando Quests No Quest Log

    Para colocar quests no quest log é bem simples: basta saber como fazer quests e às vezes NPCs. Para começar você precisa ter um OT compatível e que tenha o quests.xml, por enquanto só testei e aprovei o DevLand 0.8.9 Abrindo o quests.xml terá algo assim: quest name="Quest" --- aqui você bota o título da quest, que aparecerá logo que abrir o quest log startstorageid="1234" --- aqui é o famoso storage que é colocado nas quests, esse startstorage é o número que faz essa quest aparecer no log, é esse aqui: setPlayerStorageValue(cid,1234,1) startstoragevalue="1" --- aqui é o valor de início da quest, isso + o startstorageid que faz aparecer no quest log, é esse aqui: setPlayerStorageValue(cid,1234,1) mission name="First Mission" --- esses mission names são os nomes das missões que ocorrem dentro da quest, por exemplo a postman e a Explorer têm várias missões storageid="1234" --- aqui é o storage que iniciará a missão, a primeira missão é sempre o mesmo storage do startstorageid startvalue="1" --- aqui é o value do storage que iniciará essa missão endvalue="3" --- o mesmo de cima, mas só que é quando termina missionstate id="1" description="Go to someone location." --- aqui é o value daquele storage q vc colocou no inicio da missão + a descrição q aparecerá oq vc deve fazer na quest, isso aparece quando você clica na missão, numa tarja cinza clara na parte inferior. você que decide quando vai mudar a descrição, apenas mudando o value no storage agora que vc sabe pôr as quests no quest log, que encha a quest log toda , qualquer coisa q não entenda poste aqui mesmo, mais uma coisa... você pode pôr quantas quests quiser lembrando q deve copiar a primeira entre o </quest> e o </quests> apenas editando storage etc flws Obs: não vou parar para colocar as palavras corretamente, no futuro eu edito
  41. 1 ponto
    Estava vasculhando minhas pastas quando achei a minha primeira Enter Game, que também foi para o meu primeiro servidor que a proposito esta postado aqui no forum ( Pokémon Mythology ) Então resolvi postar para vocês espero que gostem. Não é nada woooow mas já da pra sair daquela mesmice de caixinha com login e senha. BAIXAR ( ENTER GAME )
  42. 1 ponto
    Jair Kevick

    [OPEN-SOURCE] otPokémon AMV Completo

    Olá Treinadores (as) depois de bastante tempo sem postar algo venho trazer para vocês a base do OTPOKEMON AMV completa com source, old cliente estendido e etc. Foi feito algumas correções de erros e nada mais então total créditos ao criador do AMV. VAMOS PARAR DE ENROLAÇÃO E LET'S GO! Sistemas: Ocultar conteúdo [+] catch system [+] shiny system [+] moto system [+] bike system [+] pokedex, [+] 29 quest incluindo a pesadelo própria. [+] sem level system [+] vários system únicos [+] Mapa full Prints: Ocultar conteúdo Download SERVER, CLIENTE E SOURCE: DOWNLOAD DO SITE: SCAN: Ocultar conteúdo https://www.virustotal.com/#/file/c646e0ecd7802b3e167f84eb84fd4bd8f2a8e6b0546a27b90552838e66752491/detection OBS: o dono do servidor não tem direito de pedir para remover o link pois é algo de código aberto. LEIA MAIS SOBRE: https://opensource.org/licenses/MIT CRÉDITOS: ALEXY (LEK0T)
  43. 1 ponto
    Poccnn

    Look at attack

    Eu criei esse sistema de look at attack porquê eu acho ridículo quando o character fica atacando o oponente sem estar "olhando" para ele. O que ele faz? Ele volta o character que esteja atacando um oponente para o oponente. Ele não impede de andar ou de mudar de direção, porém ele vai ficar mantendo a direção voltada ao oponente. Vamos adicionar o sistema. Em: creaturescript/creaturescript.xml, adicione essa tag: Agora em: creaturescript/scripts, crie um arquivo lua e adicione isso: Dentro do mesmo diretório, abra o arquivo login.lua e adicione isso a ele onde existe outros semelhantes. Pronto. Instalado o seus sistema de look at attack. Agora quando o player atacar algum oponente, ele ficará "olhando" para ele.
  44. 1 ponto
    Stigal

    [Download] Remere's Map Editor 3.4

    Features: Novo "Find Item" / "Item dialog". 63aebaf Formato de cópia de posição configurável. 8358e7e Adicionado reticências de texto para dicas de ferramentas. d792de9 Mostrar indicadores para paredes. b5de55c Dados atualizados para 10,98. 7c82124 Bugs Corrigidos: Cor do fundo do ícone; branco e cinza não funcionam mais. #205 Apenas mostre as opções de cores quebras RME. #228 Download: RME_Winx64_3_4.exe 3.68 MB RME_Win_3_4.exe 3.69 MB Créditos: Sasdasxc (Otland)
  45. 1 ponto
    Deadpool

    [Tutorial] Mudar miniwidow

    Boa tarde galera, eu mostrei no meu showoff a tela do meu cliente, que pretendo liberar para a galera, porem, recebi mensagens de como fazer aquilo, e como eu vou postar o cliente com o module, resolvi fazer esse tutorial e liberar o module.. Esse module é para mudar a Game Window, para que não conhece, veja um print: Então, vou liberar o entergame já feito, e também vou ensinar como modificar. *Download no fim do topico*, vamos ao tutorial: Tenha em mente a imagem, e então, veja o tamanho dela, feito isso, va no entergame.lua e procure a linha que seta o IP do seu servidor, va está assim: EnterGame.setUniqueServer("127.0.0.1", 7877, 854, 361, 356) Vou explicar a linha toda para que entendam: 127.0.0.1 = IP do server 7877 = port do servidor, no meu caso ta 7877, porque é a porta Linnux. 854 = Versão do cliente/servidor. 361 = Tamanho da game window 356 = largura da game window em outras palavras, 361 e 356 é onde vamos modificar.. Você pega as dimensões da imagem, e coloca no lugar dos mesmos(361 e 356).. Feito isso, salve o entergame.lua e feche. Agora vamos editar a OTUI.. Abra o Entergame.otui e na primeira linha temos isso: EnterGameWindow < MainWindow !text: tr('Enter Game') size: 236 274 Bom, vamos modificar.. Retire essa linha: !text: tr('Enter Game') Nessa função modifique esse tamanho "236 274" para as dimensões da imagem *no caso seria (361 e 356): Antes: size: 236 274 Agora: size: 361 356 Adicione isto em baixo dessa função acima: image-source: enter.png *enter.png é a imagem que estamos usando para colocar no game window, a mesma que a gente pegou as dimensões e modificamos no entergame.lua*, *ela tem que está dentro da pasta onde se localiza o entergame.lua*. pronto, seu cliente já vai ler sua nova window com imagem. *Terá que mudar os lugares de onde coloca senha e conta* É bem simples, basta ir na OTUI e mudar os margin-top* DOWNLOAD ENTERGAME COM NOVA WINDOW: Download OBS: Deixei uns 3 Entergame dentro, se vocês quiserem usar como base, não me importo.. POR FAVOR, NÃO POSTE ESSE TUTORIAL EM OUTRO FÓRUM SEM OS DEVIDOS CRÉDITOS. FUNCIONA EM QUALQUER VERSÃO DO OTCLIENT. OBS: se vocês não souberem editar o entergame, irá bugar. É melhor baixar o que estou disponizilizando, e então mudar somente as dimensões..
  46. 1 ponto
    Poccnn

    Sistema de Ferreiro - inovador.

    Hail Xtibianos. Eu estava/estou atualizando alguns scripts meus bem antigos, então resolvi compartilhar para vocês que priorizam um jogo mais ao estilo: segunda vida na idade média. Bom... tu terás que fazer uma sala parecida como essa e com esses ids (pois já foram implementados no código). Agora vamos implementar os códigos: Vá em data/actions.xml e insira essas tags: Em data/actions/scripts/tools; insira todos esses códigos cada um com seus respectivos nomes: ferreiro.lua bellow.lua wood: Pronto. Instalados os scripts; agora irei explicar como funciona o sistema. Para acender o crucible, você precisa usar o fire bug (5468) no crucible (8642) até ele acender. Agora você põe a arma em cima da bancada e clica no bellow para ele 'aquecer' a arma para forja. Depois de 'esquentar' a arma, voce forja ela no anvil (bigorna de id 2555) por um tempo (tempo esse determinado pelo uso do crucible). Se o crucible 'apagar', voce clica no bellow até ele voltar a 'acender', mas isso só pode ser feito algumas vezes. Se você clicar muitas vezes e ele não 'acender', então tu terás que usar o fire bug de novo no crucible. Novo sistema de forja adicionado. Agora tu poderás adicionar materiais a forja para obter outros items. Explicação desse novo sistema: Primeiro tu põe a arma base para adição de novos compostos na mesa. adicione o item em cima da arma. Clique no bellow e o item de adição desaparecera. Leve o item "aquecido" para a bigorna. Use a marreta nele até sair um efeito verde. Caso ele peça para por de volta na fornalha a arma, não adicione outro item, apenas aqueça-o. Faça esse mesmo procedimento adicionando compostos até que o item seja criado. aqui um manual de forja feito a parti da tabela forja no script ferreiro.lua Tu poderás adicionar mais compostos para obter outros items a seu critério. Nova atualização! Agora a sala de forja ficou assim: Agora é possível forjar/fundir items: Adicione os compostos necessário para forja um por um (desde que ele não seja agrupaveis) na bancada do crucible e clique no bellow até ele sumir. adicione todos os items necessários e ao final clique no crucible: Resultado ao clicar no crucible com os compostos: Resultado da forja com os compostos: Onde edito ou ponho novos compostos no script? No script bellow.lua existe a lista de compostos e suas respectivas forjas. É só copiar uma nova instrução e editar os valores para novos items que possam ser forjados. ATENÇÃO! Todos os compostos precisam ser exatos para a receita funcionar, nem mais nem menos. Função requerida: É isso pessoal, depois posto mais scripts atualizados meu; espero que gostem; qualquer erro ou dúvida deixem no comentário abaixo. Um vídeo explicando como fazer objetos de fundição:
  47. 1 ponto
    Night Wolf

    O poder é seu, o que desenvolver?

    O que desenvolver? Olá caros membros do nosso lindíssimo fórum, hoje vim falar pra vocês um pouquinho dos nossos projetos... Nós da equipe do xtibia iremos começar a desenvolver um servidor em parceria com a comunidade, vocês dirão o tema e nós iremos correr atrás de desenvolver todo o resto e montar o servidor da forma que vocês desejarem. Claro que todos aqui terão acesso e poderão ajudar através do github, isso é uma forma de haver uma maior interação entre os membros da equipe (euzinho, por exemplo) e você caro membro que está lendo isso agora. Sempre teve o sonho de montar uma equipe mas não conseguia achar gente pra isso? Não desista desse sonho!! Agora os melhores de cada área aqui desse fórum poderão se juntar pra virar uma equipe fantástica. Emocionante? Já quer começar?? É só votar na enquete e comentar aqui nesse tópico, a nossa equipe irá se encarregar de divulgar e hostear o servidor oficial assim que o tema for definido; Paralelamente teremos sempre a pasta do servidor pública e aberta pra vocês poderem estudar os sistemas que fazemos e sugerir modificações e melhoras. Espero que vocês se engajem. Abraços do Lobo.
  48. 1 ponto
    Administrador

    (novidade) otclient para android

    Já havia visto também, muito útil.
  49. 1 ponto
    Dragon Ball Hiper

    editor geral de otserv

    Show boa sorte na caminha , Ancioso para ver seu trabalho.'
  50. 1 ponto
    Bluester

    Base Otpokemon V1

    Esses são itens que estão dentro das houses e podem ser movidos ! Esses são itens que estão dentro das houses e podem ser movidos ! Galera, pra arrumar o bug do coin case trocado com a bag, vão na pasta do servidor e depois em mods, lá terá o arquivo "firstitems.XML", basta trocar o ID da coin case com o ID do iventory
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...