Тема: RakSAMP Lite
Показать сообщение отдельно

  #362  
Старый 09.09.2022, 12:00
Daddyy
Участник форума
Регистрация: 26.12.2017
Сообщений: 238
С нами: 4410412

Репутация: 83
По умолчанию

Цитата:
Сообщение от bereg101  

Что не так? пытаюсь использовать задержку из планировщика корутин но не выходит..

Исходник - Аналог lua_thread для RakBot, wait() и DefCall без крашей

Это планировщик корутин для ракбота. Добавляет возможность использовать wait() как в муне, а также юзать некрашащие defCall -- Аналог lua_thread.create, создает новую задачу. Второй аргумент должен быть true -- если задача должна быть приостановлена при запуске. Task Tasking.new(func, halted =...

www.blast.hk


Пишет ошибку "attempt to yield across C-call boundary"

чего только не пробовал, скрипт или ложиться или не работает

Lua:





Код:
require
(
"addon"
)
require
'Tasking'
function
infinite_loop
(
)
while
true
do
Tasking
.
wait
(
1000
)
print
(
'I am infinite loop that called every second!'
)
end
end
function
infinite_loop2
(
)
while
true
do
Tasking
.
wait
(
2000
)
print
(
'I am another loop that called every two seconds!'
)
end
end
function
deferred_call
(
argument1
,
argument2
)
print
(
'I am deferred call that called after two seconds after script started'
)
print
(
'My arguments: '
..
argument1
..
' '
..
argument2
)
-- Resume infinite_loop2 task, that created suspended initially
halted_task
:
resume
(
)
-- Task will be halted again after 5 seconds
Tasking
.
defer
(
function
(
)
halted_task
:
halt
(
)
end
,
5000
)
end
function
main
(
)
halted_task
=
Tasking
.
new
(
infinite_loop2
,
true
)
infinite_loop
(
)
end
Tasking
.
new
(
main
)
Tasking
.
defer
(
deferred_call
,
2000
,
123
,
456.758
)
-- только вместо onScriptUpdate = Tasking.tick нужно писать onUpdate = Tasking.tick
infinite_loop
(
)
onUpdate
=
Tasking
.
tick
(
)

Код:





Код:
package.path = getPath().."/scripts/libs/?.lua;"..getPath().."/scripts/libs/?/init.lua;";
package.cpath = getPath().."/scripts/libs/?.dll";

require "Tasking"
 
Ответить с цитированием