Jump to content

Inlife

Members
  • Posts

    7
  • Joined

  • Last visited

Everything posted by Inlife

  1. Download latest version of slither.lua (Dependency) Download latest version of async.lua Update your meta.xml <script src="path/to/lib/slither.lua" type="shared" /> -- it. <script src="path/to/lib/async.lua" type="shared" /> Check it. I already do that but I changed the script location (path/to/lib/slither.lua) to (slither.lua) same for the second one Changing path is ok. I updated installation instructions. https://github.com/Inlife/mta-lua-async#installation Thanks for feedback
  2. I think so, it mostly depends on your realization. Can you provide some example ?
  3. Thanks ! Yeah, that's why i tried to imitate something similar to threads. It's awesome library, i using it for 2 years now. Tell bartbes that im very grateful
  4. I thought about it. Maybe i'll do this in the next release. )
  5. MTA Lua Asynchronous Computing Description: MTA:SA Async library. If you have some heavy cyclic operations, that are dropping "Infinite/too long execution", or operations that "freeze" your server for couple seconds, you can use this library. It supports multiple running threads at a time. Installation & Instructions: https://github.com/Inlife/mta-lua-async Enable debug, if you need to (it will print some useful information in server console) Async:setDebug(true); Iterate on interval from 1 to 50,000,000 while calculating some data on every iteration (if you run standart "for" cycle, mta server will "freeze" for several seconds) Async:iterate(1, 50000000, function(i) local x = (i + 2) * i; -- heavy opreation outputServerLog(x); end); Iterate over big array of data Async:foreach(vehicles, function(vehicle) vehicle:setHealth(1000); end); There also an options for changing speed of your async caclulations: Async:setPriority("low"); -- better fps async:setPriority("normal"); -- medium async:setPriority("high"); -- better perfomance -- or, more advanced async:setPriority(500, 100); -- 500ms is "sleeping" time, -- 100ms is "working" time, for every current async thread Example: local _connection; -- initialized database connection local vehicles = {}; Async:setDebug(true); Async:setPriority("low"); dbQuery(function(qh) local data = dbPoll(qh, 0); Async:foreach(data, function(vehicle) local _vehicle = createVehicle( vehicle.model, vehicle.x, vehicle.y, vehicle.z ); -- other stuff -- ... table.insert(vehicles, _vehicle); end); -- and run dummy cycle at the same time (just for fun ) Async:iterate(0, 500000, function(num) outputServerLog(num); end); end, _connection, "SELECT * FROM vehicles");
×
×
  • Create New...