Перейти к содержимому
Alex

Карта приватов для робота. Роботы и приваты.

Рекомендуемые сообщения

Карта приватов для роботов.

 

Добавил возможность роботам на нашем сервере в удобном виде получить все приваты. Новичку может это и не пригодится, так как новичок, как правило, копает чанк "змейкой" в своем привате, или рядышком, где и специальным "визуализатором приватов" (плагин) можно эти приваты и так глянуть. Их видно. "Упереться" роботом в чужой приват очень не велик шанс.

 

Скрытый текст

eeae0a035f.jpg

 

А вот более опытным игрокам, которые любят "гонять" робота по всему миру в поисках урана или алмазов, эти данные, возможно и пригодятся. В общем, если у вас робот с персональным чанклодером, ультимейт-геолайзером, ультимейт-навигатором, с квантовой панелькой, с тессерактом АЕ, связанной платой... и прочее прочее, а программа работает так, что ваш робот не ковыряется в кубике земли 2 на 2 чанка, а  "бороздит" автономно просторы сервера чанк за чанком биом за биомом и т.п., в поисках конкретного ресурса, то вы можете вашего робота сделать еще "умнее".

 

Теперь ваш робот(или ПК) может в любой момент времени при наличии интернет платы получить карту приватов сервера и с легкостью их обходить, если вы, конечно, в своей программе реализуете эту проверку. Таблица имеет абсолютно все необходимые и достаточные данные о приватах сервера.

 

Скрытый текст

214d127d5e.png

 

Мини-пример программки, которая демонстрирует подключение к "карте приватов" сервера TechnoCraft:

Скрытый текст

-- Карта приватов для роботов --
-- computercraft.ru -- 

JSON = (loadfile "/home/JSON.lua")()
local internet = require('component').internet

function get(url)
  local request, reason = internet.request(url)
  if not request then return '' end
  local text = ''
  while true do
    local data, reason = request.read()
    if not data then
      request.close()
      break
    elseif #data > 0 then
      text = text..data
    end
  end
  return text
end

function getSQLregions(url)
  return get(url)
end

function  getTableWG()
  local raw_json_text = getSQLregions('https://computercraft.ru/uploads/robot_rg.php') 
  return JSON:decode(raw_json_text)
end	

---======== Пример ===========---
local regions = getTableWG()
print('Приваты мира End:')
for i = 1, #regions do
  if regions[i].world == 'DIM1' then
	print(regions[i].region, regions[i].x1..' '..regions[i].y1..' '..regions[i].z1,
	regions[i].x2..' '..regions[i].y2..' '..regions[i].z2, regions[i].size)
  end
end

 


Для работы вам понадобится любая библиотечка для работы с JSON. Я использовал вот эту библиотечку

 

Сырые данные приватов в json: ссылка

Если нужны какие-то др. данные, или хотите параметр передавать в php, например параметр мира для получения выборки: robot_rg.php?world=miner , пишите в комментариях.

 

И да, если вы не видите овнера в регионе, не пугайтесь, это скорее всего админ приват, созданный при помощи /rg define <name_region> На сайте админ приваты не выводятся. Но для роботов это тоже "преграда".

 

 

И еще раз, как памятку, оставлю здесь информацию о том, как добавить робота в приват(часто кто-то спрашивает на сервере об этом):

/rg addmember имя_региона -n [OpenComputers] - ваши транспозеры работают с инвентарями в вашем регионе
/rg addmember имя_региона -n ваш_ник.robot - ваши роботы копают в вашем привате и работают с инвентарями

 

Пример:
/rg addmember myhome -n bob99.robot  - для игрока с ником bob99 для региона myhome

 

Вроде так, если ничего не забыл. Поправьте, если что, в комментариях.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а если добавить в приват робота - в этом привате любой робот любого игрока сможет копаться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
39 минут назад, Ivan_a_z сказал:

а если добавить в приват робота - в этом привате любой робот любого игрока сможет копаться?

нет, конечно) Только твои роботы. Все твои роботы, которых ты устанавливаешь в мир, твои, и работают от имени "тебя". То есть грубо говоря, все твои роботы имеют имя ivan_a_z.robot  
И именно этого "игрока" ivan_a_z.robot  как бы виртуального, фейкового, ты и добавляешь в свой приват аддмембером.

Мой робот alex.robot в твоем привате копать не будет, так как он в него не добавлен)))

 

