Ámbito de referencia#
El catálogo describe el X4 público conocido moddingá. Un nombre identificado no establece su contrato completo ni prueba la ejecución en el juego. Archivos mod, documentos internos y archivos fuente completos no se distribuyen.
Pruebas de tipo#
| Pruebas | Establece | Aún se requiere verificación |
|---|---|---|
| Declaración C | Orden de parámetros, tipos C y tipo de retorno C | Exportar, ABI, contexto, propiedad de la memoria y vida útil |
| X4 XSD | Nombres de atributos, tipos de expresión y atributos requeridos | Tipos evaluados, cargas útiles para eventos y efectos del juego |
| Lua 5.1 / LuaJIT | Contratos estándar de biblioteca | Disponibilidad y extensiones en el entorno actual de X4 |
| Documentación del evento concreto | Argumentos de devolución de llamadas y significados de campo | Versión, tiempo de registro y vida útil del objeto |
El tipo de esquema expression describe una expresión MD, no el tipo de su valor calculado. Los atributos de filtro no declaran tipos de event.param. Ignorar un resultado no demuestra que sea none, void o nil.
Resultados de la lectura#
Lua puede devolver varios valores. Las comas separan las posiciones de resultado; una barra vertical separa las alternativas. desconocido significa un contrato no establecido, mientras que cualquier depende del contexto. ninguno y el vacío indican ningún retorno directo, pero los efectos y los buffers de salida pueden seguir existiendo.
Los tipos C no siempre coinciden con su representación Lua. Un puntero es cdata; ffi.string copia una cadena C en una cadena Lua cuando se establece la vida útil de la memoria. No convierta ID con una pérdida de precisión. Ver tipos y métodos, identificadores y cdata.
Eventos y suscripciones#
| Mecanismo | Uso |
|---|---|
| Evento Lua | RegisterEvent con un nombre exacto y una llamada de vuelta en el contexto apropiado de la UI |
| UI a MD | event_ui_triggered en condiciones de taquicardia |
| Evento del motor MD | Su event_* estado y exactos filtros |
Estas rutas tienen contratos distintos. Un nombre de evento MD no puede ser utilizado automáticamente con RegisterEvent. Regístrese una vez por contexto; establezca tipos de callback y cuente para el sender exacto. Lua / puente MD ofrece un ejemplo de aprendizaje independiente.
Ejemplos y verificación#
Los fragmentos de aprendizaje requieren el contexto, las variables y el ciclo de vida indicado. No se afirma que se hayan ejecutado en el juego sin un experimento documentado. Los contratos incompletos conservan límites explícitos; no se inventan tamaños de buffer ni formas de carga útil.
Comience con el Índice API. Para mejorar un contrato, proporcionar la versión del juego, una fuente pública primaria y un pequeño ejemplo independiente a través de Contribuciones.