
09.09.2022, 12:00
|
|
Участник форума
Регистрация: 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"
|
|
|