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


Фотография

[1.7.10] ComputerCraft [1.74]


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2863

#1721 Apokalypsys

Apokalypsys

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

  • Пользователи
  • Сообщений: 183

Написал 27.02.2013 - 17:28

в чем отличие объявления функции и переменной с использованием слова local и без него?

var = 10print(var)do    local var + 1    print(var)until var == 11print(var)
>10>11>10
function foo() body end
транслируется в
foo = function() body end
, а
local function foo() body end
в
local foofoo = function() body end
Прочитай про области видимости в lua

#1722 Storm Whisper

Storm Whisper

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

  • Пользователи
  • Сообщений: 1554
  • Откуда: Убежище 13

Написал 27.02.2013 - 17:55

всё гораздо проще. пример на numeric, но и с функциями всё так же:
a=1if true thenlocal a=555endprint(a)--1
ну это если я ничего не перепутал. А если ты спрашиваешь про функциях API, то локальные функции API невозможно вызвать.

#1723 KaMaPuK

KaMaPuK

    Добытчик алмазов

  • Пользователи
  • Сообщений: 681
  • Откуда: СПб

Написал 27.02.2013 - 18:52

всем спасибо за ответы, но я уже разобрался.... просто было странно в программе экскаватора видеть каждую строчку начинающую с local оказалось если не объявлять переменную через локал, она будет доступна даже после выхода с программы. и если запустить например сначала программу например peremechenie в которой была переменная dX(без local), а потом запустить программу pozicionirovanie с одной строчкой print(dX), то он выведет параметр dX оставшееся от первой программы....
кстати я бы добавил в гайд способ, как написать программу в которую помимо имени можно указывать входящие параметры
Скрытый текст

пример программы которую я написал для того чтобы черепашка вырывала комнату с размерами х,у,z
Скрытый текст

ставим черепашку в верхний правый угол, и вызываем программу например cubeXYZ 5 3 3
upd: вставил программу
рандом он такой рандом....а если корейский так вообще забей)

#1724 Apokalypsys

Apokalypsys

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

  • Пользователи
  • Сообщений: 183

Написал 27.02.2013 - 20:43

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

Я такое делал недавно:
xp = peripheral[paste][/paste]wrap("right")xp[paste][/paste]setAutoCollect(true)function attack()	while true do	sleep(0[paste][/paste]2)	turtle[paste][/paste]attack()	endendfunction enchant()	while true do		sleep(10)		if turtle[paste][/paste]getItemCount(1) > 1 and xp[paste][/paste]getLevels() >= 30 then			turtle[paste][/paste]select(1)			xp[paste][/paste]enchant(30)			turtle[paste][/paste]select(2)			turtle[paste][/paste]dropUp()		end	endendparallel[paste][/paste]waitForAny(attack, enchant)
Ну, в общем, в первом слоту книги, во второй она кладет зачарованные книги и выбрасывает их вверх.

#1725 KaMaPuK

KaMaPuK

    Добытчик алмазов

  • Пользователи
  • Сообщений: 681
  • Откуда: СПб

Написал 27.02.2013 - 21:49

а как книги в нее складываются? обычные
рандом он такой рандом....а если корейский так вообще забей)

#1726 Evgenio

Evgenio

    Добытчик алмазов

  • Пользователи
  • Сообщений: 855
  • Откуда: Из пермабана

Написал 27.02.2013 - 22:11

А какие аддоны нужны для этой программы?
I have been caught. Don't ban me please.
Если Вы хотите отблагодарить меня, дайте мне интернет:
Изображение
Уааау!
Скрытый текст

#1727 KaMaPuK

KaMaPuK

    Добытчик алмазов

  • Пользователи
  • Сообщений: 681
  • Откуда: СПб

Написал 27.02.2013 - 22:13

А какие аддоны нужны для этой программы?

нужен
рандом он такой рандом....а если корейский так вообще забей)

#1728 Evgenio

Evgenio

    Добытчик алмазов

  • Пользователи
  • Сообщений: 855
  • Откуда: Из пермабана

Написал 27.02.2013 - 22:16

Окей. А как сделать хп черепашку? Я не в курсе, а ты будешь перевод обновлять? Когда?
I have been caught. Don't ban me please.
Если Вы хотите отблагодарить меня, дайте мне интернет:
Изображение
Уааау!
Скрытый текст

#1729 KaMaPuK

KaMaPuK

    Добытчик алмазов

  • Пользователи
  • Сообщений: 681
  • Откуда: СПб

Написал 27.02.2013 - 22:30

обязательно обновлю... на меня сейчас просто наседает научный руководитель по поводу магистерской... как только появляется время, добавляю по кусочкам в переводы аддоновXP черепашка крафтится объединением черепашки и стола замуровывания.апи черепашкиadd(amount): добавляет черепашке опыт из бутылки или яйца призываget(): возвращает кол-во опыта в черепашкеgetLevels(): возвращает лвл черепашкиcollect(): собирает вокруг себя орбы с опытом, радиус сбора - 2 клеткиsetAutoCollect(autoCollect): если вместо autoCollect написать true, будет собирать орбы автоматом, если false - перестанетenchant(levels): зачаровывает предмет в выбранном слотеget/getUp/getDown(): собирает ХР из банок, черепашек или печек.чтобы обратиться к одной из процедур надо связать стол зачаровывания с переменной(например p0 = peripheral.wrap("right"))и дальше обращаться через нее к процедурам( например p0.setAutoCollect(true))
рандом он такой рандом....а если корейский так вообще забей)

#1730 Apokalypsys

