Hi there,
Early I used effil library to multithreading, yes, I know, I can use default .CreateThread, but I have some reasons literally to use effil library.
I’m trying to use require for .dll file, but nothing works.
FxManifest
fx_version 'cerulean'
game 'gta5'
name 'effil'
version '0.0.0'
server_scripts {
'libeffil.dll',
}
effil.lua
local capi = require 'libeffil'
local api = {
version = "0.1.0",
table = capi.table,
thread_id = capi.thread_id,
sleep = capi.sleep,
yield = capi.yield,
rawget = capi.rawget,
rawset = capi.rawset,
setmetatable = capi.setmetatable,
getmetatable = capi.getmetatable,
G = capi.G,
gc = capi.gc,
channel = capi.channel,
type = capi.type,
pairs = capi.pairs,
ipairs = capi.ipairs,
allow_table_upvalues = capi.allow_table_upvalues
}
api.size = function (something)
local t = api.type(something)
if t == "effil.table" then
return capi.table_size(something)
elseif t == "effil.channel" then
return something:size()
else
error("Unsupported type " .. t .. " for effil.size()")
end
end
local function run_thread(config, f, ...)
return capi.thread(config.path, config.cpath, config.step, f, ...)
end
-- Creates thread runner with given function
-- configurable parameters:
-- path - lua modules search path in child thread
-- cpath - lua libs search path in child thread
-- step - who fast reacte on state changing
-- __call - run thread, can be invoked multiple times
api.thread = function (f)
if type(f) ~= "function" then
error("bad argument #1 to 'effil.thread' (function expected, got " .. capi.type(f) .. ")")
end
local thread_config = {
path = package.path,
cpath = package.cpath,
step = 200 }
setmetatable(thread_config, {__call = function(c, ...) return run_thread(c, f, ...) end})
return thread_config
end
return api
And i get “SCRIPT ERROR: @effil/effil.lua:1: module ‘libeffil’ not found”.
Is there any possibilities to use .dll - core?