xml rápido
El código fuente de Tianlongbabu probablemente se reescribió después de que se filtró el código de Tianlongbabu, porque se puede encontrar alguna evidencia en el código. Todo el cliente está dividido en: uno es el editor y el otro es el cliente. utilizando la biblioteca de red autoescrita FMOD de detección de colisiones físicas simple escrita por OGRE cegui.
No se ha prestado especial atención al código del lado del servidor en este momento
La descripción general del cliente es la siguiente:
Sistema UI CEGUI UI básico sistema
Representación CEGUI
El analizador XML Expat depende de CEGUI, y se estima que al escritor no le gusta usarlo
FreeType2 multiplataforma, El renderizador de fuentes de código abierto se utiliza para dibujar chino
Script luaPlus
Motor de visualización 3D Ogre es un motor de renderizado eficiente de código abierto. El último OGRE es 1.7.2
La detección de colisiones de Tianlong parece realizar solo una detección simple de cuadros de colisiones.
La herramienta de análisis XML TinyXML es el analizador XML utilizado en el juego. De hecho, RapidXML se puede utilizar para hacerlo más preciso.
Musicamp Sound Effect FMOD SDK. De hecho, OPENAL también es una buena opción.
Sistema WX
La gestión de operaciones de acciones de WXClient incluye chat, elementos, habilidades para la vida, etc. Visto temporalmente, todas son en realidad operaciones en iconos
Gestión del puntero del cursor del mouse (también conectado a muchos comandos)
El cliente DataBase utiliza una base de datos en memoria para implementar la definición de base de datos en WXEngine, incluidas las funciones de búsqueda, adquisición y apertura de archivos, TLBB_DBC. Se puede confirmar que, aunque lo es. llamado Wuxia, permanece bajo la sombra de Tianlong
DataPool administra todos los datos del juego de manera unificada, incluida UI, TeamOrGroup, etc. Hay una clase CModelShowInUI (extraño, esta clase no debería No se colocará aquí, ¿verdad?)
El procesador de eventos del juego de eventos se divide en cola de eventos y cola de eventos de procesamiento lento, ¡que vale la pena consultar! ! ! Se utiliza el método de registro de la función de procesamiento de eventos y los parámetros son muy flexibles.
FakeObject se usa para los objetos que se muestran en la interfaz de usuario (aquí se usa como una clase de administrador)
El ayudante se exporta con luaPlus y crea una ventana del sistema de ayuda
Entrada Clase de entrada
La interfaz es la clase de control de interfaz externa de todo el juego. Todos los módulos externos necesitan controlar los datos del juego y controlarlos a través de esta interfaz, como un tipo de llamada de script
Mensaje de red de red. procesamiento
Objeto La clase base lógica Objeto no tiene nada que ver con la visualización, ¡por supuesto que deriva tipos que se pueden mostrar! Y los tipos de objetos específicos en el juego
Procedimiento del juego, inicio de sesión, selección de personaje, creación de personaje, espera para ingresar a la escena, proceso principal del juego MMO, servidor de inicio de sesión
Archivos de recursos, varios mouse Archivos .cur
El administrador del sistema de scripts, heredado del ScriptEnvironment de Engine, llama al script
Sonido
Archivo Soure _tWinMain aquí 2
Sistema de parámetros de configuración variable
Área de escena mundial Zona, Escena, Administrador mundial, búsqueda de rutas y otras funciones El tamaño de una ZONA es exactamente el tamaño de una pantalla, y ZONA constituye una Escena
Detección de colisiones, que envuelve principalmente el método de procesamiento del modelo de esqueleto de Ogre
Sistema de efectos especiales EffectSystem
Definición de modelo ModelType adicional adicional
SkeletonMesh (Se sospecha que está abandonado) Dobject_NT envuelve Ogre::Entity, que se puede adjuntar a efectos especiales relacionados, en SceneNode
SkeletonMeshUrl se utiliza como formato de almacenamiento para almacenar Dobject_NT
El capa combinada de capa de renderizado LogicModel y cliente. Utilice la capa de renderizado para satisfacer las necesidades del cliente de objetos dinámicos en la escena sin llamar al código de la capa de renderizado
OgreExt es una extensión de Ogre, renderizado
PostFilters efectos de imagen 3D, post-filtrado
Sistema de archivos de ResourceSystem Ogre, utilizado para leer y cargar el sistema de archivos en su conjunto
Archivos de encabezado y archivos fuente capa de objetos renderizables BasicRenderable y sus subclases
Implementación del terreno y su gestión, edición y optimización
WX::Object hereda boost::enable_shared_from_this
>XercescParser encontró otra biblioteca de análisis XML aquí
WX::AcrotObj, WX::ActorObject, WX::LogicModelObject debe leerse atentamente para comprender el principio
Escena base Clase, administración, serialización, edición y otros métodos
Cursor WXEngine
Base de datos
¿Depurador para depurar? Pero no he visto dónde se usa específicamente. ¿Es para un guión?
La excepción incluye el directorio comprimido de Xzip... y, por supuesto, incluye definiciones de excepciones lanzadas y CrashReport FakeObject, Gfx, Helper, Input
Matemáticas, Perfil, Script, Sonido
p>Time, UI, Util y Variable son clases virtuales para varias funciones. Por supuesto, también hay clases con implementaciones específicas. Esperando para continuar ordenando y analizando 2
Kernel TDKernel administra el registro de clases y la información del complemento a través de toda la herencia de TDNode (y TDClass para el TDNode correspondiente y WXRender se agregan al Kernel a través del complemento (). por verificar) p>
TDNode es una clase de nodo central establecida por Kernel para facilitar la organización de datos, similar a un árbol
El nodo TDClass define una clase y toma el nombre de la Clase definida según el nombre de la clase, similar a cómo MFC establece su propia cadena de clases. Lo importante es que varias macros de implementación de definición de clase inicializan automáticamente la asignación de tClass.
También implementada la función CreateObject
Acción del juego
DataPool
Evento 2
Interfaz
Objeto p >
Mundo
WXNetPackets Tabla de estructura de datos del campamento de combate, estructura de registro de la tabla de datos de habilidades y efectos, lector de administración general de tabla de datos tiene administrador de datos de plantilla
Base de datos TLBB_DBC h Defina el DBC. clase de archivo de base de datos común para los clientes del servidor
Common Common Definición común para todo el juego, GameStruct
Función de conveniencia GameUtil, verificación CRC, bloqueo, conversión binaria en cadena DB Esperando cosas p>
Función aleatoria, tipo, estructura de comando de script, gestión de datos de habilidades, playerStatus 2
Importante PacketDefine
Los archivos de encabezado y los archivos fuente son básicamente todos Es la implementación de Packet -gt para la situación específica de Packet en Common\Net, la implementación de Execute PacketDefine
WXRender Camera 3 tipos de cámaras
Object RFObject se basa en la clase base del objeto de capa de renderizado tEntityNode; en la implementación de WXEngine
RFObj hereda de RFObject y se usa para envolver el objeto WX::Object. Coloque su propio puntero en los datos de WX::Object
RFObj_Actor, RFObj_Model, RFObj_Static. , todos heredan del carácter RFObj, modelo dinámico, modelo estático 2
El diseño original de RFObj_Actor debería usar Dobject_NT en SkeletonMesh.h, pero de hecho no hay correlación, se explica que WXLogicModel reemplace el Dobject 2 original. p>
Archivos de encabezado y archivos fuente DebugPanel incluye información de depuración y HitObjectPanel (¿información de acceso?)
RenderSystem integra objetos de entorno, administración de filtros posteriores a la renderización y el sistema central. Existen muchas técnicas para cargar recursos.
El sistema de suministro de recursos ResourceProvider utiliza internamente el administrador de grupos de recursos de Ogre para una gestión y juicio unificados. ResourceLoadListener se utiliza para encontrar errores detallados al analizar scripts, que es ScriptParsingListener: public Orge:: ResourceLoadListener es realmente poderoso...,
RFFakeObjectManager es un administrador para el modelo de visualización de la interfaz de usuario en la capa de renderizado
Objeto renderizable de cuadrícula de terreno TerrainGrid
WXObj_ProjTex Textura proyectada WXObj, incluido anillo de selección, puntos de sombra y huellas