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

stripwire

Пользователи
  • Публикации

    40
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем stripwire


  1. чёт не работайт

    2017_08_26_10_35_46.png

    local e = require("event")
    local component = require("component")
    local term = require("term")
    local modem = component.modem
    modem.open(1)
    modem.broadcast(1,"nanomachines", "setResponsePort", 1)
    modem.broadcast(1,"nanomachines", getHealth)
    local a,b,c,d,f,g,h,h1,h2,h3 = e.pull("modem_message")
    print(a)
    print(b)
    print(c)
    print(d)
    print(f)
    print(g)
    print(h)
    print(h1)
    print(h2)
    print(h3)
    

  2. Если ты имеешь в виду как очистить экран, то можно так

    --подключаем библиотеку
    local term = require("term")
    
    --команда очистить терминал
    term.clear()
    

    А если переменную 

    local _,_,_,_,_,h1,h2,h3 = e.pull("modem_message")
    

    то можно её не очищать , данные в ней заменятся при следующем ответе на сообщение модема, на то она и переменная

     

    И ты мог бы код не в виде скриншота вставлять, а виде кода. В сообщении есть кнопочка с надписью КОД

    на счёт очистки переменных я думал, что в e.pull(modem_massage) остаётся старый вывод и тоже пишится в переменные, а потом новый


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

    Давай так, начни с того, что для начала отдельно поработай с модемом, потом с таблицами, потом с либами, на самых простых примерах убедись, что ты правильно все делаешь и что твоя либа, которая просто прибавляет А к Б, работает. Потом составь какую-то простую таблицу и поработай с ней, потом функцию....

     

    А потом перейдем к нанитам :) А то ты там в либе объявил пустую таблицу, потом какие-то фанкшины непонятные напихал, отретурнил ее же, эту пустую таблицу, и ждешь, чтобы что-то работало и наниты что-то делали.

    ну, значит я опять не понял по гайду как делать библиотеки] да и ещё одну ошибку нашёл, ладно, будем разбираться]


  4. type, currentHP, maxHP = component.modem.broadcast(1, "nanomachines", "getHealth") print('Текущее знач. HP: '..currentHP) print('Макс. знач. HP: '..maxHP)

     

     

    примерно так и предполагал, но там вот шо ещё написано, и из-за этого я запутался

     

     

    взвращаются данные так же через модем, через тот самый указанный порт. Так что не забудьте открыть его (modem.open(PORT)) и указать получение данных через event.pull("modem_message").

     

     

    ну, lua я учил по нескольким гайдам по ~20 минут, а понять скорее всего сложно потому, что практики вообще не было, из-за этого плохо помню синтаксис, ну а остальное из-за незнания стандартных библиотек


  5. по моему не так, вот кусок гайда

    • getHealth():String,Number,Number. Значит, возвращает количество здоровья (текущее и максимальное). Чтобы не отвлекаться в дальнейшем, скажу сразу, что взвращаются данные так же через модем, через тот самый указанный порт. Так что не забудьте открыть его (modem.open(PORT)) и указать получение данных через event.pull("modem_message"). Формат данных: "modem_message", "адрес сетевухи на текущем компе", "адрес наноботов", порт, расстояние, "nanomachines", возвращаемые данные.... В данной функции возвращаемые данные: "health", 15, 20, где 15 — текущее, а 20 — максимальное состояния здоровья.

    http://computercraft.ru/blog/3/entry-436-oc-tutorial-tutorial-po-nanobotam/

     

     

    но я как всегда не понял, как это должно выглядеть в целом[

     

     

    я так понимаю, что это должно выглядить примерно вот так

    component.modem.broadcast(1, "nanomachines", getHealth())

    но вот куда пойдёт вывод, хрен его знает [[

     

    и как убрать серое выделение некоторых слов? а то мешается


  6. У тебя чисто академический интерес или ты написал две программы, которые вместе в оперативу не влазят?

    Можно сделать небольшой загрузчик с буфером FIFO, который будет запускать программы по очереди.

    ну в оперативу то они влезут, просто там несколько gui файлов, и получится так, что при хождении между gui меню и другими программами всё больше и больше будет грузиться оператива, и однажды она закончится...


  7. В первой программе пишешь такую строчку

    os.execute("program2")
    

    где "program2" - имя файла второй программы.

    Вот только формально первая программа завершится не сразу, а после завершения второй.

    мдэ, не очень хорошо. а по другому можно? а то так оперативу же будет жрать


  8. str_data это строка, считанная из файла и содержащая таблицу в строковом виде.

    то есть str_data менять не надо, а путь при сохранении/загрузке он сам находит?

     

     

     

    serialization = require('serialization')

    tbl = {}

    str_data = serialization.serialize(tbl) -- сохранение

    tbl = serialization.unserialize (str_data) -- загрузка

     

    так? [прост странно, что путь не надо писать ._., и куда тогда он будет сейвить?]


  9. function table.fromFile(path)checkArg(1, path, "string")   if filesystem.exists(path) then if filesystem.isDirectory(path) then error("\"" .. path .. "\" is a directory") else local file = io.open(path, "r") local data = table.unserialize(file:read("*a")) file:close()   return data end else error("\"" .. path .. "\" doesn't exists") end end

     

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

    вот например, что не понимаю:

    1. куда писать имя таблицы, которую сохраняем?

    2.

    checkArg(1, path, "string")

    if filesystem.exists(path) then

    if filesystem.isDirectory(path) then

    error("\"" .. path .. "\" is a directory")

     

    что делает каждая из этих строк?

    3.

    local data = table.unserialize(file:read("*a"))

    что это и зачем вызывать функцию загрузки?

     

    кароче, почти ничего из того кода не понял[

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