[RakBot] Как сделать так, чтоб на определенных координатах бот писал в чат команду?

Pelmeska

Известный
Автор темы
931
232
Версия MoonLoader
Другое
Всем привет. Как сделать так, чтоб на определенных координатах бот писал в чат команду?
 

#kweeZ

Известный
577
124
Lua:
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 >= 111 and x <= 111 then
    -- your code
    end
      end
end
 
  • Вау
Реакции: Pelmeska

Pelmeska

Известный
Автор темы
931
232
Lua:
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 >= 111 and x <= 111 then
    -- your code
    end
      end
end
тоже не работает
 

Pelmeska

Известный
Автор темы
931
232
Полный код давай, много причин может что не работает
Ты мог 2 раза объявить onSendPacket
Либо вообще неправильно выставил условие на координаты
Lua:
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 >= 1717 and x <= 1717 then
    printLog("я тут")
    end
  end
end
когда бот прибегает на координаты, он должнен это вывести в лог, но не работает
 

serhiyrubin

Известный
396
106
Lua:
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 >= 1717 and x <= 1717 then
    printLog("я тут")
    end
  end
end
когда бот прибегает на координаты, он должнен это вывести в лог, но не работает
Выставь больше радиус координат мб
if x > 1716 and x <= 1717 then
А то у тебя условие аналогично if x == 1717 then
Оно не будет так работать, там так то не целое число вообще, а float
Но тут пофигу так сделай проверь
 

Pelmeska

Известный
Автор темы
931
232
Выставь больше радиус координат мб
if x > 1716 and x <= 1717 then
А то у тебя условие аналогично if x == 1717 then
Оно не будет так работать, там так то не целое число вообще, а float
Но тут пофигу так сделай проверь
теперь он флудит, как починить?)
 

serhiyrubin

Известный
396
106
теперь он флудит, как починить?)
Ну как вариант в начале скрипта объявить переменную
noflood = true
А условие изменить на

Код:
if x > 1716 and x <= 1717 and noflood then
noflood = false
end

Один из вариантов, мб ещё как то в голову придет
 
  • Нравится
Реакции: Pelmeska

Pelmeska

Известный
Автор темы
931
232
Ну как вариант в начале скрипта объявить переменную
noflood = true
А условие изменить на

Код:
if x > 1716 and x <= 1717 and noflood then
noflood = false
end

Один из вариантов, мб ещё как то в голову придет
гениально, спасибо)