Apokalypsys

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

  • Пользователи
  • Сообщений: 183

Написал 27.02.2013 - 22:46

p0 = peripheral.wrap("right")

Заморишься так объявлять переменные, а потом объяснять зачем они нужны. У меня в программе
xp = peripheral[paste][/paste]wrap("right")
и то понятней, хоть и делал без рассчёта кому-то показывать.

а как книги в нее складываются? обычные

По трубам. А зачарованные именно выкидываются, потому что деревянная и обычные высосет. Хотя можно сделать загрузку и с помощью turtle.suck(), но тогда в лучшем случае ей придёться вертеться, а в худшем ездить и тратить топливо.

#1731 Evgenio

Evgenio

    Добытчик алмазов

  • Пользователи
  • Сообщений: 855
  • Откуда: Из пермабана

Написал 27.02.2013 - 22:47

Cпасибо, а можно ли сделать черепашку и с мечом, и этой фичкой?
I have been caught. Don't ban me please.
Если Вы хотите отблагодарить меня, дайте мне интернет:
Изображение
Уааау!
Скрытый текст

#1732 KaMaPuK

KaMaPuK

    Добытчик алмазов

  • Пользователи
  • Сообщений: 681
  • Откуда: СПб

Написал 27.02.2013 - 22:51

Cпасибо, а можно ли сделать черепашку и с мечом, и этой фичкой?

можно. по умолчанию каждую черепашку можно снарядить 1 инструментом и 1 устройством(или 2 устройствами)
рандом он такой рандом....а если корейский так вообще забей)

#1733 Nazdar

Nazdar

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

  • Пользователи
  • Сообщений: 112
  • Откуда: Круговерть Пустоты

Написал 27.02.2013 - 23:00

мне get() всегда 0 возвращает, но getLevels() работает исправнои соглашается зачаровать книгу только тогда, когда в слоте она одна, сейчас организовываю бред с детектором предметов

#1734 KaMaPuK

KaMaPuK

    Добытчик алмазов

  • Пользователи
  • Сообщений: 681
  • Откуда: СПб

Написал 27.02.2013 - 23:13

ну с такими лагами можно использовать процедуру turtle.transferTo(slot, quantity) с помощью ее, передавать книгу в слот который по умолчанию будет всегда пустым, и в нем зачаровывать...
рандом он такой рандом....а если корейский так вообще забей)

#1735 Nazdar

Nazdar

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

  • Пользователи
  • Сообщений: 112
  • Откуда: Круговерть Пустоты

Написал 27.02.2013 - 23:18

о_0а я уже систему с детектором сделал, мол, прошла книга — послать сигнал на новую книгу хД

#1736 Cyxapuk

Cyxapuk

     

  • Главные модераторы
  • Сообщений: 8706
  • Ник в Minecraft:
    Meegoo

Написал 28.02.2013 - 08:19

Можно ли в игре посмотреть API для каждого из Peripheral'ов? А то запоминать как-то сложно.

V6xCzSN.png


#1737 Lexor

Lexor

    Добытчик угля

  • Пользователи
  • Сообщений: 399
  • Откуда: Иркутская область

Написал 28.02.2013 - 08:41

Можно ли в игре посмотреть API для каждого из Peripheral'ов? А то запоминать как-то сложно.

Цитата с офф вики:

peripheral.getMethods(side) Returns a table containing all methods for peripheral on side.

Т.е возвращает таблицу с методами. Сам не пользовался этой командой, если честно предпочитаю набирать код в Notepad++, это гораздо удобнее и нагляднее, апи смотрю в офф вики. В компе набираю только совсем простенькие проги вроде хоста GPS или атакующую черпаху.

#1738 Princess Celessia

Princess Celessia

    Добытчик угля

  • Пользователи
  • Сообщений: 316

Написал 28.02.2013 - 12:39

У miscPeripherals есть вики? Можно ссылочку? Кстати, кто может помочь с написанием зачаровывающей-атакующей черепахи?
m=peripheral[paste][/paste]wrap("right")while true doturtle[paste][/paste]attack()m[paste][/paste]collect() if m[paste][/paste]getLevels()==30 then	select(1) -- Слот с книгами	m[paste][/paste]enchant(30)	select(2) -- Пустой слот, куда кладётся зачарованная книга	turtle[paste][/paste]drop()	endend

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

#1739 Nazdar

Nazdar

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

  • Пользователи
  • Сообщений: 112
  • Откуда: Круговерть Пустоты

Написал 28.02.2013 - 14:07

может включи автоматическое собирание орб?m.setAutoCollect(true)в цикл добавь sleep(8)и проверь через lua, желает ли твоя черепаха зачаровывать предметы, если их не 1 штука, у меня не желаети лёгкий флудесть ли ещё кто-то, кто юзает while(1)?

#1740 Apokalypsys

Apokalypsys

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

  • Пользователи
  • Сообщений: 183

Написал 28.02.2013 - 16:52

m=peripheral[paste][/paste]wrap("right")while true doturtle[paste][/paste]attack()m[paste][/paste]collect() if m[paste][/paste]getLevels()==30 then   select(1) -- Слот с книгами   m[paste][/paste]enchant(30)   select(2) -- Пустой слот, куда кладётся зачарованная книга   turtle[paste][/paste]drop()   endend

Моя же прога, только в профиль один поток.
setAutoCollect(true) и вправду смотрится лучше.
sleep(8) не надо, потому что у него, как я писал, один поток и turtle.attack() будет плохо работать.
Хотя бы зачарование в отдельную локальную функцию вынес.


Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных