Seryoga 184 Опубликовано: 4 февраля, 2015 (изменено) Данная программа отслеживает игроков, находящихся в поле зрения локатора. Она выводит на монитор полную информацию о игроке: ник, координаты, id, расстояние от локатора до игрока; записывает в файл время прихода и ухода гостей (пока что записывается время mine-мира); когда игрок появляется в области действия локатора, срабатывает сирена. Настройка сирены. Есть одна проблема: если подключить сирену напрямую к компьютеру, то при выгрузке чанков сирена начинает сходить с ума. Поэтому нужно подключить сирену через следующую схему (придумано Desectus -ом): Настройка интерфейса. В этой программе можно настроить информацию для вывода на экран. Просто закомментируйте блок кода с выводом. По дефолту стоит: Ник, координаты, расстояние. Можно изменить количество столбцов вывода, расстояние между ними и тп., используя блок переменных, написанных в начале. Код программы. http://pastebin.com/cussCqiu Изменено 4 февраля, 2015 пользователем Seryoga Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
MorfSD 102 Опубликовано: 4 февраля, 2015 по просьбе автора выкладываю код программы на форумпод спойлером local alarm_state = falselocal function alarm()while true doif alarm_state == true thenrs.setOutput('back', true)sleep(0)rs.setOutput('back', false)alarm_state = falseendsleep(1)endendlocal sensor = peripheral.wrap('top')local monitor = peripheral.wrap('right')local x_sensor = 1285local y_sensor = 3416local z_sensor = 73local No_string = 1local No_column = 1local step_string = 6local step_column = 20local q_columns = 2local guests = {["name"] = {}, ["check"] = {}}local function printLog(text)local log = fs.open("log", "a")log.writeLine(text)print(text)log.close()endlocal function clear()monitor.clear()monitor.setCursorPos(1, 1)monitor.setTextScale(0.5)No_string = 1No_column = 1endlocal function next_string()No_string = No_string + 1monitor.setCursorPos(No_column, No_string)endlocal function next_column()if No_column ~= ((q_columns - 1) * step_column + 1) thenNo_column = No_column + step_columnNo_string = No_string - step_stringelseNo_column = 1endmonitor.setCursorPos(No_column, No_string)endlocal function location()local player_table = sensor.getPlayers()for k, v in pairs(guests["check"]) doguests["check"][k] = falseendfor k, v in pairs(player_table) dolocal player = vlocal player_info = sensor.getPlayerByUUID(player["uuid"])local search = falsefor index, guest in pairs(guests["name"]) doif guest == player["name"] thenguests["check"][index] = truesearch = trueendendif search == false thenlocal q_guests = #guests["name"]guests["name"][q_guests + 1] = player["name"]guests["check"][q_guests + 1] = truealarm_state = truelocal log_text = textutils.formatTime(os.time()).." New guest: "..player["name"]printLog(log_text)endlocal x = math.modf(player_info["position"]["x"]) - 1local z = math.modf(player_info["position"]["y"]) - 1local y = math.modf(player_info["position"]["z"]) - 1local distance = math.sqrt(x*x + y*y + z*z)distance = math.modf(distance * 100) / 100monitor.write('Found '..player_info["name"])next_string()-- monitor.write("UUID")-- next_string()-- monitor.write(player_info["uuid"])-- next_string()-- monitor.write("Id")-- next_string()-- monitor.write(player_info["id"])-- next_string()monitor.write("Position")next_string()monitor.write(x + x_sensor..' '..z + z_sensor..' '..y + y_sensor)next_string()monitor.write("Distance")next_string()monitor.write(distance)next_string()monitor.write("---------")next_string()next_column()endfor k, v in pairs(guests["check"]) doif v == false thenlocal log_text = textutils.formatTime(os.time()).." "..guests["name"][k].." left."printLog(log_text)table.remove(guests["check"], k)table.remove(guests["name"], k)endendendlocal function mine()while true doclear()pcall(location)sleep(3)endendrs.setOutput('back', false)parallel.waitForAny(mine, alarm) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Krutoy 1 169 Опубликовано: 13 апреля, 2015 Не понял как устанавливать. Дайте скриншот как должен выглядеть сам комп. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах