जब एक मूल परत की आवश्यकता होती है#

सामान्य XML परिवर्तन और UI विंडो को आमतौर पर इसकी आवश्यकता नहीं होती है। जब उपलब्ध हो तो FFI या कस्टम DLL का उपयोग करें MD और Lua UI कार्य को व्यक्त नहीं कर सकते हैं। अंतर्निहित Lua फ़ंक्शन, FFI निर्यात और कस्टम Lua C मॉड्यूल अलग-अलग अनुबंधों के साथ अलग-अलग इंटरफ़ेस हैं।

एबीआई घोषित करना#

नीचे दिए गए उदाहरण में संबंधित खेल निर्माण के साथ उपयोग की जाने वाली घोषणाएं दर्शाती हैं। सफल cdef निर्यात उपलब्धता साबित नहीं करता है। pcall गलत हस्ताक्षर को सुरक्षित नहीं बनाता है। अपने स्वयं के X4 संस्करण में प्रकार, कॉल सम्मेलन और समर्थन की जांच करें।

LUA
local ffi = require("ffi")
if ffi.cdef then
    pcall(ffi.cdef, [[
        bool IsGamePaused(void);
        bool IsStartmenu(void);
    ]])
end

तृतीय पक्ष घटक#

X4Native एक अलग पुस्तकालय है अपने लोडर और एबीआई के साथ, प्रत्येक Lua मॉड के लिए एक आवश्यक निर्भरता नहीं है. केवल जब प्रयोग किया जाए तब ही घोषित और सत्यापित करें। यूआई संरक्षित मोड लोड तंत्र को भी प्रभावित करता है; इसे निष्क्रिय करना एक सामान्य डेटा पैच के लिए पहला कदम नहीं है।

मूल्य प्रकार#

एक सूचक, uint64_t और Lua संख्या परस्पर नहीं बदला जा सकता है। पढ़ें पहचान की सटीकता धारावाहिकीकरण या भाषाओं को पार करने से पहले। प्रत्यक्ष मेमोरी ऑफसेट बिल्ड पर और भी अधिक निर्भर करता है। उत्परिवर्तन का परीक्षण करने से पहले सुरक्षित रीडबैक और वस्तु पहचान स्थापित करें।