Хотя.... наверно будет, так как мой робот "админ" и от моего имени копает, и игнорит приваты, скорее всего, но это не точно, не проверял) С другими роботами чужими такого точно не произойдет. Не волнуйся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Есть какие-то еще ключи фильтрации кроме world? Чем больше игроков посещало сервер, тем длинней список и тем дольше его обрабатывать, хотя из всех данных нужно только приваты в окрестностях робота

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Alex сказал:

нет, конечно) Только твои роботы. Все твои роботы, которых ты устанавливаешь в мир, твои, и работают от имени "тебя". То есть грубо говоря, все твои роботы имеют имя ivan_a_z.robot  
И именно этого "игрока" ivan_a_z.robot  как бы виртуального, фейкового, ты и добавляешь в свой приват аддмембером.

Мой робот alex.robot в твоем привате копать не будет, так как он в него не добавлен)))

 

Хотя.... наверно будет, так как мой робот "админ" и от моего имени копает, и игнорит приваты, скорее всего, но это не точно, не проверял) С другими роботами чужими такого точно не произойдет. Не волнуйся.

Вопрос № 2) если я "подкину" 'несчастному(или мне подкинут)  своего робота и он пропишет его в приват- все роботы того кто "подкинул" смогут копаться у 'несчастного'?) и ещё вопрос если можно : когда присваивается имя роботу? после сборки в МОЁМ сборщике? если у меня например на сборщике кто нибудь попросит собрать робота - он будет "оформлен" как мой робот?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, Ivan_a_z сказал:

Вопрос № 2) если я "подкину" 'несчастному(или мне подкинут)  своего робота и он пропишет его в приват- все роботы того кто "подкинул" смогут копаться у 'несчастного'?) и ещё вопрос если можно : когда присваивается имя роботу? после сборки в МОЁМ сборщике? если у меня например на сборщике кто нибудь попросит собрать робота - он будет "оформлен" как мой робот?)

Он вроде бы оформляется когда ты его устанавливаешь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, NEO сказал:

Он вроде бы оформляется когда ты его устанавливаешь.

это как?)  получается если робот у меня стоит например на зарядке, кто то может подойти закодить прогу и он будет выполнять её у меня в привате?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я вот например хочу что бы он там строил где то без моего присмотра, робот будет защищён от вмешательства извне?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, Ivan_a_z сказал:

это как?)  получается если робот у меня стоит например на зарядке, кто то может подойти закодить прогу и он будет выполнять её у меня в привате?)

 

Должен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Ivan_a_z сказал:

Вопрос № 2) если я "подкину" 'несчастному(или мне подкинут)  своего робота и он пропишет его в приват- все роботы того кто "подкинул" смогут копаться у 'несчастного'?) и ещё вопрос если можно : когда присваивается имя роботу? после сборки в МОЁМ сборщике? если у меня например на сборщике кто нибудь попросит собрать робота - он будет "оформлен" как мой робот?)

кого подкинут, кому? робот подкидыш что ли?))) ничего не понял.
Робот в руках или в сборщике, не важно чей этот сборщик, это просто кусок айтема бесполезный.

Робот получает свое имя только после установки. То есть если ты отплейсил робота в мир, он твой. И ник этого робота ivan_a_z.robot 

Всё, считай это игрок такой фейковый на сервере образовался. Кто его добавит себе в приват этот ник, там он и будет копать.

 

Если робота отплейсит другой робот, или какой-то блок-плейсер поставит робота в мир или другой игрок его поставит, у этого робота уже НЕ будет имя ivan_a_z.robot 

Ты можешь моего робота сломать киркой на нейтральной территории где-то и поставить себе. Но это уже будет не мой робот, не alex.robot. Он уже будет кататься с именем ivan_a_z.robot 

Это будет совершенно другой робот, то есть другой игрок с другим именем. Совершенно другим. Не волнуйся и прописывай себе в приват имя ivan_a_z.robot 

 

Других роботов никаких чужих не добавляй и игроков в приват командой addmemder и спи спокойно...относительно спокойно:)

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 22.03.2020 в 22:08, Alex сказал:

Не волнуйся и прописывай себе в приват имя ivan_a_z.robot 

Наверное вопрос был про то, что пока робот вне привата, можно его без демонтажа перепрограммировать и заставить поехать на приват хозяина собирать лут. Против этого по идее поможет useradd

Изменено пользователем hohserg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, hohserg сказал:

Наверное вопрос был про то, что пока робот вне привата, можно его без демонтажа перепрограммировать и заставить поехать на приват хозяина собрать лут. Против этого по идее поможет useradd

ну это да. Если робот катается незаприваченный (без useradd), конечно, бери его, стопай, но не ломай, запускай свою прогу и езжай гриферить хозяина робота:)
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...