riakisuk 17 Postado 26 de Fevereiro Compartilhar Postado 26 de Fevereiro Então para vocês que querem entender um pouco a mais sobre TFS SOURCE game.cpp / game.h → Controla as regras do jogo (spawn de criaturas, salvamento, eventos). player.cpp / player.h → Tudo relacionado ao jogador (stats, level, ações). creature.cpp / creature.h → Classe base para players e monstros. combat.cpp / combat.h → Sistema de dano, magias e efeitos de batalha. configmanager.cpp / configmanager.h → Carrega o config.lua. protocolgame.cpp / protocolgame.h → Comunicação entre o cliente e o servidor (envio de pacotes). iomap.cpp / iomap.h → Carregamento do mapa do jogo. iologindata.cpp / iologindata.h → Gerenciamento de contas e senhas. luascript.cpp / luascript.h → Sistema que integra Lua ao C++. Vale lembrar que tudo que esta no CPP tem que registrar a informação em .H 10 4 Link para o comentário https://tibiadevs.com/forums/topic/920-entenda-o-basico-de-source/ Compartilhar em outros sites Mais opções de compartilhamento...
riakisuk 17 Postado 26 de Fevereiro Autor Compartilhar Postado 26 de Fevereiro Se tiver na aba errada passem pra certa por favor ❤️ 1 1 Link para o comentário https://tibiadevs.com/forums/topic/920-entenda-o-basico-de-source/#findComment-4803 Compartilhar em outros sites Mais opções de compartilhamento...
morduk 687 Postado 27 de Fevereiro Compartilhar Postado 27 de Fevereiro Muito bom! Link para o comentário https://tibiadevs.com/forums/topic/920-entenda-o-basico-de-source/#findComment-4806 Compartilhar em outros sites Mais opções de compartilhamento...
SuggestName 8 Postado 16 de Julho Compartilhar Postado 16 de Julho 1. Ponto de partida main.cpp É a porta de entrada do programa. Pense nele como o vigia da portaria: quando você “liga” o servidor, é ele quem carrega as configurações iniciais, inicializa bancos de dados, redes e tudo mais, e só então passa o controle para o cérebro central do jogo. 2. Carregando configurações e banco de dados ConfigManager Responsável por ler o arquivo config.lua (e outros arquivos de configuração). É como o gerente que consulta a lista de “tudo o que precisa ser ajustado”: ip, portas, limites de jogadores, nomes de tabelas no banco etc. Database / DatabaseMySql Conecta, consulta e grava informações no banco de dados (usuários, personagens, histórico). Imagine um atendente de banco que recebe cheques (queries), busca seu dinheiro (dados) e devolve ao jogo. 3. Camada de rede NetworkMessage, InputMessage, OutputMessage Gerenciam o trânsito de bytes entre cliente e servidor. Pense neles como carteiros: empacotam (OutputMessage) as cartas (dados) para enviar, e desempacotam (InputMessage) as que chegam. ProtocolLogin Lida com a “porta de entrada” dos jogadores: autenticação de usuário/senha, versão do cliente. É como o recepcionista do clube que confere sua carteirinha antes de você entrar. ProtocolGame Depois de entrar, todo o bate‑papo em jogo, movimentos, ataques, pegas de item, tudo passa por aqui. É o maître que coordena cada ação do cliente para dentro do salão do jogo. RSA / Cryptography Responsável por criptografia dos pacotes sensíveis (senhas, chaves). Funciona como uma caixa‑forte que garante que só o servidor leia certos dados. 4. “Cérebro” do jogo Game Classe central que mantém o “loop” do servidor: dispara eventos periódicos, processa ações em fila, verifica timers. É o maestro de uma orquestra, garantindo que todo componente execute sua parte no tempo certo. Scheduler Agenda tarefas para acontecerem “amanhã” ou daqui a X segundos, como regenerar vida, status ou executar scripts em momentos específicos. Seria o calendário/agenda do servidor. 5. Mundo e posicionamento Map Armazena a planta baixa do mundo: quais tiles existem e quais itens e criaturas estão em cada um. É o “planta da cidade” na prancheta. Tile Representa um quadrado do mapa. Sabe o que está em cima (itens, chão) e quem está nele (criaturas). Imagine um quadrado de terreno que pode ter um carro, uma árvore e uma pessoa. Position Guarda as coordenadas (x, y, z). É como um endereço: rua (x), número (y) e andar (z). 6. Tudo que está no mapa Thing (classe‐pai) Abstração de “coisa” genérica no mundo: pode ser um Item, uma Creature, um Effect. Como dizer “objeto” antes de especificar se é uma mesa ou uma cadeira. Item / ItemType Tudo que você pega ou usa: espada, poção, livro. ItemType descreve as propriedades (peso, valor, se empilha). StaticText / Text Mensagens fixas no mapa (placas, diálogos automáticos). 7. Seres vivos Creature (classe‐pai de tudo que anda) Toda “criatura” (jogador, monstro, NPC) herda desta classe. Guarda vida, mana, condições (paralisado, envenenado). Player Extensão de Creature para quem controla o personagem: inventário, conta, skills, vocação. É você no jogo. Monster Extensão de Creature para inimigos automáticos. Tem IA simples, spawn configurado em mapas. Npc “Monstro” amigável que conversa. Pode executar scripts Lua quando você fala com ele, dando quests ou vendendo itens. 8. Combate e magia Combat Calcula danos de ataques físicos: verifica força, defesa, distância, elementos. Como um árbitro que aplica regras de pancadaria. Spells / Magic Trata de magias: fogo, cura, buffs. Cada feitiço é configurado e executado por aqui, descontando mana e aplicando efeitos. 9. Comunicação Chat, ChatChannel, ChatManager Gerenciam canais de conversa (“gíria”, “grupos”, “público”), quem ouve o quê. Funciona como um sistema de rádio onde cada canal é uma frequência. 10. Scripting e eventos ScriptManager / LuaScriptInterface Carregam e executam scripts Lua que definem comportamentos dinâmicos: quests, diálogos de NPC, triggers de mapa. É o “laboratório de cenários” do servidor, permitindo alterar lógica sem recompilar C++. 11. Tarefas agendadas TaskSystem Uma camada extra sobre o Scheduler para criar missões diárias, eventos de mundo (festas, invasões). Pensa nelas como lembretes automáticos que disparam rewards. 12. Gestão de casas e cidades HouseManager / House Controlam construção e propriedade de casas no jogo: quem pode entrar, mobília, taxas de aluguel. Town / Towns Guardam dados de vilas e cidades: posições de templo, preço de transporte, nomes. 13. Perfis e vocações Vocation / VocationManager Define “classes” de personagens (guerreiro, mago, paladino), habilidades iniciais, gains de skill. É como o RH que define cargos e benefícios de cada funcionário. 14. Spawn de monstros e itens Spawns Lê arquivos de configuração para gerar monstros e itens automaticamente em mapas, em intervalos definidos. 15. Registro de eventos Log / Logger Grava tudo que acontece (logins, erros, mensagens de debug) em arquivos de texto. É a “ata de reuniões” do servidor. Como usar este guia Comece pelo “Game”: entenda como o loop principal chama cada componente. Veja o “Map” e “Tile”: visualize como o mundo é montado. Estude “Creature” → “Player” e “Monster”: é aí que a maioria das regras de jogo acontece. Explore “ProtocolGame”: descubra como as ações do jogador viram dados no servidor. Abra os scripts Lua: aqui você verá como quests e diálogos são criados sem tocar em C++. Cada classe tem centenas de linhas, mas todas se encaixam nesses blocos de função. Ao entender o papel de cada “setor” (rede, mundo, criaturas, combate, scripts), você ficará confortável para navegar na SOURCE do TFS 1.x e até modificar o que precisar. Bom estudo! This is the hidden content, please Entre ou Cadastre-se 7 1 Link para o comentário https://tibiadevs.com/forums/topic/920-entenda-o-basico-de-source/#findComment-6103 Compartilhar em outros sites Mais opções de compartilhamento...
Zeon 7173 Postado 16 de Julho Compartilhar Postado 16 de Julho Em 26/02/2025 em 16:56, riakisuk disse: Então para vocês que querem entender um pouco a mais sobre TFS SOURCE game.cpp / game.h → Controla as regras do jogo (spawn de criaturas, salvamento, eventos). player.cpp / player.h → Tudo relacionado ao jogador (stats, level, ações). creature.cpp / creature.h → Classe base para players e monstros. combat.cpp / combat.h → Sistema de dano, magias e efeitos de batalha. configmanager.cpp / configmanager.h → Carrega o config.lua. protocolgame.cpp / protocolgame.h → Comunicação entre o cliente e o servidor (envio de pacotes). iomap.cpp / iomap.h → Carregamento do mapa do jogo. iologindata.cpp / iologindata.h → Gerenciamento de contas e senhas. luascript.cpp / luascript.h → Sistema que integra Lua ao C++. Vale lembrar que tudo que esta no CPP tem que registrar a informação em .H No protocolgame.cpp, o sistema de ícones (icon system) é entregue por meio de algum pacote específico? Se sim, qual é esse pacote e como ele se integra ao código?" Link para o comentário https://tibiadevs.com/forums/topic/920-entenda-o-basico-de-source/#findComment-6104 Compartilhar em outros sites Mais opções de compartilhamento...
riakisuk 17 Postado 20 de Julho Autor Compartilhar Postado 20 de Julho Em 16/07/2025 em 01:23, Zeon disse: No protocolgame.cpp, o sistema de ícones (icon system) é entregue por meio de algum pacote específico? Se sim, qual é esse pacote e como ele se integra ao código?" tem que ver a tratativa da sua base como esta chamando, procura a chamativa que esta ali exemplo "getPlayersByName" procure a onde é tratada essa chamada na sua src e vai puxando até verifica corretamente o sistema Link para o comentário https://tibiadevs.com/forums/topic/920-entenda-o-basico-de-source/#findComment-6140 Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora