Скажите плиз как можно сделать что бы бот зажимал W на несколько секунд?
Lua:
Код:
local
hook
=
require
(
"samp.events"
)
require
(
"addon"
)
function
pressKey
(
keyId
,
pressTime
)
print
(
'Pressed key:'
,
keyId
)
key
=
keyId
press
=
true
newTask
(
function
(
)
press
=
nil
key
=
nil
end
,
pressTime
)
end
function
hook
.
onSendPlayerSync
(
data
)
if
pressKey
then
data
.
upDownKeys
=
key
end
end
function
onRunCommand
(
cmd
)
if
cmd
:
find
(
"^!pkey %d+ %d+$"
)
then
local
_k
,
_t
=
cmd
:
match
(
"^!pkey (%d+) (%d+)$"
)
pressKey
(
tonumber
(
_k
)
,
tonumber
(
_t
)
)
return
false
end
end
function
hook
.
onSendPlayerSync
(
data
)
if
press
then
data
.
upDownKeys
=
key
end
end
Вводишь в консоль "!pkey 65408 2000", и бот на две секунды зажмёт клавишу "W".
(Если введёшь 128 вместо 65408, то зажмёт клавишу "S")
Можно еще просто в коде:
Lua:
Код:
pressKey
(
65408
,
2000
)
Со стороны будет выглядеть так, будто ты идёшь на месте. Если тебе нужно прямо пройтись, а не зажать кнопку, то придётся писать более объёмный скрипт.
Цитата:
Сообщение от tfornik
при вызове runCommand('!reloadlua') - крашит раксамп
есть рабочее решение?
Смотря для какой цели. Если для разработки, то можно просто перезапускать RakSamp. Да, ошибка присутствует. Краша пока что не избежать, насколько мне известно. Если ты пишешь бота и хочешь быстро очистить все переменные во время реконнект и/или дисконнекта, то сохраняй все данные в таблицу, а потом пересоздай эту таблицу.
Пример:
Lua:
Код:
local
hook
=
require
(
"samp.events"
)
bot
=
{
}
function
onLoad
(
)
bot
.
nickname
=
"Nick_Name"
bot
.
password
=
"123123"
end
function
hook
.
onSetPlayerPos
(
pos
)
bot
.
position
=
pos
end
-- Очищаем во время дисконнекта
function
onDisconnect
(
)
bot
=
{
}
end