Ir para conteúdo

Nathso123

Campones
  • Total de itens

    5
  • Registro em

  • Última visita

  • Dias Ganhos

    1

Nathso123 venceu a última vez em Setembro 9 2025

Nathso123 had the most liked content!

Sobre Nathso123

Informações

  • Forma que conheci o xTibia
    Amigos
  • Sou
    OT-Admin

Últimos Visitantes

196 visualizações

Nathso123's Achievements

  1. Salve man, respondendo esse tópico com alguns anos de atraso mas isso foi um problema que acabei esbarrando também e consegui encontrar a solução. Podem estar acontecendo basicamente 2 coisas 1 - Erro no código do cliente, e ai precisariamos ver o console (ctrl+t) ou o debug (geralmente otclient.txt) para saber o que está acontecendo 2 - Muitos clientes podem até ja vir preparados para receber outfit nas devidas modules como, por exemplo, o OTClient do Edubart na module client_entergame: if key == 'outfit' then -- it's an exception subWidget:setOutfit(value) else Mas o servidor precisa mandar a seção "outfit" corretamente pelo protocolo de login, assim como o cliente deve receber essa mesma seção pelo mesmo protocolo, por exemplo: 2.1 Servidor: Pegando, por exemplo as sources desse servidor ( ) Notamos no arquivos protocollogin.cpp (sources server) na função ProtocolLogin::parseFirstPacket todos os dados que são enviados pro cliente em relação ao personagem. Precisamos apenas adicionar a seção de outfits aqui, como por exemplo, abaixo de output->AddU16(g_config.getNumber(ConfigManager::GAME_PORT)); (em relação ao player e NÃO ao Account Manager) você pode adicionar um código tipo assim (lembrando de adicionar o import #include "database.h" e #include "databasemanager.h" no topo do arquivo): uint16_t lookType = 128; uint8_t lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookAddons = 0; DBResult* result = Database::getInstance()->storeQuery( "SELECT looktype, lookhead, lookbody, looklegs, lookfeet, lookaddons " "FROM players WHERE name = " + Database::getInstance()->escapeString((*it)) + " LIMIT 1" ); if(result) { lookType = result->getDataInt("looktype"); lookHead = result->getDataInt("lookhead"); lookBody = result->getDataInt("lookbody"); lookLegs = result->getDataInt("looklegs"); lookFeet = result->getDataInt("lookfeet"); lookAddons = result->getDataInt("lookaddons"); result->free(); } output->AddU16(lookType); output->AddByte(lookHead); output->AddByte(lookBody); output->AddByte(lookLegs); output->AddByte(lookFeet); output->AddByte(lookAddons); E na seção do Account Manager passar valores padrão: output->AddU16(128); // lookType output->AddByte(0); // head output->AddByte(0); // body output->AddByte(0); // legs output->AddByte(0); // feet output->AddByte(0); // addons 2.2 Cliente: Voltando pro cliente, precisamos captar essa nova seção no protocolo de Login. Pegando o OTClient do Edubart como exemplo, existe o arquivo modules/gamelib/protocollogin.lua (no cliente mesmo e não nas sources) que possui a função ProtocolLogin:parseCharacterList agora é só passar a nova seção de outfit aqui dentro, junto com os demais dados do personagem: function ProtocolLogin:parseCharacterList(msg) local characters = {} local charactersCount = msg:getU8() for i = 1, charactersCount do local character = {} character.name = msg:getString() character.worldName = msg:getString() character.worldIp = iptostring(msg:getU32()) character.worldPort = msg:getU16() local lookType = msg:getU16() local lookHead = msg:getU8() local lookBody = msg:getU8() local lookLegs = msg:getU8() local lookFeet = msg:getU8() local lookAddons = msg:getU8() character.outfit = { type = lookType, head = lookHead, body = lookBody, legs = lookLegs, feet = lookFeet, addons = lookAddons, } characters[i] = character end local account = {} account.premDays = msg:getU16() signalcall(self.onCharacterList, self, characters, account) end E ai é só ajustar sua module de listagem de personagens para o design/layout que quiser
  2. Preciso de alguém que saiba mexer na UI de OTClient (voltado para poketibia) para customizar algumas modules (login, criação de conta e de personagens e listagem de personagens). Foco é mexer nos arquivos .otui e .lua para melhorar o layout dos mesmos. O client é o v0.6 do Edubart
  3. Opa man, mandei uma mensagem no discord, consegue dar uma olhada?
  4. Olá pessoal, tudo bem? Estou procurando um mapper para realizar algumas alterações no meu servidor: basicamente substituir os pokecenters e marks com aquele layout e sprites antigas pelos mais modernos. Alguem interessado?
  5. Opa rapaziada, blz? É a primeira vez que dou as caras por aqui então prazer em conhecer vcs!! Bom, eu sou dev web e sempre amei pokemon (e tibia kkkk) e lembro de quando era criança e jogava esses jogos sem parar (tanto os da franquia originais quanto os poketibias da vida), ja joguei muito OTPokemon, KPDO, PXG e eu amava isso. Muitas vezes ja até cheguei a criar alguns servidores olhando videos no youtube para jogar com meus primos kkkk. Enfim, a vida adulta foi chegando, me distanciei um pouco dos servidores, comecei a fazer faculdade e hoje estou empregado como desenvolvedor. Há umas 2 semanas e meia entrei de férias do meu trabalho e estava muito a fim de aprender algumas tecnologias novas e foi ai que vi uma propaganda da PXG no instagram e pensei "agora que tenho mais capacidade, vou tentar mexer um pouquinho com servidores e ja aprender a programar em Lua". E assim foi kkk, baixei um PDA da vida de 2012 (só pq é facil de rodar e não exige muita configuração extra) e comecei a desenvolver. E nesse período consegui completar alguns sistemas que gostaria de compartilhar com vocês 1 - IV System Basicamente quando o player captura um pokemon e solta ele pela primeira vez, o servidor gera valores aleatórios entre 0-31 para aplicar buff nos status do pokemon baseados em um calculo que peguei da internet como sendo o "calculo real de IVs da franquia" (descontei alguns atribulos como nature, etc etc). (alakazam nunca usado) (alakazam após ser usado pela primeira vez) (após utilizar o item que permite o player ver os valores dos IVs do seu Pokemon) Também possuo os itens bottle cap e golden bottle cap que são requeridos em troca pelo NPC Capsmith para colocar um certo IV em 31 ou todos os Ivs em 31 respectivamente 2 - Move Selector É um sistema que tenta trazer algo mais parecido com as franquias mais recentes de Pokemon mas com o toque de tibia pra não perder a essência: Basicamente o pokemon começa podendo utilizar apenas 6 attacks do seu moveset (moveset padrão configurado pelo configuration.lua) e, através de um item, o player consegue subir esse limitador para um máximo de 10 ataques no qual o player tem liberdade para escolher quais ataques o pokemon poderá usar. Acho isso bacana pois força o player a pensar estratégias para fazer hunts, quests, etc. E temos a "tranca" de que você só pode mudar os ataques de um certo pokemon uma vez a cada 5 minutos Esse deu um pouco mais de trabalho por conta nas modificações client-side, não sabia muito bem como mexer em arquivos .otui e .otmod. E a UI está bem feia eu sei, não me julguem kkkkk 3 - Hold Items System Todos conhecem o clássico Held System para poketibias. Ao mesmo tempo que eu gosto da ideia de holding systems para simular o que temos na franquia original, nunca fui muito fã dos padrões de Held X/Y/ cooldown, strafe, cure, etc etc. Então pensei em simplesmente limpar esse sistema dessa base e recomeçar um novo que tem como objetivo replicar o mais fielmente possível o que temos originalmente e ai que entram os holding Items: no momento tenho configurado a Life Orb (aumenta o ataque do pokemon em 20% mas rebece um hit recoil de 5% da vida máxima sempre que usa um ataque), a Leftovers (que recupera 5% da vida máxima do pokemon a cada 3 segundos para simular os "turnos") e alguns outros. E esses itens só funcionam em combate (para o caso do Leftovers) e quando acertar um golpe (para o caso do Life Orb) então nada de Pokemon morrendo sem querer spammando skill no CP ou de gente curando a vida inteira com Y-Regeneration embaixo da escada e depois subindo pra derrotar o Lendário, vai ter que depender de poções e revives também. (Pior que minha UI, só as sprites disso) 3.1 - Life Orb 3.2 - Leaftovers 3.3 - Demais Itens Também possuo configurado Rocky Helmet (aplica dano de 2.5% da vida máxima a pokemons que atacarem o seu), Assault Vest (buffa defesa, vitality e hp mas perde ofense, special attack e agility) além dos itens que aumentam em 70% os danos elementais (normal, passaro, grama, fogo, agua, fantasma, etc etc) 4 - Nature Basicamente um sistema muito parecido com os IVs mas agora aplicando buffs e debuffs sendo o mais leal possível à franquia original (com algumas adaptações à vitality, cdr de skills representando a "speed", etc) 4.1 - Mints Também possuimos as Mints, que basicamente são consumíveis para mudar a Nature do seu pokemon (pretendo faze-las coletaveis de algum lugar (tipo um arbusto ou árvores), todos os demais seriam itens de quest/shop/drop muito raro. 5 - Pokebar A clássica!! Nessa versão do PDA que eu baixei, não existia pokebar, sei que a coisa mais facil de encontrar hoje em dia é tutorial para adicionar esse sistema no PDA mas tentei fazer o máximo por conta própria possivel (tirando o client side pois, igual eu disse no sistema de seleção de moves, não tive boas experiencias mexendo com .otui e .otmod kkkkk) Mas e ai, o que acharam? Começo bom pra quem nunca tinha mexido a fundo assim em Otservs? Ou ta fraco ainda? Jogariam em um servidor com esses sistemas? Estou aberto para novas ideias de sistemas também
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...