Harry_Maione
Новичок
- 13
- 0
Врешь и не краснеешь!Вылетает если поставить play/loop на defcall или tasking.defer
Я бы рад врать, но у меня именно так. Ставлю на задержку после активации 10-15 сек и вылетВрешь и не краснеешь!
можно было event создать отдельный, к примеру onRouteFinished и там чекатьБыла проблема тем, что когда чекал координаты при нахождении на чекпоинте, если бот не отправил все пакеты, и юзалась sendPickup, то при перемещении в интерьер бота кикало, добавил после counter = 1 вывод в лог обозначающий, что закончили отправляться пакеты, и чекал в своем скрипте через onPrintLog, может кому-то пригодиться
package.path = getRakBotPath().."/scripts/libs/?.lua;"..getRakBotPath().."/scripts/libs/?/init.lua;";
package.cpath = getRakBotPath().."/scripts/libs/?.dll";
require("getrpc")
grx = -1891,67
gry = -1677,37
grz = 23
gr = 0
payment = 1
i = 2
function onRunCommand(cmd)
defCallAdd(1000, false, function ()
if cmd:find("!mn%s+(.+)") then
number = cmd:match('!mn%s+(.+)')
number = tonumber(number)
coordMasterStart(grx, gry, grz)
gr = 1
end
end)
if cmd == "!dfs" then
gr = 0
end end
function onTextDrawSetString(textid, text)
if textid == 2191 and (gr >= 1) then
local payment = text:find("PAYMENT:_~Y~$(.+)")
printLog('text'..text)
payment = text:match('$(.+)')
payment = tonumber(payment)
printLog("Заработано: $"..payment)
if (payment > number) and (gr == 3) then
printLog('Закончил, иду сдавать')
runCommand('!stop')
sendPickup(pick1318, false)
defCallAdd(2000, false, function()
sendPickup(pic1275, false)
gr = 0
end)
else
printLog('Работаю дальше')
end
end
end
function onCoordMasterComplete()
local botskin = getSkin()
local pic1275 = getPick1275()
local x, y, z = getPosition()
local drx = -1891
local dry = -1681
local drz = -5,6
local mx = -1968
local my = -1555
local mz = 7
px = -1893,90
py = -1675,20
pz = 23
local pick1318 = getPick1318()
if (botskin ~= 16) and (gr == 1) then
sendPickup(pic1275, false)
botskin = 16
teleport(px, py, pz)
end
if gr == 3 then
runCommand('!play min')
runCommand('!loop')
end
end
function onSetSkin(playerid, skinid)
local botid = getBotId()
local pick1318 = getPick1318()
if (playerid == botid) and (skinid == 16) and (gr == 1) then
defCallAdd(1000, false, function()
sendPickup(pick1318, false)
gr = 2
end)
end
end
function onPrintLog(str)
if str:find('Администратор (.+) ответил') and (gr >= 1) then
defCallAdd(5000, false, function()
runCommand("!quit")
end)
end
function onSetInterior(InteriorId)
inter = getInteriorId()
local drx = -1891
local dry = -1681
local drz = -5
if (gr == 2) and (inter == 1) then
coordMasterStart(drx, dry, drz)
gr = 3
end
end
end
Дело в том, что в самом ракботе нет такой команды, а скрипт её распознал, как свою. Не пугайся, воспроизведение идёт.Посмотреть вложение 122962 из-за чего может быть?
братец, я понимаю, что такое может быть, но первая строка (команда не обнаружена) - вызвал сам скрипт,т.е runCommandДело в том, что в самом ракботе нет такой команды, а скрипт её распознал, как свою. Не пугайся, воспроизведение идёт.
я код уже просрал, сейчас попробую восстановить и проверить :)return true в конце поставь и ок все будет
Я не понимаю что я не так делаю. просто не реагирует на то, что бот на нужных координатахreturn true в конце поставь и ок все будет
function onSendPacket(id, data, size)
if id == 207 then
local bs = bitStreamInit(data, size)
local pid = bitStreamReadByte(bs)
local lrKey = bitStreamReadWord(bs)
local udKey = bitStreamReadWord(bs)
local keys = bitStreamReadWord(bs)
local x = bitStreamReadFloat(bs)
local y = bitStreamReadFloat(bs)
local z = bitStreamReadFloat(bs)
bitStreamDelete(bs)
if x >= 2145 and x <= 2150 then
defCallAdd(5000, false, function() runCommand ('!play ls1.1') end)
end
end
return true в конце поставь и ок все будет
не помоглоreturn true в конце поставь и ок все будет
Код покажия код уже просрал, сейчас попробую восстановить и проверить :)
Я не понимаю что я не так делаю. просто не реагирует на то, что бот на нужных координатах
аввы:function onSendPacket(id, data, size) if id == 207 then local bs = bitStreamInit(data, size) local pid = bitStreamReadByte(bs) local lrKey = bitStreamReadWord(bs) local udKey = bitStreamReadWord(bs) local keys = bitStreamReadWord(bs) local x = bitStreamReadFloat(bs) local y = bitStreamReadFloat(bs) local z = bitStreamReadFloat(bs) bitStreamDelete(bs) if x >= 2145 and x <= 2150 then defCallAdd(5000, false, function() runCommand ('!play ls1.1') end) end end
не помогло