Jump to content


Photo

[1.7.10] ComputerCraft [1.74]


  • Please log in to reply
2863 replies to this topic

#2241 Apokalypsys

Apokalypsys

    Добытчик дерева

  • Пользователи
  • Active Posts183

Posted 08.07.2013 - 02:07

Не хочу устанавливать сенсоры, но у тебя опечатка.slepp(1)

#2242 Dimus

Dimus

    Странник

  • Пользователи
  • Active Posts89

Posted 08.07.2013 - 10:54

Вот код, но он не хочет работать, уже устал с ним бороться.

У тебя sleep выполняется только --если проверка прошла.
В противном случае через три секунды комп отключится.
И еще, по моему, в конце end нужен

#2243 Dimus

Dimus

    Странник

  • Пользователи
  • Active Posts89

Posted 08.07.2013 - 14:48

И еще. На сколько я понял, getTargets() возвращает таблицу, ключи в которой целочисленные, а значения - имена целей. В твоем же примере
local targets = sensor[paste][/paste]wrap(sideSensor)[paste][/paste]getTargets() local s = 1 for name in pairs(targets) do  nameT[s] = tostring(name)  s = s + 1 end
обрабатываются только ключи, а не значения. Попробуй так:
[paste][/paste][paste][/paste][paste][/paste]for i,name in pairs(targets) do[paste][/paste][paste][/paste][paste][/paste]


#2244 Ukrainian

Ukrainian

    Странник

  • Пользователи
  • Active Posts83

Posted 08.07.2013 - 17:18

Почему такой код возвращает адрес функции, а не результат?
print(string[paste][/paste]gmatch("2 4", "%d%d"))
Неужели функция string.gmatch работает только так: for ... in string.gmatch(..) do ?

#2245 Dimus

Dimus

    Странник

  • Пользователи
  • Active Posts89

Posted 08.07.2013 - 17:57

gmatch возвращает функцию-итератор. Если нужен результат, используй string.match("2 4", "%d%d")

#2246 Apokalypsys

Apokalypsys

    Добытчик дерева

  • Пользователи
  • Active Posts183

Posted 08.07.2013 - 17:59

Зачем 2 раза %d? Этот шаблон будет возвращать двухзначные числа.

#2247 Dimus

Dimus

    Странник

  • Пользователи
  • Active Posts89

Posted 08.07.2013 - 18:12

Ну, я на параметры даже не глянул. Правильно, наверное, как то так
a,b=string.match("2 4", "(%d+)%s+(%d+)")
Все зависит от того, чего хотел автор

#2248 Ukrainian

Ukrainian

    Странник

  • Пользователи
  • Active Posts83

Posted 08.07.2013 - 18:58

Если нужен результат, используй string.match("2 4", "%d%d")

Благодарю, именно это мне и нужно.

Зачем 2 раза %d? Этот шаблон будет возвращать двухзначные числа.

Ну, я на параметры даже не глянул. Правильно, наверное, как то так
a,b=string.match("2 4", "(%d+)%s+(%d+)")
Все зависит от того, чего хотел автор

То есть пробел нужно тоже учитывать? И забавно, если:
a,b,c = string[paste][/paste]match("2 4", "(%d)(%s)(%d)")
То будет: a="2", b=" ", c="4". А если написать так:
a,b,c = string[paste][/paste]match("2 4", "%d%s%d")
То будет: a="2 4", b=nil, c=nil. Я так понял, что всё что между '(' и' )' будет выводиться отдельно.

#2249 Kaerius

Kaerius

    Странник

  • Пользователи
  • Active Posts17

Posted 08.07.2013 - 19:34

И еще. На сколько я понял, getTargets() возвращает таблицу, ключи в которой целочисленные, а значения - имена целей. В твоем же примере

local targets = sensor[paste][/paste]wrap(sideSensor)[paste][/paste]getTargets() local s = 1 for name in pairs(targets) do  nameT[s] = tostring(name)  s = s + 1 end
обрабатываются только ключи, а не значения. Попробуй так:
[paste][/paste][paste][/paste][paste][/paste]for i,name in pairs(targets) do[paste][/paste][paste][/paste][paste][/paste]

В первом параметре имя игрока, а во втором таблица с данными игрока, в которой первой строчкой идет кол-во жизни. Спасибо конечно, но это я пробовал не помогло. У меня тут в общей логике ошибка. Я сделал инкапсуляцию сравнения, но это не сильно помогло. тут надо саму логику работы смотреть, проверка у меня проходит всего 1 раз, и всё, как вариант искусственный сброс по таймеру, но это хреново работает двери открываются и закрываются если я рядом стою. А ошибки в коде это фигня, код переписывал по памяти перед сном.

