Думаю тебе стоит глубже изучить что такое коллизия. Как, по-твоему, можно определить столкновение если физически игры нету? По поводу проблемы с афк при столкновении разберусьТакой трабл, когда в игрока врезается - встает в афк и ничего не работает, мб можно как-то коллизию сделать?
Не заметил описанной проблемы. Бот продолжает ехать напролом преграде.Такой трабл, когда в игрока врезается - встает в афк и ничего не работает, мб можно как-то коллизию сделать?
Потому что это ракботПочему зависает ракбот через некоторое время после воспроизведения маршрута?
Я запустил 13 штук defCallAdd и бот работал, потом я запустил маршрут и бот завис и так всегдаПотому что это ракбот
чувствуешь разницу между запуском 13 пустых отложенок и циклическим заполнением структуры пакетов с последующей отправкой? код открыт, если найдешь фикс зависаний - ты молодец и лучший разработчик в мире. я делал код максимально оптимизированный, явной причины зависаний не вижуЯ запустил 13 штук defCallAdd и бот работал, потом я запустил маршрут и бот завис и так всегда
Из этого следует, что ракбот зависает не из-за того что вызвано много defCallAdd, а из-за того, что что-то его подвисает в коде выполнения маршрута! Что это может быть????? ХЕЛП МИ
Сделай фикс этой фигни, понятно же что это 100% из-за кода воспроизведения из-за какой-то фигни начинает подвисать во время воспроизведения
UPD: у меня уже 30 минут фигачит 13 штук defCallAdd и нету зависания.
Щас запустил маршрут и все окна повисли!!!!!!
Посмотреть вложение 60452Посмотреть вложение 60453
месяца полтора назад делал качатель акков, используя маршруты от этого роут рекордера, это был мой первый хоть сколько то серьезный скрипт и тогдашний говнокод ( а там были такие нестабильные функции как реконнект, смена акка при бане, нотификации в телегу, и соответственно куча дефКАЛлов) показывал себя просто отлично, у меня свет вырубался чаще, чем падал ракЯ запустил 13 штук defCallAdd и бот работал, потом я запустил маршрут и бот завис и так всегда
Из этого следует, что ракбот зависает не из-за того что вызвано много defCallAdd, а из-за того, что что-то его подвисает в коде выполнения маршрута! Что это может быть????? ХЕЛП МИ
Сделай фикс этой фигни, понятно же что это 100% из-за кода воспроизведения из-за какой-то фигни начинает подвисать во время воспроизведения
UPD: у меня уже 30 минут фигачит 13 штук defCallAdd и нету зависания.
Щас запустил маршрут и все окна повисли!!!!!!
Посмотреть вложение 60452Посмотреть вложение 60453
Ну я заметил такую фигню, что маршрут зависает во время исполнения отложенных функций. Например, если запускаешь маршрут во время выполнения отл. функций, то бот сразу повисает. Если запускаешь, когда функции в режиме ожидания и еще не выполняются, то отложенные функции могут выполниться полностью и на втором круге выполнения подвиснуть ракбота. скоей всего конфликт происходит в function onScriptUpdate() и defCallAdd.чувствуешь разницу между запуском 13 пустых отложенок и циклическим заполнением структуры пакетов с последующей отправкой? код открыт, если найдешь фикс зависаний - ты молодец и лучший разработчик в мире. я делал код максимально оптимизированный, явной причины зависаний не вижу
Ок, предположим, что я написал какой-то говноскрипт. ОК удаляем все и создаем 2 файла: 1 скрипт воспроизведения, 2 с дефкалладами.месяца полтора назад делал качатель акков, используя маршруты от этого роут рекордера, это был мой первый хоть сколько то серьезный скрипт и тогдашний говнокод ( а там были такие нестабильные функции как реконнект, смена акка при бане, нотификации в телегу, и соответственно куча дефКАЛлов) показывал себя просто отлично, у меня свет вырубался чаще, чем падал рак
ты явно чото не так делаешь, лучше бы показал код
defCallAdd(10000, true, function()
printLog('1')
end)
defCallAdd(10000, true, function()
printLog('2')
end)
defCallAdd(10000, true, function()
printLog('3')
end)
defCallAdd(10000, true, function()
printLog('4')
end)
defCallAdd(10000, true, function()
printLog('5')
end)
defCallAdd(10000, true, function()
printLog('6')
end)
defCallAdd(10000, true, function()
printLog('7')
end)
defCallAdd(10000, true, function()
printLog('8')
end)
defCallAdd(10000, true, function()
printLog('9')
end)
defCallAdd(10000, true, function()
printLog('10')
end)
defCallAdd(10000, true, function()
printLog('11')
end)
defCallAdd(10000, true, function()
printLog('12')
end)
defCallAdd(10000, true, function()
printLog('13')
end)
--[[
Route Recorder for shitty app called "Rakbot".
I don't trust that shit gonna work right, but whatever
+ Onfoot sync record/replay system
+ Incar sync record/replay system.
+ Moonloader lua script for this shit to record sync in compatible file format (.rt)
* I don't really understand how to do all this stuff, but I did!!!
TODO:
+ Loop current route
+ Stop current route
Author: Shamanije
URL: https://blast.hk/members/163165/
Version: 1.1
]]
local rep = false
local loop = false
local packet = {}
local counter = 0
local veh = {}
function onRunCommand(cmd)
if cmd:find('!play .*') then
packet = loadIni(getRakBotPath(1)..'/routes/'..cmd:match('!play (.*)')..'.rt')
if packet then
printLog('playing route "'..cmd:match('!play (.*)')..'". total length: '..#packet)
counter = 1
rep = true
loop = false
else
printLog('route doesnt exist')
end
return true
end
if cmd:find('!stop') then
if counter > 1 then
rep = not rep
if not rep then
setQuaternion(packet[counter].qw, packet[counter].qx, packet[counter].qy, packet[counter].qz)
end
printLog(rep and 'playing resumed' or 'stopped on packet: '.. counter)
else
printLog('not playing any route')
end
return true
end
if cmd:find('!loop') then
if rep then
loop = not loop
printLog(loop and 'looping current route' or 'loop off')
else
printLog('not playing any route')
end
return true
end
end
function onSync()
if rep then
return true
end
end
function onSendPacket(id, data, size)
if not rep and id == 200 then
local bs = bitStreamInit(data, size)
bitStreamSetReadOffset(bs, 1)
local vehId = bitStreamReadDWord(bs)
bitStreamSetReadOffset(bs, 49)
local vehHealth = bitStreamReadFloat(bs)
veh[vehId] = vehHealth
end
end
function onScriptUpdate()
if rep then
if packet[counter].packetId == 200 and getBotState() == 2 then
local bs = bitStreamNew()
bitStreamWriteByte(bs, packet[counter].packetId)
bitStreamWriteWord(bs, getBotVehicle())
bitStreamWriteWord(bs, packet[counter].lr)
bitStreamWriteWord(bs, packet[counter].ud)
bitStreamWriteWord(bs, packet[counter].keys)
bitStreamWriteFloat(bs, packet[counter].qw)
bitStreamWriteFloat(bs, packet[counter].qx)
bitStreamWriteFloat(bs, packet[counter].qy)
bitStreamWriteFloat(bs, packet[counter].qz)
bitStreamWriteFloat(bs, packet[counter].x)
bitStreamWriteFloat(bs, packet[counter].y)
bitStreamWriteFloat(bs, packet[counter].z)
bitStreamWriteFloat(bs, packet[counter].sx)
bitStreamWriteFloat(bs, packet[counter].sy)
bitStreamWriteFloat(bs, packet[counter].sz)
bitStreamWriteFloat(bs, veh[getBotVehicle()])
bitStreamWriteByte(bs, getHealth())
bitStreamWriteByte(bs, getArmour())
bitStreamWriteByte(bs, getWeapon())
bitStreamWriteByte(bs, 0)
bitStreamWriteByte(bs, 0)
bitStreamWriteByte(bs, packet[counter].gear)
bitStreamWriteWord(bs, 0)
bitStreamWriteFloat(bs, 0)
sendPacket(bs)
counter = counter + 1
bitStreamDelete(bs)
end
if packet[counter].packetId == 207 and getBotState() == 1 then
local bs = bitStreamNew()
bitStreamWriteByte(bs, packet[counter].packetId)
bitStreamWriteWord(bs, packet[counter].lr)
bitStreamWriteWord(bs, packet[counter].ud)
bitStreamWriteWord(bs, packet[counter].keys)
bitStreamSetWriteOffset(bs, 7)
bitStreamWriteFloat(bs, packet[counter].x)
bitStreamWriteFloat(bs, packet[counter].y)
bitStreamWriteFloat(bs, packet[counter].z)
bitStreamWriteFloat(bs, packet[counter].qw)
bitStreamWriteFloat(bs, packet[counter].qx)
bitStreamWriteFloat(bs, packet[counter].qy)
bitStreamWriteFloat(bs, packet[counter].qz)
bitStreamWriteByte(bs, getHealth())
bitStreamWriteByte(bs, getArmour())
bitStreamWriteByte(bs, getWeapon())
bitStreamWriteByte(bs, packet[counter].sa)
bitStreamWriteFloat(bs, packet[counter].sx)
bitStreamWriteFloat(bs, packet[counter].sy)
bitStreamWriteFloat(bs, packet[counter].sz)
bitStreamWriteFloat(bs, 0)
bitStreamWriteFloat(bs, 0)
bitStreamWriteFloat(bs, 0)
bitStreamWriteWord(bs, 0)
bitStreamWriteWord(bs, packet[counter].anim)
bitStreamWriteWord(bs, packet[counter].flags)
sendPacket(bs)
counter = counter + 1
bitStreamDelete(bs)
end
setPosition(packet[counter].x, packet[counter].y, packet[counter].z)
if counter == #packet then
if not loop then
rep = false
packet = {}
end
counter = 1
end
end
end
function loadIni(fileName)
local file = io.open(fileName, 'r')
if file then
local data = {}
local section
for line in file:lines() do
local tempSection = line:match('^%[([^%[%]]+)%]$')
if tempSection then
section = tonumber(tempSection) and tonumber(tempSection) or tempSection
data[section] = data[section] or {}
end
local param, value = line:match('^([%w|_]+)%s-=%s-(.+)$')
if param and value ~= nil then
if tonumber(value) then
value = tonumber(value)
elseif value == 'true' then
value = true
elseif value == 'false' then
value = false
end
if tonumber(param) then
param = tonumber(param)
end
data[section][param] = value
end
end
file:close()
return data
end
return false
end
ковёр что-то подобное уже делал. поищи на форумемб сделаешь такое же только для сампа? чтобы в сампе маршрут мог воспроизводить
ну да знаю, только там не все так хорошо, нажатия не запоминает да и баганный какой токовёр что-то подобное уже делал. поищи на форуме