#2250 Apokalypsys

Apokalypsys

    Добытчик дерева

  • Пользователи
  • Active Posts183

Posted 08.07.2013 - 21:00

Я сделал инкапсуляцию сравнения

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

И да, тебе никто не поможет, пока ты не дашь инфы. Я даже пытаться не буду. Твое описание проблемы крайне туманно - не понятно как именно и что именно не работает.

#2251 Dimus

Dimus

    Странник

  • Пользователи
  • Active Posts89

Posted 09.07.2013 - 10:53

И забавно, если: a,b,c = string.match("2 4", "(%d)(%s)(%d)") То будет: a="2", b=" ", c="4". А если написать так: a,b,c = string.match("2 4", "%d%s%d") То будет: a="2 4", b=nil, c=nil.

Дело в том, что в первом примере шаблон содержит захваты (выражения в круглых скобках). В этом случае match возвращает захваченные значения (в примере их три - цифра, пробел и цифра). Если шаблон захватов не содержит, то match возвращает только одно значение - подстроку, удовлетворяющую шаблону. Поэтому то b=nil, c=nil Лично я начитался про шаблоны

#2252 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 09.07.2013 - 11:16

Отдаю тему Apokalypsys'у. Зодиак, сделаешь?

#2253 Ukrainian

Ukrainian

    Странник

  • Пользователи
  • Active Posts83

Posted 09.07.2013 - 13:51

Дело в том, что в первом примере шаблон содержит захваты (выражения в круглых скобках). В этом случае match возвращает захваченные значения (в примере их три - цифра, пробел и цифра). Если шаблон захватов не содержит, то match возвращает только одно значение - подстроку, удовлетворяющую шаблону. Поэтому то b=nil, c=nil

Да, я понял.

Лично я начитался про шаблоны тут

Ссылка очень кстати. Подробно всё расписано, благодарю.

Отдаю тему Apokalypsys'у. Зодиак, сделаешь?

Смена власти?)

#2254 Kaerius

Kaerius

    Странник

  • Пользователи
  • Active Posts17

Posted 09.07.2013 - 16:16

Я сделал инкапсуляцию сравнения

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

И да, тебе никто не поможет, пока ты не дашь инфы. Я даже пытаться не буду. Твое описание проблемы крайне туманно - не понятно как именно и что именно не работает.

Извиняюсь перепутал термины, надо написать законтейнерил, так как пост писал я когда глаза закрывались. Ну да пофиг.

Проблема в том что алгоритм срабатывает 1 раз, и всё. То есть дверь открывается и не закрывается. И я не могу понять что я сделал не так. Логика работы вроде верная, но не работает.
Щас сяду дальше мучат.

#2255 Apokalypsys

Apokalypsys

    Добытчик дерева

  • Пользователи
  • Active Posts183

Posted 09.07.2013 - 16:39

Получи таблицу с игроками вручную и дай мне. И весь код. А, всё. Убери
local nameT = {}
и вставь после
local s = 1
тоесть
local s = 1local nameT = {}
Таблица не сбрасывалась и "засветившиеся" пользователи оставались там навсегда, вот и не закрывается. Сбросилось бы только если бы он обнаружил столько же неавторизированных пользователей, сколько авторизированных до этого.
Оффтопик


#2256 Zodiak69

Zodiak69

    Убийца драконов

  • Модераторы
  • Active Posts13452
  • Ник в Minecraft:
    Zodiak69

Posted 09.07.2013 - 20:25

Отдаю тему Apokalypsys'у. Зодиак, сделаешь?

Готово. Все силы на AE теперь?)

8g3ZeiD.png


#2257 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 09.07.2013 - 20:35

Ага =) Ну щас передышка небольшая =)А в СС я всё равно уже забыл, когда добавлял что-то новое...

#2258 Apokalypsys

Apokalypsys

    Добытчик дерева

  • Пользователи
  • Active Posts183

Posted 09.07.2013 - 20:35

А я не знаю с чего начать.

#2259 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 09.07.2013 - 20:43

Сказал бы, начни сначала, но это будет слишком =)Я бы посоветовал подумать и по решать на счёт "Пользовательских проектов". Вроде-бы эта тема себя исчерпала.Пересмотри "Краткий курс Lua", там много что написано криво, да и может что-то добавишь.ЗЫ отписываюсь от темы. Чуть не забыл... Удачи!

#2260 Apokalypsys

Apokalypsys

    Добытчик дерева

  • Пользователи
  • Active Posts183

Posted 09.07.2013 - 21:15

Спасибо!Добавил API textutils.Добавил API parallel.


2 user(s) are reading this topic

0 members, 2 guests, 0 anonymous users